canadian-income-tax 2022.2.1 → 2023.0
raw patch · 93 files changed
+34197/−1271 lines, 93 filesdep +bifunctorsdep +bitwise-enumdep +deep-transformationsdep −transformersdep ~basedep ~bytestringdep ~ca-province-codesnew-component:exe:serve-canadian-taxesbinary-addedPVP ok
version bump matches the API change (PVP)
Dependencies added: bifunctors, bitwise-enum, deep-transformations, hedgehog, http-types, scotty, tasty, tasty-golden, tasty-hedgehog, typed-process, unix, wai-extra, wai-middleware-static, zip-archive
Dependencies removed: transformers
Dependency ranges changed: base, bytestring, ca-province-codes, containers, directory, filepath, forms-data-format, monoid-subclasses, optparse-applicative, rank2classes, text, time
API changes (from Hackage documentation)
Files
- CHANGELOG.md +14/−1
- README.md +70/−70
- app/Main.hs +107/−67
- canadian-income-tax.cabal +113/−18
- data/428/5006-c-fill-23e.fdf +1258/−0
- data/428/5007-c-fill-23e.fdf +898/−0
- data/428/5009-c-fill-23e.fdf +942/−0
- data/428/5010-c-fill-23e.fdf +1182/−0
- data/479/5006-tc-fill-23e.fdf +270/−0
- data/479/5010-tc-fill-23e.fdf +634/−0
- data/5000-s11-fill-23e.fdf +302/−0
- data/5000-s6-fill-23e.fdf +758/−0
- data/5000-s7-fill-23e.fdf +334/−0
- data/5000-s9-fill-23e.fdf +286/−0
- data/T1/fdf/5001-r-fill-23e.fdf +2206/−0
- data/T1/fdf/5002-r-fill-23e.fdf +2190/−0
- data/T1/fdf/5004-r-fill-23e.fdf +2206/−0
- data/T1/fdf/5005-r-fill-23e.fdf +2222/−0
- data/T1/fdf/5006-r-fill-23e.fdf +2242/−0
- data/T1/fdf/5010-r-fill-23e.fdf +2234/−0
- data/T1/fdf/5011-r-fill-23e.fdf +2242/−0
- data/T1/fdf/5012-r-fill-23e.fdf +2230/−0
- data/T1/fdf/5014-r-fill-23e.fdf +2214/−0
- data/T1/fdf/5015-r-fill-23e.fdf +2202/−0
- data/T1/pdf/5000-r-fill-22e.pdf binary
- data/T1/pdf/5001-r-fill-22e.pdf binary
- data/T1/pdf/5005-r-fill-22e.pdf binary
- data/T1/pdf/5006-r-fill-22e.pdf binary
- data/T1/pdf/5010-r-fill-22e.pdf binary
- data/T1/pdf/5011-r-fill-22e.pdf binary
- data/T1/pdf/5012-r-fill-22e.pdf binary
- data/T1/pdf/5014-r-fill-22e.pdf binary
- data/T1/pdf/5015-r-fill-22e.pdf binary
- src/Tax/Canada.hs +23/−37
- src/Tax/Canada/Federal.hs +82/−0
- src/Tax/Canada/Federal/Schedule11.hs +150/−0
- src/Tax/Canada/Federal/Schedule6.hs +254/−0
- src/Tax/Canada/Federal/Schedule7.hs +157/−0
- src/Tax/Canada/Federal/Schedule9.hs +127/−0
- src/Tax/Canada/ON428/FieldNames.hs +0/−172
- src/Tax/Canada/ON428/Fix.hs +0/−184
- src/Tax/Canada/ON428/Types.hs +0/−193
- src/Tax/Canada/Province/AB.hs +74/−0
- src/Tax/Canada/Province/AB/AB428/FieldNames.hs +132/−0
- src/Tax/Canada/Province/AB/AB428/Fix.hs +102/−0
- src/Tax/Canada/Province/AB/AB428/Types.hs +126/−0
- src/Tax/Canada/Province/BC.hs +108/−0
- src/Tax/Canada/Province/BC/BC428/FieldNames.hs +152/−0
- src/Tax/Canada/Province/BC/BC428/Fix.hs +106/−0
- src/Tax/Canada/Province/BC/BC428/Types.hs +136/−0
- src/Tax/Canada/Province/BC/BC479/FieldNames.hs +77/−0
- src/Tax/Canada/Province/BC/BC479/Fix.hs +48/−0
- src/Tax/Canada/Province/BC/BC479/Types.hs +100/−0
- src/Tax/Canada/Province/MB.hs +70/−0
- src/Tax/Canada/Province/MB/MB428/FieldNames.hs +140/−0
- src/Tax/Canada/Province/MB/MB428/Fix.hs +107/−0
- src/Tax/Canada/Province/MB/MB428/Types.hs +134/−0
- src/Tax/Canada/Province/NB.hs +3/−0
- src/Tax/Canada/Province/NL.hs +3/−0
- src/Tax/Canada/Province/ON.hs +97/−0
- src/Tax/Canada/Province/ON/ON428/FieldNames.hs +173/−0
- src/Tax/Canada/Province/ON/ON428/Fix.hs +161/−0
- src/Tax/Canada/Province/ON/ON428/Types.hs +167/−0
- src/Tax/Canada/Province/ON/ON479/FieldNames.hs +48/−0
- src/Tax/Canada/Province/ON/ON479/Fix.hs +39/−0
- src/Tax/Canada/Province/ON/ON479/Types.hs +68/−0
- src/Tax/Canada/Province/PE.hs +3/−0
- src/Tax/Canada/Province/QC.hs +3/−0
- src/Tax/Canada/Shared.hs +101/−0
- src/Tax/Canada/T1.hs +57/−0
- src/Tax/Canada/T1/FieldNames.hs +0/−336
- src/Tax/Canada/T1/FieldNames/AB.hs +35/−0
- src/Tax/Canada/T1/FieldNames/BC.hs +43/−0
- src/Tax/Canada/T1/FieldNames/NB.hs +23/−0
- src/Tax/Canada/T1/FieldNames/NL.hs +37/−0
- src/Tax/Canada/T1/FieldNames/NT.hs +29/−0
- src/Tax/Canada/T1/FieldNames/NU.hs +18/−0
- src/Tax/Canada/T1/FieldNames/ON.hs +345/−0
- src/Tax/Canada/T1/FieldNames/PE.hs +18/−0
- src/Tax/Canada/T1/FieldNames/QC.hs +127/−0
- src/Tax/Canada/T1/FieldNames/YT.hs +45/−0
- src/Tax/Canada/T1/Fix.hs +77/−65
- src/Tax/Canada/T1/Types.hs +56/−46
- src/Tax/Canada/Territory/NT.hs +3/−0
- src/Tax/Canada/Territory/NU.hs +3/−0
- src/Tax/Canada/Territory/YT.hs +3/−0
- src/Tax/FDF.hs +203/−77
- src/Tax/PDFtk.hs +34/−0
- src/Tax/Util.hs +1/−5
- test/Properties.hs +154/−0
- test/Regression.hs +87/−0
- test/Test/Transformations.hs +78/−0
- web/Main.hs +94/−0
@@ -1,5 +1,18 @@ # Revision history for `canadian-income-tax` +## 2023.0++* Updated for the 2023 tax return forms+* Extended the T1 form support to all provinces and territories+* Accepting the 428 forms for AB, BC, and MB beside the earlier ON support+* Accepting the 479 forms for BC and ON+* Accepting the federal schedule forms 6, 7, 9, and 11+* Streamlined the command-line options+* Allowed working directly with PDFs on the command line, with PDFTk installed+* A simple web server with interactive UI+* Refactored most of the code+* Added test suites+ ## 2022.2.1 * Fixed a duplicate field name@@ -11,7 +24,7 @@ ## 2022.2 * Expanded README and renamed the executable-* Added the Ontario tax form+* Added the Ontario 428 tax form * Added `leastOf` and calculated line 31260 of `T1` * Fixed the credits left out from page 4 of `T1` * Tightened module exports
@@ -1,116 +1,116 @@ Canadian Income Tax =================== -## Manual ##--### Use for Canadians outside Ontario ###+This Haskell package consists of a library and a couple of executables to complete the Canadian income tax forms. -This Haskell package consists of a library and executable to fill out the Canadian T1 tax form. The way to-use it is as follows:+## Command line ## -1. Download the fillable PDF form from [the canada.ca Web-site](https://www.canada.ca/en/revenue-agency/services/forms-publications/tax-packages-years/general-income-tax-benefit-package/ontario/5006-r.html).+There's a command-line executable named `complete-canadian-taxes`. The way to use it is as follows: -2. Fill in the downloaded T1 form; don't bother with any fields that are calculated from other fields in the same-form, that part will be performed automatically.+1. Download the fillable PDF forms from [the canada.ca Web+site](https://www.canada.ca/en/revenue-agency/services/forms-publications/tax-packages-years/general-income-tax-benefit-package.html). -3. Save the filled-out PDF form.+2. Fill in the downloaded forms:+ * T1 is supported and mandatory for all provinces and territories.+ * If you're a resident of British Columbia or Ontario, you can also fill in the 428 and 479 forms for the province.+ * If you're a resident of Alberta or Manitoba, you can also fill in the 428 form for the province.+ * For all the other provinces only the T1 form and several federal schedules are getting completed at this time. -4. Run+ In any case, don't bother filling in any fields that are calculated from other fields in the supported forms, that+ part will be performed automatically. You also don't need to fill any fields that don't matter for the rest of the+ form: your name, SIN, and other identifying information fall into this category, except for the birth date and+ marital status which may affect your tax credits. - pdftk 5006-r-fill-22e.pdf generate_fdf output 5006-r-fill-22e-filled.fdf+3. Save the filled-in PDF form(s). -where `5006-r-fill-22e.pdf` is the file you previously saved and `5006-r-fill-22e-filled.fdf` is the name of the-output file; feel free to change them.+4. Run -5. Run+ complete-canadian-taxes <province code> --t1 50??-r-fill-23e.pdf -o completed/ - mkdir completed/- complete-canadian-taxes --t1 5006-r-fill-22e-filled.fdf -o completed/+ where `<province code>` is the two-letter code of the province or territory (AB, BC, QC, etc),+ `50??-r-fill-23e.pdf` is the T1 form file you previously saved and `completed/` is the name of the output+ directory; feel free to change the names. If applicable, you can also supply the 428 and 479 form with the+ command-line options of the same name. For example, to complete all three forms for Ontario (ON) taxes the full+ command line would be - to complete all the field calculations and store the result in the output file- `completed/5006-r-fill-22e-filled.fdf`.+ complete-canadian-taxes ON --t1 5006-r-fill-23e.pdf --428 5006-c-fill-23e.pdf --479 5006-tc-fill-23e.pdf -o completed/ -6. Run+ The usual `--help` option will give you the full list of all supported forms. - pdftk 5006-r-fill-22e.pdf fill_form completed/5006-r-fill-22e-filled.fdf output 5006-r-fill-22e-filled.pdf+At this point my job is done. The rest is all in your hands: -to transfer the FDF field values from the previous step to the new PDF file, `5006-r-fill-22e-filled.pdf`.+5. Carefully examine the completed PDF forms. The executable comes with no warranty and has not been verified by+CRA. The responsibility for the correctness of the tax return is still yours. If you notice any problem in the way the+forms were completed please [report](https://github.com/blamario/canadian-income-tax/issues) the issue. -7. Carefully examine the final PDF. The executable comes with no warranty and has not been verified by CRA. The-reponsibility for the correctness of the tax return is still yours.+ If at any point you find you made a mistake in your initial form entry, or you want to adjust it for any reason,+ you can make the adjustments either on the forms you kept from step #2 or on the final forms, and feed them back in+ step #3. The executable will overwrite all calculated fields with their proper values. -8. Print and sign the tax return, then send it to CRA by mail along with your other documents. At some point they'll-hopefully leave the 19th century and let us digitally file the same information they accept on paper, but their EFILE-protocol is so far not open to the public.+6. Once you're satisfied with the forms: add your ID and print the tax return, sign it, then send it to CRA by mail+along with your other documents. At some point they'll hopefully leave the 19th century and let us digitally file the+same information they accept on paper, but their NETFILE protocol is not open to the public so far. +### Design notes and hints ### -### Use for Ontario tax returns ###+The executable `complete-canadian-taxes` follows the Unix philosophy of doing one well-defined task and no more. It+doesn't attempt to guide you, the user, through the entire process of filing the taxes. It merely performs the task+that is easy to automate, and therefore also the most boring. It's not likely to make the tax-filing process a joy,+but it should at least reduce the drudgery. -1. Download the fillable federal-[(T1)](https://www.canada.ca/en/revenue-agency/services/forms-publications/tax-packages-years/general-income-tax-benefit-package/ontario/5006-r.html)-and provincial-[(ON428)](https://www.canada.ca/en/revenue-agency/services/forms-publications/tax-packages-years/general-income-tax-benefit-package/ontario/5006-c.html)-PDF forms from [the canada.ca Web site](https://www.canada.ca/en/revenue-agency/services/forms-publications/tax-packages-years/general-income-tax-benefit-package/ontario.html)+### Manual FDF mode ### -2. Fill in the two downloaded forms; don't bother with any fields that are copied or calculated from other fields in-the two forms, that part will be performed automatically.+ The executable `complete-canadian-taxes` automatically invokes `pdftk` to convert between PDF and FDF files. It+ needs to be installed and in the executable path. If you'd prefer to handle the conversions manually, you can+ replace step 4 with the following procedure: -3. Save the filled-out PDF forms.+41. Run -4. Run+ pdftk 5006-r-fill-23e.pdf generate_fdf output 5006-r-fill-23e-filled.fdf - pdftk 5006-r-fill-22e.pdf generate_fdf output 5006-r-fill-22e-filled.fdf- pdftk 5006-c-fill-22e.pdf generate_fdf output 5006-c-fill-22e-filled.fdf+ where `5006-r-fill-23e.pdf` is the file you previously saved and `5006-r-fill-23e-filled.fdf` is the name of the+ output file; feel free to change them. -where `5006-r-fill-22e.pdf` and `5006-c-fill-22e.pdf` are the two PDFs you previously saved and-`*-filled.fdf` are the names of the output FDF files; feel free to change them.+42. Run -5. Run+ complete-canadian-taxes <province code> --t1 5006-r-fill-23e-filled.fdf -o completed/ - mkdir completed/- complete-canadian-taxes --t1 5006-r-fill-22e-filled.fdf --on428 5006-c-fill-22e-filled.fdf -o completed/+ to complete all the field calculations and store the result in the output file+ `completed/5006-r-fill-23e-filled.fdf`. - to complete all the field calculations and store the result in the output directory `completed/`.+43. Run -6. Run+ pdftk 5006-r-fill-23e.pdf fill_form completed/5006-r-fill-23e-filled.fdf output 5006-r-fill-23e-completed.pdf - pdftk 5006-r-fill-22e.pdf fill_form completed/5006-r-fill-22e-filled.fdf output completed/5006-r-fill-22e.pdf- pdftk 5006-c-fill-22e.pdf fill_form completed/5006-c-fill-22e-filled.fdf output completed/5006-c-fill-22e.pdf+ to transfer the FDF field values from the previous step to the new PDF file, `5006-r-fill-23e-completed.pdf`. -to transfer the FDF field values from the previous step to the new PDF files in the `completed/` directory.+The FDF files are almost (but not quite) text files, which makes them `diff`able. You can use this to quickly compare+the effects of different changes without eyeballing through the PDF forms. -7. Carefully examine the final PDF outputs. The executable comes with no warranty and has not been verified by-CRA. The reponsibility for the tax returns' correctness is still yours.+## Web service ## -8. Print the PDFs, sign the tax return, then send it to CRA by mail along with the rest of your documents. At some-point they'll hopefully open a way to digitally file the same information they accept on paper, but their EFILE-protocol is so far not open to the public.+There's also an interactive Web server executable named `serve-canadian-taxes`. Launch the executable, visit+[http://localhost:3000](http://localhost:3000) in your browser, and follow the instructions. ## Installation ## -As you can see from the above instructions, you'll need to install the free `pdftk` executable to deal with-PDF <-> FDF conversion. See [their instructions](https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/). On-Ubuntu you can simply run+As you can deduce from the above instructions, you'll need to install the free `pdftk` executable to deal with PDF <->+FDF conversion. See [their instructions](https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/). On Ubuntu you can+simply run sudo apt install pdftk -To install the `complete-canadian-t1-form` executable, you'll need Haskell development tools. The simplest+while on Fedora the invocation is++ sudo dnf install pdftk-java++To install the `complete-canadian-taxes` executable, you'll need Haskell development tools. The simplest procedure overall is to install [`ghcup`](https://www.haskell.org/ghcup/), then use it to install `ghc` (version 9.4 or greater) and `cabal`, then to run cabal install canadian-income-tax -## Design notes and hints ##--The executable `complete-canadian-taxes` follows the Unix philosphy of doing one well-defined thing. It doesn't-attempt to guide you, the user, through the entire process of filing the taxes. It merely performs the task that is-easy to automate, and therefore also the most boring. It's not likely to make the tax-filing process a joy, but at-least it's going to reduce the drudgery.--If at any point you find you made a mistake in your initial form entry, or you want to adjust it for any reason, you-can make the adjustments either on the forms you kept from step #2 or on the final forms, and feed them back in-step #3. The executable will overwrite all calculated fields with theit proper values.+## Library documentation ## -The FDF files are almost text files, which makes them `diff`able. You can use this to quickly compare the effect of-different changes without eyeballing through the PDF forms.+This is an open-source project licensed under GPL-3, and it comes with a library for easier reuse. The rendered+library documentation is available at [Hackage](https://hackage.haskell.org/package/canadian-income-tax).
@@ -1,5 +1,8 @@+{-# LANGUAGE Haskell2010 #-} {-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE OverloadedStrings #-} module Main where@@ -7,91 +10,128 @@ import Codec.Archive.Tar qualified as Tar import Codec.Archive.Tar.Entry (fileEntry, toTarPath) import Control.Applicative ((<**>), optional)-import Control.Monad (when)-import Control.Monad.Trans.State.Strict (get, put, evalState)+import Control.Arrow ((&&&))+import Control.Monad (unless, void, when)+import Data.ByteString (ByteString) import Data.ByteString qualified as ByteString+import Data.ByteString.Lazy qualified as Lazy import Data.ByteString.Lazy qualified as ByteString.Lazy-import Options.Applicative (Parser, execParser,- helper, info, long, metavar, progDesc, short, strArgument, strOption, switch, value)-import System.Directory (doesDirectoryExist)+import Data.CAProvinceCodes qualified as Province+import Data.Char (toUpper)+import Data.Foldable (toList)+import Data.List (intercalate, sortOn)+import Data.Map.Lazy qualified as Map+import Data.Maybe (catMaybes)+import Data.Semigroup (Any (Any))+import Data.Semigroup.Cancellative (isPrefixOf, isSuffixOf)+import Data.Text (Text)+import Options.Applicative (Parser, ReadM, long, metavar, short)+import Options.Applicative qualified as OptsAp+import Rank2 qualified+import System.Directory (createDirectoryIfMissing, doesDirectoryExist, doesFileExist) import System.FilePath (replaceDirectory, takeFileName) import System.IO (hPutStrLn, stderr)-import Text.FDF (parse, serialize)+import Text.FDF (FDF, parse, serialize) +import Tax.Canada (completeForms)+import Tax.FDF (FDFs) import Tax.FDF qualified as FDF-import Tax.Canada (fixOntarioReturns, fixON428, fixT1, on428Fields, t1Fields)+import Tax.PDFtk (fdf2pdf, pdf2fdf) main :: IO ()-main = execParser (info optionsParser $ progDesc "Update all calculated fields in a Canadian T1 tax form")+main = OptsAp.execParser (OptsAp.info optionsParser+ $ OptsAp.progDesc "Update all calculated fields in a Canadian T1 tax form") >>= process data Options = Options {- t1InputPath :: Maybe FilePath,- on428InputPath :: Maybe FilePath,+ province :: Province.Code,+ t1InputPath :: FilePath,+ p428InputPath :: Maybe FilePath,+ p479InputPath :: Maybe FilePath,+ schedule6InputPath :: Maybe FilePath,+ schedule7InputPath :: Maybe FilePath,+ schedule9InputPath :: Maybe FilePath,+ schedule11InputPath :: Maybe FilePath, outputPath :: FilePath, verbose :: Bool} - optionsParser :: Parser Options optionsParser = Options- <$> optional (strOption (long "t1" <> metavar "<input T1 FDF file>"))- <*> optional (strOption (long "on428" <> metavar "<input ON428 FDF file>"))- <*> strOption (short 'o' <> long "output" <> value "-" <> metavar "<output FDF file>")- <*> switch (short 'v' <> long "verbose")- <**> helper+ <$> OptsAp.argument readProvince (metavar "<two-letter province code>")+ <*> OptsAp.strOption (long "t1" <> metavar "<input T1 form file>")+ <*> optional (OptsAp.strOption (long "428" <> metavar "<input 428 form file>"))+ <*> optional (OptsAp.strOption (long "479" <> metavar "<input 479 form file>"))+ <*> optional (OptsAp.strOption (long "s6" <> metavar "<input Schedule 6 form file>"))+ <*> optional (OptsAp.strOption (long "s7" <> metavar "<input Schedule 7 form file>"))+ <*> optional (OptsAp.strOption (long "s9" <> metavar "<input Schedule 9 form file>"))+ <*> optional (OptsAp.strOption (long "s11" <> metavar "<input Schedule 11 form file>"))+ <*> OptsAp.strOption (short 'o' <> long "output" <> OptsAp.value "-" <> metavar "<output file or directory>")+ <*> OptsAp.switch (short 'v' <> long "verbose")+ <**> OptsAp.helper +readProvince :: ReadM Province.Code+readProvince = OptsAp.eitherReader (tryRead . map toUpper)+ where tryRead s = case reads s+ of [(p, "")] -> Right p+ _ -> Left ("Invalid province code " <> s <> " - expecting one of "+ <> intercalate ", " (onLast ("or " <>) $ show <$> Province.all))+ onLast f [x] = [f x]+ onLast f (x:xs) = x : onLast f xs+ onLast _ [] = [] +readFDF :: FilePath -> IO (Bool, Lazy.ByteString)+readFDF inputPath = do+ exists <- doesFileExist inputPath+ unless (inputPath == "-" || exists) (error $ "Input file " <> show inputPath <> " doesn't exist.")+ content <- if inputPath == "-" then ByteString.Lazy.getContents else ByteString.Lazy.readFile inputPath+ if "%FDF-1." `isPrefixOf` content+ then pure (False, content)+ else if "%PDF-1." `isPrefixOf` content+ then either error ((,) True) <$> pdf2fdf content+ else error "Expecting an FDF or PDF file"+ process :: Options -> IO ()-process Options{t1InputPath, on428InputPath, outputPath, verbose} = do- let read path = if path == "-" then ByteString.getContents else ByteString.readFile path- writeFrom inputPath content =+process Options{province, t1InputPath, p428InputPath, p479InputPath,+ schedule6InputPath, schedule7InputPath, schedule9InputPath, schedule11InputPath,+ outputPath, verbose} = do+ let inputFiles :: [(Text, FilePath)]+ inputFiles = sortOn fst $+ catMaybes [(,) "T1" <$> Just t1InputPath,+ (,) "428" <$> p428InputPath,+ (,) "479" <$> p479InputPath,+ (,) "Schedule6" <$> schedule6InputPath,+ (,) "Schedule7" <$> schedule7InputPath,+ (,) "Schedule9" <$> schedule9InputPath,+ (,) "Schedule11" <$> schedule11InputPath]+ inputs <- traverse (traverse readFDF) inputFiles :: IO [(Text, (Bool, Lazy.ByteString))]+ let writeFrom :: FilePath -> Bool -> ByteString.ByteString -> IO ()+ writeFrom inputPath asPDF content = do+ content' <- (if asPDF then (either error Lazy.toStrict <$>) . fdf2pdf inputPath . Lazy.fromStrict else pure) content if outputPath == "-"- then ByteString.putStr content- else do isDir <- doesDirectoryExist outputPath- if isDir- then ByteString.writeFile (replaceDirectory inputPath outputPath) content- else ByteString.writeFile outputPath content- case (t1InputPath, on428InputPath) of- (Nothing, Nothing) -> error "You must specify a T1 form, ON428 form, or both."- (Just path, Nothing) -> do- bytes <- read path- case parse bytes >>= \x-> (,) x <$> FDF.load t1Fields x of- Left err -> error err- Right (fdf, form) -> do- let fdf' = FDF.update t1Fields form' fdf- form' = fixT1 form- when verbose (hPutStrLn stderr $ show form')- writeFrom path (serialize fdf')- (Nothing, Just path) -> do- bytes <- read path- case parse bytes >>= \x-> (,) x <$> FDF.load on428Fields x of- Left err -> error err- Right (fdf, form) -> do- let fdf' = FDF.update on428Fields form' fdf- form' = fixON428 form- when verbose (hPutStrLn stderr $ show form')- writeFrom path (serialize fdf')- (Just pathT1, Just pathON) -> do- bytesT1 <- read pathT1- bytesON <- read pathON- case (,) <$> (parse bytesT1 >>= \x-> (,) x <$> FDF.load t1Fields x)- <*> (parse bytesON >>= \x-> (,) x <$> FDF.load on428Fields x) of- Left err -> error err- Right ((fdfT1, formT1), (fdfON, formON)) -> do- let fdf'T1 = serialize $ FDF.update t1Fields form'T1 fdfT1- fdf'ON = serialize $ FDF.update on428Fields form'ON fdfON- (form'T1, form'ON) = fixOntarioReturns (formT1, formON)- fdfEntry path content =- (`fileEntry` ByteString.Lazy.fromStrict content) <$> toTarPath False (takeFileName path)- tarEntries = sequenceA [fdfEntry pathT1 fdf'T1,- fdfEntry pathON fdf'ON]- tarFile = either (error . ("Can't tar: " <>)) (ByteString.Lazy.toStrict . Tar.write) tarEntries - when verbose (hPutStrLn stderr $ show (form'T1, form'ON))- if outputPath == "-"- then ByteString.putStr tarFile- else do isDir <- doesDirectoryExist outputPath- if isDir- then do writeFrom pathT1 fdf'T1- writeFrom pathON fdf'ON- else ByteString.writeFile outputPath tarFile+ then ByteString.putStr content'+ else do+ isDir <- doesDirectoryExist outputPath+ if isDir+ then ByteString.writeFile (replaceDirectory inputPath outputPath) content'+ else ByteString.writeFile outputPath content'+ paths = snd <$> inputFiles :: [FilePath]+ arePDFs = fst . snd <$> inputs+ bytesMap = Lazy.toStrict . snd <$> Map.fromAscList inputs+ case traverse parse bytesMap >>= completeForms province of+ Left err -> error err+ Right fixedFDFs -> do+ let bytesMap' = serialize <$> fixedFDFs+ byteses' = toList bytesMap'+ tarEntries = sequenceA (zipWith fdfEntry paths byteses')+ fdfEntry path content =+ (`fileEntry` ByteString.Lazy.fromStrict content) <$> toTarPath False (takeFileName path)+ tarFile = either (error . ("Can't tar: " <>)) (ByteString.Lazy.toStrict . Tar.write) tarEntries+ -- when verbose (hPutStrLn stderr $ show (form'T1, form'ON))+ when ("/" `isSuffixOf` outputPath) (createDirectoryIfMissing True outputPath)+ if outputPath == "-"+ then ByteString.putStr tarFile+ else do isDir <- doesDirectoryExist outputPath+ if isDir+ then void $ sequenceA (zipWith3 writeFrom paths arePDFs byteses')+ else ByteString.writeFile outputPath tarFile
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: canadian-income-tax-version: 2022.2.1+version: 2023.0 synopsis: Canadian income tax calculation @@ -16,34 +16,78 @@ author: Mario Blažević maintainer: blamario@protonmail.com bug-reports: https://github.com/blamario/canadian-income-tax/issues-tested-with: ghc == 9.4.4+tested-with: ghc == 9.4.4, ghc == 9.6.3 -extra-source-files: CHANGELOG.md, README.md+extra-doc-files: CHANGELOG.md, README.md+data-dir: data/+data-files: **/*.fdf **/*.pdf source-repository head type: git location: https://github.com/blamario/canadian-income-tax library exposed-modules:- Tax.FDF Tax.Canada- Tax.Canada.T1.Types- Tax.Canada.T1.FieldNames- Tax.Canada.T1.Fix- Tax.Canada.ON428.Types- Tax.Canada.ON428.FieldNames- Tax.Canada.ON428.Fix+ Tax.Canada.Federal+ Tax.Canada.Federal.Schedule6+ Tax.Canada.Federal.Schedule7+ Tax.Canada.Federal.Schedule9+ Tax.Canada.Federal.Schedule11+ Tax.Canada.Province.AB+ Tax.Canada.Province.BC+ Tax.Canada.Province.MB+ Tax.Canada.Province.NB+ Tax.Canada.Province.NL+ Tax.Canada.Province.ON+ Tax.Canada.Province.PE+ Tax.Canada.Province.QC+ Tax.Canada.Territory.NT+ Tax.Canada.Territory.NU+ Tax.Canada.Territory.YT+ Tax.Canada.Shared+ Tax.Canada.T1+ Tax.FDF+ Tax.PDFtk Tax.Util - -- Modules included in this library but not exported.- -- other-modules:+ other-modules:+ Tax.Canada.T1.Types+ Tax.Canada.T1.FieldNames.AB+ Tax.Canada.T1.FieldNames.BC+ Tax.Canada.T1.FieldNames.NB+ Tax.Canada.T1.FieldNames.NL+ Tax.Canada.T1.FieldNames.NT+ Tax.Canada.T1.FieldNames.NU+ Tax.Canada.T1.FieldNames.ON+ Tax.Canada.T1.FieldNames.PE+ Tax.Canada.T1.FieldNames.QC+ Tax.Canada.T1.FieldNames.YT+ Tax.Canada.T1.Fix+ Tax.Canada.Province.AB.AB428.Types+ Tax.Canada.Province.AB.AB428.FieldNames+ Tax.Canada.Province.AB.AB428.Fix+ Tax.Canada.Province.BC.BC428.Types+ Tax.Canada.Province.BC.BC428.FieldNames+ Tax.Canada.Province.BC.BC428.Fix+ Tax.Canada.Province.BC.BC479.Types+ Tax.Canada.Province.BC.BC479.FieldNames+ Tax.Canada.Province.BC.BC479.Fix+ Tax.Canada.Province.MB.MB428.Types+ Tax.Canada.Province.MB.MB428.FieldNames+ Tax.Canada.Province.MB.MB428.Fix+ Tax.Canada.Province.ON.ON428.Types+ Tax.Canada.Province.ON.ON428.FieldNames+ Tax.Canada.Province.ON.ON428.Fix+ Tax.Canada.Province.ON.ON479.Types+ Tax.Canada.Province.ON.ON479.FieldNames+ Tax.Canada.Province.ON.ON479.Fix -- LANGUAGE extensions used by modules in this package. -- other-extensions:- build-depends: base == 4.*, text >= 1.0 && < 2.1,- time == 1.*, containers >= 0.5 && < 0.7,- monoid-subclasses == 1.*, rank2classes ^>= 1.5,- ca-province-codes == 1.0.*, forms-data-format ^>= 0.2,+ build-depends: base == 4.*, text >= 1.0 && < 2.2, bytestring >= 0.10.4 && < 1,+ time == 1.*, containers >= 0.5 && < 0.8, bitwise-enum ^>= 1.0.0, bifunctors ^>= 5.6,+ monoid-subclasses == 1.*, rank2classes ^>= 1.5.3, deep-transformations ^>= 0.2.2,+ ca-province-codes == 1.0.*, forms-data-format ^>= 0.2, typed-process >= 0.1 && ^>=0.2, template-haskell == 2.* hs-source-dirs: src default-language: Haskell2010@@ -57,10 +101,61 @@ -- LANGUAGE extensions used by modules in this package. -- other-extensions: build-depends:- base == 4.*, text, bytestring >= 0.10.4 && < 1, transformers >= 0.1 && < 0.7,- rank2classes, optparse-applicative >= 0.15 && < 0.18,+ base == 4.*, text, bytestring, containers,+ monoid-subclasses, rank2classes,+ optparse-applicative >= 0.15 && < 0.19, filepath >= 1.3 && < 1.5, directory >= 1.2 && < 1.4, tar >= 0.4 && < 0.6,+ ca-province-codes, forms-data-format, canadian-income-tax hs-source-dirs: app default-language: Haskell2010++executable serve-canadian-taxes+ main-is: Main.hs+ other-modules: Paths_canadian_income_tax+ autogen-modules: Paths_canadian_income_tax++ -- Modules included in this executable, other than Main.+ -- other-modules:++ -- LANGUAGE extensions used by modules in this package.+ -- other-extensions:+ build-depends:+ base == 4.*, text, bytestring, containers, monoid-subclasses,+ filepath >= 1.3 && < 1.5, unix >= 2.6 && < 2.9, directory >= 1.2 && < 1.4,+ time >= 1.9.1 && < 1.13, zip-archive ^>= 0.4,+ http-types ^>= 0.12, scotty ^>= 0.21, wai-extra ^>= 3.1.10, wai-middleware-static ^>= 0.9.1,+ forms-data-format, canadian-income-tax++ hs-source-dirs: web+ default-language: Haskell2010+ ghc-options: -threaded++test-suite properties+ type: exitcode-stdio-1.0+ build-depends: base >= 4.7 && < 5, bytestring,+ directory ^>= 1.3, filepath ^>= 1.4,+ forms-data-format, monoid-subclasses, rank2classes, deep-transformations,+ text, time >= 1.9.1 && < 1.13, ca-province-codes,+ tasty >= 0.7, tasty-hedgehog ^>= 1.4, hedgehog ^>= 1.4,+ canadian-income-tax+ hs-source-dirs: test+ main-is: Properties.hs+ other-modules: Test.Transformations+ Paths_canadian_income_tax+ autogen-modules: Paths_canadian_income_tax+ default-language: Haskell2010++test-suite regression+ type: exitcode-stdio-1.0+ build-depends: base >= 4.7 && < 5, bytestring, containers,+ directory ^>= 1.3, filepath ^>= 1.4,+ forms-data-format,+ rank2classes, deep-transformations,+ text, time >= 1.9.1 && < 1.13, ca-province-codes,+ tasty >= 0.7, tasty-golden ^>=2.3,+ canadian-income-tax+ hs-source-dirs: test+ main-is: Regression.hs+ default-language: Haskell2010
@@ -0,0 +1,1258 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Line27[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line52[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line54[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line29[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line35[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line50[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Min-Tax-Carryover[0])+/Kids [+<<+/T (Line59[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line58[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line60[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line56[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line61[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line46[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Donations[0])+/Kids [+<<+/T (Line49[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line48[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line47[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>>]+>> +<<+/T (Line44[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line53[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line55[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line51[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Medical-Expenses[0])+/Kids [+<<+/T (Line41[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line39[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line38[0])+/Kids [+<<+/T (Percent_ReadOnly[0])+/V (3%)+>>]+>> +<<+/T (Line36[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line37[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line45[0])+/Kids [+<<+/T (Percent_ReadOnly[0])+/V (5.05%)+>>]+>> +<<+/T (Line43[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line26[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Line77[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line76[0])+/Kids [+<<+/T (Line_60970[0])+/Kids [+<<+/T (Number[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line80[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line74[0])+/Kids [+<<+/T (Amount[0])+/V (274.00)+>>]+>> +<<+/T (Line75[0])+/Kids [+<<+/T (Line_60969[0])+/Kids [+<<+/T (Number[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line78[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line79[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line73[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line70[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line72[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line71[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line66[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (ON-Surtax[0])+/Kids [+<<+/T (Line65[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line64[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line63[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line68[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line67[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line69[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line82[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line81[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line62[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Chart[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V (11.16%)+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V (6,990.89)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V (98,463.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V (13.16%)+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V (21,254.42)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V (220,000.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V (12.16%)+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V (12,742.42)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V (150,000.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V (9.15%)+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V (2,486.17)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V (49,231.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V (5.05%)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V (0.00)+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V (0.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Part_B[0])+/Kids [+<<+/T (Employment-Insurance[0])+/Kids [+<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line9[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Eligible-Dependant[0])+/Kids [+<<+/T (Line16[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V (11,082.00)+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (CPP-QPP[0])+/Kids [+<<+/T (Line20[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line19[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Spouse-Amount[0])+/Kids [+<<+/T (Line11[0])+/Kids [+<<+/T (Amount[0])+/V (11,082.00)+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line24[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line23[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Line90[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line89[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line86[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line85[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line87[0])+/Kids [+<<+/T (Line62150[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Amount2[0])+/V ()+>>]+>> +<<+/T (Line88[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (ON_Health_Prenium-worksheet[0])+/Kids [+<<+/T (Chart_ON_Health_Prenium[0])+/Kids [+<<+/T (Taxable_Line8[0])+/Kids [+<<+/T (Amount3[0])+/V ()+>> +<<+/T (Amount4[0])+/V ()+>> +<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Taxable_Line10[0])+/Kids [+<<+/T (Amount4[0])+/V ()+>> +<<+/T (Amount3[0])+/V ()+>> +<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Taxable_Line6[0])+/Kids [+<<+/T (Amount3[0])+/V ()+>> +<<+/T (Amount4[0])+/V ()+>> +<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Taxable_Line4[0])+/Kids [+<<+/T (Amount4[0])+/V ()+>> +<<+/T (Amount3[0])+/V ()+>> +<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Taxable_Line2[0])+/Kids [+<<+/T (Amount3[0])+/V ()+>> +<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,898 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line53[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line52[0])+/Kids [+<<+/T (Percent_ReadOnly[0])+/V (10.8%)+>>]+>> +<<+/T (Line54[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line55[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line49[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line35[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line36[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line56[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line50[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line37[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line51[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line38[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line39[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (MedicalExpenses[0])+/Kids [+<<+/T (Line48[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line45[0])+/Kids [+<<+/T (Percent_ReadOnly[0])+/V (3%)+>>]+>> +<<+/T (Line46[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line47[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line44[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (PartC[0])+/Kids [+<<+/T (Line77[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line75[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line79[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line58[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line73[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line71[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line65[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line63[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line67[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line69[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line82[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line61[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line76[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line80[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line74[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line78[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line59[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line70[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line72[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line66[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line64[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line68[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line60[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line81[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line62[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Line28[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Table[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V (17.4%)+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V (9,433.77)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V (79,625.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V (10.8%)+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V (0.00)+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V (0.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V (12.75%)+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V (3,978.94)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V (36,842.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line29[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line9[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount[0])+/V (9,134.00)+>>]+>> +<<+/T (Line19[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V (9,134.00)+>>]+>> +<<+/T (Line16[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line25[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line20[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line26[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line24[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (line13[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line23[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,942 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (PartB_Page2[0])+/Kids [+<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line29[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line35[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line36[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line50[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line51[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (MedicalExp[0])+/Kids [+<<+/T (Line41[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line39[0])+/Kids [+<<+/T (PercentAmount[0])+/V (3%)+>>]+>> +<<+/T (Line38[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line37[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>>]+>> +<<+/T (DonationGift[0])+/Kids [+<<+/T (Line49[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line48[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>>]+>> +<<+/T (Line45[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line47[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line46[0])+/Kids [+<<+/T (Percent[0])+/V (10%)+>>]+>> +<<+/T (Line43[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line44[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line26[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (PartC[0])+/Kids [+<<+/T (Line53[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line52[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line54[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line55[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line58[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line59[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line56[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (PoliticalCont[0])+/Kids [+<<+/T (Line65[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line66[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line64[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line63[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (UAITC[0])+/Kids [+<<+/T (Line67[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line68[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line69[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line60[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line61[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line62[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Line19to20[0])+/Kids [+<<+/T (Line19[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line20[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line9[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line11to13[0])+/Kids [+<<+/T (Line11[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 21,003.00)+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14to16[0])+/Kids [+<<+/T (Line16[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 21,003.00)+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Chart[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 17,644.28)+>>]+>> +<<+/T (LIne5[0])+/Kids [+<<+/T (Percent[0])+/V ( 13%)+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 170,751.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V ( 15%)+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 40,980.25)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 341,502.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V ( 14%)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 25,043.49)+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 227,668.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V ( 10%)+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 0.00)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 0.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Percent[0])+/V ( 12%)+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 14,229.20)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount_Fixed[0])+/V ( 142,292.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Line21to22[0])+/Kids [+<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line25[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line24[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line23[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,1182 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Line27[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line52[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line54[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line29[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line58[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line35[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line56[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line37[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33[0])+/Kids [+<<+/T (I2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (I1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line31[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line39[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line44[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line53[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line55[0])+/Kids [+<<+/T (PercentAmount_ReadOnly[0])+/V (5.06%)+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line59[0])+/Kids [+<<+/T (Gifts_from_57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line36[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (MedicalExp[0])+/Kids [+<<+/T (Line49[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line48[0])+/Kids [+<<+/T (PercentAmount_ReadOnly[0])+/V (3%)+>>]+>> +<<+/T (Line47[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line46[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line50[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line51[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line41[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line38[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line60[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line45[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line26[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Line77[0])+/Kids [+<<+/T (PercentAmount_ReadOnly[0])+/V (3.56%)+>>]+>> +<<+/T (Line75[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 23,179.00)+>>]+>> +<<+/T (Line79[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line73[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line71[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line65[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line90[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line63[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line86[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line67[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line69[0])+/Kids [+<<+/T (Line120[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line88[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line61[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line82[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line76[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line80[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line74[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line78[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line70[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line72[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line89[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line91[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line66[0])+/Kids [+<<+/T (Line40427[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line64[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line68[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line85[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line87[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line81[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line62[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line16[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount_Eligible_Dependant[0])+/Kids [+<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ( 11,285.00)+>>]+>> +<<+/T (Line23[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line22[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Spouse_CPL_Amount[0])+/Kids [+<<+/T (Line20[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Amount[0])+/V ( 11,285.00)+>>]+>> +<<+/T (Line19[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line25[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line24[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column7[0])+/Kids [+<<+/T (Line9[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V (240,716.00)+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Percent_Amount[0])+/V (20.5%)+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V (28,109.25)+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column3[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line5[0])+/Kids [+<<+/T (Percent_Amount[0])+/V (10.5%)+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 5,825.60)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 91,310.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Column6[0])+/Kids [+<<+/T (Line9[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V (172,602.00)+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Percent_amount[0])+/V (16.8%)+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V (16,666.10)+>>]+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line9[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (LIne15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V (127,299.00)+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Percent_Amount[0])+/V (14.7%)+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V (10,006.56)+>>]+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Percent_Amount[0])+/V (12.29%)+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 7,245.73)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 104,835.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Percent_Amount[0])+/V (5.06%)+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 0.00)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 0.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line5[0])+/Kids [+<<+/T (Percent_Amount[0])+/V (7.7%)+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 2,310.09)+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 45,654.00)+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,270 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (ON_Political_Contribution[0])+/Kids [+<<+/T (Line16[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Line63220[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Amount2[0])+/V ()+>>]+>> +<<+/T (Line19[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line20[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (ON_coop_education[0])+/Kids [+<<+/T (Line63265[0])+/Kids [+<<+/T (RadioButtonGroup[0])+/V /+>>]+>> +<<+/T (Line63260[0])+/Kids [+<<+/T (NmbrApprentices[0])+/V ()+>>]+>> +<<+/T (Line63270[0])+/Kids [+<<+/T (BusinessNumber_9_Comb_Bottom_Adv[0])+/Kids [+<<+/T (BusinessNumber[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V (35,000.00)+>>]+>> +<<+/T (Line5[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line9[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Percent_ReadOnly[0])+/V (5%)+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Line63100[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Percent_ReadOnly[0])+/V (25%)+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,634 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Line16[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (BCMETC[0])+/Kids [+<<+/T (Line24[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line23[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (BCTTC[0])+/Kids [+<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line29[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31[0])+/Kids [+<<+/T (I2[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>>]+>> +<<+/T (I1[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>>]+>> +<<+/T (Line32[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (BCVCTC[0])+/Kids [+<<+/T (Line19[0])+/Kids [+<<+/T (Account_Number_Comb_EN[0])+/Kids [+<<+/T (Account_Number[0])+/V ()+>>]+>>]+>> +<<+/T (Line20[0])+/Kids [+<<+/T (Note1[0])+/V /+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Note1[0])+/V /+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Account_Number[0])+/V ()+>>]+>> +<<+/T (Line22[0])+/Kids [+<<+/T (I2[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>>]+>> +<<+/T (I1[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (BCCBTC[0])+/Kids [+<<+/T (Line27[0])+/Kids [+<<+/T (I2[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>>]+>> +<<+/T (I1[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>>]+>> +<<+/T (Line25[0])+/Kids [+<<+/T (I1[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>>]+>> +<<+/T (Line26[0])+/Kids [+<<+/T (I1[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Line41[0])+/Kids [+<<+/T (I2[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>>]+>> +<<+/T (I1[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>>]+>> +<<+/T (Table[0])+/Kids [+<<+/T (Row1[0])+/Kids [+<<+/T (Nameoflandlord[0])+/V ()+>> +<<+/T (Rentaladdress[0])+/V ()+>> +<<+/T (Numberofmonths[0])+/V ()+>> +<<+/T (RentPaid[0])+/V ()+>>]+>> +<<+/T (Headers[0])+/Kids [+<<+/T (Footnote1[0])+/V /+>>]+>> +<<+/T (Row2[0])+/Kids [+<<+/T (Nameoflandlord[0])+/V ()+>> +<<+/T (Rentpaid[0])+/V ()+>> +<<+/T (Rentaladdress[0])+/V ()+>> +<<+/T (Numberofmonths[0])+/V ()+>>]+>>]+>> +<<+/T (Line38[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line39[0])+/Kids [+<<+/T (PercentAmount_ReadOnly[0])+/V (2%)+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line35[0])+/Kids [+<<+/T (Amount_ReadOnly[0])+/V ( 400.00)+>>]+>> +<<+/T (Line36[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line37[0])+/Kids [+<<+/T (AmountRead_Only[0])+/V ( 60,000.00)+>>]+>> +<<+/T (Line42[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40[0])+/Kids [+<<+/T (L1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (L2[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Chart[0])+/Kids [+<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Col2_Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Col2_Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Col2_Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Col2_Amount[0])+/V ()+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Col2_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Col1_Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Col1_Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Col1_Amount[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Col1_Amount[0])+/V ()+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Col1_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Line9[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (BCSHRTC[0])+/Kids [+<<+/T (Line60890[0])+/Kids [+<<+/T (CheckBox[0])+/V /+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Line60480[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (Background[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (Background[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Background[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,302 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Transfer_CF[0])+/Kids [+<<+/T (Line25[0])+/Kids [+<<+/T (Amount25[0])+/V ()+>>]+>> +<<+/T (Line20[0])+/Kids [+<<+/T (Amount20[0])+/V ()+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Amount18[0])+/V ()+>>]+>> +<<+/T (Line19[0])+/Kids [+<<+/T (Amount19[0])+/V ()+>>]+>> +<<+/T (Line24[0])+/Kids [+<<+/T (Amount24[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount21[0])+/V ()+>>]+>> +<<+/T (Line23[0])+/Kids [+<<+/T (Amount22[0])+/V ()+>>]+>> +<<+/T (Line22[0])+/Kids [+<<+/T (Amount22[0])+/V ()+>>]+>>]+>> +<<+/T (Enrolment[0])+/Kids [+<<+/T (Line32020[0])+/Kids [+<<+/T (Fulltime_Months[0])+/V ()+>>]+>> +<<+/T (Line32010[0])+/Kids [+<<+/T (parttime_Months[0])+/V ()+>>]+>> +<<+/T (Line32005[0])+/Kids [+<<+/T (CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (YourTuition[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Amount6[0])+/V ()+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount7[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount8[0])+/V ()+>>]+>> +<<+/T (Line9[0])+/Kids [+<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount11[0])+/V ()+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount11[0])+/V ()+>>]+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount10[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount5[0])+/V ()+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount13[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount4[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Amount12[0])+/V ()+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount17[0])+/V ()+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount15[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount14[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line16[0])+/Kids [+<<+/T (Amount16[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,758 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Step1_tickboxes[0])+/Kids [+<<+/T (Questions[0])+/Kids [+<<+/T (Line38104[0])+/Kids [+<<+/T (Line38104_CheckBoxGroup[0])+/Kids [+<<+/T (Line38104_CheckBox_EN[1])+/V /+>> +<<+/T (Line38104_CheckBox_EN[0])+/V /+>>]+>>]+>> +<<+/T (Line38103[0])+/Kids [+<<+/T (Line38103_CheckBoxGroup[0])+/Kids [+<<+/T (Line38103_CheckBox_EN[1])+/V /+>> +<<+/T (Line38103_CheckBox_EN[0])+/V /+>>]+>>]+>> +<<+/T (Line38101[0])+/Kids [+<<+/T (Line38101_CheckBoxGroup[0])+/Kids [+<<+/T (Line38101_CheckBox_EN[1])+/V /+>> +<<+/T (Line38101_CheckBox_EN[0])+/V /+>>]+>>]+>> +<<+/T (Line38102[0])+/Kids [+<<+/T (Line38102_CheckBoxGroup[0])+/Kids [+<<+/T (Line38102_CheckBox_EN[1])+/V /+>> +<<+/T (Line38102_CheckBox_EN[0])+/V /+>>]+>>]+>> +<<+/T (Line38105[0])+/Kids [+<<+/T (Note1[0])+/V /+>> +<<+/T (Line38105_CheckBoxGroup[0])+/Kids [+<<+/T (Line38105_CheckBox_EN[1])+/V /+>> +<<+/T (Line38105_CheckBox_EN[0])+/V /+>>]+>>]+>> +<<+/T (Line38100[0])+/Kids [+<<+/T (Line38100_CheckBoxGroup[0])+/Kids [+<<+/T (Line38100_CheckBox_EN[1])+/V /+>> +<<+/T (Line38100_CheckBox_EN[0])+/V /+>>]+>>]+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Chart[0])+/Kids [+<<+/T (Line5_Sub[0])+/Kids [+<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (line4[0])+/Kids [+<<+/T (Note1[0])+/V /+>> +<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Note2[0])+/V /+>> +<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Chart[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line9[0])+/Kids [+<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Amount2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line49[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line45[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line48[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line46[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line47[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line44[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Step3[0])+/Kids [+<<+/T (Line29[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line35[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line36[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line37[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30[0])+/Kids [+<<+/T (Amount[0])+/V ( 1,150.00)+>>]+>> +<<+/T (Line33[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32[0])+/Kids [+<<+/T (Percent[0])+/V (27%)+>>]+>> +<<+/T (Line41[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line39[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line38[0])+/Kids [+<<+/T (Percent[0])+/V ()+>>]+>> +<<+/T (Line42[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Step2[0])+/Kids [+<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line19[0])+/Kids [+<<+/T (Percent[0])+/V (27%)+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount[0])+/V ( 3,000.00)+>>]+>> +<<+/T (Line16[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line20[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line26[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line24[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line23[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,334 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (PartA[0])+/Kids [+<<+/T (Line5[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (PartC[0])+/Kids [+<<+/T (Line16[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line19[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line20[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Note1[0])+/V /+>> +<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line9[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (PartE[0])+/Kids [+<<+/T (Line28[0])+/Kids [+<<+/T (Box_Line27[0])+/V /+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line26[0])+/Kids [+<<+/T (Box_Line25[0])+/V /+>>]+>>]+>> +<<+/T (PartD[0])+/Kids [+<<+/T (Line24[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line23[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartF[0])+/Kids [+<<+/T (Line29[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,286 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page1[0])+/Kids [+<<+/T (AmountC[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line8[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line6[0])+/Kids [+<<+/T (AmountA[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (AmountE[0])+/Kids [+<<+/T (Amount_Line14[0])+/V ()+>>]+>> +<<+/T (Line10[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line19[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line17[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line12[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount_Line14[0])+/V ()+>>]+>> +<<+/T (Line16[0])+/Kids [+<<+/T (NumWithoutCurrency[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (AmountG[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line23[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line5[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line7[0])+/Kids [+<<+/T (AmountD[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line9[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (AmountB[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line11[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line13[0])+/Kids [+<<+/T (Amount_Line13[0])+/V ()+>>]+>> +<<+/T (Line3[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line18[0])+/Kids [+<<+/T (Amount[0])+/V ( 235,675.00)+>>]+>> +<<+/T (Line15[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line20[0])+/Kids [+<<+/T (AmountF[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22[0])+/Kids [+<<+/T (AmountH[0])+/Kids [+<<+/T (Amount_Line14[0])+/V ()+>>]+>> +<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2206 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[1])+/V /+>> +<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (Indian_Act[0])+/Kids [+<<+/T (IndianAct_Question[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (CAI[0])+/Kids [+<<+/T (AB_CAI[0])+/Kids [+<<+/T (Tick_box[0])+/V /+>>]+>>]+>> +<<+/T (ResidencyInformation[0])+/Kids [+<<+/T (Question[0])+/Kids [+<<+/T (Residency_CheckBox[1])+/V /+>> +<<+/T (Residency_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Return-pg5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Specify[0])+/V ()+>> +<<+/T (Line_25600_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30500_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_ChildrenNum[0])+/V ()+>>]+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line42Amount3[0])+/V ()+>> +<<+/T (Line37Amount3[0])+/V ( 106,717.00)+>> +<<+/T (Line39Rate3[0])+/V (26%)+>> +<<+/T (Line41Amount3[0])+/V ( 18,942.24)+>> +<<+/T (Line36Amount3[0])+/V ()+>> +<<+/T (Line40Amount3[0])+/V ()+>> +<<+/T (Line38Amount3[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line36Amount5[0])+/V ()+>> +<<+/T (Line37Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line39Rate5[0])+/V (33%)+>> +<<+/T (Line40Amount5[0])+/V ()+>> +<<+/T (Line42Amount5[0])+/V ()+>> +<<+/T (Line38Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line36Amount4[0])+/V ()+>> +<<+/T (Line37Amount4[0])+/V ( 165,430.00)+>> +<<+/T (Line39Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Line40Amount4[0])+/V ()+>> +<<+/T (Line42Amount4[0])+/V ()+>> +<<+/T (Line38Amount4[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line37Amount2[0])+/V ( 53,359.00)+>> +<<+/T (Line41Amount2[0])+/V ( 8,003.85)+>> +<<+/T (Line36Amount2[0])+/V ()+>> +<<+/T (Line40Amount2[0])+/V ()+>> +<<+/T (Line39Rate2[0])+/V (20.5%)+>> +<<+/T (Line38Amount2[0])+/V ()+>> +<<+/T (Line42Amount2[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line38Amount1[0])+/V ()+>> +<<+/T (Line37Amount1[0])+/V ( 0.00)+>> +<<+/T (Line36Amount1[0])+/V ()+>> +<<+/T (Line39Rate1[0])+/V (15%)+>> +<<+/T (Line40Amount1[0])+/V ()+>> +<<+/T (Line41Amount1[0])+/V ( 0.00)+>> +<<+/T (Line42Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Return-pg4[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Line_20810_Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Return-pg7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>> +<<+/T (Line42100[0])+/Kids [+<<+/T (Line_42100_Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line41000[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line124[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line121[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line127[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line126[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line129[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line132[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (Return-pg6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line98[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line96[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line108[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line106[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_Amount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line101[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount2[0])+/V ()+>> +<<+/T (Line_33200_Amount1[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line109[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Return-pg8[0])+/Kids [+<<+/T (Step6-Cont[0])+/Kids [+<<+/T (Line44800[0])+/Kids [+<<+/T (Line_44800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (Line_46900_Amount[0])+/V ()+>> +<<+/T (Line46800[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47900[0])+/Kids [+<<+/T (Line_47900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47555_Amount[0])+/V ()+>>]+>> +<<+/T (Line167[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line148[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (Efile[0])+/Kids [+<<+/T (Line48900[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (Line49000[0])+/Kids [+<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>>]+>> +<<+/T (Refund_or_Balance-owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2190 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Return-pg2[0])+/Kids [+<<+/T (Tax_exempt[0])+/Kids [+<<+/T (Exempt[0])+/Kids [+<<+/T (Spouse_SelfEmployed[0])+/V /+>>]+>>]+>> +<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Return-pg5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Specify[0])+/V ()+>> +<<+/T (Line_25600_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30500_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_ChildrenNum[0])+/V ()+>>]+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line42Amount3[0])+/V ()+>> +<<+/T (Line37Amount3[0])+/V ( 106,717.00)+>> +<<+/T (Line39Rate3[0])+/V (26%)+>> +<<+/T (Line41Amount3[0])+/V ( 18,942.24)+>> +<<+/T (Line36Amount3[0])+/V ()+>> +<<+/T (Line40Amount3[0])+/V ()+>> +<<+/T (Line38Amount3[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line36Amount5[0])+/V ()+>> +<<+/T (Line37Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line39Rate5[0])+/V (33%)+>> +<<+/T (Line40Amount5[0])+/V ()+>> +<<+/T (Line42Amount5[0])+/V ()+>> +<<+/T (Line38Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line36Amount4[0])+/V ()+>> +<<+/T (Line37Amount4[0])+/V ( 165,430.00)+>> +<<+/T (Line39Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Line40Amount4[0])+/V ()+>> +<<+/T (Line42Amount4[0])+/V ()+>> +<<+/T (Line38Amount4[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line37Amount2[0])+/V ( 53,359.00)+>> +<<+/T (Line41Amount2[0])+/V ( 8,003.85)+>> +<<+/T (Line36Amount2[0])+/V ()+>> +<<+/T (Line40Amount2[0])+/V ()+>> +<<+/T (Line39Rate2[0])+/V (20.5%)+>> +<<+/T (Line38Amount2[0])+/V ()+>> +<<+/T (Line42Amount2[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line38Amount1[0])+/V ()+>> +<<+/T (Line37Amount1[0])+/V ( 0.00)+>> +<<+/T (Line36Amount1[0])+/V ()+>> +<<+/T (Line39Rate1[0])+/V (15%)+>> +<<+/T (Line40Amount1[0])+/V ()+>> +<<+/T (Line41Amount1[0])+/V ( 0.00)+>> +<<+/T (Line42Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Return-pg4[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Line_20810_Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Return-pg7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>> +<<+/T (Line42100[0])+/Kids [+<<+/T (Line_42100_Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line41000[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line124[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line121[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line127[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line126[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line129[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line132[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (Return-pg6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line98[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line96[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line108[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line106[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_Amount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line101[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount2[0])+/V ()+>> +<<+/T (Line_33200_Amount1[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line109[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Return-pg8[0])+/Kids [+<<+/T (Step6-Continued[0])+/Kids [+<<+/T (Line44800[0])+/Kids [+<<+/T (Line_44800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (Line46800[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>> +<<+/T (Line_46900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47900[0])+/Kids [+<<+/T (Line_47900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47555_Amount[0])+/V ()+>>]+>> +<<+/T (Line167[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line148[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (Efile[0])+/Kids [+<<+/T (Line48900[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (Line49000[0])+/Kids [+<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>>]+>> +<<+/T (Refund_or_Balance-owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2206 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page2[0])+/Kids [+<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Tax_exempt[0])+/Kids [+<<+/T (Exempt[0])+/Kids [+<<+/T (Spouse_SelfEmployed[0])+/V /+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (CAI[0])+/Kids [+<<+/T (CAI-2023[0])+/Kids [+<<+/T (Tick_box[0])+/V /+>>]+>> +<<+/T (CAI_2024[0])+/Kids [+<<+/T (Tick_box[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Return-pg5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Specify[0])+/V ()+>> +<<+/T (Line_25600_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30500_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_ChildrenNum[0])+/V ()+>>]+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line42Amount3[0])+/V ()+>> +<<+/T (Line37Amount3[0])+/V ( 106,717.00)+>> +<<+/T (Line39Rate3[0])+/V (26%)+>> +<<+/T (Line41Amount3[0])+/V ( 18,942.24)+>> +<<+/T (Line36Amount3[0])+/V ()+>> +<<+/T (Line40Amount3[0])+/V ()+>> +<<+/T (Line38Amount3[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line36Amount5[0])+/V ()+>> +<<+/T (Line37Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line39Rate5[0])+/V (33%)+>> +<<+/T (Line40Amount5[0])+/V ()+>> +<<+/T (Line42Amount5[0])+/V ()+>> +<<+/T (Line38Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line36Amount4[0])+/V ()+>> +<<+/T (Line37Amount4[0])+/V ( 165,430.00)+>> +<<+/T (Line39Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Line40Amount4[0])+/V ()+>> +<<+/T (Line42Amount4[0])+/V ()+>> +<<+/T (Line38Amount4[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line37Amount2[0])+/V ( 53,359.00)+>> +<<+/T (Line41Amount2[0])+/V ( 8,003.85)+>> +<<+/T (Line36Amount2[0])+/V ()+>> +<<+/T (Line40Amount2[0])+/V ()+>> +<<+/T (Line39Rate2[0])+/V (20.5%)+>> +<<+/T (Line38Amount2[0])+/V ()+>> +<<+/T (Line42Amount2[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line38Amount1[0])+/V ()+>> +<<+/T (Line37Amount1[0])+/V ( 0.00)+>> +<<+/T (Line36Amount1[0])+/V ()+>> +<<+/T (Line39Rate1[0])+/V (15%)+>> +<<+/T (Line40Amount1[0])+/V ()+>> +<<+/T (Line41Amount1[0])+/V ( 0.00)+>> +<<+/T (Line42Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Return-pg4[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Line_20810_Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Return-pg7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>> +<<+/T (Line42100[0])+/Kids [+<<+/T (Line_42100_Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line41000[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line124[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line121[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line127[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line126[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line129[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line132[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (Return-pg6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line98[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line96[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line108[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line106[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_Amount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line101[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount2[0])+/V ()+>> +<<+/T (Line_33200_Amount1[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line109[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Return-pg8[0])+/Kids [+<<+/T (Refund_or_Balance-Owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Step6-Continued[0])+/Kids [+<<+/T (Line44800[0])+/Kids [+<<+/T (Line_44800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (Line46800[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>> +<<+/T (Line_46900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47900[0])+/Kids [+<<+/T (Line_47900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47555_Amount[0])+/V ()+>>]+>> +<<+/T (Line167[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line148[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (Efile[0])+/Kids [+<<+/T (Line48900[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (Line49000[0])+/Kids [+<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2222 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Return-pg2[0])+/Kids [+<<+/T (Tax_exempt[0])+/Kids [+<<+/T (Exempt[0])+/Kids [+<<+/T (Spouse_SelfEmployed[0])+/V /+>>]+>>]+>> +<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Amount[0])+/V ()+>> +<<+/T (Line_25600_Specify[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line58[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Part_A[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Amount_Line77[0])+/V ()+>> +<<+/T (Amount_Line76[0])+/V ( 18,942.24)+>> +<<+/T (Amount_Line75[0])+/V ()+>> +<<+/T (Percent_Line74[0])+/V (26%)+>> +<<+/T (Amount_Line71[0])+/V ()+>> +<<+/T (Amount_Line72[0])+/V ( 106,717.00)+>> +<<+/T (Amount_Line73[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ()+>> +<<+/T (Line42Rate5[0])+/V (33%)+>> +<<+/T (Line44Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line39Amount5[0])+/V ()+>> +<<+/T (Line43Amount5[0])+/V ()+>> +<<+/T (Line40Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line45Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line42Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ()+>> +<<+/T (Line44Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Amount_Line71[0])+/V ()+>> +<<+/T (Amount_Line72[0])+/V ( 165,430.00)+>> +<<+/T (Line43Amount4[0])+/V ()+>> +<<+/T (Line45Amount4[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Amount_Line77[0])+/V ()+>> +<<+/T (Amount_Line76[0])+/V ( 0.00)+>> +<<+/T (Amount_Line75[0])+/V ()+>> +<<+/T (Percent_Line74[0])+/V (15%)+>> +<<+/T (Amount_Line71[0])+/V ()+>> +<<+/T (Amount_Line72[0])+/V ( 0.00)+>> +<<+/T (Amount_Line73[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Amount_Line77[0])+/V ()+>> +<<+/T (Amount_Line75[0])+/V ()+>> +<<+/T (Amount_Line76[0])+/V ( 8,003.85)+>> +<<+/T (Percent_Line74[0])+/V (20.5%)+>> +<<+/T (Amount_Line71[0])+/V ()+>> +<<+/T (Amount_Line72[0])+/V ( 53,359.00)+>> +<<+/T (Amount_Line73[0])+/V ()+>>]+>>]+>> +<<+/T (Part_B[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30499_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_Number[0])+/V ()+>>]+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Step3[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line22300[0])+/Kids [+<<+/T (Line_22300_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line31215[0])+/Kids [+<<+/T (Line_31215_Amount[0])+/V ()+>>]+>> +<<+/T (Line100[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line102[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line112[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_mount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount1[0])+/V ()+>> +<<+/T (Line_33200_Line32Amount2[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31210[0])+/Kids [+<<+/T (Line_31210_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line31205[0])+/Kids [+<<+/T (Line_31205_Amount[0])+/V ()+>>]+>> +<<+/T (Line85[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line105[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line113[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line146[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line122[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41000[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line125[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line128[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line134[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line133[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line135[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line136[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Line_49000_IfFeeWasCharged[0])+/Kids [+<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (EFileNumber_Comb[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>> +<<+/T (Step6-Continued[0])+/Kids [+<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45355_Amount[0])+/V ()+>>]+>> +<<+/T (Line172[0])+/Kids [+<<+/T (Refund_or_BalanceOwing_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (Line46800[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>> +<<+/T (Line_46900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47555_Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line43900[0])+/Kids [+<<+/T (Line_43900_Amount1[0])+/V ()+>> +<<+/T (Line_43900_Amount2[0])+/V ()+>>]+>> +<<+/T (Line157[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount2[0])+/V ()+>> +<<+/T (Line_44000_Amount1[0])+/V ()+>>]+>> +<<+/T (Line45100[0])+/Kids [+<<+/T (Line_45100_Amount1[0])+/V ()+>> +<<+/T (Line_45100_Amount2[0])+/V ()+>>]+>> +<<+/T (Line151[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43800[0])+/Kids [+<<+/T (Line_43800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (Refund_or_Balancing-owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2242 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line10100[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page2[0])+/Kids [+<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Tax_exempt[0])+/Kids [+<<+/T (Exempt[0])+/Kids [+<<+/T (Spouse_SelfEmployed[0])+/V /+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (CAI[0])+/Kids [+<<+/T (CAI_ON[0])+/Kids [+<<+/T (Tick_box[0])+/V /+>>]+>>]+>> +<<+/T (Organ_donor[0])+/Kids [+<<+/T (Question[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (OrganDonor_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (OrganDonor_CheckBox[0])+/V /+>>]+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Return-pg5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Specify[0])+/V ()+>> +<<+/T (Line_25600_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30500_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_ChildrenNum[0])+/V ()+>>]+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line42Amount3[0])+/V ()+>> +<<+/T (Line37Amount3[0])+/V ( 106,717.00)+>> +<<+/T (Line39Rate3[0])+/V (26%)+>> +<<+/T (Line41Amount3[0])+/V ( 18,942.24)+>> +<<+/T (Line36Amount3[0])+/V ()+>> +<<+/T (Line40Amount3[0])+/V ()+>> +<<+/T (Line38Amount3[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line36Amount5[0])+/V ()+>> +<<+/T (Line37Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line39Rate5[0])+/V (33%)+>> +<<+/T (Line40Amount5[0])+/V ()+>> +<<+/T (Line42Amount5[0])+/V ()+>> +<<+/T (Line38Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line36Amount4[0])+/V ()+>> +<<+/T (Line37Amount4[0])+/V ( 165,430.00)+>> +<<+/T (Line39Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Line40Amount4[0])+/V ()+>> +<<+/T (Line42Amount4[0])+/V ()+>> +<<+/T (Line38Amount4[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line37Amount2[0])+/V ( 53,359.00)+>> +<<+/T (Line41Amount2[0])+/V ( 8,003.85)+>> +<<+/T (Line36Amount2[0])+/V ()+>> +<<+/T (Line40Amount2[0])+/V ()+>> +<<+/T (Line39Rate2[0])+/V (20.5%)+>> +<<+/T (Line38Amount2[0])+/V ()+>> +<<+/T (Line42Amount2[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line38Amount1[0])+/V ()+>> +<<+/T (Line37Amount1[0])+/V ( 0.00)+>> +<<+/T (Line36Amount1[0])+/V ()+>> +<<+/T (Line39Rate1[0])+/V (15%)+>> +<<+/T (Line40Amount1[0])+/V ()+>> +<<+/T (Line41Amount1[0])+/V ( 0.00)+>> +<<+/T (Line42Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Return-pg4[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Line_20810_Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Return-pg7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>> +<<+/T (Line42100[0])+/Kids [+<<+/T (Line_42100_Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line41000[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line124[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line121[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line127[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line126[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line129[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line132[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (Return-pg6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line98[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line96[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line108[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line106[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_Amount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line101[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount2[0])+/V ()+>> +<<+/T (Line_33200_Amount1[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line109[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Line_49000_IfFeeWasCharged[0])+/Kids [+<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (EFileNumber_Comb[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>> +<<+/T (Step6-Continued[0])+/Kids [+<<+/T (Line44800[0])+/Kids [+<<+/T (Line_44800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45355_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (Line46800[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>> +<<+/T (Line_46900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45350_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47900[0])+/Kids [+<<+/T (Line_47900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line167[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line148[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (ONOpportunitiesFund2[0])+/Kids [+<<+/T (Line_3[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line_2[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line_1[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Refund_or_Balance-owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2234 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Tax_exempt[0])+/Kids [+<<+/T (Exempt[0])+/Kids [+<<+/T (Spouse_SelfEmployed[0])+/V /+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (ResidencyInformation[0])+/Kids [+<<+/T (Question1[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (Residency_CheckBox1[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (Residency_CheckBox1[0])+/V /+>>]+>>]+>> +<<+/T (Question2[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (Residency_CheckBox2[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (Residency_CheckBox2[0])+/V /+>>]+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line1[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Return-pg5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Specify[0])+/V ()+>> +<<+/T (Line_25600_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30500_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_ChildrenNum[0])+/V ()+>>]+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line42Amount3[0])+/V ()+>> +<<+/T (Line37Amount3[0])+/V ( 106,717.00)+>> +<<+/T (Line39Rate3[0])+/V (26%)+>> +<<+/T (Line41Amount3[0])+/V ( 18,942.24)+>> +<<+/T (Line36Amount3[0])+/V ()+>> +<<+/T (Line40Amount3[0])+/V ()+>> +<<+/T (Line38Amount3[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line36Amount5[0])+/V ()+>> +<<+/T (Line37Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line39Rate5[0])+/V (33%)+>> +<<+/T (Line40Amount5[0])+/V ()+>> +<<+/T (Line42Amount5[0])+/V ()+>> +<<+/T (Line38Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line36Amount4[0])+/V ()+>> +<<+/T (Line37Amount4[0])+/V ( 165,430.00)+>> +<<+/T (Line39Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Line40Amount4[0])+/V ()+>> +<<+/T (Line42Amount4[0])+/V ()+>> +<<+/T (Line38Amount4[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line37Amount2[0])+/V ( 53,359.00)+>> +<<+/T (Line41Amount2[0])+/V ( 8,003.85)+>> +<<+/T (Line36Amount2[0])+/V ()+>> +<<+/T (Line40Amount2[0])+/V ()+>> +<<+/T (Line39Rate2[0])+/V (20.5%)+>> +<<+/T (Line38Amount2[0])+/V ()+>> +<<+/T (Line42Amount2[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line38Amount1[0])+/V ()+>> +<<+/T (Line37Amount1[0])+/V ( 0.00)+>> +<<+/T (Line36Amount1[0])+/V ()+>> +<<+/T (Line39Rate1[0])+/V (15%)+>> +<<+/T (Line40Amount1[0])+/V ()+>> +<<+/T (Line41Amount1[0])+/V ( 0.00)+>> +<<+/T (Line42Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Return-pg4[0])+/Kids [+<<+/T (Step3[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Line_20810_Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Return-pg7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>> +<<+/T (Line42100[0])+/Kids [+<<+/T (Line_42100_Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line41000[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line124[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line121[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line127[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line126[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line129[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line132[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (Return-pg6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line98[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line96[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line108[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line106[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_Amount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line101[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount2[0])+/V ()+>> +<<+/T (Line_33200_Amount1[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line109[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Return-pg8[0])+/Kids [+<<+/T (Step6-Continued[0])+/Kids [+<<+/T (Line44800[0])+/Kids [+<<+/T (Line_44800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (Line46800[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>> +<<+/T (Line_46900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47900[0])+/Kids [+<<+/T (Line_47900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47555_Amount[0])+/V ()+>>]+>> +<<+/T (Line167[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line148[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (Efile[0])+/Kids [+<<+/T (Line48900[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (Line49000[0])+/Kids [+<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>>]+>> +<<+/T (Refund_or_Balance-owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2242 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Step1-Continued[0])+/Kids [+<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Tax_exempt[0])+/Kids [+<<+/T (Exempt[0])+/Kids [+<<+/T (Spouse_SelfEmployed[0])+/V /+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (ResidencyInformation[0])+/Kids [+<<+/T (Question1[0])+/Kids [+<<+/T (Residency_CheckBox[1])+/V /+>> +<<+/T (Residency_CheckBox[0])+/V /+>>]+>> +<<+/T (QuestionB[0])+/Kids [+<<+/T (B_CheckBox[1])+/V /+>> +<<+/T (B_CheckBox[0])+/V /+>>]+>> +<<+/T (QuestionA[0])+/Kids [+<<+/T (A_Self_Governing_Field[0])+/V ()+>> +<<+/T (A_IdentificationNumber[0])+/Kids [+<<+/T (IdentificationNum[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line10100[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Return-pg5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Specify[0])+/V ()+>> +<<+/T (Line_25600_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30500_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_ChildrenNum[0])+/V ()+>>]+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line42Amount3[0])+/V ()+>> +<<+/T (Line37Amount3[0])+/V ( 106,717.00)+>> +<<+/T (Line39Rate3[0])+/V (26%)+>> +<<+/T (Line41Amount3[0])+/V ( 18,942.24)+>> +<<+/T (Line36Amount3[0])+/V ()+>> +<<+/T (Line40Amount3[0])+/V ()+>> +<<+/T (Line38Amount3[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line36Amount5[0])+/V ()+>> +<<+/T (Line37Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line39Rate5[0])+/V (33%)+>> +<<+/T (Line40Amount5[0])+/V ()+>> +<<+/T (Line42Amount5[0])+/V ()+>> +<<+/T (Line38Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line36Amount4[0])+/V ()+>> +<<+/T (Line37Amount4[0])+/V ( 165,430.00)+>> +<<+/T (Line39Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Line40Amount4[0])+/V ()+>> +<<+/T (Line42Amount4[0])+/V ()+>> +<<+/T (Line38Amount4[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line37Amount2[0])+/V ( 53,359.00)+>> +<<+/T (Line41Amount2[0])+/V ( 8,003.85)+>> +<<+/T (Line36Amount2[0])+/V ()+>> +<<+/T (Line40Amount2[0])+/V ()+>> +<<+/T (Line39Rate2[0])+/V (20.5%)+>> +<<+/T (Line38Amount2[0])+/V ()+>> +<<+/T (Line42Amount2[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line38Amount1[0])+/V ()+>> +<<+/T (Line37Amount1[0])+/V ( 0.00)+>> +<<+/T (Line36Amount1[0])+/V ()+>> +<<+/T (Line39Rate1[0])+/V (15%)+>> +<<+/T (Line40Amount1[0])+/V ()+>> +<<+/T (Line41Amount1[0])+/V ( 0.00)+>> +<<+/T (Line42Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Return-pg4[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Line_20810_Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line142[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line43200[0])+/Kids [+<<+/T (Line_43200_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>> +<<+/T (Line42100[0])+/Kids [+<<+/T (Line_42100_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line124[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line121[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line4100[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line127[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line126[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line129[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line132[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (Return-pg6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line98[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line96[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line108[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line106[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_Amount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line101[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount2[0])+/V ()+>> +<<+/T (Line_33200_Amount1[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line109[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Line_49000_IfFeeWasCharged[0])+/Kids [+<<+/T (Line48900[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (Line49000[0])+/Kids [+<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>>]+>> +<<+/T (Step6-Cont[0])+/Kids [+<<+/T (Line44800[0])+/Kids [+<<+/T (Line_44800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45355_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (sfline46800end[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>> +<<+/T (Line_46900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45350_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47900[0])+/Kids [+<<+/T (Line_47900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47555_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line149[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line169[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line44100[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (Refund_or_Balance-owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2230 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line10100[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page2[0])+/Kids [+<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Tax_exempt[0])+/Kids [+<<+/T (Exempt[0])+/Kids [+<<+/T (Spouse_SelfEmployed[0])+/V /+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Step1[0])+/Kids [+<<+/T (ResidencyInformation[0])+/Kids [+<<+/T (Q1[0])+/Kids [+<<+/T (Residency_CheckBox[1])+/V /+>> +<<+/T (Residency_CheckBox[0])+/V /+>>]+>> +<<+/T (Q2[0])+/Kids [+<<+/T (ResidencyB_CheckBox[1])+/V /+>> +<<+/T (ResidencyB_CheckBox[0])+/V /+>>]+>> +<<+/T (Q3[0])+/Kids [+<<+/T (B_CheckBox[1])+/V /+>> +<<+/T (B_CheckBox[0])+/V /+>>]+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Return-pg5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Specify[0])+/V ()+>> +<<+/T (Line_25600_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30500_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_ChildrenNum[0])+/V ()+>>]+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line42Amount3[0])+/V ()+>> +<<+/T (Line37Amount3[0])+/V ( 106,717.00)+>> +<<+/T (Line39Rate3[0])+/V (26%)+>> +<<+/T (Line41Amount3[0])+/V ( 18,942.24)+>> +<<+/T (Line36Amount3[0])+/V ()+>> +<<+/T (Line40Amount3[0])+/V ()+>> +<<+/T (Line38Amount3[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line36Amount5[0])+/V ()+>> +<<+/T (Line37Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line39Rate5[0])+/V (33%)+>> +<<+/T (Line40Amount5[0])+/V ()+>> +<<+/T (Line42Amount5[0])+/V ()+>> +<<+/T (Line38Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line36Amount4[0])+/V ()+>> +<<+/T (Line37Amount4[0])+/V ( 165,430.00)+>> +<<+/T (Line39Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Line40Amount4[0])+/V ()+>> +<<+/T (Line42Amount4[0])+/V ()+>> +<<+/T (Line38Amount4[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line37Amount2[0])+/V ( 53,359.00)+>> +<<+/T (Line41Amount2[0])+/V ( 8,003.85)+>> +<<+/T (Line36Amount2[0])+/V ()+>> +<<+/T (Line40Amount2[0])+/V ()+>> +<<+/T (Line39Rate2[0])+/V (20.5%)+>> +<<+/T (Line38Amount2[0])+/V ()+>> +<<+/T (Line42Amount2[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line38Amount1[0])+/V ()+>> +<<+/T (Line37Amount1[0])+/V ( 0.00)+>> +<<+/T (Line36Amount1[0])+/V ()+>> +<<+/T (Line39Rate1[0])+/V (15%)+>> +<<+/T (Line40Amount1[0])+/V ()+>> +<<+/T (Line41Amount1[0])+/V ( 0.00)+>> +<<+/T (Line42Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Return-pg4[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Line_20810_Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Return-pg7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>> +<<+/T (Line42100[0])+/Kids [+<<+/T (Line_42100_Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line41000[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line124[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line121[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line127[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line126[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line129[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line132[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (Return-pg6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line98[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line96[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line108[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line106[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_Amount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line101[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount2[0])+/V ()+>> +<<+/T (Line_33200_Amount1[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line109[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Return-pg8[0])+/Kids [+<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (Step6[0])+/Kids [+<<+/T (Line44800[0])+/Kids [+<<+/T (Line_44800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (Line_46900_Amount[0])+/V ()+>> +<<+/T (Line46800[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47900[0])+/Kids [+<<+/T (Line_47900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47555_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line167[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line148[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Efile[0])+/Kids [+<<+/T (Line48900[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (Line49000[0])+/Kids [+<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>>]+>> +<<+/T (Refund_or_Balance-owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2214 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Step1[0])+/Kids [+<<+/T (Tax_exempt[0])+/Kids [+<<+/T (Exempt[0])+/Kids [+<<+/T (Spouse_SelfEmployed[0])+/V /+>>]+>>]+>> +<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Organ_donor[0])+/Kids [+<<+/T (Question[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (OrganDonor_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (OrganDonor_CheckBox[0])+/V /+>>]+>>]+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line10100[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Return-pg5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Specify[0])+/V ()+>> +<<+/T (Line_25600_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30500_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_ChildrenNum[0])+/V ()+>>]+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line42Amount3[0])+/V ()+>> +<<+/T (Line37Amount3[0])+/V ( 106,717.00)+>> +<<+/T (Line39Rate3[0])+/V (26%)+>> +<<+/T (Line41Amount3[0])+/V ( 18,942.24)+>> +<<+/T (Line36Amount3[0])+/V ()+>> +<<+/T (Line40Amount3[0])+/V ()+>> +<<+/T (Line38Amount3[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line36Amount5[0])+/V ()+>> +<<+/T (Line37Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line39Rate5[0])+/V (33%)+>> +<<+/T (Line40Amount5[0])+/V ()+>> +<<+/T (Line42Amount5[0])+/V ()+>> +<<+/T (Line38Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line36Amount4[0])+/V ()+>> +<<+/T (Line37Amount4[0])+/V ( 165,430.00)+>> +<<+/T (Line39Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Line40Amount4[0])+/V ()+>> +<<+/T (Line42Amount4[0])+/V ()+>> +<<+/T (Line38Amount4[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line37Amount2[0])+/V ( 53,359.00)+>> +<<+/T (Line41Amount2[0])+/V ( 8,003.85)+>> +<<+/T (Line36Amount2[0])+/V ()+>> +<<+/T (Line40Amount2[0])+/V ()+>> +<<+/T (Line39Rate2[0])+/V (20.5%)+>> +<<+/T (Line38Amount2[0])+/V ()+>> +<<+/T (Line42Amount2[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line38Amount1[0])+/V ()+>> +<<+/T (Line37Amount1[0])+/V ( 0.00)+>> +<<+/T (Line36Amount1[0])+/V ()+>> +<<+/T (Line39Rate1[0])+/V (15%)+>> +<<+/T (Line40Amount1[0])+/V ()+>> +<<+/T (Line41Amount1[0])+/V ( 0.00)+>> +<<+/T (Line42Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Return-pg4[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Line_20810_Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Return-pg7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>> +<<+/T (Line42100[0])+/Kids [+<<+/T (Line_42100_Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line41000[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line124[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line121[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line127[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line126[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line129[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line132[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (Return-pg6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line98[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line96[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line108[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line106[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_Amount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line101[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount2[0])+/V ()+>> +<<+/T (Line_33200_Amount1[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line109[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Return-pg8[0])+/Kids [+<<+/T (Step6-Continued[0])+/Kids [+<<+/T (Line44800[0])+/Kids [+<<+/T (Line_44800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (Line46800[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>> +<<+/T (Line_46900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47900[0])+/Kids [+<<+/T (Line_47900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47555_Amount[0])+/V ()+>>]+>> +<<+/T (Line167[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line148[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (Efile[0])+/Kids [+<<+/T (Line48900[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (Line49000[0])+/Kids [+<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>>]+>> +<<+/T (Refund_or_Balance-owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
@@ -0,0 +1,2202 @@+%FDF-1.2+%âãÏÓ+1 0 obj++<<+/FDF +<<+/Fields [+<<+/T (form1[0])+/Kids [+<<+/T (Page2[0])+/Kids [+<<+/T (Step1-Cont[0])+/Kids [+<<+/T (Foreign_property[0])+/Kids [+<<+/T (Line26600[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (ForeignProperty_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (Tax_exempt[0])+/Kids [+<<+/T (Exempt[0])+/Kids [+<<+/T (Spouse_SelfEmployed[0])+/V /+>>]+>>]+>> +<<+/T (ElectionsCanada[0])+/Kids [+<<+/T (LineA[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (A_CheckBox[0])+/V /+>>]+>>]+>> +<<+/T (LineB[0])+/Kids [+<<+/T (Option2[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>> +<<+/T (Option1[0])+/Kids [+<<+/T (B_Authorize_CheckBox[0])+/V /+>>]+>>]+>>]+>> +<<+/T (CAI[0])+/Kids [+<<+/T (AB_CAI[0])+/Kids [+<<+/T (Tick_box[0])+/V /+>>]+>>]+>>]+>>]+>> +<<+/T (Page3[0])+/Kids [+<<+/T (Return-pg3[0])+/Kids [+<<+/T (Line11410[0])+/Kids [+<<+/T (Line_11410_Amount[0])+/V ()+>>]+>> +<<+/T (Line13700[0])+/Kids [+<<+/T (Line_13700_Amount[0])+/V ()+>> +<<+/T (Line13699[0])+/Kids [+<<+/T (Line_13699_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line27[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line12000[0])+/Kids [+<<+/T (Line_12000_Amount[0])+/V ()+>>]+>> +<<+/T (Line14500[0])+/Kids [+<<+/T (Line_14500_Amount[0])+/V ()+>>]+>> +<<+/T (Line12600[0])+/Kids [+<<+/T (Line12599[0])+/Kids [+<<+/T (Line_12599_Amount[0])+/V ()+>>]+>> +<<+/T (Line_12600_Amount[0])+/V ()+>>]+>> +<<+/T (Line10130[0])+/Kids [+<<+/T (Line_10130_Amount[0])+/V ()+>>]+>> +<<+/T (Line12900[0])+/Kids [+<<+/T (Line_12900_Amount[0])+/V ()+>>]+>> +<<+/T (Line13010[0])+/Kids [+<<+/T (Line_13010_Amount[0])+/V ()+>>]+>> +<<+/T (Line15000[0])+/Kids [+<<+/T (Line_15000_Amount[0])+/V ()+>>]+>> +<<+/T (Line12010[0])+/Kids [+<<+/T (Line_12010_Amount[0])+/V ()+>>]+>> +<<+/T (Line10400[0])+/Kids [+<<+/T (Line_10400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12905[0])+/Kids [+<<+/T (Line_12905_Amount[0])+/V ()+>>]+>> +<<+/T (Line14300[0])+/Kids [+<<+/T (Line14299[0])+/Kids [+<<+/T (Line_14299_Amount[0])+/V ()+>>]+>> +<<+/T (Line_14300_Amount[0])+/V ()+>>]+>> +<<+/T (Line13500[0])+/Kids [+<<+/T (Line13499[0])+/Kids [+<<+/T (Line_13499_Amount[0])+/V ()+>>]+>> +<<+/T (Line_13500_Amount[0])+/V ()+>>]+>> +<<+/T (Line11500[0])+/Kids [+<<+/T (Line_11500_Amount[0])+/V ()+>>]+>> +<<+/T (Line10100[0])+/Kids [+<<+/T (Line_10100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11701[0])+/Kids [+<<+/T (Line_11701_Amount[0])+/V ()+>>]+>> +<<+/T (Line21[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14600[0])+/Kids [+<<+/T (Line_14600_Amount[0])+/V ()+>>]+>> +<<+/T (Line11900[0])+/Kids [+<<+/T (Line_11900_Amount[0])+/V ()+>>]+>> +<<+/T (Line28[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line14100[0])+/Kids [+<<+/T (Line_14100_Amount[0])+/V ()+>> +<<+/T (Line14099[0])+/Kids [+<<+/T (Line_14099_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line11600[0])+/Kids [+<<+/T (Line_11600_Amount[0])+/V ()+>>]+>> +<<+/T (Line14700[0])+/Kids [+<<+/T (Line_14700_Amount1[0])+/V ()+>> +<<+/T (Line_14700_Amount2[0])+/V ()+>>]+>> +<<+/T (Line14400[0])+/Kids [+<<+/T (Line_14400_Amount[0])+/V ()+>>]+>> +<<+/T (Line12700[0])+/Kids [+<<+/T (Line_12700_Amount[0])+/V ()+>>]+>> +<<+/T (Line12100[0])+/Kids [+<<+/T (Line_12100_Amount[0])+/V ()+>>]+>> +<<+/T (Line11300[0])+/Kids [+<<+/T (Line_11300_Amount[0])+/V ()+>>]+>> +<<+/T (Line12800[0])+/Kids [+<<+/T (Line_12800_Amount[0])+/V ()+>> +<<+/T (Line_12799[0])+/Kids [+<<+/T (Line_12799_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line12906[0])+/Kids [+<<+/T (Line_12906_Amount[0])+/V ()+>>]+>> +<<+/T (Line11400[0])+/Kids [+<<+/T (Line_11400_Amount[0])+/V ()+>>]+>> +<<+/T (Line13900[0])+/Kids [+<<+/T (Line_13900_Amount[0])+/V ()+>> +<<+/T (Line13899[0])+/Kids [+<<+/T (Line_13899_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line13000[0])+/Kids [+<<+/T (Line_13000_Amount[0])+/V ()+>> +<<+/T (Line_13000_Specify[0])+/V ()+>>]+>> +<<+/T (Line11905[0])+/Kids [+<<+/T (Line_11905_Amount[0])+/V ()+>>]+>> +<<+/T (Line12200[0])+/Kids [+<<+/T (Line_12200_Amount[0])+/V ()+>>]+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Line_11700_Amount[0])+/V ()+>>]+>> +<<+/T (Line10105[0])+/Kids [+<<+/T (Line_10105_Amount[0])+/V ()+>>]+>> +<<+/T (Line10120[0])+/Kids [+<<+/T (Line_10120_Amount[0])+/V ()+>>]+>> +<<+/T (Line12500[0])+/Kids [+<<+/T (Line_12500_Amount[0])+/V ()+>>]+>>]+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (Return-pg1[0])+/Kids [+<<+/T (Identification[0])+/Kids [+<<+/T (EmailAddress[0])+/V ()+>> +<<+/T (DateDeath_Comb_BordersAll[0])+/Kids [+<<+/T (DateDeath_Comb[0])+/V ()+>>]+>> +<<+/T (PostalCode_Comb_BordersAll[0])+/Kids [+<<+/T (PostalCode[0])+/V ()+>>]+>> +<<+/T (Your_Language[0])+/Kids [+<<+/T (RadioButtonlanguaget[0])+/V /+>>]+>> +<<+/T (ID_City[0])+/V ()+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (ID_LastName[0])+/V ()+>> +<<+/T (DateBirth_Comb_BordersAll[0])+/Kids [+<<+/T (DateBirth_Comb[0])+/V ()+>>]+>> +<<+/T (ID_FirstNameInitial[0])+/V ()+>> +<<+/T (ID_MailingAddress[0])+/V ()+>> +<<+/T (MaritalStatus_Checkbox[0])+/Kids [+<<+/T (MaritalStatus[2])+/V /+>> +<<+/T (MaritalStatus[1])+/V /+>> +<<+/T (MaritalStatus[0])+/V /+>> +<<+/T (MaritalStatus[5])+/V /+>> +<<+/T (MaritalStatus[4])+/V /+>> +<<+/T (MaritalStatus[3])+/V /+>>]+>> +<<+/T (ID_RuralRoute[0])+/V ()+>> +<<+/T (ID_POBox[0])+/V ()+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Residence_Info[0])+/Kids [+<<+/T (Prov_DropDown-Business[0])+/V ()+>> +<<+/T (Prov_DropDown-Residence[0])+/V ()+>> +<<+/T (Date_Departure[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Date_Entry[0])+/Kids [+<<+/T (DateMMDD_Comb_BordersAll_Std[0])+/Kids [+<<+/T (DateMMDD_Comb[0])+/V ()+>>]+>>]+>> +<<+/T (Prov_DropDown[0])+/V ()+>>]+>> +<<+/T (Info_Spouse_CLP[0])+/Kids [+<<+/T (Line23600[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Self-employment[0])+/Kids [+<<+/T (Checkbox[0])+/V /+>>]+>> +<<+/T (Spouse_First_Name[0])+/V ()+>> +<<+/T (Line11700[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (SIN_Comb_BordersAll[0])+/Kids [+<<+/T (SIN_Comb[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (#pageSet[0])+/Kids [+<<+/T (Page1[2])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[1])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[0])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[6])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[5])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[4])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[3])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>> +<<+/T (Page1[7])+/Kids [+<<+/T (ClearData_EN[0])+/V /+>>]+>>]+>> +<<+/T (Page5[0])+/Kids [+<<+/T (Return-pg5[0])+/Kids [+<<+/T (Step4[0])+/Kids [+<<+/T (Line25500[0])+/Kids [+<<+/T (Line_25500_Amount[0])+/V ()+>>]+>> +<<+/T (Line24900[0])+/Kids [+<<+/T (Line_24900_Amount[0])+/V ()+>>]+>> +<<+/T (Line24400[0])+/Kids [+<<+/T (Line_24400_Amount[0])+/V ()+>>]+>> +<<+/T (Line25200[0])+/Kids [+<<+/T (Line_25200_Amount[0])+/V ()+>>]+>> +<<+/T (Line25600[0])+/Kids [+<<+/T (Line_25600_Specify[0])+/V ()+>> +<<+/T (Line_25600_Amount[0])+/V ()+>>]+>> +<<+/T (Line25100[0])+/Kids [+<<+/T (Line_25100_Amount[0])+/V ()+>>]+>> +<<+/T (Line26000[0])+/Kids [+<<+/T (Line_26000_Amount[0])+/V ()+>>]+>> +<<+/T (Line57[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line25700[0])+/Kids [+<<+/T (Line_25700_Amount2[0])+/V ()+>> +<<+/T (Line_25700_Amount1[0])+/V ()+>>]+>> +<<+/T (Line25300[0])+/Kids [+<<+/T (Line_25300_Amount[0])+/V ()+>>]+>> +<<+/T (Line25000[0])+/Kids [+<<+/T (Line_25000_Amount[0])+/V ()+>>]+>> +<<+/T (Line25400[0])+/Kids [+<<+/T (Line_25400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartB[0])+/Kids [+<<+/T (Line30100[0])+/Kids [+<<+/T (Line_30100_Amount[0])+/V ()+>>]+>> +<<+/T (Line30400[0])+/Kids [+<<+/T (Line_30400_Amount[0])+/V ()+>>]+>> +<<+/T (Line30300[0])+/Kids [+<<+/T (Line_30300_Amount[0])+/V ()+>>]+>> +<<+/T (Line30425[0])+/Kids [+<<+/T (Line_30425_Amount[0])+/V ()+>>]+>> +<<+/T (Line30450[0])+/Kids [+<<+/T (Line_30450_Amount[0])+/V ()+>>]+>> +<<+/T (Line30500[0])+/Kids [+<<+/T (Line_30500_Amount[0])+/V ()+>> +<<+/T (Line30499[0])+/Kids [+<<+/T (Line_30499_ChildrenNum[0])+/V ()+>>]+>>]+>> +<<+/T (Line83[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line30000[0])+/Kids [+<<+/T (Line_30000_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartA[0])+/Kids [+<<+/T (Column3[0])+/Kids [+<<+/T (Line42Amount3[0])+/V ()+>> +<<+/T (Line37Amount3[0])+/V ( 106,717.00)+>> +<<+/T (Line39Rate3[0])+/V (26%)+>> +<<+/T (Line41Amount3[0])+/V ( 18,942.24)+>> +<<+/T (Line36Amount3[0])+/V ()+>> +<<+/T (Line40Amount3[0])+/V ()+>> +<<+/T (Line38Amount3[0])+/V ()+>>]+>> +<<+/T (Column5[0])+/Kids [+<<+/T (Line41Amount5[0])+/V ( 54,578.67)+>> +<<+/T (Line36Amount5[0])+/V ()+>> +<<+/T (Line37Amount5[0])+/V ( 235,675.00)+>> +<<+/T (Line39Rate5[0])+/V (33%)+>> +<<+/T (Line40Amount5[0])+/V ()+>> +<<+/T (Line42Amount5[0])+/V ()+>> +<<+/T (Line38Amount5[0])+/V ()+>>]+>> +<<+/T (Column4[0])+/Kids [+<<+/T (Line36Amount4[0])+/V ()+>> +<<+/T (Line37Amount4[0])+/V ( 165,430.00)+>> +<<+/T (Line39Rate4[0])+/V (29%)+>> +<<+/T (Line41Amount4[0])+/V ( 34,207.62)+>> +<<+/T (Line40Amount4[0])+/V ()+>> +<<+/T (Line42Amount4[0])+/V ()+>> +<<+/T (Line38Amount4[0])+/V ()+>>]+>> +<<+/T (Column2[0])+/Kids [+<<+/T (Line37Amount2[0])+/V ( 53,359.00)+>> +<<+/T (Line41Amount2[0])+/V ( 8,003.85)+>> +<<+/T (Line36Amount2[0])+/V ()+>> +<<+/T (Line40Amount2[0])+/V ()+>> +<<+/T (Line39Rate2[0])+/V (20.5%)+>> +<<+/T (Line38Amount2[0])+/V ()+>> +<<+/T (Line42Amount2[0])+/V ()+>>]+>> +<<+/T (Column1[0])+/Kids [+<<+/T (Line38Amount1[0])+/V ()+>> +<<+/T (Line37Amount1[0])+/V ( 0.00)+>> +<<+/T (Line36Amount1[0])+/V ()+>> +<<+/T (Line39Rate1[0])+/V (15%)+>> +<<+/T (Line40Amount1[0])+/V ()+>> +<<+/T (Line41Amount1[0])+/V ( 0.00)+>> +<<+/T (Line42Amount1[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page4[0])+/Kids [+<<+/T (Return-pg4[0])+/Kids [+<<+/T (Line23400[0])+/Kids [+<<+/T (Line_23400_Amount[0])+/V ()+>>]+>> +<<+/T (Line22000[0])+/Kids [+<<+/T (Line21999[0])+/Kids [+<<+/T (Line_21999_Amount[0])+/V ()+>>]+>> +<<+/T (Line_22000_Amount[0])+/V ()+>>]+>> +<<+/T (Line23100[0])+/Kids [+<<+/T (Line_23100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22900[0])+/Kids [+<<+/T (Line_22900_Amount[0])+/V ()+>>]+>> +<<+/T (Line23200[0])+/Kids [+<<+/T (Line_23200_Amount[0])+/V ()+>> +<<+/T (Line_23200_Specify[0])+/V ()+>>]+>> +<<+/T (Line23500[0])+/Kids [+<<+/T (Line_23500_Amount[0])+/V ()+>>]+>> +<<+/T (Line21500[0])+/Kids [+<<+/T (Line_21500_Amount[0])+/V ()+>>]+>> +<<+/T (Line20700[0])+/Kids [+<<+/T (Line_20700_Amount[0])+/V ()+>>]+>> +<<+/T (Line21200[0])+/Kids [+<<+/T (Line_21200_Amount[0])+/V ()+>>]+>> +<<+/T (Line21000[0])+/Kids [+<<+/T (Line_21000_Amount[0])+/V ()+>>]+>> +<<+/T (Line21900[0])+/Kids [+<<+/T (Line_21900_Amount[0])+/V ()+>>]+>> +<<+/T (Line34[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line22400[0])+/Kids [+<<+/T (Line_22400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20800[0])+/Kids [+<<+/T (Line_20800_Amount[0])+/V ()+>>]+>> +<<+/T (Line22100[0])+/Kids [+<<+/T (Line_22100_Amount[0])+/V ()+>>]+>> +<<+/T (Line22215[0])+/Kids [+<<+/T (Line_22215_Amount[0])+/V ()+>>]+>> +<<+/T (Line21300[0])+/Kids [+<<+/T (Line_21300_Amount[0])+/V ()+>>]+>> +<<+/T (Line22200[0])+/Kids [+<<+/T (Line_22200_Amount[0])+/V ()+>>]+>> +<<+/T (Line20810[0])+/Kids [+<<+/T (Line_20810_Amount[0])+/V ()+>>]+>> +<<+/T (Line23600[0])+/Kids [+<<+/T (Line_23600_Amount[0])+/V ()+>>]+>> +<<+/T (Line20805[0])+/Kids [+<<+/T (Line_20805_Amount[0])+/V ()+>>]+>> +<<+/T (Line21400[0])+/Kids [+<<+/T (Line_21400_Amount[0])+/V ()+>>]+>> +<<+/T (Line20600[0])+/Kids [+<<+/T (Line_20600_Amount[0])+/V ()+>>]+>> +<<+/T (Line23300[0])+/Kids [+<<+/T (Line_23300_Amount2[0])+/V ()+>> +<<+/T (Line_23300_Amount1[0])+/V ()+>>]+>> +<<+/T (Line21700[0])+/Kids [+<<+/T (Line_21700_Amount[0])+/V ()+>> +<<+/T (Line21699[0])+/Kids [+<<+/T (Line_21699_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page7[0])+/Kids [+<<+/T (Return-pg7[0])+/Kids [+<<+/T (Step6[0])+/Kids [+<<+/T (Line42200[0])+/Kids [+<<+/T (Line_42200_Amount[0])+/V ()+>>]+>> +<<+/T (Line43500[0])+/Kids [+<<+/T (Line_43500_Amount[0])+/V ()+>>]+>> +<<+/T (Line42120[0])+/Kids [+<<+/T (Line_42120_Amount[0])+/V ()+>>]+>> +<<+/T (Line42800[0])+/Kids [+<<+/T (Line_42800_Amount[0])+/V ()+>>]+>> +<<+/T (Line42100[0])+/Kids [+<<+/T (Line_42100_Amount[0])+/V ()+>>]+>> +<<+/T (Line14[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>>]+>> +<<+/T (PartC[0])+/Kids [+<<+/T (Line40600[0])+/Kids [+<<+/T (Line_40600_Amount[0])+/V ()+>>]+>> +<<+/T (Line41000[0])+/Kids [+<<+/T (Line_41000_Amount[0])+/V ()+>> +<<+/T (Line40900[0])+/Kids [+<<+/T (Line_40900_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line118[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line124[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line121[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line127[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40427[0])+/Kids [+<<+/T (Line_40427_Amount[0])+/V ()+>>]+>> +<<+/T (Line126[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41600[0])+/Kids [+<<+/T (Line_41600_Amount1[0])+/V ()+>> +<<+/T (Line_41600_Amount2[0])+/V ()+>>]+>> +<<+/T (Line129[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line42900[0])+/Kids [+<<+/T (Line_42900_Amount[0])+/V ()+>>]+>> +<<+/T (Line40500[0])+/Kids [+<<+/T (Line_40500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41200[0])+/Kids [+<<+/T (Line_41200_Amount[0])+/V ()+>>]+>> +<<+/T (Line41800[0])+/Kids [+<<+/T (Line_41800_Amount[0])+/V ()+>>]+>> +<<+/T (Line131[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line40424[0])+/Kids [+<<+/T (Line_40424_Amount[0])+/V ()+>>]+>> +<<+/T (Line40425[0])+/Kids [+<<+/T (Line_40425_Amount[0])+/V ()+>>]+>> +<<+/T (Line132[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line130[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line41500[0])+/Kids [+<<+/T (Line_41500_Amount[0])+/V ()+>>]+>> +<<+/T (Line41400[0])+/Kids [+<<+/T (Line_41400_Amount[0])+/V ()+>> +<<+/T (Line41300[0])+/Kids [+<<+/T (Line_41300_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line42000[0])+/Kids [+<<+/T (Line_42000_Amount[0])+/V ()+>>]+>> +<<+/T (Line40400[0])+/Kids [+<<+/T (Line_40400_Amount[0])+/V ()+>>]+>> +<<+/T (Line41700[0])+/Kids [+<<+/T (Line_41700_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page6[0])+/Kids [+<<+/T (Return-pg6[0])+/Kids [+<<+/T (PartB[0])+/Kids [+<<+/T (Line31240[0])+/Kids [+<<+/T (Line_31240_Amount[0])+/V ()+>>]+>> +<<+/T (Line98[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line32300[0])+/Kids [+<<+/T (Line_32300_Amount[0])+/V ()+>>]+>> +<<+/T (Line96[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31217[0])+/Kids [+<<+/T (Line_31217_Amount[0])+/V ()+>>]+>> +<<+/T (Line32600[0])+/Kids [+<<+/T (Line_32600_Amount[0])+/V ()+>>]+>> +<<+/T (Line35000[0])+/Kids [+<<+/T (Line_35000_Amount[0])+/V ()+>>]+>> +<<+/T (Line110[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line108[0])+/Kids [+<<+/T (Amount2[0])+/V ()+>> +<<+/T (Amount1[0])+/V ()+>>]+>> +<<+/T (Line31800[0])+/Kids [+<<+/T (Line_31800_Amount[0])+/V ()+>>]+>> +<<+/T (Line106[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33099[0])+/Kids [+<<+/T (Line_33099_Amount[0])+/V ()+>>]+>> +<<+/T (Line114[0])+/Kids [+<<+/T (Percent[0])+/V (15%)+>>]+>> +<<+/T (Line84[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line33500[0])+/Kids [+<<+/T (Line_33500_Amount[0])+/V ()+>>]+>> +<<+/T (Line33800[0])+/Kids [+<<+/T (Line_33800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31200[0])+/Kids [+<<+/T (Line_31200_Amount[0])+/V ()+>>]+>> +<<+/T (Line34900[0])+/Kids [+<<+/T (Line_34900_Amount[0])+/V ()+>>]+>> +<<+/T (Line31000[0])+/Kids [+<<+/T (Line_31000_Amount[0])+/V ()+>>]+>> +<<+/T (Line31600[0])+/Kids [+<<+/T (Line_31600_Amount[0])+/V ()+>>]+>> +<<+/T (Line31350[0])+/Kids [+<<+/T (Line_31350_Amount[0])+/V ()+>>]+>> +<<+/T (Line31900[0])+/Kids [+<<+/T (Line_31900_Amount[0])+/V ()+>>]+>> +<<+/T (Line32400[0])+/Kids [+<<+/T (Line_32400_Amount[0])+/V ()+>>]+>> +<<+/T (Line33199[0])+/Kids [+<<+/T (Line_33199_Amount[0])+/V ()+>>]+>> +<<+/T (Line101[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31260[0])+/Kids [+<<+/T (Line_31260_Amount[0])+/V ()+>>]+>> +<<+/T (Line33200[0])+/Kids [+<<+/T (Line_33200_Amount2[0])+/V ()+>> +<<+/T (Line_33200_Amount1[0])+/V ()+>>]+>> +<<+/T (Line30800[0])+/Kids [+<<+/T (Line_30800_Amount[0])+/V ()+>>]+>> +<<+/T (Line31285[0])+/Kids [+<<+/T (Line_31285_Amount[0])+/V ()+>>]+>> +<<+/T (Line31300[0])+/Kids [+<<+/T (Line_31300_Amount[0])+/V ()+>>]+>> +<<+/T (Line109[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line31270[0])+/Kids [+<<+/T (Line_31270_Amount[0])+/V ()+>>]+>> +<<+/T (Line31220[0])+/Kids [+<<+/T (Line_31220_Amount[0])+/V ()+>>]+>> +<<+/T (Line31400[0])+/Kids [+<<+/T (Line_31400_Amount[0])+/V ()+>>]+>>]+>>]+>>]+>> +<<+/T (Page8[0])+/Kids [+<<+/T (Return-pg8[0])+/Kids [+<<+/T (Refund_or_Balance-Owing[0])+/Kids [+<<+/T (Line48500[0])+/Kids [+<<+/T (Line_48500_Amount[0])+/V ()+>>]+>> +<<+/T (Line48400[0])+/Kids [+<<+/T (Line_48400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Step6-Cont[0])+/Kids [+<<+/T (Line44800[0])+/Kids [+<<+/T (Line_44800_Amount[0])+/V ()+>>]+>> +<<+/T (Line45355[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line46900[0])+/Kids [+<<+/T (Line_46900_Amount[0])+/V ()+>> +<<+/T (Line46800[0])+/Kids [+<<+/T (Line_46800_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Line47600[0])+/Kids [+<<+/T (Line_47600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45200[0])+/Kids [+<<+/T (Line_45200_Amount[0])+/V ()+>>]+>> +<<+/T (Line45600[0])+/Kids [+<<+/T (Line_45600_Amount[0])+/V ()+>>]+>> +<<+/T (Line45350[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45300[0])+/Kids [+<<+/T (Line_45300_Amount[0])+/V ()+>>]+>> +<<+/T (Line45000[0])+/Kids [+<<+/T (Line_45000_Amount[0])+/V ()+>>]+>> +<<+/T (Line47900[0])+/Kids [+<<+/T (Line_47900_Amount[0])+/V ()+>>]+>> +<<+/T (Line47557[0])+/Kids [+<<+/T (Line_47557_Amount[0])+/V ()+>>]+>> +<<+/T (Line47556[0])+/Kids [+<<+/T (Line_47556_Amount[0])+/V ()+>>]+>> +<<+/T (Line47555[0])+/Kids [+<<+/T (Line_47555_Amount[0])+/V ()+>>]+>> +<<+/T (Line167[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line43700[0])+/Kids [+<<+/T (Line_43700_Amount[0])+/V ()+>>]+>> +<<+/T (Line148[0])+/Kids [+<<+/T (Amount[0])+/V ()+>>]+>> +<<+/T (Line48200[0])+/Kids [+<<+/T (Line_48200_Amount1[0])+/V ()+>> +<<+/T (Line_48200_Amount2[0])+/V ()+>>]+>> +<<+/T (Line45700[0])+/Kids [+<<+/T (Line_45700_Amount[0])+/V ()+>>]+>> +<<+/T (Line44000[0])+/Kids [+<<+/T (Line_44000_Amount[0])+/V ()+>>]+>> +<<+/T (Line45400[0])+/Kids [+<<+/T (Line_45400_Amount[0])+/V ()+>>]+>>]+>> +<<+/T (Certification[0])+/Kids [+<<+/T (Date[0])+/V ()+>> +<<+/T (Telephone[0])+/V ()+>>]+>> +<<+/T (Efile[0])+/Kids [+<<+/T (Line48900[0])+/Kids [+<<+/T (EFile[0])+/V ()+>>]+>> +<<+/T (TelephoneOfPreparer[0])+/V ()+>> +<<+/T (NameOfPreparer[0])+/V ()+>> +<<+/T (Line49000[0])+/Kids [+<<+/T (Line49000_CheckBoxGroup[0])+/Kids [+<<+/T (Line49000_CheckBox_EN[0])+/V /+>> +<<+/T (Line49000_CheckBox_EN[1])+/V /+>>]+>>]+>>]+>>]+>>]+>>]+>>]+>>+>>+endobj++trailer++<<+/Root 1 0 R+>>+%%EOF
binary file changed (absent → 520329 bytes)
binary file changed (absent → 530250 bytes)
binary file changed (absent → 534534 bytes)
binary file changed (absent → 590478 bytes)
binary file changed (absent → 543197 bytes)
binary file changed (absent → 534306 bytes)
binary file changed (absent → 538840 bytes)
binary file changed (absent → 525425 bytes)
binary file changed (absent → 523327 bytes)
@@ -1,41 +1,27 @@-{-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE ImportQualifiedPost #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE NoFieldSelectors #-}-{-# LANGUAGE OverloadedRecordDot #-} -module Tax.Canada (T1, ON428, fixOntarioReturns, fixT1, fixON428, t1Fields, on428Fields) where+module Tax.Canada (completeForms) where -import Tax.Canada.T1.Types qualified as T1-import Tax.Canada.T1.Types (T1 (T1, page7), Page7(Page7, step6_RefundOrBalanceOwing))-import Tax.Canada.T1.Fix (fixT1)-import Tax.Canada.T1.FieldNames (t1Fields)-import Tax.Canada.ON428.Types qualified as ON hiding (Page1(..))-import Tax.Canada.ON428.Types (ON428 (ON428, page1, page2),- Page1(Page1, line1, partB))-import Tax.Canada.ON428.Fix (fixON428)-import Tax.Canada.ON428.FieldNames (on428Fields)-import Tax.Util (fixEq)+import Data.CAProvinceCodes qualified as Province+import Data.Functor.Const (Const)+import Data.Functor.Product (Product (Pair))+import Data.Kind (Type) -fixOntarioReturns :: (T1 Maybe, ON428 Maybe) -> (T1 Maybe, ON428 Maybe)-fixOntarioReturns =- fixEq $ \(t1@T1{page7 = page7@Page7{step6_RefundOrBalanceOwing}},- on428@ON428{page1 = page1@Page1{partB},- page2 = page2@ON.Page2{ON.partB = partB2@ON.Page2PartB{ON.medicalExpenses},- ON.partC}})- -> (fixT1 t1{page7 =- page7{step6_RefundOrBalanceOwing =- step6_RefundOrBalanceOwing{T1.line_42800_ProvTerrTax = on428.page4.line90}}},- fixON428 on428{page1 =- page1{line1 = t1.page5.step4_TaxableIncome.line_26000_TaxableIncome,- partB = partB{ON.line12_spouseIncome = t1.page1.spouse.line23600,- ON.line19_cppQpp = t1.page6.line30800,- ON.line20_cppQpp = t1.page6.line31000,- ON.line21_employmentInsurance = t1.page6.line31200,- ON.line22_employmentInsurance = t1.page6.line31217}},- page2 =- page2{ON.partB = partB2{ON.line32_interest = t1.page6.line31900,- ON.medicalExpenses =- medicalExpenses{ON.line37_income =- t1.page4.line_23600_NetIncome}},- ON.partC = partC{ON.line59_copy = t1.page7.partC_NetFederalTax.line40427}}})+import Tax.Canada.Federal qualified as Federal+import Tax.Canada.Federal (fixFederalForms)+import Tax.Canada.Province.AB qualified as AB+import Tax.Canada.Province.BC qualified as BC+import Tax.Canada.Province.MB qualified as MB+import Tax.Canada.Province.ON qualified as ON+import Tax.Canada.T1 (T1, fixT1, t1FieldsForProvince)+import Tax.FDF (FDFs)+import Tax.FDF qualified as FDF++-- | Complete all FDF forms in the given map, keyed by identifiers (@T1@, @428@, @Schedule9@, etc). The inter-form+-- field references are resolved as well.+completeForms :: Province.Code -> FDFs -> Either String FDFs+completeForms Province.AB = FDF.mapForms AB.returnFields AB.fixReturns+completeForms Province.BC = FDF.mapForms BC.returnFields BC.fixReturns+completeForms Province.MB = FDF.mapForms MB.returnFields MB.fixReturns+completeForms Province.ON = FDF.mapForms ON.returnFields ON.fixReturns+completeForms p = FDF.mapForms (Federal.formFieldsForProvince p) fixFederalForms
@@ -0,0 +1,82 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++-- | The federal income tax forms++module Tax.Canada.Federal (Forms(..), fixFederalForms, formFieldsForProvince) where++import Control.Applicative ((<|>))+import Data.CAProvinceCodes qualified as Province+import Data.Fixed (Centi)+import Data.Text (Text)+import Data.Time (Day)+import Rank2 qualified+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Federal.Schedule6 qualified as Schedule6+import Tax.Canada.Federal.Schedule6 (Schedule6, fixSchedule6, schedule6Fields)+import Tax.Canada.Federal.Schedule7 qualified+import Tax.Canada.Federal.Schedule7 (Schedule7, fixSchedule7, schedule7Fields)+import Tax.Canada.Federal.Schedule9 (Schedule9(line23_sum), fixSchedule9, schedule9Fields)+import Tax.Canada.Federal.Schedule11 (Schedule11(page1), Page1(line5_trainingClaim, line17_sum), fixSchedule11, schedule11Fields)+import Tax.Canada.T1 (fixT1, t1FieldsForProvince)+import Tax.Canada.T1.Types (T1(page4, page6, page8),+ Page4(line_20800_RRSPDeduction), Page6(line32300, line34900), Page8(step6_RefundOrBalanceOwing),+ Page8Step6(line_45300_CWB, line_45350_CTC), LanguageOfCorrespondence, MaritalStatus)+import Tax.FDF (Entry (Amount), FieldConst (Field), within)+import Tax.Util (fixEq)++-- | All supported federal forms+data Forms line = Forms{+ t1 :: T1 line,+ schedule6 :: Schedule6 line,+ schedule7 :: Schedule7 line,+ schedule9 :: Schedule9 line,+ schedule11 :: Schedule11 line}++deriving instance (Show (line Bool), Show (line Centi), Show (line Word), Show (line Text),+ Show (line Rational), Show (line Province.Code), Show (line Day),+ Show (line LanguageOfCorrespondence), Show (line MaritalStatus))+ => Show (Forms line)+deriving instance (Eq (line Bool), Eq (line Centi), Eq (line Word), Eq (line Text),+ Eq (line Rational), Eq (line Province.Code), Eq (line Day),+ Eq (line LanguageOfCorrespondence), Eq (line MaritalStatus))+ => Eq (Forms line)++Rank2.TH.deriveAll ''Forms+Transformation.Shallow.TH.deriveAll ''Forms++-- | Complete all the federal forms, also handling the inter-form field references.+fixFederalForms :: Forms Maybe -> Forms Maybe+fixFederalForms = fixEq $ \Forms{t1, schedule6, schedule7, schedule9, schedule11}-> Forms{+ t1 = fixT1 t1{page4 = t1.page4{line_20800_RRSPDeduction = schedule7.page3.partC.line20_deduction},+ page6 = t1.page6{line32300 = schedule11.page1.line17_sum, line34900 = schedule9.line23_sum},+ page8 = t1.page8{step6_RefundOrBalanceOwing =+ t1.page8.step6_RefundOrBalanceOwing{line_45300_CWB = schedule6.page4.step3.line42_sum <|>+ schedule6.page4.step2.line28_difference,+ line_45350_CTC = schedule11.page1.line5_trainingClaim}}},+ schedule6 = fixSchedule6 Nothing t1 schedule6,+ schedule7 = fixSchedule7 t1 schedule7,+ schedule9 = fixSchedule9 t1 schedule9,+ schedule11 = fixSchedule11 t1 schedule11}++-- | The paths of all the fields in all federal forms, with the form key added as the head of every field path.+formFieldsForProvince :: Province.Code -> Forms FieldConst+formFieldsForProvince p = Forms{+ t1 = within "T1" Rank2.<$> t1FieldsForProvince p,+ schedule6 = within "Schedule6" Rank2.<$> schedule6Fields,+ schedule7 = within "Schedule7" Rank2.<$> schedule7Fields,+ schedule9 = within "Schedule9" Rank2.<$> schedule9Fields,+ schedule11 = within "Schedule11" Rank2.<$> schedule11Fields}
@@ -0,0 +1,150 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Federal.Schedule11 where++import Data.Fixed (Centi)+import Data.Text (Text)+import Language.Haskell.TH qualified as TH+import Rank2 qualified+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Shared (SubCalculation(result), fixSubCalculation, subCalculationFields)+import Tax.Canada.T1.Types (T1)+import Tax.Canada.T1.Types qualified+import Tax.FDF (Entry (Amount, Checkbox, Count), FieldConst (Field), within)+import Tax.Util (fixEq, fractionOf, difference, nonNegativeDifference, totalOf)++data Schedule11 line = Schedule11{+ page1 :: Page1 line,+ page2 :: Page2 line}++data Page1 line = Page1{+ line_32000_tuition :: line Centi,+ line2_copy :: line Centi,+ line2_fraction :: line Centi,+ line3_limit :: line Centi,+ line4_min :: line Centi,+ line5_trainingClaim :: line Centi,+ line6_difference :: line Centi,+ line_32001_eligible :: line Centi,+ line8_sum :: line Centi,+ line9_pastUnused :: line Centi,+ line10_sum :: line Centi,+ line11_copy :: line Centi,+ line11_numerator :: line Centi,+ line12_copy :: line Centi,+ line13_difference :: line Centi,+ line14_minUnused :: SubCalculation line,+ line15_difference :: line Centi,+ line16_min :: line Centi,+ line17_sum :: line Centi}++data Page2 line = Page2{+ line_32005_diability :: line Bool,+ line_32010_partTimeMonths :: line Word,+ line_32020_fullTimeMonths :: line Word,+ line18_copy :: line Centi,+ line19_copy :: line Centi,+ line20_difference :: line Centi,+ line21_copy :: line Centi,+ line22_copy :: line Centi,+ line23_difference :: line Centi,+ line24_transferred :: line Centi,+ line25_difference :: line Centi}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Bool), Show (line Centi),+ Show (line Rational), Show (line Word)) => Show ($(TH.conT t) line)+ deriving instance (Eq (line Bool), Eq (line Centi),+ Eq (line Rational), Eq (line Word)) => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''Schedule11, ''Page1, ''Page2])++fixSchedule11 :: T1 Maybe -> Schedule11 Maybe -> Schedule11 Maybe+fixSchedule11 t1 = fixEq $ \Schedule11{page1 = page1@Page1{..}, page2 = page2@Page2{..}} -> Schedule11{+ page1 = page1{+ line2_copy = line_32000_tuition,+ line2_fraction = (0.5 *) <$> line2_copy,+ line4_min = minimum [line2_fraction, line3_limit],+ line6_difference = difference line_32000_tuition line5_trainingClaim,+ line8_sum = totalOf [line6_difference, line_32001_eligible],+ line10_sum = totalOf [line9_pastUnused, line8_sum],+ line11_copy = if taxableIncomeUnderThreshold then Nothing else t1.page7.partC_NetFederalTax.line116,+ line11_numerator = if taxableIncomeUnderThreshold then taxableIncome else (/ 0.15) <$> line11_copy,+ line12_copy = t1.page6.line99,+ line13_difference = nonNegativeDifference line11_numerator line12_copy,+ line14_minUnused = fixSubCalculation $ minimum [line9_pastUnused, line13_difference],+ line15_difference = difference line13_difference line14_minUnused.result,+ line16_min = minimum [line8_sum, line15_difference],+ line17_sum = totalOf [line14_minUnused.result, line16_min]},+ page2 = page2{+ line18_copy = line10_sum,+ line19_copy = line17_sum,+ line20_difference = difference line18_copy line19_copy,+ line21_copy = min 5000 <$> line8_sum,+ line22_copy = line16_min,+ line23_difference = nonNegativeDifference line21_copy line22_copy,+ line25_difference = nonNegativeDifference line20_difference line24_transferred}}+ where taxableIncome = t1.page5.step4_TaxableIncome.line_26000_TaxableIncome+ taxableIncomeUnderThreshold = taxableIncome <= Just 50_197++schedule11Fields :: Schedule11 FieldConst+schedule11Fields = within "form1" Rank2.<$> Schedule11 {+ page1 = page1Fields,+ page2 = page2Fields}++page1Fields :: Page1 FieldConst+page1Fields = within "Page1" . within "YourTuition" Rank2.<$> Page1 {+ line_32000_tuition = Field ["Line1", "Amount2"] Amount,+ line2_copy = Field ["Line2", "Amount1"] Amount,+ line2_fraction = Field ["Line2", "Amount2"] Amount,+ line3_limit = Field ["Line3", "Amount4"] Amount,+ line4_min = Field ["Line4", "Amount5"] Amount,+ line5_trainingClaim = Field ["Line5", "Amount6"] Amount,+ line6_difference = Field ["Line6", "Amount7"] Amount,+ line_32001_eligible = Field ["Line7", "Amount8"] Amount,+ line8_sum = Field ["Line8", "Amount1"] Amount,+ line9_pastUnused = Field ["Line9", "Amount1"] Amount,+ line10_sum = Field ["Line10", "Amount10"] Amount,+ line11_copy = Field ["Line11", "Line11", "Amount11"] Amount,+ line11_numerator = Field ["Line11", "Amount11"] Amount,+ line12_copy = Field ["Line12", "Amount12"] Amount,+ line13_difference = Field ["Line13", "Amount13"] Amount,+ line14_minUnused = subCalculationFields "Line14" ["Amount1"] ["Amount14"],+ line15_difference = Field ["Line15", "Amount15"] Amount,+ line16_min = Field ["Line16", "Amount16"] Amount,+ line17_sum = Field ["Line17", "Amount17"] Amount}++page2Fields :: Page2 FieldConst+page2Fields = within "Page2" Rank2.<$> Page2 {+ line_32005_diability = Field ["Enrolment", "Line32005", "CheckBox"] Checkbox,+ line_32010_partTimeMonths = Field ["Enrolment", "Line32010", "parttime_Months"] Count,+ line_32020_fullTimeMonths = Field ["Enrolment", "Line32020", "Fulltime_Months"] Count,+ line18_copy = Field ["Transfer_CF", "Line18", "Amount18"] Amount,+ line19_copy = Field ["Transfer_CF", "Line19", "Amount19"] Amount,+ line20_difference = Field ["Transfer_CF", "Line20", "Amount20"] Amount,+ line21_copy = Field ["Transfer_CF", "Line21", "Amount21"] Amount,+ line22_copy = Field ["Transfer_CF", "Line22", "Amount22"] Amount,+ line23_difference = Field ["Transfer_CF", "Line23", "Amount22"] Amount,+ line24_transferred = Field ["Transfer_CF", "Line24", "Amount24"] Amount,+ line25_difference = Field ["Transfer_CF", "Line25", "Amount25"] Amount}
@@ -0,0 +1,254 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Federal.Schedule6 where++import Data.Fixed (Centi)+import Data.Text (Text)+import Language.Haskell.TH qualified as TH+import Rank2 qualified+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Shared (SubCalculation(SubCalculation, calculation, result), fixSubCalculation, subCalculationFields)+import Tax.Canada.T1.Types (T1)+import Tax.Canada.T1.Types qualified as T1+import Tax.FDF (Entry (Amount, Constant, Percent, Switch'), FieldConst (Field), within)+import Tax.Util (fixEq, fractionOf, difference, nonNegativeDifference, totalOf)++data Schedule6 line = Schedule6{+ page2 :: Page2 line,+ page3 :: Page3 line,+ page4 :: Page4 line}++data Page2 line = Page2{+ questions :: Questions line,+ partA_self :: PartAColumn line,+ partA_spouse :: PartAColumn line,+ line6_sum :: line Centi}++data Questions line = Questions{+ line_38100 :: line Bool,+ line_38101 :: line Bool,+ line_38102 :: line Bool,+ line_38103 :: line Bool,+ line_38104 :: line Bool,+ line_38105 :: line Bool}++data PartAColumn line = PartAColumn{+ line1_employmentIncome_copy :: line Centi,+ line_38106_grants_copy :: line Centi,+ line3_selfEmploymentIncome_sum :: line Centi,+ line_38107_exemptIncome :: line Centi,+ line_38108_sum :: line Centi}++data Page3 line = Page3{+ partB_self :: PartBColumn line,+ partB_spouse :: PartBColumn line,+ line13_sum :: line Centi,+ line14_least :: line Centi,+ line15_difference :: line Centi}++data PartBColumn line = PartBColumn{+ line7_netIncome_copy :: line Centi,+ line_38109_exempt :: line Centi,+ line9_uccbRdspRepayments :: line Centi,+ line10_sum :: line Centi,+ line11_uccbRdspIncome :: line Centi,+ line_38110_difference :: line Centi}++data Page4 line = Page4{+ step2 :: Step2 line,+ step3 :: Step3 line}++data Step2 line = Step2{+ line16_copy :: line Centi,+ line17_threshold :: line Centi,+ line18_difference :: line Centi,+ line19_rate :: line Rational,+ line20_fraction :: line Centi,+ line21_ceiling :: line Centi,+ line22_least :: line Centi,+ line23_copy :: line Centi,+ line24_threshold :: line Centi,+ line25_difference :: line Centi,+ line26_rate :: line Rational,+ line27_fraction :: SubCalculation line,+ line28_difference :: line Centi}++data Step3 line = Step3{+ line29_copy :: line Centi,+ line30_threshold :: line Centi,+ line31_difference :: line Centi,+ line32_rate :: line Rational,+ line33_fraction :: line Centi,+ line34_capped :: line Centi,+ line35_copy :: line Centi,+ line36_threshold :: line Centi,+ line37_difference :: line Centi,+ line38_rate :: line Rational,+ line39_fraction :: SubCalculation line,+ line40_difference :: line Centi,+ line41_copy :: line Centi,+ line42_sum :: line Centi}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Bool), Show (line Centi), Show (line Rational)) => Show ($(TH.conT t) line)+ deriving instance (Eq (line Bool), Eq (line Centi), Eq (line Rational)) => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''Schedule6, ''Page2, ''Page3, ''Page4, ''Questions, ''PartAColumn, ''PartBColumn, ''Step2, ''Step3])++fixSchedule6 :: Maybe (T1 Maybe) -> T1 Maybe -> Schedule6 Maybe -> Schedule6 Maybe+fixSchedule6 t1spouse t1 =+ fixEq $ \Schedule6{page2, page3, page4=Page4{step2, step3}} ->+ let eitherEligible = or page2.questions.line_38100 || or page2.questions.line_38101 in Schedule6{+ page2 = Page2{+ questions = page2.questions,+ partA_self = fixPartAColumn t1 page2.partA_self,+ partA_spouse = maybe id fixPartAColumn t1spouse page2.partA_spouse,+ line6_sum = totalOf [page2.partA_self.line_38108_sum, page2.partA_spouse.line_38108_sum]},+ page3 = let Page3{..} = page3 in Page3{+ partB_self = fixPartBColumn t1 partB_self,+ partB_spouse = maybe id fixPartBColumn t1spouse partB_spouse,+ line13_sum = totalOf [partB_self.line_38110_difference, partB_spouse.line_38110_difference],+ line14_least = min 15_239 <$>+ if or ((<) <$> page2.partA_self.line_38108_sum <*> page2.partA_spouse.line_38108_sum)+ then min page2.partA_self.line_38108_sum partB_self.line_38110_difference+ else min page2.partA_spouse.line_38108_sum partB_spouse.line_38110_difference,+ line15_difference = difference line13_sum line14_least},+ page4 = Page4{+ step2 = if all not page2.questions.line_38102 then Rank2.pure Nothing else let Step2{..} = step2 in step2{+ line16_copy = page2.line6_sum,+ line18_difference = nonNegativeDifference line16_copy line17_threshold,+ line20_fraction = line19_rate `fractionOf` line18_difference,+ line21_ceiling = if eitherEligible then Just 2_616 else Just 1_518,+ line22_least = min line20_fraction line21_ceiling,+ line23_copy = page3.line15_difference,+ line24_threshold = if eitherEligible then Just 28_494 else Just 24_975,+ line25_difference = nonNegativeDifference line23_copy line24_threshold,+ line27_fraction = fixSubCalculation $ line26_rate `fractionOf` line25_difference,+ line28_difference = nonNegativeDifference line22_least line27_fraction.result},+ step3 = if all not page2.questions.line_38103 then Rank2.pure Nothing else let Step3{..} = step3 in step3{+ line29_copy = page2.partA_self.line_38108_sum,+ line31_difference = nonNegativeDifference line29_copy line30_threshold,+ line33_fraction = line32_rate `fractionOf` line31_difference,+ line34_capped = min 784 <$> line33_fraction,+ line35_copy = page3.line15_difference,+ line36_threshold = if eitherEligible then Just 45_932 else Just 35_098,+ line37_difference = nonNegativeDifference line35_copy line36_threshold,+ line38_rate = if or page2.questions.line_38104 then Just 0.075 else Just 0.15,+ line39_fraction = fixSubCalculation $ line38_rate `fractionOf` line37_difference,+ line40_difference = nonNegativeDifference line34_capped line39_fraction.result,+ line41_copy = if or page2.questions.line_38102 then step2.line28_difference else Just 0,+ line42_sum = totalOf [line40_difference, line41_copy]}}}++fixPartAColumn :: T1 Maybe -> PartAColumn Maybe -> PartAColumn Maybe+fixPartAColumn t1 PartAColumn{..} = PartAColumn{+ line1_employmentIncome_copy =+ totalOf [t1.page3.line_10100_EmploymentIncome, t1.page3.line_10400_OtherEmploymentIncome],+ line_38106_grants_copy = t1.page3.line_13010_TaxableScholarship,+ line3_selfEmploymentIncome_sum =+ let T1.SelfEmploymentIncome{..} = t1.page3.selfEmployment+ in totalOf [line_13500_Amount, line_13700_Amount, line_13900_Amount, line_14100_Amount, line_14300_Amount],+ line_38107_exemptIncome = line_38107_exemptIncome,+ line_38108_sum = totalOf [line1_employmentIncome_copy, line_38106_grants_copy,+ line3_selfEmploymentIncome_sum, line_38107_exemptIncome]}++fixPartBColumn :: T1 Maybe -> PartBColumn Maybe -> PartBColumn Maybe+fixPartBColumn t1 column@PartBColumn{..} = column{+ line7_netIncome_copy = t1.page4.line_23600_NetIncome,+-- line9_uccbRdspRepayments = totalOf [t1.page4.line_21300_UCCBRepayment, t1.page4.line_23200],+ line10_sum = totalOf [line7_netIncome_copy, line_38109_exempt, line9_uccbRdspRepayments],+ line11_uccbRdspIncome = totalOf [t1.page3.line_11700_UCCB, t1.page3.line_12500_RDSP],+ line_38110_difference = nonNegativeDifference line10_sum line11_uccbRdspIncome}++schedule6Fields :: Schedule6 FieldConst+schedule6Fields = within "form1" Rank2.<$> Schedule6{+ page2 = within "Page2" Rank2.<$> Page2{+ questions = within "Step1_tickboxes" . within "Questions" Rank2.<$> Questions{+ line_38100 = Field ["Line38100", "Line38100_CheckBoxGroup"] $ Switch' "Line38100_CheckBox_EN",+ line_38101 = Field ["Line38101", "Line38101_CheckBoxGroup"] $ Switch' "Line38101_CheckBox_EN",+ line_38102 = Field ["Line38102", "Line38102_CheckBoxGroup"] $ Switch' "Line38102_CheckBox_EN",+ line_38103 = Field ["Line38103", "Line38103_CheckBoxGroup"] $ Switch' "Line38103_CheckBox_EN",+ line_38104 = Field ["Line38104", "Line38104_CheckBoxGroup"] $ Switch' "Line38104_CheckBox_EN",+ line_38105 = Field ["Line38105", "Line38105_CheckBoxGroup"] $ Switch' "Line38105_CheckBox_EN"},+ partA_self = within "PartA" . within "Chart" Rank2.<$> PartAColumn{+ line1_employmentIncome_copy = Field ["Line1", "Amount1", "Amount"] Amount,+ line_38106_grants_copy = Field ["Line2", "Amount1", "Amount"] Amount,+ line3_selfEmploymentIncome_sum = Field ["Line3", "Amount1", "Amount"] Amount,+ line_38107_exemptIncome = Field ["line4", "Amount1", "Amount"] Amount,+ line_38108_sum = Field ["Line5_Sub", "Amount1", "Amount"] Amount},+ partA_spouse = within "PartA" . within "Chart" Rank2.<$> PartAColumn{+ line1_employmentIncome_copy = Field ["Line1", "Amount2", "Amount"] Amount,+ line_38106_grants_copy = Field ["Line2", "Amount2", "Amount"] Amount,+ line3_selfEmploymentIncome_sum = Field ["Line3", "Amount2", "Amount"] Amount,+ line_38107_exemptIncome = Field ["line4", "Amount2", "Amount"] Amount,+ line_38108_sum = Field ["Line5_Sub", "Amount2", "Amount"] Amount},+ line6_sum = Field ["PartA", "Line6", "Amount"] Amount},+ page3 = within "Page3" . within "PartB" Rank2.<$> Page3{+ partB_self = within "Chart" Rank2.<$> PartBColumn{+ line7_netIncome_copy = Field ["Line7", "Amount1", "Amount"] Amount,+ line_38109_exempt = Field ["Line8", "Amount1", "Amount"] Amount,+ line9_uccbRdspRepayments = Field ["Line9", "Amount1", "Amount"] Amount,+ line10_sum = Field ["Line10", "Amount1", "Amount"] Amount,+ line11_uccbRdspIncome = Field ["Line11", "Amount1", "Amount"] Amount,+ line_38110_difference = Field ["Line12", "Amount1", "Amount"] Amount},+ partB_spouse = within "Chart" Rank2.<$> PartBColumn{+ line7_netIncome_copy = Field ["Line7", "Amount2", "Amount"] Amount,+ line_38109_exempt = Field ["Line8", "Amount2", "Amount"] Amount,+ line9_uccbRdspRepayments = Field ["Line9", "Amount2", "Amount"] Amount,+ line10_sum = Field ["Line10", "Amount2", "Amount"] Amount,+ line11_uccbRdspIncome = Field ["Line11", "Amount2", "Amount"] Amount,+ line_38110_difference = Field ["Line12", "Amount2", "Amount"] Amount},+ line13_sum = Field ["Line13", "Amount"] Amount,+ line14_least = Field ["Line14", "Amount"] Amount,+ line15_difference = Field ["Line15", "Amount"] Amount},+ page4 = within "Page4" Rank2.<$> Page4{+ step2 = within "Step2" Rank2.<$> Step2{+ line16_copy = Field ["Line16", "Amount"] Amount,+ line17_threshold = Field ["Line17", "Amount"] $ Constant 3_000 Amount,+ line18_difference = Field ["Line18", "Amount"] Amount,+ line19_rate = Field ["Line19", "Percent"] $ Constant 0.27 Percent,+ line20_fraction = Field ["Line20", "Amount"] Amount,+ line21_ceiling = Field ["Line21", "Amount"] Amount,+ line22_least = Field ["Line22", "Amount"] Amount,+ line23_copy = Field ["Line23", "Amount"] Amount,+ line24_threshold = Field ["Line24", "Amount"] Amount,+ line25_difference = Field ["Line25", "Amount"] Amount,+ line26_rate = Field ["Line26", "Percent"] $ Constant 0.15 Percent,+ line27_fraction = subCalculationFields "Line27" ["Amount1"] ["Amount2"],+ line28_difference = Field ["Line28", "Amount"] Amount},+ step3 = within "Step3" Rank2.<$> Step3{+ line29_copy = Field ["Line29", "Amount"] Amount,+ line30_threshold = Field ["Line30", "Amount"] $ Constant 1_150 Amount,+ line31_difference = Field ["Line31", "Amount"] Amount,+ line32_rate = Field ["Line32", "Percent"] $ Constant 0.27 Percent,+ line33_fraction = Field ["Line33", "Amount"] Amount,+ line34_capped = Field ["Line34", "Amount"] Amount,+ line35_copy = Field ["Line35", "Amount"] Amount,+ line36_threshold = Field ["Line36", "Amount"] Amount,+ line37_difference = Field ["Line37", "Amount"] Amount,+ line38_rate = Field ["Line38", "Percent"] Percent,+ line39_fraction = subCalculationFields "Line39" ["Amount1"] ["Amount2"],+ line40_difference = Field ["Line40", "Amount"] Amount,+ line41_copy = Field ["Line41", "Amount"] Amount,+ line42_sum = Field ["Line42", "Amount"] Amount}}}+
@@ -0,0 +1,157 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Federal.Schedule7 where++import Data.Fixed (Centi)+import Data.Text (Text)+import Language.Haskell.TH qualified as TH+import Rank2 qualified+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Shared (SubCalculation(SubCalculation, result), fixSubCalculation, subCalculationFields)+import Tax.Canada.T1.Types (T1)+import Tax.Canada.T1.Types qualified as T1+import Tax.FDF (Entry (Amount, Checkbox), FieldConst (Field), within)+import Tax.Util (fixEq, fractionOf, difference, nonNegativeDifference, totalOf)++data Schedule7 line = Schedule7{+ page2 :: Page2 line,+ page3 :: Page3 line,+ page4 :: Page4 line}++data Page2 line = Page2{+ line1_pastUnused :: line Centi,+ line2_pastYearContributions :: line Centi,+ line3_thisYearContributions :: line Centi,+ line_24500_contributions_sum :: SubCalculation line,+ line5_sum :: line Centi}++data Page3 line = Page3{+ partB :: PartB line,+ partC :: PartC line}++data PartB line = PartB{+ line6_contributions_copy :: line Centi,+ line_24600_hbp :: line Centi,+ line_24620_llp :: line Centi,+ line9_repayments_sum :: SubCalculation line,+ line10_difference :: line Centi}++data PartC line = PartC{+ line11_deductionLimit :: line Centi,+ line12_prpp_copy :: line Centi,+ line13_difference :: line Centi,+ line14_copy :: line Centi,+ line_24640_transfers :: line Centi,+ line15_cont :: line Centi,+ line16_difference :: line Centi,+ line17_lesser :: line Centi,+ line18_deducting :: line Centi,+ line19_sum :: line Centi,+ line20_deduction :: line Centi}++data Page4 line = Page4{+ partD :: PartD line,+ partE :: PartE line,+ line_26700_athleteTrust :: line Centi}++data PartD line = PartD{+ line21_copy :: line Centi,+ line22_copy :: line Centi,+ line23_difference :: line Centi}++data PartE line = PartE{+ line_24700_hbp :: line Centi,+ line_25900_hbpSame :: line Bool,+ line_26300_llp :: line Centi,+ line_26400_llpSpouse :: line Bool}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Bool), Show (line Centi), Show (line Rational)) => Show ($(TH.conT t) line)+ deriving instance (Eq (line Bool), Eq (line Centi), Eq (line Rational)) => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''Schedule7, ''Page2, ''Page3, ''Page4, ''PartB, ''PartC, ''PartD, ''PartE])++fixSchedule7 :: T1 Maybe -> Schedule7 Maybe -> Schedule7 Maybe+fixSchedule7 t1 = fixEq $ \Schedule7{page2, page3, page4} -> Schedule7{+ page2 = let Page2{..} = page2 in page2{+ line_24500_contributions_sum = fixSubCalculation $ totalOf [line2_pastYearContributions, line3_thisYearContributions],+ line5_sum = totalOf [line1_pastUnused, line_24500_contributions_sum.result]},+ page3 = let Page3{partB = partB@PartB{..}, partC = partC@PartC{..}} = page3 in Page3{+ partB = partB{+ line6_contributions_copy = page2.line5_sum,+ line9_repayments_sum = fixSubCalculation $ totalOf [line_24600_hbp, line_24620_llp],+ line10_difference = difference line6_contributions_copy line9_repayments_sum.result},+ partC = partC{+ line12_prpp_copy = t1.page4.line_20810_PRPP,+ line13_difference = difference line11_deductionLimit line12_prpp_copy,+ line14_copy = partB.line10_difference,+ line15_cont = line_24640_transfers,+ line16_difference = difference line14_copy line15_cont,+ line17_lesser = min line13_difference line16_difference,+ line19_sum = totalOf [line15_cont, line18_deducting],+ line20_deduction = min line10_difference line19_sum}},+ page4 = page4{+ partD = let PartD{line21_copy, line22_copy} = page4.partD in PartD{+ line21_copy = page3.partB.line10_difference,+ line22_copy = page3.partC.line20_deduction,+ line23_difference = difference line21_copy line22_copy}}}++schedule7Fields :: Schedule7 FieldConst+schedule7Fields = within "form1" Rank2.<$> Schedule7{+ page2 = within "Page2" . within "PartA" Rank2.<$> Page2{+ line1_pastUnused = Field ["Line1", "Amount"] Amount,+ line2_pastYearContributions = Field ["Line2", "Amount"] Amount,+ line3_thisYearContributions = Field ["Line3", "Amount"] Amount,+ line_24500_contributions_sum = subCalculationFields "Line4" ["Amount1"] ["Amount2"],+ line5_sum = Field ["Line5", "Amount"] Amount},+ page3 = within "Page3" Rank2.<$> Page3{+ partB = within "PartB" Rank2.<$> PartB{+ line6_contributions_copy = Field ["Line6", "Amount"] Amount,+ line_24600_hbp = Field ["Line7", "Amount"] Amount,+ line_24620_llp = Field ["Line8", "Amount"] Amount,+ line9_repayments_sum = subCalculationFields "Line9" ["Amount1"] ["Amount2"],+ line10_difference = Field ["Line10", "Amount"] Amount},+ partC = within "PartC" Rank2.<$> PartC{+ line11_deductionLimit = Field ["Line11", "Amount"] Amount,+ line12_prpp_copy = Field ["Line12", "Amount"] Amount,+ line13_difference = Field ["Line13", "Amount"] Amount,+ line14_copy = Field ["Line14", "Amount"] Amount,+ line_24640_transfers = Field ["Line15", "Amount1"] Amount,+ line15_cont = Field ["Line15", "Amount2"] Amount,+ line16_difference = Field ["Line16", "Amount"] Amount,+ line17_lesser = Field ["Line17", "Amount"] Amount,+ line18_deducting = Field ["Line18", "Amount"] Amount,+ line19_sum = Field ["Line19", "Amount"] Amount,+ line20_deduction = Field ["Line20", "Amount"] Amount}},+ page4 = within "Page4" Rank2.<$> Page4{+ partD = within "PartD" Rank2.<$> PartD{+ line21_copy = Field ["Line22", "Amount"] Amount,+ line22_copy = Field ["Line23", "Amount"] Amount,+ line23_difference = Field ["Line24", "Amount"] Amount},+ partE = within "PartE" Rank2.<$> PartE{+ line_24700_hbp = Field ["Line25", "Amount"] Amount,+ line_25900_hbpSame = Field ["Line26", "Box_Line25"] Checkbox,+ line_26300_llp = Field ["Line27", "Amount"] Amount,+ line_26400_llpSpouse = Field ["Line28", "Box_Line27"] Checkbox},+ line_26700_athleteTrust = Field ["PartF", "Line29", "Amount"] Amount}}
@@ -0,0 +1,127 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Federal.Schedule9 where++import Data.Fixed (Centi)+import Data.Text (Text)+import Rank2 qualified+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.T1.Types (T1)+import Tax.Canada.T1.Types qualified+import Tax.FDF (Entry (Amount, Constant), FieldConst (Field), within)+import Tax.Util (fixEq, fractionOf, difference, nonNegativeDifference, totalOf)++data Schedule9 line = Schedule9{+ line1_charities :: line Centi,+ line_32900_government :: line Centi,+ line_33300_universities :: line Centi,+ line_33400_UN :: line Centi,+ line5_sum :: line Centi,+ line6_copy :: line Centi,+ line6_fraction :: line Centi,+ line_33700_depreciable :: line Centi,+ line_33900_capital :: line Centi,+ line7_sum :: line Centi,+ line7_fraction :: line Centi,+ line8_sum :: line Centi,+ line9_limit :: line Centi,+ line_34000_allowable :: line Centi,+ line_34200_ecocultural :: line Centi,+ line12_sum :: line Centi,+ line13_min :: line Centi,+ line14_difference :: line Centi,+ line_34210_ecological :: line Centi,+ line16_difference :: line Centi,+ line17_copy :: line Centi,+ line18_threshold :: line Centi,+ line19_difference :: line Centi,+ lineE_copy :: line Centi,+ line20_min :: line Centi,+ line20_fraction :: line Centi,+ line21_difference :: line Centi,+ line21_fraction :: line Centi,+ line22_copy :: line Centi,+ line22_fraction :: line Centi,+ line23_sum :: line Centi}++deriving instance Show (line Centi) => Show (Schedule9 line)+deriving instance Eq (line Centi) => Eq (Schedule9 line)++Rank2.TH.deriveAll ''Schedule9+Transformation.Shallow.TH.deriveAll ''Schedule9++fixSchedule9 :: T1 Maybe -> Schedule9 Maybe -> Schedule9 Maybe+fixSchedule9 t1 = fixEq $ \form@Schedule9{..} -> form{+ line5_sum = totalOf [line1_charities, line_32900_government, line_33300_universities, line_33400_UN],+ line6_copy = t1.page4.line_23600_NetIncome,+ line6_fraction = (0.75 *) <$> line6_copy,+ line7_sum = totalOf [line_33700_depreciable, line_33900_capital],+ line7_fraction = (0.25 *) <$> line7_sum,+ line8_sum = totalOf [line6_fraction, line7_fraction],+ line9_limit = minimum [line6_copy, line8_sum],+ line_34000_allowable = minimum [line5_sum, line9_limit],+ line12_sum = totalOf [line_34000_allowable, line_34200_ecocultural],+ line13_min = minimum [line12_sum, Just 200],+ line14_difference = difference line12_sum line13_min,+ line16_difference = nonNegativeDifference line14_difference line_34210_ecological,+ line17_copy = t1.page5.step4_TaxableIncome.line_26000_TaxableIncome,+ line19_difference = nonNegativeDifference line17_copy line18_threshold,+ lineE_copy = line14_difference,+ line20_min = minimum [line16_difference, line19_difference],+ line20_fraction = (0.33 *) <$> line20_min,+ line21_difference = difference lineE_copy line20_min,+ line21_fraction = (0.29 *) <$> line21_difference,+ line22_copy = line13_min,+ line22_fraction = (0.15 *) <$> line22_copy,+ line23_sum = totalOf [line20_fraction, line21_fraction, line22_fraction]}++schedule9Fields :: Schedule9 FieldConst+schedule9Fields = within "form1" . within "Page1" Rank2.<$> Schedule9 {+ line1_charities = Field ["Line1", "Amount"] Amount,+ line_32900_government = Field ["Line2", "Amount"] Amount,+ line_33300_universities = Field ["Line3", "Amount"] Amount,+ line_33400_UN = Field ["Line4", "Amount"] Amount,+ line5_sum = Field ["Line5", "Amount"] Amount,+ line6_copy = Field ["Line6", "AmountA", "Amount"] Amount,+ line6_fraction = Field ["Line6", "Amount"] Amount,+ line_33700_depreciable = Field ["AmountB", "Amount"] Amount,+ line_33900_capital = Field ["AmountC", "Amount"] Amount,+ line7_sum = Field ["Line7", "AmountD", "Amount"] Amount,+ line7_fraction = Field ["Line7", "Amount"] Amount,+ line8_sum = Field ["Line8", "Amount"] Amount,+ line9_limit = Field ["Line9", "Amount"] Amount,+ line_34000_allowable = Field ["Line10", "Amount"] Amount,+ line_34200_ecocultural = Field ["Line11", "Amount"] Amount,+ line12_sum = Field ["Line12", "Amount"] Amount,+ line13_min = Field ["Line13", "Amount_Line13"] Amount,+ line14_difference = Field ["Line14", "Amount_Line14"] Amount,+ line_34210_ecological = Field ["Line15", "Amount"] Amount,+ line16_difference = Field ["Line16", "NumWithoutCurrency"] Amount,+ line17_copy = Field ["Line17", "Amount"] Amount,+ line18_threshold = Field ["Line18", "Amount"] $ Constant 235_675 Amount,+ line19_difference = Field ["Line19", "Amount"] Amount,+ lineE_copy = Field ["AmountE", "Amount_Line14"] Amount,+ line20_min = Field ["Line20", "AmountF", "Amount"] Amount,+ line20_fraction = Field ["Line20", "Amount"] Amount,+ line21_difference = Field ["Line21", "AmountG", "Amount"] Amount,+ line21_fraction = Field ["Line21", "Amount"] Amount,+ line22_copy = Field ["Line22", "AmountH", "Amount_Line14"] Amount,+ line22_fraction = Field ["Line22", "Amount"] Amount,+ line23_sum = Field ["Line23", "Amount"] Amount}+
@@ -1,172 +0,0 @@-{-# LANGUAGE ImportQualifiedPost #-}-{-# LANGUAGE DisambiguateRecordFields #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE OverloadedStrings #-}--module Tax.Canada.ON428.FieldNames (on428Fields) where--import Data.Fixed (Centi)-import Rank2 qualified--import Tax.Canada.ON428.Types-import Tax.FDF (Entry (Count, Amount, Percent), FieldConst (Field), within)--on428Fields = within "form1" Rank2.<$> ON428 {- page1 = within "Page1" Rank2.<$> page1Fields,- page2 = within "Page2" Rank2.<$> page2Fields,- page3 = within "Page3" Rank2.<$> page3Fields,- page4 = within "Page4" Rank2.<$> page4Fields}---page1Fields = Page1 {- line1 = Field ["Line1", "Amount"] Amount,- partA = within "Chart" Rank2.<$> page1PartAFields,- partB = within "Part_B" Rank2.<$> page1PartBFields}--page1PartAFields = Page1PartA {- column1 = within "Column1" Rank2.<$> taxIncomeBracketFields,- column2 = within "Column2" Rank2.<$> taxIncomeBracketFields,- column3 = within "Column3" Rank2.<$> taxIncomeBracketFields,- column4 = within "Column4" Rank2.<$> taxIncomeBracketFields,- column5 = within "Column5" Rank2.<$> taxIncomeBracketFields}--taxIncomeBracketFields = TaxIncomeBracket {- line2_income = Field ["Line2", "Amount"] Amount,- line3_threshold = Field ["Line3", "Amount"] Amount,- line4_overThreshold = Field ["Line4", "Amount"] Amount,- line5_rate = Field ["Line5", "Percent"] Percent,- line6_timesRate = Field ["Line6", "Amount"] Amount,- line7_baseTax = Field ["Line7", "Amount"] Amount,- line8_equalsTax = Field ["Line8", "Amount"] Amount}--page1PartBFields = Page1PartB {- line9_basic = Field ["Line9", "Amount"] Amount,- line10_age = Field ["Line10", "Amount"] Amount,- line11_base = Field ["Spouse-Amount", "Line11", "Amount"] Amount,- line12_spouseIncome = Field ["Spouse-Amount", "Line12", "Amount"] Amount,- line13_difference = Field ["Spouse-Amount", "Line13", "Amount1"] Amount,- line13_cont = Field ["Spouse-Amount", "Line13", "Amount2"] Amount,- line14_base = Field ["Eligible-Dependant", "Line14", "Amount"] Amount,- line15_dependentIncome = Field ["Eligible-Dependant", "Line15", "Amount"] Amount,- line16_difference = Field ["Eligible-Dependant", "Line16", "Amount1"] Amount,- line16_cont = Field ["Eligible-Dependant", "Line16", "Amount2"] Amount,- line17_caregiver = Field ["Line17", "Amount"] Amount,- line18 = Field ["Line18", "Amount"] Amount,- line19_cppQpp = Field ["CPP-QPP", "Line19", "Amount"] Amount,- line20_cppQpp = Field ["CPP-QPP", "Line20", "Amount"] Amount,- line21_employmentInsurance = Field ["Employment-Insurance", "Line21", "Amount"] Amount,- line22_employmentInsurance = Field ["Employment-Insurance", "Line22", "Amount"] Amount,- line23_adoption = Field ["Line23", "Amount"] Amount,- line24_sum = Field ["Line24", "Amount1"] Amount,- line24_cont = Field ["Line24", "Amount2"] Amount,- line25 = Field ["Line25", "Amount"] Amount}--page2Fields = Page2 {- partB = page2PartBFields,- partC = page2PartCFields}--page2PartBFields = Page2PartB {- line26 = Field ["Line26", "Amount"] Amount,- line27_pension = Field ["Line27", "Amount"] Amount,- line28 = Field ["Line28", "Amount"] Amount,- line29_disability = Field ["Line29", "Amount"] Amount,- line30 = Field ["Line30", "Amount"] Amount,- line31 = Field ["Line31", "Amount"] Amount,- line32_interest = Field ["Line32", "Amount"] Amount,- line33_education = Field ["Line33", "Amount"] Amount,- line34_transferred = Field ["Line34", "Amount"] Amount,- line35 = Field ["Line35", "Amount"] Amount,- medicalExpenses = within "Medical-Expenses" Rank2.<$> medicalExpensesFields,- line42 = Field ["Line42", "Amount"] Amount,- line43_sum = Field ["Line43", "Amount1"] Amount,- line43_cont = Field ["Line43", "Amount2"] Amount,- line44 = Field ["Line44", "Amount"] Amount,- line45_rate = Field ["Line45", "Percent_ReadOnly"] Percent,- line46_fraction = Field ["Line46", "Amount"] Amount,- donations = within "Donations" Rank2.<$> donationsFields,- line50 = Field ["Line50", "Amount"] Amount}--medicalExpensesFields = MedicalExpenses {- line36_expenses = Field ["Line36", "Amount"] Amount,- line37_income = Field ["Line37", "Amount"] Amount,- line38_rate = Field ["Line38", "Percent_ReadOnly"] Percent,- line39_fraction = Field ["Line39", "Amount"] Amount,- line40_lesser = Field ["Line40", "Amount"] Amount,- line41_difference = Field ["Line41", "Amount"] Amount}--donationsFields = Donations {- line47_base = Field ["Line47", "Amount1"] Amount,- line47_fraction = Field ["Line47", "Amount2"] Amount,- line48_base = Field ["Line48", "Amount1"] Amount,- line48_fraction = Field ["Line48", "Amount2"] Amount,- line49_sum = Field ["Line49", "Amount1"] Amount,- line49_cont = Field ["Line49", "Amount2"] Amount}--page2PartCFields = Page2PartC {- line51_tax = Field ["Line51", "Amount"] Amount,- line52_credits = Field ["Line52", "Amount"] Amount,- line53 = Field ["Line53", "Amount"] Amount,- line54 = Field ["Line54", "Amount"] Amount,- line55 = Field ["Line55", "Amount"] Amount,- line56 = Field ["Min-Tax-Carryover", "Line56", "Amount"] Amount,- line57 = Field ["Min-Tax-Carryover", "Line57", "Amount"] Amount,- line58 = Field ["Min-Tax-Carryover", "Line58", "Amount"] Amount,- line59_copy = Field ["Min-Tax-Carryover", "Line59", "Amount1"] Amount,- line59_product = Field ["Min-Tax-Carryover", "Line59", "Amount2"] Amount,- line60_lesser = Field ["Min-Tax-Carryover", "Line60", "Amount"] Amount,- line61 = Field ["Line61", "Amount"] Amount}--page3Fields = Page3 {- line62 = Field ["Line62", "Amount"] Amount,- line63 = Field ["ON-Surtax", "Line63", "Amount"] Amount,- line64 = Field ["ON-Surtax", "Line64", "Amount"] Amount,- line65 = Field ["ON-Surtax", "Line65", "Amount"] Amount,- line66_copy = Field ["Line66", "Amount1"] Amount,- line66_surtax = Field ["Line66", "Amount2"] Amount,- line67_copy = Field ["Line67", "Amount1"] Amount,- line67_surtax = Field ["Line67", "Amount2"] Amount,- line68_sum = Field ["Line68", "Amount1"] Amount,- line68_cont = Field ["Line68", "Amount2"] Amount,- line69 = Field ["Line69", "Amount2"] Amount,- line70 = Field ["Line70", "Amount"] Amount,- line71 = Field ["Line71", "Amount"] Amount,- line72 = Field ["Line72", "Amount"] Amount,- line73 = Field ["Line73", "Amount"] Amount,- line74_basicReduction = Field ["Line74", "Amount"] Amount,- line75_childrenNum = Field ["Line75", "Line_60969", "Number"] Count,- line75_amount = Field ["Line75", "Amount"] Amount,- line76_childrenNum = Field ["Line76", "Line_60970", "Number"] Count,- line76_amount = Field ["Line76", "Amount"] Amount,- line77 = Field ["Line77", "Amount"] Amount,- line78_copy = Field ["Line78", "Amount1"] Amount,- line78_product = Field ["Line78", "Amount2"] Amount,- line79 = Field ["Line79", "Amount"] Amount,- line80_difference = Field ["Line80", "Amount1"] Amount,- line80_cont = Field ["Line80", "Amount2"] Amount,- line81 = Field ["Line81", "Amount"] Amount,- line82 = Field ["Line82", "Amount"] Amount,- line83 = Field ["Line83", "Amount"] Amount}--page4Fields = Page4 {- line84 = Field ["Line84", "Amount"] Amount,- line85_lift = Field ["Line85", "Amount"] Amount,- line86 = Field ["Line86", "Amount"] Amount,- line87_foodDonations = Field ["Line87", "Line62150", "Amount1"] Amount,- line87_fraction = Field ["Line87", "Amount2"] Amount,- line88 = Field ["Line88", "Amount"] Amount,- line89_health = Field ["Line89", "Amount"] Amount,- line90 = Field ["Line90", "Amount"] Amount,- healthPremium = within "ON_Health_Prenium-worksheet" . within "Chart_ON_Health_Prenium" Rank2.<$> healthPremiumFields}--healthPremiumFields = HealthPremium {- row1 = within "Taxable_Line2" Rank2.<$> healthPremiumBracketFields{equalsTax = Field ["Amount3"] Amount},- row2 = within "Taxable_Line4" Rank2.<$> healthPremiumBracketFields,- row3 = within "Taxable_Line6" Rank2.<$> healthPremiumBracketFields,- row4 = within "Taxable_Line8" Rank2.<$> healthPremiumBracketFields,- row5 = within "Taxable_Line10" Rank2.<$> healthPremiumBracketFields}--healthPremiumBracketFields = HealthPremiumBracket {- taxableIncome = Field ["Amount1"] Amount,- overThreshold = Field ["Amount2"] Amount,- timesRate = Field ["Amount3"] Amount,- equalsTax = Field ["Amount4"] Amount}
@@ -1,184 +0,0 @@-{-# LANGUAGE ImportQualifiedPost #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GADTs #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE OverloadedRecordDot #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}--module Tax.Canada.ON428.Fix (fixON428) where--import Control.Applicative (liftA2)-import Control.Monad (guard, mfilter)-import Data.Fixed (Centi)-import Rank2 qualified--import Tax.Canada.ON428.Types-import Tax.Util (fixEq, fractionOf, nonNegativeDifference, totalOf)--fixON428 :: ON428 Maybe -> ON428 Maybe-fixON428 = fixEq $ \on428@ON428{..}-> ON428{page1 = fixPage1 page1,- page2 = fixPage2 on428 page2,- page3 = fixPage3 on428 page3,- page4 = fixPage4 on428 page4}--fixPage1 :: Page1 Maybe -> Page1 Maybe-fixPage1 = fixEq $ \Page1{..}-> Page1{- line1 = line1,- partA = fixPage1PartA line1 partA,- partB = fixPage1PartB partB}--fixPage1PartA :: Maybe Centi -> Page1PartA Maybe -> Page1PartA Maybe-fixPage1PartA income = fixEq $ \Page1PartA{..}-> Page1PartA{- column1 = fixTaxIncomeBracket income (Just column2) column1,- column2 = fixTaxIncomeBracket income (Just column3) column2,- column3 = fixTaxIncomeBracket income (Just column4) column3,- column4 = fixTaxIncomeBracket income (Just column5) column4,- column5 = fixTaxIncomeBracket income Nothing column5}--fixTaxIncomeBracket :: Maybe Centi -> Maybe (TaxIncomeBracket Maybe) -> TaxIncomeBracket Maybe -> TaxIncomeBracket Maybe-fixTaxIncomeBracket income nextBracket bracket@TaxIncomeBracket{..} = bracket{- line2_income = do i <- income- floor <- line3_threshold- let ceiling = nextBracket >>= (.line3_threshold)- guard (floor <= i && all (i <) ceiling)- income,- line4_overThreshold = liftA2 (-) line2_income line3_threshold,- line6_timesRate = fromRational <$> liftA2 (*) (toRational <$> line4_overThreshold) line5_rate,- line8_equalsTax = liftA2 (+) line6_timesRate line7_baseTax}--fixPage1PartB :: Page1PartB Maybe -> Page1PartB Maybe-fixPage1PartB = fixEq $ \part@Page1PartB{..}-> part{- line9_basic = Just 11141,- line11_base = Just 10406,- line13_difference = mfilter (> 0) $ liftA2 (-) line11_base line12_spouseIncome,- line13_cont = line13_difference,- line14_base = Just 10406,- line16_difference = mfilter (> 0) $ liftA2 (-) line14_base line15_dependentIncome,- line16_cont = line16_difference,- line18 = totalOf [line9_basic, line10_age, line13_cont, line16_cont, line17_caregiver],- line24_sum = totalOf [line19_cppQpp,- line20_cppQpp,- line21_employmentInsurance,- line22_employmentInsurance,- line23_adoption],- line24_cont = line24_sum,- line25 = totalOf [line18, line24_cont]}--fixPage2 :: ON428 Maybe -> Page2 Maybe -> Page2 Maybe-fixPage2 on428 = fixEq $ \Page2{..}-> Page2{- partB = fixPage2PartB on428 partB,- partC = fixPage2PartC on428 partC}--fixPage2PartB :: ON428 Maybe -> Page2PartB Maybe -> Page2PartB Maybe-fixPage2PartB on428 = fixEq $ \part@Page2PartB{..}-> part{- line26 = on428.page1.partB.line25,- line28 = totalOf [line26, line27_pension],- line31 = totalOf [line28, line29_disability, line30],- line35 = totalOf [line31, line32_interest, line33_education, line34_transferred],- medicalExpenses = fixMedicalExpenses medicalExpenses,- line43_sum = totalOf [medicalExpenses.line41_difference, line42],- line43_cont = line43_sum,- line44 = totalOf [line35, line43_cont],- line46_fraction = line45_rate `fractionOf` line44,- donations = fixDonations donations,- line50 = totalOf [line46_fraction, donations.line49_cont]}--fixPage2PartC :: ON428 Maybe -> Page2PartC Maybe -> Page2PartC Maybe-fixPage2PartC on428 = fixEq $ \part@Page2PartC{..}-> part{- line51_tax = totalOf [on428.page1.partA.column1.line8_equalsTax,- on428.page1.partA.column2.line8_equalsTax,- on428.page1.partA.column3.line8_equalsTax,- on428.page1.partA.column4.line8_equalsTax,- on428.page1.partA.column5.line8_equalsTax],- line52_credits = on428.page2.partB.line50,- line53 = nonNegativeDifference line51_tax line52_credits,- line55 = totalOf [line53, line54],- line56 = line53,- line58 = nonNegativeDifference line56 line57,- line59_product = Just 0.3367 `fractionOf` line59_copy,- line60_lesser = min <$> line58 <*> line59_product,- line61 = nonNegativeDifference line55 line60_lesser}--fixMedicalExpenses :: MedicalExpenses Maybe -> MedicalExpenses Maybe-fixMedicalExpenses = fixEq $ \part@MedicalExpenses{..} -> part{- line38_rate = Just 0.03,- line39_fraction = line38_rate `fractionOf` line37_income,- line40_lesser = min 2522 <$> line39_fraction,- line41_difference = nonNegativeDifference line36_expenses line40_lesser}--fixDonations :: Donations Maybe -> Donations Maybe-fixDonations = fixEq $ \part@Donations{..} -> part{- line47_fraction = Just 0.0505 `fractionOf` line47_base,- line48_fraction = Just 0.1116 `fractionOf` line48_base,- line49_sum = totalOf [line47_fraction, line48_fraction],- line49_cont = line49_sum}--fixPage3 :: ON428 Maybe -> Page3 Maybe -> Page3 Maybe-fixPage3 on428 = fixEq $ \page@Page3{..}-> page{- line62 = on428.page2.partC.line61,- line63 = line62,- line64 = on428.page2.partC.line54,- line65 = nonNegativeDifference line63 line64,- line66_copy = line65,- line66_surtax = Just 0.2 `fractionOf` nonNegativeDifference line66_copy (Just 4991),- line67_copy = line65,- line67_surtax = Just 0.36 `fractionOf` nonNegativeDifference line67_copy (Just 6387),- line68_sum = totalOf [line66_surtax, line67_surtax],- line68_cont = line68_sum,- line69 = totalOf [line62, line68_cont],- line70 = on428.page2.partC.line57,- line71 = nonNegativeDifference line69 line70,- line73 = totalOf [line71, line72],- line74_basicReduction = Just 257,- line75_amount = ((475 *) . fromIntegral) <$> line75_childrenNum,- line76_amount = ((475 *) . fromIntegral) <$> line76_childrenNum,- line77 = totalOf [line74_basicReduction, line75_amount, line76_amount],- line78_copy = line77,- line78_product = (2 *) <$> line78_copy,- line79 = line73,- line80_difference = nonNegativeDifference line78_product line79,- line80_cont = line80_difference,- line81 = nonNegativeDifference line73 line80_cont,- line83 = nonNegativeDifference line81 line82}--fixPage4 :: ON428 Maybe -> Page4 Maybe -> Page4 Maybe-fixPage4 on428 = fixEq $ \page@Page4{..}-> page{- line84 = on428.page3.line83,- line86 = nonNegativeDifference line84 line85_lift,- line87_fraction = Just 0.25 `fractionOf` line87_foodDonations,- line88 = nonNegativeDifference line86 line87_fraction,- line89_health = totalOf [between 0 20000 0,- healthPremium.row1.equalsTax,- between 25000 36000 300,- healthPremium.row2.equalsTax,- between 38500 48000 450,- healthPremium.row3.equalsTax,- between 48600 72000 600,- healthPremium.row4.equalsTax,- between 72600 200000 750,- healthPremium.row5.equalsTax,- if income > 200600 then Just 900 else Nothing],- line90 = totalOf [line88, line89_health],- healthPremium = fixHealthPremium income healthPremium}- where income = sum on428.page1.line1- between floor ceiling tax- | income > floor && income <= ceiling = Just tax- | otherwise = Nothing--fixHealthPremium :: Centi -> HealthPremium Maybe -> HealthPremium Maybe-fixHealthPremium income = fixEq $ \HealthPremium{..}-> HealthPremium{- row1 = fixHealthPremiumBracket income 20000 25000 0.06 0 row1,- row2 = fixHealthPremiumBracket income 36000 38500 0.06 300 row2,- row3 = fixHealthPremiumBracket income 48000 48600 0.25 450 row3,- row4 = fixHealthPremiumBracket income 72000 72600 0.25 600 row4,- row5 = fixHealthPremiumBracket income 200000 200600 0.25 750 row5}--fixHealthPremiumBracket :: Centi -> Centi -> Centi -> Rational -> Centi -> HealthPremiumBracket Maybe -> HealthPremiumBracket Maybe-fixHealthPremiumBracket income floor ceiling rate base HealthPremiumBracket{..}- | income > floor && income < ceiling = HealthPremiumBracket{- taxableIncome = Just income,- overThreshold = Just $ income - floor,- timesRate = Just rate `fractionOf` overThreshold,- equalsTax = totalOf [timesRate, Just base]}- | otherwise = Rank2.pure Nothing
@@ -1,193 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE ImportQualifiedPost #-}-{-# LANGUAGE InstanceSigs #-}-{-# LANGUAGE NoFieldSelectors #-}-{-# LANGUAGE OverloadedRecordDot #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE StandaloneDeriving #-}-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE UndecidableInstances #-}--module Tax.Canada.ON428.Types where--import Data.Fixed (Centi)-import Language.Haskell.TH qualified as TH-import Rank2.TH qualified--data ON428 line = ON428 {- page1 :: Page1 line,- page2 :: Page2 line,- page3 :: Page3 line,- page4 :: Page4 line}--data Page1 line = Page1 {- line1 :: line Centi,- partA :: Page1PartA line,- partB :: Page1PartB line}--data Page1PartA line = Page1PartA {- column1 :: TaxIncomeBracket line,- column2 :: TaxIncomeBracket line,- column3 :: TaxIncomeBracket line,- column4 :: TaxIncomeBracket line,- column5 :: TaxIncomeBracket line}--data TaxIncomeBracket line = TaxIncomeBracket {- line2_income :: line Centi,- line3_threshold :: line Centi,- line4_overThreshold :: line Centi,- line5_rate :: line Rational,- line6_timesRate :: line Centi,- line7_baseTax :: line Centi,- line8_equalsTax :: line Centi- }--data Page1PartB line = Page1PartB {- line9_basic :: line Centi,- line10_age :: line Centi,- line11_base :: line Centi,- line12_spouseIncome :: line Centi,- line13_difference :: line Centi,- line13_cont :: line Centi,- line14_base :: line Centi,- line15_dependentIncome :: line Centi,- line16_difference :: line Centi,- line16_cont :: line Centi,- line17_caregiver :: line Centi,- line18 :: line Centi,- line19_cppQpp :: line Centi,- line20_cppQpp :: line Centi,- line21_employmentInsurance :: line Centi,- line22_employmentInsurance :: line Centi,- line23_adoption :: line Centi,- line24_sum :: line Centi,- line24_cont :: line Centi,- line25 :: line Centi}--data Page2 line = Page2 {- partB :: Page2PartB line,- partC :: Page2PartC line}--data Page2PartB line = Page2PartB {- line26 :: line Centi,- line27_pension :: line Centi,- line28 :: line Centi,- line29_disability :: line Centi,- line30 :: line Centi,- line31 :: line Centi,- line32_interest :: line Centi,- line33_education :: line Centi,- line34_transferred :: line Centi,- line35 :: line Centi,- medicalExpenses :: MedicalExpenses line,- line42 :: line Centi,- line43_sum :: line Centi,- line43_cont :: line Centi,- line44 :: line Centi,- line45_rate :: line Rational,- line46_fraction :: line Centi,- donations :: Donations line,- line50 :: line Centi}--data MedicalExpenses line = MedicalExpenses {- line36_expenses :: line Centi,- line37_income :: line Centi,- line38_rate :: line Rational,- line39_fraction :: line Centi,- line40_lesser :: line Centi,- line41_difference :: line Centi}--data Donations line = Donations {- line47_base :: line Centi,- line47_fraction :: line Centi,- line48_base :: line Centi,- line48_fraction :: line Centi,- line49_sum :: line Centi,- line49_cont :: line Centi}--data Page2PartC line = Page2PartC {- line51_tax :: line Centi,- line52_credits :: line Centi,- line53 :: line Centi,- line54 :: line Centi,- line55 :: line Centi,- line56 :: line Centi,- line57 :: line Centi,- line58 :: line Centi,- line59_copy :: line Centi,- line59_product :: line Centi,- line60_lesser :: line Centi,- line61 :: line Centi}--data Page3 line = Page3 {- line62 :: line Centi,- line63 :: line Centi,- line64 :: line Centi,- line65 :: line Centi,- line66_copy :: line Centi,- line66_surtax :: line Centi,- line67_copy :: line Centi,- line67_surtax :: line Centi,- line68_cont :: line Centi,- line68_sum :: line Centi,- line69 :: line Centi,- line70 :: line Centi,- line71 :: line Centi,- line72 :: line Centi,- line73 :: line Centi,- line74_basicReduction :: line Centi,- line75_amount :: line Centi,- line75_childrenNum :: line Word,- line76_amount :: line Centi,- line76_childrenNum :: line Word,- line77 :: line Centi,- line78_copy :: line Centi,- line78_product :: line Centi,- line79 :: line Centi,- line80_cont :: line Centi,- line80_difference :: line Centi,- line81 :: line Centi,- line82 :: line Centi,- line83 :: line Centi}--data Page4 line = Page4 {- line84 :: line Centi,- line85_lift :: line Centi,- line86 :: line Centi,- line87_foodDonations :: line Centi,- line87_fraction :: line Centi,- line88 :: line Centi,- line89_health :: line Centi,- line90 :: line Centi,- healthPremium :: HealthPremium line}--data HealthPremium line = HealthPremium {- row1 :: HealthPremiumBracket line,- row2 :: HealthPremiumBracket line,- row3 :: HealthPremiumBracket line,- row4 :: HealthPremiumBracket line,- row5 :: HealthPremiumBracket line}--data HealthPremiumBracket line = HealthPremiumBracket {- taxableIncome :: line Centi,- overThreshold :: line Centi,- timesRate :: line Centi,- equalsTax :: line Centi}--$(foldMap- (\t-> [d|- deriving instance (Show (line Centi), Show (line Rational), Show (line Word))- => Show ($(TH.conT t) line)- deriving instance (Eq (line Centi), Eq (line Rational), Eq (line Word))- => Eq ($(TH.conT t) line)- |])- [''ON428, ''Page1, ''Page2, ''Page3, ''Page4,- ''Page1PartA, ''Page1PartB, ''Page2PartB, ''Page2PartC,- ''MedicalExpenses, ''Donations,- ''TaxIncomeBracket, ''HealthPremium, ''HealthPremiumBracket])--$(foldMap Rank2.TH.deriveAll- [''ON428, ''Page1, ''Page2, ''Page3, ''Page4,- ''Page1PartA, ''Page1PartB, ''Page2PartB, ''Page2PartC,- ''MedicalExpenses, ''Donations,- ''TaxIncomeBracket, ''HealthPremium, ''HealthPremiumBracket])
@@ -0,0 +1,74 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.Province.AB (AB428, ab428Fields, fixAB428, fixReturns, returnFields, t1Fields) where++import Data.CAProvinceCodes (Code(AB))+import qualified Rank2++import Tax.Canada.Federal qualified as Federal+import Tax.Canada.Federal (Forms(t1), fixFederalForms)+import Tax.Canada.Federal.Schedule9 qualified as Schedule9+import Tax.Canada.T1.Types (T1 (T1, page7, page8), Page7(Page7, step6_RefundOrBalanceOwing), Page8(Page8))+import Tax.Canada.T1.Types qualified as T1+import Tax.Canada.T1.Types qualified as Page8 (Page8(..))+import Tax.Canada.T1.FieldNames.AB (t1Fields)++import Tax.Canada.Province.AB.AB428.Types qualified as AB+import Tax.Canada.Province.AB.AB428.Types qualified as AB.Page1 (Page1(..))+import Tax.Canada.Province.AB.AB428.Types qualified as AB.Page2 (Page2(..))+import Tax.Canada.Province.AB.AB428.Types (AB428 (AB428))+import Tax.Canada.Province.AB.AB428.Fix (fixAB428)+import Tax.Canada.Province.AB.AB428.FieldNames (ab428Fields)++import Tax.Canada.Shared(MedicalExpenses(..), BaseCredit(..))+import Tax.FDF (FieldConst, within)+import Tax.Util (fixEq)++import Data.Functor.Product (Product(Pair))++type Returns = Product Federal.Forms AB428++fixReturns :: Returns Maybe -> Returns Maybe+fixReturns =+ fixEq $ \(Pair+ ff@Federal.Forms{t1 = t1@T1{page7 = page7@Page7{step6_RefundOrBalanceOwing},+ page8 = page8@Page8{step6_RefundOrBalanceOwing = page8step6}},+ schedule9}+ ab428@AB428{page1 = page1@AB.Page1{partA, partB = partB1@AB.Page1PartB{spouseAmount}},+ page2 = page2@AB.Page2{AB.partB = partB2@AB.Page2PartB{AB.medicalExpenses}},+ page3 = page3@AB.Page3{AB.partC}})+ -> (fixFederalForms ff{t1 = t1{page7 =+ page7{step6_RefundOrBalanceOwing =+ step6_RefundOrBalanceOwing{T1.line_42800_ProvTerrTax =+ ab428.page3.partC.line66_tax}},+ page8 =+ page8{Page8.step6_RefundOrBalanceOwing =+ page8step6{T1.line_47900_ProvTerrCredits =+ ab428.page3.partD.line69_credits}}}}+ `Pair`+ fixAB428 ab428{AB.page1 =+ page1{AB.Page1.income = t1.page5.step4_TaxableIncome.line_26000_TaxableIncome,+ AB.Page1.partB = partB1{AB.spouseAmount = spouseAmount{reduction = t1.page1.spouse.line23600},+ AB.line19_cppQpp = t1.page6.line30800,+ AB.line20_cppQpp = t1.page6.line31000,+ AB.line21_employmentInsurance = t1.page6.line31200,+ AB.line22_employmentInsurance = t1.page6.line31217}},+ AB.page2 =+ page2{AB.Page2.partB = partB2{AB.line33_interest = t1.page6.line31900,+ AB.medicalExpenses =+ medicalExpenses{+ expenses = t1.page6.medical_expenses.familyExpenses,+ netIncome = t1.page4.line_23600_NetIncome},+ AB.donations = partB2.donations{+ AB.line48_base = schedule9.line13_min,+ AB.line49_base = schedule9.line14_difference}}},+ AB.page3 =+ page3{AB.partC = partC{AB.line57_copy = t1.page7.partC_NetFederalTax.line40427}}})++returnFields :: Returns FieldConst+returnFields = Pair (Federal.formFieldsForProvince AB) (within "428" Rank2.<$> ab428Fields)
@@ -0,0 +1,132 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.Province.AB.AB428.FieldNames (ab428Fields) where++import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.AB.AB428.Types+import Tax.Canada.Shared (BaseCredit(..), MedicalExpenses(..), TaxIncomeBracket (..), subCalculationFields)+import Tax.FDF (Entry (Count, Constant, Amount, Percent), FieldConst (Field, NoField), within)++ab428Fields = within "form1" Rank2.<$> AB428 {+ page1 = within "Page1" Rank2.<$> page1Fields,+ page2 = within "Page2" Rank2.<$> page2Fields,+ page3 = within "Page3" Rank2.<$> page3Fields}+++page1Fields = Page1 {+ income = Field ["Line1", "Amount"] Amount,+ partA = within "Chart" Rank2.<$> page1PartAFields,+ partB = page1PartBFields}++page1PartAFields = Page1PartA {+ column1 = within "Column1" Rank2.<$> taxIncomeBracketFields 0 0.10 0,+ column2 = within "Column2" Rank2.<$> taxIncomeBracketFields 142_292 0.12 14_229.20,+ column3 = within "Column3" Rank2.<$> (taxIncomeBracketFields 170_751 0.13 17_644.28){rate = Field ["LIne5", "Percent"] $ Constant 0.13 Percent},+ column4 = within "Column4" Rank2.<$> taxIncomeBracketFields 227_668 0.14 25_043.49,+ column5 = within "Column5" Rank2.<$> taxIncomeBracketFields 341_502 0.15 40_980.25}++taxIncomeBracketFields :: Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst+taxIncomeBracketFields threshold rate baseTax = TaxIncomeBracket {+ income = Field ["Line2", "Amount"] Amount,+ threshold = Field ["Line3", "Amount_Fixed"] $ Constant threshold Amount,+ overThreshold = Field ["Line4", "Amount"] Amount,+ rate = Field ["Line5", "Percent"] $ Constant rate Percent,+ timesRate = Field ["Line6", "Amount"] Amount,+ baseTax = Field ["Line7", "Amount_Fixed"] $ Constant baseTax Amount,+ equalsTax = Field ["Line8", "Amount"] Amount}++page1PartBFields = Page1PartB {+ line9_basic = Field ["Line9", "Amount"] Amount,+ line10_age = Field ["Line10", "Amount"] Amount,+ spouseAmount = within "Line11to13" Rank2.<$> BaseCredit{+ baseAmount = Field ["Line11", "Amount_Fixed"] $ Constant 21_003 Amount,+ reduction = Field ["Line12", "Amount"] Amount,+ difference = Field ["Line13", "Amount1"] Amount,+ cont = Field ["Line13", "Amount2"] Amount},+ dependantAmount = within "Line14to16" Rank2.<$> BaseCredit{+ baseAmount = Field ["Line14", "Amount_Fixed"] $ Constant 21_003 Amount,+ reduction = Field ["Line15", "Amount"] Amount,+ difference = Field ["Line16", "Amount1"] Amount,+ cont = Field ["Line16", "Amount2"] Amount},+ line17_infirm = Field ["Line17", "Amount"] Amount,+ line18 = Field ["Line18", "Amount"] Amount,+ line19_cppQpp = Field ["Line19to20", "Line19", "Amount"] Amount,+ line20_cppQpp = Field ["Line19to20", "Line20", "Amount"] Amount,+ line21_employmentInsurance = Field ["Line21to22", "Line21", "Amount"] Amount,+ line22_employmentInsurance = Field ["Line21to22", "Line22", "Amount"] Amount,+ line23_adoption = Field ["Line23", "Amount"] Amount,+ line24_sum = subCalculationFields "Line24" ["Amount1"] ["Amount2"],+ line25 = Field ["Line25", "Amount"] Amount}++page2Fields = Page2 {+ partB = within "PartB_Page2" Rank2.<$> page2PartBFields}++page2PartBFields = Page2PartB {+ line26 = Field ["Line26", "Amount"] Amount,+ line27_pension = Field ["Line27", "Amount"] Amount,+ line28_caregiver = Field ["Line28", "Amount"] Amount,+ line29 = Field ["Line29", "Amount"] Amount,+ line30_disability = Field ["Line30", "Amount"] Amount,+ line31 = Field ["Line31", "Amount"] Amount,+ line32 = Field ["Line32", "Amount"] Amount,+ line33_interest = Field ["Line33", "Amount"] Amount,+ line34_education = Field ["Line34", "Amount"] Amount,+ line35_transferredSpouse = Field ["Line35", "Amount"] Amount,+ line36 = Field ["Line36", "Amount"] Amount,+ medicalExpenses = within "MedicalExp" Rank2.<$> medicalExpensesFields,+ line43 = Field ["Line43", "Amount"] Amount,+ line44_sum = subCalculationFields "Line44" ["Amount1"] ["Amount2"],+ line45 = Field ["Line45", "Amount"] Amount,+ line46_rate = Field ["Line46", "Percent"] $ Constant 0.10 Percent,+ line47_fraction = Field ["Line47", "Amount"] Amount,+ donations = within "DonationGift" Rank2.<$> donationFields,+ line50_sum = subCalculationFields "Line50" ["Amount1"] ["Amount2"],+ line51 = Field ["Line51", "Amount"] Amount}++medicalExpensesFields = MedicalExpenses {+ expenses = Field ["Line37", "Amount"] Amount,+ netIncome = Field ["Line38", "Amount"] Amount,+ incomeRate = Field ["Line39", "PercentAmount"] $ Constant 0.03 Percent,+ fraction = Field ["Line40", "Amount1"] Amount,+ lesser = Field ["Line41", "Amount"] Amount,+ difference = Field ["Line42", "Amount"] Amount}++donationFields = Donations {+ line48_base = Field ["Line48", "Amount1"] Amount,+ line48_fraction = Field ["Line48", "Amount2"] Amount,+ line49_base = Field ["Line49", "Amount1"] Amount,+ line49_fraction = Field ["Line49", "Amount2"] Amount}++page3Fields = Page3 {+ partC = within "PartC" Rank2.<$> partCFields,+ partD = within "PartC" . within "UAITC" Rank2.<$> partDFields}++partCFields = PartC {+ line52_tax = Field ["Line52", "Amount"] Amount,+ line53_splitIncomeTax = Field ["Line53", "Amount"] Amount,+ line54 = Field ["Line54", "Amount"] Amount,+ line55_copy = Field ["Line55", "Amount"] Amount,+ line56_dividendCredits = Field ["Line56", "Amount"] Amount,+ line57_copy = Field ["Line57", "Amount1"] Amount,+ line57_fraction = Field ["Line57", "Amount2"] Amount,+ line58_sum = subCalculationFields "Line58" ["Amount1"] ["Amount2"],+ line59_difference = Field ["Line59", "Amount"] Amount,+ line60_fromT691 = Field ["Line60", "Amount1"] Amount,+ line60_fraction = Field ["Line60", "Amount2"] Amount,+ line61 = Field ["Line61", "Amount"] Amount,+ line62_foreignCredit = Field ["Line62", "Amount"] Amount,+ line63_difference = Field ["Line63", "Amount"] Amount,+ line64_political = Field ["PoliticalCont", "Line64", "Amount"] Amount,+ line65_political = Field ["PoliticalCont", "Line65", "Amount"] Amount,+ line66_tax = Field ["PoliticalCont", "Line66", "Amount"] Amount}++partDFields = PartD {+ line67_investorCredit = Field ["Line67", "Amount"] Amount,+ line68_stockCredit = Field ["Line68", "Amount"] Amount,+ line69_credits = Field ["Line69", "Amount"] Amount}
@@ -0,0 +1,102 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++module Tax.Canada.Province.AB.AB428.Fix (AB428, fixAB428) where++import Control.Applicative (liftA2)+import Control.Monad (guard)+import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.AB.AB428.Types+import Tax.Canada.Shared (fixBaseCredit, fixMedicalExpenses, fixSubCalculation, fixTaxIncomeBracket,+ BaseCredit(cont), MedicalExpenses (difference),+ SubCalculation (result), TaxIncomeBracket (equalsTax))+import Tax.Util (fixEq, fractionOf, nonNegativeDifference, totalOf)++fixAB428 :: AB428 Maybe -> AB428 Maybe+fixAB428 = fixEq $ \ab428@AB428{..}-> AB428{page1 = fixPage1 page1,+ page2 = fixPage2 ab428 page2,+ page3 = fixPage3 ab428 page3}++fixPage1 :: Page1 Maybe -> Page1 Maybe+fixPage1 = fixEq $ \Page1{..}-> Page1{+ income = income,+ partA = fixPage1PartA income partA,+ partB = fixPage1PartB partB}++fixPage1PartA :: Maybe Centi -> Page1PartA Maybe -> Page1PartA Maybe+fixPage1PartA income = fixEq $ \Page1PartA{..}-> Page1PartA{+ column1 = fixTaxIncomeBracket income (Just column2) column1,+ column2 = fixTaxIncomeBracket income (Just column3) column2,+ column3 = fixTaxIncomeBracket income (Just column4) column3,+ column4 = fixTaxIncomeBracket income (Just column5) column4,+ column5 = fixTaxIncomeBracket income Nothing column5}++fixPage1PartB :: Page1PartB Maybe -> Page1PartB Maybe+fixPage1PartB = fixEq $ \part@Page1PartB{..}-> part{+ line9_basic = Just 21003,+ spouseAmount = fixBaseCredit spouseAmount,+ dependantAmount = fixBaseCredit dependantAmount,+ line18 = totalOf [line9_basic, line10_age, spouseAmount.cont, dependantAmount.cont, line17_infirm],+ line24_sum = fixSubCalculation $+ totalOf [line19_cppQpp,+ line20_cppQpp,+ line21_employmentInsurance,+ line22_employmentInsurance,+ line23_adoption],+ line25 = totalOf [line18, line24_sum.result]}++fixPage2 :: AB428 Maybe -> Page2 Maybe -> Page2 Maybe+fixPage2 ab428 = fixEq $ \Page2{..}-> Page2{+ partB = fixPage2PartB ab428 partB}++fixPage2PartB :: AB428 Maybe -> Page2PartB Maybe -> Page2PartB Maybe+fixPage2PartB ab428 = fixEq $ \part@Page2PartB{..}-> part{+ line26 = ab428.page1.partB.line25,+ line29 = totalOf [line26, line27_pension, line28_caregiver],+ line32 = totalOf [line29, line30_disability, line31],+ line36 = totalOf [line32, line33_interest, line34_education, line35_transferredSpouse],+ medicalExpenses = fixMedicalExpenses 2714 medicalExpenses,+ line44_sum = fixSubCalculation $ totalOf [medicalExpenses.difference, line43],+ line45 = totalOf [line36, line44_sum.result],+ line47_fraction = line46_rate `fractionOf` line45,+ donations = fixDonations donations,+ line50_sum = fixSubCalculation $ totalOf [donations.line48_fraction, donations.line49_fraction],+ line51 = totalOf [line47_fraction, line50_sum.result]}++fixDonations :: Donations Maybe -> Donations Maybe+fixDonations = fixEq $ \part@Donations{..} -> part{+ line48_fraction = Just 0.6 `fractionOf` line48_base,+ line49_fraction = Just 0.21 `fractionOf` line49_base}++fixPage3 :: AB428 Maybe -> Page3 Maybe -> Page3 Maybe+fixPage3 ab428 = fixEq $ \page@Page3{..}-> page{+ partC = fixPartC ab428 partC,+ partD = fixPartD ab428 partD}++fixPartC :: AB428 Maybe -> PartC Maybe -> PartC Maybe+fixPartC ab428 = fixEq $ \part@PartC{..}-> part{+ line52_tax = totalOf [ab428.page1.partA.column1.equalsTax,+ ab428.page1.partA.column2.equalsTax,+ ab428.page1.partA.column3.equalsTax,+ ab428.page1.partA.column4.equalsTax,+ ab428.page1.partA.column5.equalsTax],+ line54 = totalOf [line52_tax, line53_splitIncomeTax],+ line55_copy = ab428.page2.partB.line51,+ line57_fraction = Just 0.35 `fractionOf` line57_copy,+ line58_sum = fixSubCalculation $ totalOf [line55_copy, line56_dividendCredits, line57_fraction],+ line59_difference = nonNegativeDifference line54 line58_sum.result,+ line60_fraction = Just 0.35 `fractionOf` line60_fromT691,+ line61 = totalOf [line59_difference, line60_fraction],+ line63_difference = nonNegativeDifference line61 line62_foreignCredit,+ line66_tax = nonNegativeDifference line63_difference line65_political}++fixPartD :: AB428 Maybe -> PartD Maybe -> PartD Maybe+fixPartD _ab428 = fixEq $ \part@PartD{..}-> part{+ line69_credits = totalOf [line67_investorCredit, line68_stockCredit]}
@@ -0,0 +1,126 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Province.AB.AB428.Types where++import Data.Fixed (Centi)+import Language.Haskell.TH qualified as TH+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Shared (BaseCredit, MedicalExpenses, SubCalculation, TaxIncomeBracket)++data AB428 line = AB428 {+ page1 :: Page1 line,+ page2 :: Page2 line,+ page3 :: Page3 line}++data Page1 line = Page1 {+ income :: line Centi,+ partA :: Page1PartA line,+ partB :: Page1PartB line}++data Page1PartA line = Page1PartA {+ column1 :: TaxIncomeBracket line,+ column2 :: TaxIncomeBracket line,+ column3 :: TaxIncomeBracket line,+ column4 :: TaxIncomeBracket line,+ column5 :: TaxIncomeBracket line}++data Page1PartB line = Page1PartB {+ line9_basic :: line Centi,+ line10_age :: line Centi,+ spouseAmount :: BaseCredit line,+ dependantAmount :: BaseCredit line,+ line17_infirm :: line Centi,+ line18 :: line Centi,+ line19_cppQpp :: line Centi,+ line20_cppQpp :: line Centi,+ line21_employmentInsurance :: line Centi,+ line22_employmentInsurance :: line Centi,+ line23_adoption :: line Centi,+ line24_sum :: SubCalculation line,+ line25 :: line Centi}++data Page2 line = Page2 {+ partB :: Page2PartB line}++data Page2PartB line = Page2PartB {+ line26 :: line Centi,+ line27_pension :: line Centi,+ line28_caregiver :: line Centi,+ line29 :: line Centi,+ line30_disability :: line Centi,+ line31 :: line Centi,+ line32 :: line Centi,+ line33_interest :: line Centi,+ line34_education :: line Centi,+ line35_transferredSpouse :: line Centi,+ line36 :: line Centi,+ medicalExpenses :: MedicalExpenses line,+ line43 :: line Centi,+ line44_sum :: SubCalculation line,+ line45 :: line Centi,+ line46_rate :: line Rational,+ line47_fraction :: line Centi,+ donations :: Donations line,+ line50_sum :: SubCalculation line,+ line51 :: line Centi}++data Donations line = Donations {+ line48_base :: line Centi,+ line48_fraction :: line Centi,+ line49_base :: line Centi,+ line49_fraction :: line Centi}++data Page3 line = Page3 {+ partC :: PartC line,+ partD :: PartD line}++data PartC line = PartC {+ line52_tax :: line Centi,+ line53_splitIncomeTax :: line Centi,+ line54 :: line Centi,+ line55_copy :: line Centi,+ line56_dividendCredits :: line Centi,+ line57_copy :: line Centi,+ line57_fraction :: line Centi,+ line58_sum :: SubCalculation line,+ line59_difference :: line Centi,+ line60_fromT691 :: line Centi,+ line60_fraction :: line Centi,+ line61 :: line Centi,+ line62_foreignCredit :: line Centi,+ line63_difference :: line Centi,+ line64_political :: line Centi,+ line65_political :: line Centi,+ line66_tax :: line Centi}++data PartD line = PartD {+ line67_investorCredit :: line Centi,+ line68_stockCredit :: line Centi,+ line69_credits :: line Centi}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Centi), Show (line Rational), Show (line Word))+ => Show ($(TH.conT t) line)+ deriving instance (Eq (line Centi), Eq (line Rational), Eq (line Word))+ => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''AB428, ''Page1, ''Page2, ''Page3,+ ''Page1PartA, ''Page1PartB, ''Page2PartB, ''PartC, ''PartD, ''Donations])
@@ -0,0 +1,108 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Province.BC (BC428, bc428Fields, bc479Fields, fixBC428, fixBC479, fixReturns, returnFields, t1Fields) where++import Data.CAProvinceCodes (Code(BC))+import Rank2 qualified+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Federal qualified as Federal+import Tax.Canada.Federal (Forms(t1), fixFederalForms)+import Tax.Canada.T1.Types (T1 (T1, page7, page8), Page7(Page7, step6_RefundOrBalanceOwing), Page8(Page8))+import Tax.Canada.T1.Types qualified as T1+import Tax.Canada.T1.Types qualified as Page8 (Page8(..))+import Tax.Canada.T1.FieldNames.BC (t1Fields)++import Tax.Canada.Province.BC.BC428.Types qualified as BC+import Tax.Canada.Province.BC.BC428.Types qualified as BC.Page1 (Page1(..))+import Tax.Canada.Province.BC.BC428.Types qualified as BC.Page2 (Page2(..))+import Tax.Canada.Province.BC.BC428.Types (BC428 (BC428))+import Tax.Canada.Province.BC.BC428.Fix (fixBC428)+import Tax.Canada.Province.BC.BC428.FieldNames (bc428Fields)+import Tax.Canada.Province.BC.BC479.Types qualified as BCC+import Tax.Canada.Province.BC.BC479.Types (BC479 (BC479))+import Tax.Canada.Province.BC.BC479.Fix (fixBC479)+import Tax.Canada.Province.BC.BC479.FieldNames (bc479Fields)++import Tax.Canada.Shared(MedicalExpenses(..), BaseCredit(..))+import Tax.FDF (FieldConst, within)+import Tax.Util (fixEq, totalOf)++data Returns line = Returns {+ federal :: Federal.Forms line,+ bc428 :: BC428 line,+ bc479 :: BC479 line}++deriving instance (Show (Federal.Forms line), Show (BC428 line), Show (BC479 line)) => Show (Returns line)+deriving instance (Eq (Federal.Forms line), Eq (BC428 line), Eq (BC479 line)) => Eq (Returns line)+Rank2.TH.deriveAll ''Returns+Transformation.Shallow.TH.deriveAll ''Returns++fixReturns :: Returns Maybe -> Returns Maybe+fixReturns =+ fixEq $ \Returns{federal = ff@Federal.Forms{t1 = t1@T1{page7 = page7@Page7{step6_RefundOrBalanceOwing},+ page8 = page8@Page8{step6_RefundOrBalanceOwing = page8step6}}},+ bc428 = bc428@BC428{page1 = page1@BC.Page1{partA, partB = partB1@BC.Page1PartB{spouseAmount}},+ page2 = page2@BC.Page2{BC.partB = partB2@BC.Page2PartB{BC.medicalExpenses}},+ page3 = page3@BC.Page3{BC.partC}},+ bc479}+ -> Returns{federal = fixFederalForms+ ff{t1 = t1{page7 =+ page7{step6_RefundOrBalanceOwing =+ step6_RefundOrBalanceOwing{T1.line_42800_ProvTerrTax =+ bc428.page3.line91_tax}},+ page8 =+ page8{Page8.step6_RefundOrBalanceOwing =+ page8step6{T1.line_47900_ProvTerrCredits =+ bc479.page3.line42_credits}}}},+ bc428 = fixBC428+ bc428{BC.page1 =+ page1{BC.Page1.partA =+ partA{BC.income = t1.page5.step4_TaxableIncome.line_26000_TaxableIncome},+ BC.Page1.partB =+ partB1{BC.spouseAmount = spouseAmount{reduction = t1.page1.spouse.line23600}}+ },+ BC.page2 =+ page2{BC.Page2.partB = partB2{BC.line27_cppQpp = t1.page6.line30800,+ BC.line28_cppQpp = t1.page6.line31000,+ BC.line29_employmentInsurance = t1.page6.line31200,+ BC.line30_employmentInsurance = t1.page6.line31217,+ BC.line41_interest = t1.page6.line31900,+ BC.medicalExpenses =+ medicalExpenses{+ expenses = t1.page6.medical_expenses.familyExpenses,+ netIncome = t1.page4.line_23600_NetIncome}}},+ BC.page3 =+ page3{BC.partC = partC{BC.line66_copy = t1.page7.partC_NetFederalTax.line40427},+ BC.line74_copy = t1.page4.line_23600_NetIncome}},+ bc479 = fixBC479+ bc479{BCC.page1 =+ bc479.page1{BCC.line1_netIncome_self = t1.page4.line_23600_NetIncome,+ BCC.line1_netIncome_spouse = t1.page1.spouse.line23600,+ BCC.line4_uccb_rdsp_income_self = totalOf [t1.page3.line_11700_UCCB,+ t1.page3.line_12500_RDSP],+ BCC.line7_threshold = if t1.page1.identification.maritalStatus+ `elem` [Just T1.Married,+ Just T1.LivingCommonLaw]+ then Just 18_000+ else 15_000 <$ t1.page1.identification.maritalStatus}}}++returnFields :: Returns FieldConst+returnFields = Returns{+ federal = Federal.formFieldsForProvince BC,+ bc428 = within "428" Rank2.<$> bc428Fields,+ bc479 = within "479" Rank2.<$> bc479Fields}
@@ -0,0 +1,152 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.Province.BC.BC428.FieldNames (bc428Fields) where++import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.BC.BC428.Types+import Tax.Canada.Shared (BaseCredit(..), MedicalExpenses(..), TaxIncomeBracket (..), subCalculationFields)+import Tax.FDF (Entry (Count, Constant, Amount, Percent), FieldConst (Field, NoField), within)++bc428Fields = within "form1" Rank2.<$> BC428 {+ page1 = within "Page1" Rank2.<$> page1Fields,+ page2 = within "Page2" Rank2.<$> page2Fields,+ page3 = within "Page3" Rank2.<$> page3Fields}+++page1Fields = Page1 {+ partA = within "PartA" Rank2.<$> page1PartAFields,+ partB = within "PartB" Rank2.<$> page1PartBFields}++page1PartAFields = Page1PartA {+ income = Field ["Line1", "Amount"] Amount,+ column1 = within "Column1" Rank2.<$> taxIncomeBracketFields 0 0.0506 0,+ column2 = within "Column2" Rank2.<$> taxIncomeBracketFields 45_654 0.077 2_310.09,+ column3 = within "Column3" Rank2.<$> taxIncomeBracketFields 91_310 0.105 5_825.60,+ column4 = within "Column4" Rank2.<$> taxIncomeBracketFields 104_835 0.1229 7_245.73,+ column5 = within "Column5" Rank2.<$> (taxIncomeBracketFields' 127_299 0.147 10_006.56){equalsTax = Field ["LIne15", "Amount"] Amount},+ column6 = within "Column6" Rank2.<$> (taxIncomeBracketFields' 172_602 0.168 16_666.10){rate = Field ["Line12", "Percent_amount"] $ Constant 0.168 Percent},+ column7 = within "Column7" Rank2.<$> taxIncomeBracketFields' 240_716 0.205 28_109.25}++taxIncomeBracketFields :: Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst+taxIncomeBracketFields threshold rate baseTax = TaxIncomeBracket {+ income = Field ["Line2", "Amount"] Amount,+ threshold = Field ["Line3", "Amount_ReadOnly"] $ Constant threshold Amount,+ overThreshold = Field ["Line4", "Amount"] Amount,+ rate = Field ["Line5", "Percent_Amount"] $ Constant rate Percent,+ timesRate = Field ["Line6", "Amount"] Amount,+ baseTax = Field ["Line7", "Amount_ReadOnly"] $ Constant baseTax Amount,+ equalsTax = Field ["Line8", "Amount"] Amount}++taxIncomeBracketFields' :: Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst+taxIncomeBracketFields' threshold rate baseTax = TaxIncomeBracket {+ income = Field ["Line9", "Amount"] Amount,+ threshold = Field ["Line10", "Amount_ReadOnly"] $ Constant threshold Amount,+ overThreshold = Field ["Line11", "Amount"] Amount,+ rate = Field ["Line12", "Percent_Amount"] $ Constant rate Percent,+ timesRate = Field ["Line13", "Amount"] Amount,+ baseTax = Field ["Line14", "Amount_ReadOnly"] $ Constant baseTax Amount,+ equalsTax = Field ["Line15", "Amount"] Amount}++page1PartBFields = Page1PartB {+ line16_basic = Field ["Line16", "Amount"] Amount,+ line17_age = Field ["Line17", "Amount"] Amount,+ spouseAmount = within "Spouse_CPL_Amount" Rank2.<$> BaseCredit{+ baseAmount = Field ["Line18", "Amount"] $ Constant 11_285 Amount,+ reduction = Field ["Line19", "Amount"] Amount,+ difference = Field ["Line20", "Amount1"] Amount,+ cont = Field ["Line20", "Amount2"] Amount},+ dependantAmount = within "Amount_Eligible_Dependant" Rank2.<$> BaseCredit{+ baseAmount = Field ["Line21", "Amount"] $ Constant 11_285 Amount,+ reduction = Field ["Line22", "Amount"] Amount,+ difference = Field ["Line23", "Amount1"] Amount,+ cont = Field ["Line23", "Amount2"] Amount},+ line24_caregiver = Field ["Line24", "Amount"] Amount,+ line25 = Field ["Line25", "Amount"] Amount}++page2Fields = Page2 {+ partB = page2PartBFields}++page2PartBFields = Page2PartB {+ line26 = Field ["Line26", "Amount"] Amount,+ line27_cppQpp = Field ["Line27", "Amount"] Amount,+ line28_cppQpp = Field ["Line28", "Amount"] Amount,+ line29_employmentInsurance = Field ["Line29", "Amount"] Amount,+ line30_employmentInsurance = Field ["Line30", "Amount"] Amount,+ line31_firefighters = Field ["Line31", "Amount"] Amount,+ line32_rescue = Field ["Line32", "Amount"] Amount,+ line33_sum = subCalculationFields "Line33" ["I1", "Amount"] ["I2", "Amount"],+ line34_adoption = Field ["Line34", "Amount"] Amount,+ line35 = Field ["Line35", "Amount"] Amount,+ line36_pension = Field ["Line36", "Amount"] Amount,+ line37 = Field ["Line37", "Amount"] Amount,+ line38_disability = Field ["Line38", "Amount"] Amount,+ line39 = Field ["Line39", "Amount"] Amount,+ line40 = Field ["Line40", "Amount"] Amount,+ line41_interest = Field ["Line41", "Amount"] Amount,+ line42_education = Field ["Line42", "Amount"] Amount,+ line43_transferredChild = Field ["Line43", "Amount"] Amount,+ line44_transferredSpouse = Field ["Line44", "Amount"] Amount,+ line45 = Field ["Line45", "Amount"] Amount,+ medicalExpenses = within "MedicalExp" Rank2.<$> medicalExpensesFields,+ line52 = Field ["Line52", "Amount"] Amount,+ line53_sum = subCalculationFields "Line53" ["Amount1"] ["Amount2"],+ line54 = Field ["Line54", "Amount"] Amount,+ line55_rate = Field ["Line55", "PercentAmount_ReadOnly"] $ Constant 0.0506 Percent,+ line56_fraction = Field ["Line56", "Amount"] Amount,+ line57_donations = Field ["Line57", "Amount"] Amount,+ line58 = Field ["Line58", "Amount"] Amount,+ line59_food = Field ["Line59", "Gifts_from_57", "Amount"] Amount,+ line59_fraction = Field ["Line59", "Amount"] Amount,+ line60 = Field ["Line60", "Amount"] Amount}++medicalExpensesFields = MedicalExpenses {+ expenses = Field ["Line46", "Amount"] Amount,+ netIncome = Field ["Line47", "Amount"] Amount,+ incomeRate = Field ["Line48", "PercentAmount_ReadOnly"] $ Constant 0.03 Percent,+ fraction = Field ["Line49", "Amount"] Amount,+ lesser = Field ["Line50", "Amount"] Amount,+ difference = Field ["Line51", "Amount"] Amount}++partCFields = PartC {+ line61_tax = Field ["Line61", "Amount"] Amount,+ line62_splitIncomeTax = Field ["Line62", "Amount"] Amount,+ line63 = Field ["Line63", "Amount"] Amount,+ line64_copy = Field ["Line64", "Amount"] Amount,+ line65_dividendCredits = Field ["Line65", "Amount"] Amount,+ line66_copy = Field ["Line66", "Line40427", "Amount"] Amount,+ line66_fraction = Field ["Line66", "Amount"] Amount,+ line67_sum = subCalculationFields "Line67" ["Amount1"] ["Amount2"],+ line68 = Field ["Line68", "Amount"] Amount,+ line69_copy = Field ["Line69", "Line120", "Amount"] Amount,+ line69_fraction = Field ["Line69", "Amount"] Amount,+ line70 = Field ["Line70", "Amount"] Amount,+ line71_foreignCredit = Field ["Line71", "Amount"] Amount,+ line72 = Field ["Line72", "Amount"] Amount}++page3Fields = Page3 {+ partC = partCFields,+ line73_basicReduction = Field ["Line73", "Amount"] Amount,+ line74_copy = Field ["Line74", "Amount"] Amount,+ line75_base = Field ["Line75", "Amount_ReadOnly"] $ Constant 23_179 Amount,+ line76_difference = Field ["Line76", "Amount"] Amount,+ line77_rate = Field ["Line77", "PercentAmount_ReadOnly"] $ Constant 0.0356 Percent,+ line78_fraction = subCalculationFields "Line78" ["Amount1"] ["Amount2"],+ line79_difference = subCalculationFields "Line79" ["Amount1"] ["Amount2"],+ line80_difference = Field ["Line80", "Amount"] Amount,+ line81_logging = Field ["Line81", "Amount"] Amount,+ line82_difference = Field ["Line82", "Amount"] Amount,+ line83_political = Field ["Line83", "Amount"] Amount,+ line84_political = Field ["Line84", "Amount"] Amount,+ line85_difference = Field ["Line85", "Amount"] Amount,+ line86_esop20 = Field ["Line86", "Amount"] Amount,+ line87_evcc30 = Field ["Line87", "Amount"] Amount,+ line88_sum = subCalculationFields "Line88" ["Amount1"] ["Amount2"],+ line89_difference = Field ["Line89", "Amount"] Amount,+ line90_mining = Field ["Line90", "Amount"] Amount,+ line91_tax = Field ["Line91", "Amount"] Amount}
@@ -0,0 +1,106 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++module Tax.Canada.Province.BC.BC428.Fix (BC428, fixBC428) where++import Control.Applicative (liftA2)+import Control.Monad (guard, mfilter)+import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.BC.BC428.Types+import Tax.Canada.Shared (fixBaseCredit, fixMedicalExpenses, fixSubCalculation, fixTaxIncomeBracket,+ BaseCredit(cont), MedicalExpenses (difference),+ SubCalculation (result), TaxIncomeBracket (equalsTax))+import Tax.Util (fixEq, fractionOf, nonNegativeDifference, totalOf)++fixBC428 :: BC428 Maybe -> BC428 Maybe+fixBC428 = fixEq $ \bc428@BC428{..}-> BC428{page1 = fixPage1 page1,+ page2 = fixPage2 bc428 page2,+ page3 = fixPage3 bc428 page3}++fixPage1 :: Page1 Maybe -> Page1 Maybe+fixPage1 = fixEq $ \Page1{..}-> Page1{+ partA = fixPage1PartA partA,+ partB = fixPage1PartB partB}++fixPage1PartA :: Page1PartA Maybe -> Page1PartA Maybe+fixPage1PartA = fixEq $ \Page1PartA{..}-> Page1PartA{+ income = income,+ column1 = fixTaxIncomeBracket income (Just column2) column1,+ column2 = fixTaxIncomeBracket income (Just column3) column2,+ column3 = fixTaxIncomeBracket income (Just column4) column3,+ column4 = fixTaxIncomeBracket income (Just column5) column4,+ column5 = fixTaxIncomeBracket income (Just column6) column5,+ column6 = fixTaxIncomeBracket income (Just column7) column6,+ column7 = fixTaxIncomeBracket income Nothing column7}++fixPage1PartB :: Page1PartB Maybe -> Page1PartB Maybe+fixPage1PartB = fixEq $ \part@Page1PartB{..}-> part{+ line16_basic = Just 11981,+ spouseAmount = fixBaseCredit spouseAmount,+ dependantAmount = fixBaseCredit dependantAmount,+ line25 = totalOf [line16_basic, line17_age, spouseAmount.cont, dependantAmount.cont, line24_caregiver]}++fixPage2 :: BC428 Maybe -> Page2 Maybe -> Page2 Maybe+fixPage2 bc428 = fixEq $ \Page2{..}-> Page2{+ partB = fixPage2PartB bc428 partB}++fixPage2PartB :: BC428 Maybe -> Page2PartB Maybe -> Page2PartB Maybe+fixPage2PartB bc428 = fixEq $ \part@Page2PartB{..}-> part{+ line26 = bc428.page1.partB.line25,+ line33_sum = fixSubCalculation $+ totalOf [line27_cppQpp,+ line28_cppQpp,+ line29_employmentInsurance,+ line30_employmentInsurance,+ line31_firefighters,+ line32_rescue],+ line35 = totalOf [line26, line33_sum.result, line34_adoption],+ line37 = totalOf [line35, line36_pension],+ line40 = totalOf [line37, line38_disability, line39],+ line45 = totalOf [line40, line41_interest, line42_education, line43_transferredChild, line44_transferredSpouse],+ medicalExpenses = fixMedicalExpenses 2491 medicalExpenses,+ line53_sum = fixSubCalculation $ totalOf [medicalExpenses.difference, line52],+ line54 = totalOf [line45, line53_sum.result],+ line56_fraction = line55_rate `fractionOf` line54,+ line58 = totalOf [line56_fraction, line57_donations],+ line59_fraction = Just 0.25 `fractionOf` line59_food,+ line60 = totalOf [line58, line59_fraction]}++fixPartC :: BC428 Maybe -> PartC Maybe -> PartC Maybe+fixPartC bc428 = fixEq $ \part@PartC{..}-> part{+ line61_tax = totalOf [bc428.page1.partA.column1.equalsTax,+ bc428.page1.partA.column2.equalsTax,+ bc428.page1.partA.column3.equalsTax,+ bc428.page1.partA.column4.equalsTax,+ bc428.page1.partA.column5.equalsTax,+ bc428.page1.partA.column6.equalsTax,+ bc428.page1.partA.column7.equalsTax],+ line63 = totalOf [line61_tax, line62_splitIncomeTax],+ line64_copy = bc428.page2.partB.line60,+ line66_fraction = Just 0.337 `fractionOf` line66_copy,+ line67_sum = fixSubCalculation $ totalOf [line64_copy, line65_dividendCredits, line66_fraction],+ line68 = nonNegativeDifference line63 line67_sum.result,+ line69_fraction = Just 0.337 `fractionOf` line69_copy,+ line70 = totalOf [line68, line69_fraction],+ line72 = nonNegativeDifference line70 line71_foreignCredit}++fixPage3 :: BC428 Maybe -> Page3 Maybe -> Page3 Maybe+fixPage3 bc428 = fixEq $ \page@Page3{..}-> page{+ partC = fixPartC bc428 partC,+ line73_basicReduction = Just 521,+ line76_difference = nonNegativeDifference line74_copy line75_base,+ line78_fraction = fixSubCalculation $ line77_rate `fractionOf` line76_difference,+ line79_difference = fixSubCalculation $ nonNegativeDifference line73_basicReduction line78_fraction.result,+ line80_difference = nonNegativeDifference partC.line72 line79_difference.result,+ line82_difference = nonNegativeDifference line80_difference line81_logging,+ line85_difference = nonNegativeDifference line82_difference line84_political,+ line88_sum = fixSubCalculation $ min 2000 <$> totalOf [line86_esop20, line87_evcc30],+ line89_difference = nonNegativeDifference line85_difference line88_sum.result,+ line91_tax = nonNegativeDifference line89_difference line90_mining}
@@ -0,0 +1,136 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Province.BC.BC428.Types where++import Data.Fixed (Centi)+import Language.Haskell.TH qualified as TH+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Shared (BaseCredit, MedicalExpenses, SubCalculation, TaxIncomeBracket)++data BC428 line = BC428 {+ page1 :: Page1 line,+ page2 :: Page2 line,+ page3 :: Page3 line}++data Page1 line = Page1 {+ partA :: Page1PartA line,+ partB :: Page1PartB line}++data Page1PartA line = Page1PartA {+ income :: line Centi,+ column1 :: TaxIncomeBracket line,+ column2 :: TaxIncomeBracket line,+ column3 :: TaxIncomeBracket line,+ column4 :: TaxIncomeBracket line,+ column5 :: TaxIncomeBracket line,+ column6 :: TaxIncomeBracket line,+ column7 :: TaxIncomeBracket line}++data Page1PartB line = Page1PartB {+ line16_basic :: line Centi,+ line17_age :: line Centi,+ spouseAmount :: BaseCredit line,+ dependantAmount :: BaseCredit line,+ line24_caregiver :: line Centi,+ line25 :: line Centi}++data Page2 line = Page2 {+ partB :: Page2PartB line}++data Page2PartB line = Page2PartB {+ line26 :: line Centi,+ line27_cppQpp :: line Centi,+ line28_cppQpp :: line Centi,+ line29_employmentInsurance :: line Centi,+ line30_employmentInsurance :: line Centi,+ line31_firefighters :: line Centi,+ line32_rescue :: line Centi,+ line33_sum :: SubCalculation line,+ line34_adoption :: line Centi,+ line35 :: line Centi,+ line36_pension :: line Centi,+ line37 :: line Centi,+ line38_disability :: line Centi,+ line39 :: line Centi,+ line40 :: line Centi,+ line41_interest :: line Centi,+ line42_education :: line Centi,+ line43_transferredChild :: line Centi,+ line44_transferredSpouse :: line Centi,+ line45 :: line Centi,+ medicalExpenses :: MedicalExpenses line,+ line52 :: line Centi,+ line53_sum :: SubCalculation line,+ line54 :: line Centi,+ line55_rate :: line Rational,+ line56_fraction :: line Centi,+ line57_donations :: line Centi,+ line58 :: line Centi,+ line59_food :: line Centi,+ line59_fraction :: line Centi,+ line60 :: line Centi}++data PartC line = PartC {+ line61_tax :: line Centi,+ line62_splitIncomeTax :: line Centi,+ line63 :: line Centi,+ line64_copy :: line Centi,+ line65_dividendCredits :: line Centi,+ line66_copy :: line Centi,+ line66_fraction :: line Centi,+ line67_sum :: SubCalculation line,+ line68 :: line Centi,+ line69_copy :: line Centi,+ line69_fraction :: line Centi,+ line70 :: line Centi,+ line71_foreignCredit :: line Centi,+ line72 :: line Centi}++data Page3 line = Page3 {+ partC :: PartC line,+ line73_basicReduction :: line Centi,+ line74_copy :: line Centi,+ line75_base :: line Centi,+ line76_difference :: line Centi,+ line77_rate :: line Rational,+ line78_fraction :: SubCalculation line,+ line79_difference :: SubCalculation line,+ line80_difference :: line Centi,+ line81_logging :: line Centi,+ line82_difference :: line Centi,+ line83_political :: line Centi,+ line84_political :: line Centi,+ line85_difference :: line Centi,+ line86_esop20 :: line Centi,+ line87_evcc30 :: line Centi,+ line88_sum :: SubCalculation line,+ line89_difference :: line Centi,+ line90_mining :: line Centi,+ line91_tax :: line Centi}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Centi), Show (line Rational), Show (line Word))+ => Show ($(TH.conT t) line)+ deriving instance (Eq (line Centi), Eq (line Rational), Eq (line Word))+ => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''BC428, ''Page1, ''Page2, ''Page3,+ ''Page1PartA, ''Page1PartB, ''Page2PartB, ''PartC])
@@ -0,0 +1,77 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.Province.BC.BC479.FieldNames (bc479Fields) where++import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.BC.BC479.Types+import Tax.Canada.Shared (subCalculationFields)+import Tax.FDF (Entry (Amount, Checkbox, Constant, Count, Percent, Textual), FieldConst (Field), within)++bc479Fields = within "form1" Rank2.<$> BC479 {+ page1 = within "Page1" Rank2.<$> page1Fields,+ page2 = within "Page2" Rank2.<$> page2Fields,+ page3 = within "Page3" Rank2.<$> page3Fields}++page1Fields = Page1 {+ line1_netIncome_self = Field ["Chart", "Column1", "Line1", "Col1_Amount"] Amount,+ line1_netIncome_spouse = Field ["Chart", "Column2", "Line1", "Col2_Amount"] Amount,+ line2_uccb_rdsp_repayment_self = Field ["Chart", "Column1", "Line2", "Col1_Amount"] Amount,+ line2_uccb_rdsp_repayment_spouse = Field ["Chart", "Column2", "Line2", "Col2_Amount"] Amount,+ line3_sum_self = Field ["Chart", "Column1", "Line3", "Col1_Amount"] Amount,+ line3_sum_spouse = Field ["Chart", "Column2", "Line3", "Col2_Amount"] Amount,+ line4_uccb_rdsp_income_self = Field ["Chart", "Column1", "Line4", "Col1_Amount"] Amount,+ line4_uccb_rdsp_income_spouse = Field ["Chart", "Column2", "Line4", "Col2_Amount"] Amount,+ line5_difference_self = Field ["Chart", "Column1", "Line5", "Col1_Amount"] Amount,+ line5_difference_spouse = Field ["Chart", "Column2", "Line5", "Col2_Amount"] Amount,+ line6_sum = Field ["Chart", "Line6", "Amount"] Amount,+ line7_threshold = Field ["Line7", "Amount"] Amount,+ line8_difference = Field ["Line8", "Amount"] Amount,+ line_60330_sales = Field ["Line9", "Amount"] Amount,+ line_60350_spouse = Field ["Line10", "Amount"] Amount,+ line11_sum = Field ["Line11", "Amount"] Amount,+ line12_copy = Field ["Line12", "Amount1"] Amount,+ line12_fraction = Field ["Line12", "Amount2"] Amount,+ line13_difference = Field ["Line13", "Amount"] Amount,+ line_60890_separate = Field ["BCSHRTC", "Line60890", "CheckBox"] Checkbox,+ line_60480_renovation = Field ["BCSHRTC", "Line14", "Line60480", "Amount"] Amount,+ line14_fraction = Field ["BCSHRTC", "Line14", "Amount"] Amount,+ line15_sum = Field ["BCSHRTC", "Line15", "Amount"] Amount}++page2Fields = Page2 {+ line16_copy = Field ["Line16", "Amount"] Amount,+ line17_venture = Field ["BCVCTC", "Line17", "Amount"] Amount,+ line_60490_shares = Field ["BCVCTC", "Line18", "Amount"] Amount,+ line_60491_certificate = Field ["BCVCTC", "Line19", "Account_Number_Comb_EN", "Account_Number"] Textual,+ line_60495_shares = Field ["BCVCTC", "Line20", "Amount"] Amount,+ line_60496_certificate = Field ["BCVCTC", "Line21", "Account_Number"] Textual,+ line22_sum = subCalculationFields "BCVCTC" ["Line22", "I1", "Amount1"] ["Line22", "I2", "Amount2"],+ line_60510_fromT88 = Field ["BCMETC", "Line23", "Amount"] Amount,+ line_60530_fromT88 = Field ["BCMETC", "Line24", "Amount"] Amount,+ line_60545_buildings = Field ["BCCBTC", "Line25", "I1", "Amount1"] Amount,+ line_60546_partnership = Field ["BCCBTC", "Line26", "I1", "Amount1"] Amount,+ line27_sum = subCalculationFields "BCCBTC" ["Line27", "I1", "Amount1"] ["Line27", "I2", "Amount2"],+ line_60550_training = Field ["BCTTC", "Line28", "Amount"] Amount,+ line_60560_training = Field ["BCTTC", "Line29", "Amount"] Amount,+ line_60570_ships = Field ["BCTTC", "Line30", "Amount"] Amount,+ line31_sum = subCalculationFields "BCTTC" ["Line31", "I1", "Amount1"] ["Line31", "I2", "Amount2"],+ line32_credits = Field ["BCTTC", "Line32", "Amount"] Amount}++page3Fields = Page3 {+ line33_copy = Field ["Line33", "Amount"] Amount,+ tenancy_months1 = Field ["Table", "Row1", "Numberofmonths"] Count,+ tenancy_months2 = Field ["Table", "Row2", "Numberofmonths"] Count,+ rent_paid1 = Field ["Table", "Row1", "RentPaid"] Amount,+ rent_paid2 = Field ["Table", "Row2", "Rentpaid"] Amount,+ line_60575_sum = Field ["Line34", "Amount"] Count,+ line35_ceiling = Field ["Line35", "Amount_ReadOnly"] $ Constant 400 Amount,+ line36_income_copy = Field ["Line36", "Amount"] Amount,+ line37_threshold = Field ["Line37", "AmountRead_Only"] $ Constant 60_000 Amount,+ line38_difference = Field ["Line38", "Amount"] Amount,+ line39_rate = Field ["Line39", "PercentAmount_ReadOnly"] $ Constant 0.02 Percent,+ line40_fraction = subCalculationFields "Line40" ["L1", "Amount"] ["L2", "Amount2"],+ line_60576_difference = subCalculationFields "Line41" ["I1", "Amount1"] ["I2", "Amount2"],+ line42_credits = Field ["Line42", "Amount"] Amount}
@@ -0,0 +1,48 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE RecordWildCards #-}++module Tax.Canada.Province.BC.BC479.Fix (BC479, fixBC479) where++import Tax.Canada.Province.BC.BC479.Types+import Tax.Canada.Shared (fixSubCalculation, SubCalculation(result))+import Tax.Util (fixEq, fractionOf, nonNegativeDifference, totalOf)++fixBC479 :: BC479 Maybe -> BC479 Maybe+fixBC479 = fixEq $ \bc479@BC479{..}-> BC479{page1 = fixPage1 page1,+ page2 = fixPage2 bc479 page2,+ page3 = fixPage3 bc479 page3}++fixPage1 :: Page1 Maybe -> Page1 Maybe+fixPage1 = fixEq $ \page@Page1{..}-> page{+ line3_sum_self = totalOf [line1_netIncome_self, line2_uccb_rdsp_repayment_self],+ line3_sum_spouse = totalOf [line1_netIncome_spouse, line2_uccb_rdsp_repayment_spouse],+ line5_difference_self = nonNegativeDifference line3_sum_self line4_uccb_rdsp_income_self,+ line5_difference_spouse = nonNegativeDifference line3_sum_spouse line4_uccb_rdsp_income_spouse,+ line6_sum = totalOf [line5_difference_self, line5_difference_spouse],+ line8_difference = nonNegativeDifference line6_sum line7_threshold,+ line_60330_sales = Just 75,+ line11_sum = totalOf [line_60330_sales, line_60350_spouse],+ line12_copy = line8_difference,+ line12_fraction = (0.02 *) <$> line8_difference,+ line13_difference = nonNegativeDifference line11_sum line12_fraction,+ line14_fraction = (0.1 *) <$> line_60480_renovation,+ line15_sum = totalOf [line13_difference, line14_fraction]}++fixPage2 :: BC479 Maybe -> Page2 Maybe -> Page2 Maybe+fixPage2 bc479 = fixEq $ \page2@Page2{..}-> page2{+ line16_copy = bc479.page1.line15_sum,+ line22_sum = fixSubCalculation $ totalOf [line17_venture, line_60490_shares, line_60495_shares],+ line27_sum = fixSubCalculation $ totalOf [line_60545_buildings, line_60546_partnership],+ line31_sum = fixSubCalculation $ totalOf [line_60550_training, line_60560_training, line_60570_ships],+ line32_credits = totalOf [line16_copy, line22_sum.result, line27_sum.result, line_60510_fromT88, line31_sum.result]}++fixPage3 :: BC479 Maybe -> Page3 Maybe -> Page3 Maybe+fixPage3 bc479 = fixEq $ \page3@Page3{..}-> page3{+ line33_copy = bc479.page2.line32_credits,+ line_60575_sum = totalOf [tenancy_months1, tenancy_months2],+ line36_income_copy = bc479.page1.line6_sum,+ line38_difference = nonNegativeDifference line36_income_copy line37_threshold,+ line40_fraction = fixSubCalculation $ line39_rate `fractionOf` line38_difference,+ line_60576_difference = fixSubCalculation $ nonNegativeDifference line35_ceiling line40_fraction.result,+ line42_credits = totalOf [line33_copy, line_60576_difference.result]}
@@ -0,0 +1,100 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Province.BC.BC479.Types where++import Data.Fixed (Centi)+import Data.Text (Text)+import Language.Haskell.TH qualified as TH+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Shared (SubCalculation)++data BC479 line = BC479 {+ page1 :: Page1 line,+ page2 :: Page2 line,+ page3 :: Page3 line}++data Page1 line = Page1 {+ line1_netIncome_self :: line Centi,+ line1_netIncome_spouse :: line Centi,+ line2_uccb_rdsp_repayment_self :: line Centi,+ line2_uccb_rdsp_repayment_spouse :: line Centi,+ line3_sum_self :: line Centi,+ line3_sum_spouse :: line Centi,+ line4_uccb_rdsp_income_self :: line Centi,+ line4_uccb_rdsp_income_spouse :: line Centi,+ line5_difference_self :: line Centi,+ line5_difference_spouse :: line Centi,+ line6_sum :: line Centi,+ line7_threshold :: line Centi,+ line8_difference :: line Centi,+ line_60330_sales :: line Centi,+ line_60350_spouse :: line Centi,+ line11_sum :: line Centi,+ line12_copy :: line Centi,+ line12_fraction :: line Centi,+ line13_difference :: line Centi,+ line_60890_separate :: line Bool,+ line_60480_renovation :: line Centi,+ line14_fraction :: line Centi,+ line15_sum :: line Centi}++data Page2 line = Page2 {+ line16_copy :: line Centi,+ line17_venture :: line Centi,+ line_60490_shares :: line Centi,+ line_60491_certificate :: line Text,+ line_60495_shares :: line Centi,+ line_60496_certificate :: line Text,+ line22_sum :: SubCalculation line,+ line_60510_fromT88 :: line Centi,+ line_60530_fromT88 :: line Centi,+ line_60545_buildings :: line Centi,+ line_60546_partnership :: line Centi,+ line27_sum :: SubCalculation line,+ line_60550_training :: line Centi,+ line_60560_training :: line Centi,+ line_60570_ships :: line Centi,+ line31_sum :: SubCalculation line,+ line32_credits :: line Centi}++data Page3 line = Page3 {+ line33_copy :: line Centi,+ tenancy_months1 :: line Word,+ tenancy_months2 :: line Word,+ rent_paid1 :: line Centi,+ rent_paid2 :: line Centi,+ line_60575_sum :: line Word,+ line35_ceiling :: line Centi,+ line36_income_copy :: line Centi,+ line37_threshold :: line Centi,+ line38_difference :: line Centi,+ line39_rate :: line Rational,+ line40_fraction :: SubCalculation line,+ line_60576_difference :: SubCalculation line,+ line42_credits :: line Centi}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Bool), Show (line Centi), Show (line Word),+ Show (line Rational), Show (line Text)) => Show ($(TH.conT t) line)+ deriving instance (Eq (line Bool), Eq (line Centi), Eq (line Word),+ Eq (line Rational), Eq (line Text)) => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''BC479, ''Page1, ''Page2, ''Page3])
@@ -0,0 +1,70 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.Province.MB (MB428, fixMB428, fixReturns, mb428Fields, returnFields, t1Fields) where++import qualified Rank2++import Data.CAProvinceCodes (Code(MB))++import Tax.Canada.Federal qualified as Federal+import Tax.Canada.Federal (Forms(t1), fixFederalForms)+import Tax.Canada.Federal.Schedule9 qualified as Schedule9+import Tax.Canada.T1.Types (T1 (T1, page7, page8), Page7(Page7, step6_RefundOrBalanceOwing), Page8(Page8))+import Tax.Canada.T1.Types qualified as T1+import Tax.Canada.T1.FieldNames.AB (t1Fields) -- same T1 form as Alberta+import Tax.Canada.T1.Fix (fixT1)++import Tax.Canada.Province.MB.MB428.Types qualified as MB+import Tax.Canada.Province.MB.MB428.Types qualified as MB.Page1 (Page1(..))+import Tax.Canada.Province.MB.MB428.Types qualified as MB.Page2 (Page2(..))+import Tax.Canada.Province.MB.MB428.Types (MB428 (MB428))+import Tax.Canada.Province.MB.MB428.Fix (fixMB428)+import Tax.Canada.Province.MB.MB428.FieldNames (mb428Fields)++import Tax.Canada.Shared(MedicalExpenses(..), BaseCredit(..))+import Tax.FDF (FieldConst, within)+import Tax.Util (fixEq)++import Data.Functor.Product (Product(Pair))++type Returns = Product Federal.Forms MB428++fixReturns :: Returns Maybe -> Returns Maybe+fixReturns =+ fixEq $ \(Pair ff@Federal.Forms{t1 = t1@T1{page7 = page7@Page7{step6_RefundOrBalanceOwing},+ page8 = page8@Page8{step6_RefundOrBalanceOwing = page8step6}},+ schedule9}+ mb428@MB428{page1 = page1@MB.Page1{partA, partB = partB1@MB.Page1PartB{spouseAmount}},+ page2 = page2@MB.Page2{MB.partB = partB2@MB.Page2PartB{MB.medicalExpenses}},+ page3 = page3@MB.Page3{MB.partC}})+ -> Pair (fixFederalForms ff{t1 = t1{page7 =+ page7{step6_RefundOrBalanceOwing =+ step6_RefundOrBalanceOwing{T1.line_42800_ProvTerrTax =+ mb428.page3.partC.line82_tax}}}})+ (fixMB428 mb428{MB.page1 =+ page1{MB.Page1.income = t1.page5.step4_TaxableIncome.line_26000_TaxableIncome,+ MB.Page1.partB = partB1{MB.spouseAmount =+ spouseAmount{reduction = t1.page1.spouse.line23600},+ MB.line19_cppQpp = t1.page6.line30800,+ MB.line20_cppQpp = t1.page6.line31000,+ MB.line21_employmentInsurance = t1.page6.line31200,+ MB.line22_employmentInsurance = t1.page6.line31217}},+ MB.page2 =+ page2{MB.Page2.partB = partB2{MB.line37_interest = t1.page6.line31900,+ MB.medicalExpenses =+ medicalExpenses{+ expenses = t1.page6.medical_expenses.familyExpenses,+ netIncome = t1.page4.line_23600_NetIncome},+ MB.donations = partB2.donations{+ MB.line54_base = schedule9.line13_min,+ MB.line55_base = schedule9.line14_difference}}},+ MB.page3 =+ page3{MB.partC = partC{MB.line63_copy = t1.page7.partC_NetFederalTax.line40427}}})++returnFields :: Returns FieldConst+returnFields = Pair (Federal.formFieldsForProvince MB) (within "428" Rank2.<$> mb428Fields)
@@ -0,0 +1,140 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.Province.MB.MB428.FieldNames (mb428Fields) where++import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.MB.MB428.Types+import Tax.Canada.Shared (BaseCredit(..), MedicalExpenses(..), TaxIncomeBracket (..), subCalculationFields)+import Tax.FDF (Entry (Count, Constant, Amount, Percent), FieldConst (Field, NoField), within)++mb428Fields = within "form1" Rank2.<$> MB428 {+ page1 = within "Page1" Rank2.<$> page1Fields,+ page2 = within "Page2" Rank2.<$> page2Fields,+ page3 = within "Page3" Rank2.<$> page3Fields}+++page1Fields = Page1 {+ income = Field ["Line1", "Amount"] Amount,+ partA = within "Table" Rank2.<$> page1PartAFields,+ partB = page1PartBFields}++page1PartAFields = Page1PartA {+ column1 = within "Column1" Rank2.<$> taxIncomeBracketFields 0 0.108 0,+ column2 = within "Column2" Rank2.<$> taxIncomeBracketFields 36_842 0.1275 3_978.94,+ column3 = within "Column3" Rank2.<$> (taxIncomeBracketFields 79_625 0.174 9_433.77)}++taxIncomeBracketFields :: Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst+taxIncomeBracketFields threshold rate baseTax = TaxIncomeBracket {+ income = Field ["Line2", "Amount"] Amount,+ threshold = Field ["Line3", "Amount"] $ Constant threshold Amount,+ overThreshold = Field ["Line4", "Amount"] Amount,+ rate = Field ["Line5", "Percent"] $ Constant rate Percent,+ timesRate = Field ["Line6", "Amount"] Amount,+ baseTax = Field ["Line7", "Amount"] $ Constant baseTax Amount,+ equalsTax = Field ["Line8", "Amount"] Amount}++page1PartBFields = Page1PartB {+ line9_basic = Field ["Line9", "Amount"] Amount,+ line10_age = Field ["Line10", "Amount"] Amount,+ spouseAmount = BaseCredit{+ baseAmount = Field ["Line11", "Amount"] $ Constant 9_134 Amount,+ reduction = Field ["Line12", "Amount"] Amount,+ difference = Field ["line13", "Amount1"] Amount,+ cont = Field ["line13", "Amount2"] Amount},+ dependantAmount = BaseCredit{+ baseAmount = Field ["Line14", "Amount"] $ Constant 9_134 Amount,+ reduction = Field ["Line15", "Amount"] Amount,+ difference = Field ["Line16", "Amount1"] Amount,+ cont = Field ["Line16", "Amount2"] Amount},+ line17_infirm = Field ["Line17", "Amount"] Amount,+ line18 = Field ["Line18", "Amount"] Amount,+ line19_cppQpp = Field ["Line19", "Amount"] Amount,+ line20_cppQpp = Field ["Line20", "Amount"] Amount,+ line21_employmentInsurance = Field ["Line21", "Amount"] Amount,+ line22_employmentInsurance = Field ["Line22", "Amount"] Amount,+ line23_firefighters = Field ["Line23", "Amount"] Amount,+ line24_rescue = Field ["Line24", "Amount"] Amount,+ line25_fitness = Field ["Line25", "Amount"] Amount,+ line26_arts = Field ["Line26", "Amount"] Amount,+ line27_adoption = Field ["Line27", "Amount"] Amount,+ line28_sum = subCalculationFields "Line28" ["Amount1"] ["Amount2"],+ line29 = Field ["Line29", "Amount"] Amount}++page2Fields = Page2 {+ partB = within "PartB" Rank2.<$> page2PartBFields}++page2PartBFields = Page2PartB {+ line30 = Field ["Line30", "Amount"] Amount,+ line31_pension = Field ["Line31", "Amount"] Amount,+ line32_caregiver = Field ["Line32", "Amount"] Amount,+ line33 = Field ["Line33", "Amount"] Amount,+ line34_disability = Field ["Line34", "Amount"] Amount,+ line35 = Field ["Line35", "Amount"] Amount,+ line36 = Field ["Line36", "Amount"] Amount,+ line37_interest = Field ["Line37", "Amount"] Amount,+ line38_education = Field ["Line38", "Amount"] Amount,+ line39_transferredChild = Field ["Line39", "Amount"] Amount,+ line40_transferredSpouse = Field ["Line40", "Amount"] Amount,+ line41_family = Field ["Line41", "Amount"] Amount,+ line42_sum = Field ["Line42", "Amount"] Amount,+ medicalExpenses = within "MedicalExpenses" Rank2.<$> medicalExpensesFields,+ line49 = Field ["Line49", "Amount"] Amount,+ line50_sum = subCalculationFields "Line50" ["Amount1"] ["Amount2"],+ line51 = Field ["Line51", "Amount"] Amount,+ line52_rate = Field ["Line52", "Percent_ReadOnly"] $ Constant 0.108 Percent,+ line53_fraction = Field ["Line53", "Amount"] Amount,+ donations = donationFields,+ line56_sum = subCalculationFields "Line56" ["Amount1"] ["Amount2"],+ line57 = Field ["Line57", "Amount"] Amount}++medicalExpensesFields = MedicalExpenses {+ expenses = Field ["Line43", "Amount"] Amount,+ netIncome = Field ["Line44", "Amount"] Amount,+ incomeRate = Field ["Line45", "Percent_ReadOnly"] $ Constant 0.03 Percent,+ fraction = Field ["Line46", "Amount"] Amount,+ lesser = Field ["Line47", "Amount"] Amount,+ difference = Field ["Line48", "Amount"] Amount}++donationFields = Donations {+ line54_base = Field ["Line54", "Amount1"] Amount,+ line54_fraction = Field ["Line54", "Amount2"] Amount,+ line55_base = Field ["Line55", "Amount1"] Amount,+ line55_fraction = Field ["Line55", "Amount2"] Amount}++page3Fields = Page3 {+ partC = within "PartC" Rank2.<$> partCFields}++partCFields = PartC {+ line58_tax = Field ["Line58", "Amount"] Amount,+ line59_splitIncomeTax = Field ["Line59", "Amount"] Amount,+ line60 = Field ["Line60", "Amount"] Amount,+ line61_copy = Field ["Line61", "Amount"] Amount,+ line62_dividendCredits = Field ["Line62", "Amount"] Amount,+ line63_copy = Field ["Line63", "Amount1"] Amount,+ line63_fraction = Field ["Line63", "Amount2"] Amount,+ line64_sum = subCalculationFields "Line64" ["Amount1"] ["Amount2"],+ line65_difference = Field ["Line65", "Amount"] Amount,+ line66_fromT691 = Field ["Line66", "Amount1"] Amount,+ line66_fraction = Field ["Line66", "Amount2"] Amount,+ line67 = Field ["Line67", "Amount"] Amount,+ line68_political = Field ["Line68", "Amount"] Amount,+ line69_political = Field ["Line69", "Amount"] Amount,+ line70_difference = Field ["Line70", "Amount"] Amount,+ line71_labour = Field ["Line71", "Amount"] Amount,+ line72_difference = Field ["Line72", "Amount"] Amount,+ line73_foreignCredit = Field ["Line73", "Amount"] Amount,+ line74_difference = Field ["Line74", "Amount"] Amount,+ line75_community = Field ["Line75", "Amount"] Amount,+ line76_difference = Field ["Line76", "Amount"] Amount,+ line77_venture = Field ["Line77", "Amount"] Amount,+ line78_difference = Field ["Line78", "Amount"] Amount,+ line79_sharePurchase = Field ["Line79", "Amount"] Amount,+ line80_difference = Field ["Line80", "Amount"] Amount,+ line81_mineral = Field ["Line81", "Amount"] Amount,+ line82_tax = Field ["Line82", "Amount"] Amount}
@@ -0,0 +1,107 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++module Tax.Canada.Province.MB.MB428.Fix (MB428, fixMB428) where++import Control.Applicative (liftA2)+import Control.Monad (guard)+import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.MB.MB428.Types+import Tax.Canada.Shared (fixBaseCredit, fixMedicalExpenses, fixSubCalculation, fixTaxIncomeBracket,+ BaseCredit(cont), MedicalExpenses (difference),+ SubCalculation (result), TaxIncomeBracket (equalsTax))+import Tax.Util (fixEq, fractionOf, nonNegativeDifference, totalOf)++fixMB428 :: MB428 Maybe -> MB428 Maybe+fixMB428 = fixEq $ \mb428@MB428{..}-> MB428{page1 = fixPage1 page1,+ page2 = fixPage2 mb428 page2,+ page3 = fixPage3 mb428 page3}++fixPage1 :: Page1 Maybe -> Page1 Maybe+fixPage1 = fixEq $ \Page1{..}-> Page1{+ income = income,+ partA = fixPage1PartA income partA,+ partB = fixPage1PartB partB}++fixPage1PartA :: Maybe Centi -> Page1PartA Maybe -> Page1PartA Maybe+fixPage1PartA income = fixEq $ \Page1PartA{..}-> Page1PartA{+ column1 = fixTaxIncomeBracket income (Just column2) column1,+ column2 = fixTaxIncomeBracket income (Just column3) column2,+ column3 = fixTaxIncomeBracket income Nothing column3}++fixPage1PartB :: Page1PartB Maybe -> Page1PartB Maybe+fixPage1PartB = fixEq $ \part@Page1PartB{..}-> part{+ line9_basic = Just 15000,+ spouseAmount = fixBaseCredit spouseAmount,+ dependantAmount = fixBaseCredit dependantAmount,+ line18 = totalOf [line9_basic, line10_age, spouseAmount.cont, dependantAmount.cont, line17_infirm],+ line28_sum = fixSubCalculation $+ totalOf [line19_cppQpp,+ line20_cppQpp,+ line21_employmentInsurance,+ line22_employmentInsurance,+ line23_firefighters,+ line24_rescue,+ line25_fitness,+ line26_arts,+ line27_adoption],+ line29 = totalOf [line18, line28_sum.result]}++fixPage2 :: MB428 Maybe -> Page2 Maybe -> Page2 Maybe+fixPage2 mb428 = fixEq $ \Page2{..}-> Page2{+ partB = fixPage2PartB mb428 partB}++fixPage2PartB :: MB428 Maybe -> Page2PartB Maybe -> Page2PartB Maybe+fixPage2PartB mb428 = fixEq $ \part@Page2PartB{..}-> part{+ line30 = mb428.page1.partB.line29,+ line33 = totalOf [line30, line31_pension, line32_caregiver],+ line36 = totalOf [line33, line34_disability, line35],+ line42_sum = totalOf [line36,+ line37_interest,+ line38_education,+ line39_transferredChild,+ line40_transferredSpouse,+ line41_family],+ medicalExpenses = fixMedicalExpenses 1728 medicalExpenses,+ line50_sum = fixSubCalculation $ totalOf [medicalExpenses.difference, line49],+ line51 = totalOf [line42_sum, line50_sum.result],+ line53_fraction = line52_rate `fractionOf` line51,+ donations = fixDonations donations,+ line56_sum = fixSubCalculation $ totalOf [donations.line54_fraction, donations.line55_fraction],+ line57 = totalOf [line53_fraction, line56_sum.result]}++fixDonations :: Donations Maybe -> Donations Maybe+fixDonations = fixEq $ \part@Donations{..} -> part{+ line54_fraction = Just 0.108 `fractionOf` line54_base,+ line55_fraction = Just 0.174 `fractionOf` line55_base}++fixPage3 :: MB428 Maybe -> Page3 Maybe -> Page3 Maybe+fixPage3 mb428 = fixEq $ \page@Page3{..}-> page{+ partC = fixPartC mb428 partC}++fixPartC :: MB428 Maybe -> PartC Maybe -> PartC Maybe+fixPartC mb428 = fixEq $ \part@PartC{..}-> part{+ line58_tax = totalOf [mb428.page1.partA.column1.equalsTax,+ mb428.page1.partA.column2.equalsTax,+ mb428.page1.partA.column3.equalsTax],+ line60 = totalOf [line58_tax, line59_splitIncomeTax],+ line61_copy = mb428.page2.partB.line57,+ line63_fraction = Just 0.5 `fractionOf` line63_copy,+ line64_sum = fixSubCalculation $ totalOf [line61_copy, line62_dividendCredits, line63_fraction],+ line65_difference = nonNegativeDifference line60 line64_sum.result,+ line66_fraction = Just 0.5 `fractionOf` line66_fromT691,+ line67 = totalOf [line65_difference, line66_fraction],+ line70_difference = nonNegativeDifference line67 line69_political,+ line72_difference = nonNegativeDifference line70_difference line71_labour,+ line74_difference = nonNegativeDifference line72_difference line73_foreignCredit,+ line76_difference = nonNegativeDifference line74_difference line75_community,+ line78_difference = nonNegativeDifference line76_difference line77_venture,+ line80_difference = nonNegativeDifference line78_difference line79_sharePurchase,+ line82_tax = nonNegativeDifference line80_difference line81_mineral}
@@ -0,0 +1,134 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Province.MB.MB428.Types where++import Data.Fixed (Centi)+import Language.Haskell.TH qualified as TH+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Shared (BaseCredit, MedicalExpenses, SubCalculation, TaxIncomeBracket)++data MB428 line = MB428 {+ page1 :: Page1 line,+ page2 :: Page2 line,+ page3 :: Page3 line}++data Page1 line = Page1 {+ income :: line Centi,+ partA :: Page1PartA line,+ partB :: Page1PartB line}++data Page1PartA line = Page1PartA {+ column1 :: TaxIncomeBracket line,+ column2 :: TaxIncomeBracket line,+ column3 :: TaxIncomeBracket line}++data Page1PartB line = Page1PartB {+ line9_basic :: line Centi,+ line10_age :: line Centi,+ spouseAmount :: BaseCredit line,+ dependantAmount :: BaseCredit line,+ line17_infirm :: line Centi,+ line18 :: line Centi,+ line19_cppQpp :: line Centi,+ line20_cppQpp :: line Centi,+ line21_employmentInsurance :: line Centi,+ line22_employmentInsurance :: line Centi,+ line23_firefighters :: line Centi,+ line24_rescue :: line Centi,+ line25_fitness :: line Centi,+ line26_arts :: line Centi,+ line27_adoption :: line Centi,+ line28_sum :: SubCalculation line,+ line29 :: line Centi}++data Page2 line = Page2 {+ partB :: Page2PartB line}++data Page2PartB line = Page2PartB {+ line30 :: line Centi,+ line31_pension :: line Centi,+ line32_caregiver :: line Centi,+ line33 :: line Centi,+ line34_disability :: line Centi,+ line35 :: line Centi,+ line36 :: line Centi,+ line37_interest :: line Centi,+ line38_education :: line Centi,+ line39_transferredChild :: line Centi,+ line40_transferredSpouse :: line Centi,+ line41_family :: line Centi,+ line42_sum :: line Centi,+ medicalExpenses :: MedicalExpenses line,+ line49 :: line Centi,+ line50_sum :: SubCalculation line,+ line51 :: line Centi,+ line52_rate :: line Rational,+ line53_fraction :: line Centi,+ donations :: Donations line,+ line56_sum :: SubCalculation line,+ line57 :: line Centi}++data Donations line = Donations {+ line54_base :: line Centi,+ line54_fraction :: line Centi,+ line55_base :: line Centi,+ line55_fraction :: line Centi}++data Page3 line = Page3 {+ partC :: PartC line}++data PartC line = PartC {+ line58_tax :: line Centi,+ line59_splitIncomeTax :: line Centi,+ line60 :: line Centi,+ line61_copy :: line Centi,+ line62_dividendCredits :: line Centi,+ line63_copy :: line Centi,+ line63_fraction :: line Centi,+ line64_sum :: SubCalculation line,+ line65_difference :: line Centi,+ line66_fromT691 :: line Centi,+ line66_fraction :: line Centi,+ line67 :: line Centi,+ line68_political :: line Centi,+ line69_political :: line Centi,+ line70_difference :: line Centi,+ line71_labour :: line Centi,+ line72_difference :: line Centi,+ line73_foreignCredit :: line Centi,+ line74_difference :: line Centi,+ line75_community :: line Centi,+ line76_difference :: line Centi,+ line77_venture :: line Centi,+ line78_difference :: line Centi,+ line79_sharePurchase :: line Centi,+ line80_difference :: line Centi,+ line81_mineral :: line Centi,+ line82_tax :: line Centi}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Centi), Show (line Rational), Show (line Word))+ => Show ($(TH.conT t) line)+ deriving instance (Eq (line Centi), Eq (line Rational), Eq (line Word))+ => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''MB428, ''Page1, ''Page2, ''Page3,+ ''Page1PartA, ''Page1PartB, ''Page2PartB, ''PartC, ''Donations])
@@ -0,0 +1,3 @@+module Tax.Canada.Province.NB (t1Fields) where++import Tax.Canada.T1.FieldNames.NB (t1Fields)
@@ -0,0 +1,3 @@+module Tax.Canada.Province.NL (t1Fields) where++import Tax.Canada.T1.FieldNames.NL (t1Fields)
@@ -0,0 +1,97 @@+{-# LANGUAGE Haskell2010 #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Province.ON (Returns(..), ON428, ON479, fixON428, fixON479, fixReturns,+ returnFields, t1Fields, on428Fields, on479Fields) where++import Data.CAProvinceCodes (Code(ON))+import Rank2 qualified+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Federal qualified as Federal+import Tax.Canada.Federal (Forms(t1), fixFederalForms)+import Tax.Canada.Federal.Schedule9 qualified as Schedule9+import Tax.Canada.T1.Types (T1 (T1, page7, page8), Page7(Page7, step6_RefundOrBalanceOwing), Page8(Page8))+import Tax.Canada.T1.Types qualified as T1+import Tax.Canada.T1.Types qualified as Page8 (Page8(..))+import Tax.Canada.T1.FieldNames.ON (t1Fields)++import Tax.Canada.Province.ON.ON428.Types qualified as ON+import Tax.Canada.Province.ON.ON428.Types qualified as ON.Page1 (Page1(..))+import Tax.Canada.Province.ON.ON428.Types qualified as ON.Page2 (Page2(..))+import Tax.Canada.Province.ON.ON428.Types (ON428 (ON428))+import Tax.Canada.Province.ON.ON428.Fix (fixON428)+import Tax.Canada.Province.ON.ON428.FieldNames (on428Fields)+import Tax.Canada.Province.ON.ON479.Types (ON479 (ON479, page2), Page2(line23_credits))+import Tax.Canada.Province.ON.ON479.Fix (fixON479)+import Tax.Canada.Province.ON.ON479.FieldNames (on479Fields)++import Tax.Canada.Shared(MedicalExpenses(..), BaseCredit(..))+import Tax.FDF (FieldConst, within)+import Tax.Util (fixEq)++data Returns line = Returns {+ federal :: Federal.Forms line,+ on428 :: ON428 line,+ on479 :: ON479 line}++deriving instance (Show (Federal.Forms line), Show (ON428 line), Show (ON479 line)) => Show (Returns line)+deriving instance (Eq (Federal.Forms line), Eq (ON428 line), Eq (ON479 line)) => Eq (Returns line)+Rank2.TH.deriveAll ''Returns+Transformation.Shallow.TH.deriveAll ''Returns++fixReturns :: Returns Maybe -> Returns Maybe+fixReturns =+ fixEq $ \Returns{federal = ff@Federal.Forms{t1 = t1@T1{page7 = page7@Page7{step6_RefundOrBalanceOwing},+ page8 = page8@Page8{step6_RefundOrBalanceOwing = page8step6}},+ schedule9},+ on428 = on428@ON428{page1 = page1@ON.Page1{partB = partB1@ON.Page1PartB{spouseAmount}},+ page2 = page2@ON.Page2{ON.partB = partB2@ON.Page2PartB{ON.medicalExpenses},+ ON.partC}},+ on479}+ -> Returns{federal = fixFederalForms ff{t1 =+ t1{page7 =+ page7{step6_RefundOrBalanceOwing =+ step6_RefundOrBalanceOwing{T1.line_42800_ProvTerrTax=+ on428.page4.line90}},+ page8 =+ page8{Page8.step6_RefundOrBalanceOwing =+ page8step6{T1.line_47900_ProvTerrCredits =+ on479.page2.line23_credits}}}},+ on428 = fixON428 on428{+ ON.page1 =+ page1{ON.line1 = t1.page5.step4_TaxableIncome.line_26000_TaxableIncome,+ ON.Page1.partB = partB1{ON.spouseAmount = spouseAmount{reduction = t1.page1.spouse.line23600},+ ON.line19_cppQpp = t1.page6.line30800,+ ON.line20_cppQpp = t1.page6.line31000,+ ON.line21_employmentInsurance = t1.page6.line31200,+ ON.line22_employmentInsurance = t1.page6.line31217}},+ ON.page2 =+ page2{ON.Page2.partB = partB2{ON.line32_interest = t1.page6.line31900,+ ON.medicalExpenses =+ medicalExpenses{+ netIncome = t1.page4.line_23600_NetIncome},+ ON.donations = partB2.donations{+ ON.line47_base = schedule9.line13_min,+ ON.line48_base = schedule9.line14_difference}},+ ON.partC = partC{ON.line59_copy = t1.page7.partC_NetFederalTax.line40427}}},+ on479}++returnFields :: Returns FieldConst+returnFields = Returns{+ federal = Federal.formFieldsForProvince ON,+ on428 = within "428" Rank2.<$> on428Fields,+ on479 = within "479" Rank2.<$> on479Fields}
@@ -0,0 +1,173 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.Province.ON.ON428.FieldNames (on428Fields) where++import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.ON.ON428.Types+import Tax.Canada.Province.ON.ON428.Types qualified as HealthPremiumBracket (HealthPremiumBracket(..))+import Tax.Canada.Shared (BaseCredit(..), MedicalExpenses(..), TaxIncomeBracket (..), subCalculationFields)+import Tax.FDF (Entry (Count, Constant, Amount, Percent), FieldConst (Field, NoField), within)++on428Fields = within "form1" Rank2.<$> ON428 {+ page1 = within "Page1" Rank2.<$> page1Fields,+ page2 = within "Page2" Rank2.<$> page2Fields,+ page3 = within "Page3" Rank2.<$> page3Fields,+ page4 = within "Page4" Rank2.<$> page4Fields}+++page1Fields = Page1 {+ line1 = Field ["Line1", "Amount"] Amount,+ partA = within "Chart" Rank2.<$> page1PartAFields,+ partB = within "Part_B" Rank2.<$> page1PartBFields}++page1PartAFields = Page1PartA {+ column1 = within "Column1" Rank2.<$> taxIncomeBracketFields 0 0.0505 0,+ column2 = within "Column2" Rank2.<$> taxIncomeBracketFields 49_231.00 0.0915 2_486.17,+ column3 = within "Column3" Rank2.<$> taxIncomeBracketFields 98_463.00 0.1116 6_990.89,+ column4 = within "Column4" Rank2.<$> taxIncomeBracketFields 150_000.00 0.1216 12_742.42,+ column5 = within "Column5" Rank2.<$> taxIncomeBracketFields 220_000.00 0.1316 21_254.42}++taxIncomeBracketFields :: Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst+taxIncomeBracketFields threshold rate baseTax = TaxIncomeBracket {+ income = Field ["Line2", "Amount"] Amount,+ threshold = Field ["Line3", "Amount"] $ Constant threshold Amount,+ overThreshold = Field ["Line4", "Amount"] Amount,+ rate = Field ["Line5", "Percent"] $ Constant rate Percent,+ timesRate = Field ["Line6", "Amount"] Amount,+ baseTax = Field ["Line7", "Amount"] $ Constant baseTax Amount,+ equalsTax = Field ["Line8", "Amount"] Amount}++page1PartBFields = Page1PartB {+ line9_basic = Field ["Line9", "Amount"] Amount,+ line10_age = Field ["Line10", "Amount"] Amount,+ spouseAmount = within "Spouse-Amount" Rank2.<$> BaseCredit{+ baseAmount = Field ["Line11", "Amount"] $ Constant 11_082 Amount,+ reduction = Field ["Line12", "Amount"] Amount,+ difference = Field ["Line13", "Amount1"] Amount,+ cont = Field ["Line13", "Amount2"] Amount},+ dependantAmount = within "Eligible-Dependant" Rank2.<$> BaseCredit{+ baseAmount = Field ["Line14", "Amount"] $ Constant 11_082 Amount,+ reduction = Field ["Line15", "Amount"] Amount,+ difference = Field ["Line16", "Amount1"] Amount,+ cont = Field ["Line16", "Amount2"] Amount},+ line17_caregiver = Field ["Line17", "Amount"] Amount,+ line18 = Field ["Line18", "Amount"] Amount,+ line19_cppQpp = Field ["CPP-QPP", "Line19", "Amount"] Amount,+ line20_cppQpp = Field ["CPP-QPP", "Line20", "Amount"] Amount,+ line21_employmentInsurance = Field ["Employment-Insurance", "Line21", "Amount"] Amount,+ line22_employmentInsurance = Field ["Employment-Insurance", "Line22", "Amount"] Amount,+ line23_adoption = Field ["Line23", "Amount"] Amount,+ line24_sum = subCalculationFields "Line24" ["Amount1"] ["Amount2"],+ line25 = Field ["Line25", "Amount"] Amount}++page2Fields = Page2 {+ partB = page2PartBFields,+ partC = page2PartCFields}++page2PartBFields = Page2PartB {+ line26 = Field ["Line26", "Amount"] Amount,+ line27_pension = Field ["Line27", "Amount"] Amount,+ line28 = Field ["Line28", "Amount"] Amount,+ line29_disability = Field ["Line29", "Amount"] Amount,+ line30 = Field ["Line30", "Amount"] Amount,+ line31 = Field ["Line31", "Amount"] Amount,+ line32_interest = Field ["Line32", "Amount"] Amount,+ line33_education = Field ["Line33", "Amount"] Amount,+ line34_transferred = Field ["Line34", "Amount"] Amount,+ line35 = Field ["Line35", "Amount"] Amount,+ medicalExpenses = within "Medical-Expenses" Rank2.<$> medicalExpensesFields,+ line42 = Field ["Line42", "Amount"] Amount,+ line43_sum = subCalculationFields "Line43" ["Amount1"] ["Amount2"],+ line44 = Field ["Line44", "Amount"] Amount,+ line45_rate = Field ["Line45", "Percent_ReadOnly"] $ Constant 0.0505 Percent,+ line46_fraction = Field ["Line46", "Amount"] Amount,+ donations = within "Donations" Rank2.<$> donationsFields,+ line50 = Field ["Line50", "Amount"] Amount}++medicalExpensesFields = MedicalExpenses {+ expenses = Field ["Line36", "Amount"] Amount,+ netIncome = Field ["Line37", "Amount"] Amount,+ incomeRate = Field ["Line38", "Percent_ReadOnly"] $ Constant 0.03 Percent,+ fraction = Field ["Line39", "Amount"] Amount,+ lesser = Field ["Line40", "Amount"] Amount,+ difference = Field ["Line41", "Amount"] Amount}++donationsFields = Donations {+ line47_base = Field ["Line47", "Amount1"] Amount,+ line47_fraction = Field ["Line47", "Amount2"] Amount,+ line48_base = Field ["Line48", "Amount1"] Amount,+ line48_fraction = Field ["Line48", "Amount2"] Amount,+ line49_sum = subCalculationFields "Line49" ["Amount1"] ["Amount2"]}++page2PartCFields = Page2PartC {+ line51_tax = Field ["Line51", "Amount"] Amount,+ line52_credits = Field ["Line52", "Amount"] Amount,+ line53 = Field ["Line53", "Amount"] Amount,+ line54 = Field ["Line54", "Amount"] Amount,+ line55 = Field ["Line55", "Amount"] Amount,+ line56 = Field ["Min-Tax-Carryover", "Line56", "Amount"] Amount,+ line57 = Field ["Min-Tax-Carryover", "Line57", "Amount"] Amount,+ line58 = Field ["Min-Tax-Carryover", "Line58", "Amount"] Amount,+ line59_copy = Field ["Min-Tax-Carryover", "Line59", "Amount1"] Amount,+ line59_product = Field ["Min-Tax-Carryover", "Line59", "Amount2"] Amount,+ line60_lesser = Field ["Min-Tax-Carryover", "Line60", "Amount"] Amount,+ line61 = Field ["Line61", "Amount"] Amount}++page3Fields = Page3 {+ line62 = Field ["Line62", "Amount"] Amount,+ line63 = Field ["ON-Surtax", "Line63", "Amount"] Amount,+ line64 = Field ["ON-Surtax", "Line64", "Amount"] Amount,+ line65 = Field ["ON-Surtax", "Line65", "Amount"] Amount,+ line66_copy = Field ["Line66", "Amount1"] Amount,+ line66_surtax = Field ["Line66", "Amount2"] Amount,+ line67_copy = Field ["Line67", "Amount1"] Amount,+ line67_surtax = Field ["Line67", "Amount2"] Amount,+ line68_sum = subCalculationFields "Line68" ["Amount1"] ["Amount2"],+ line69 = Field ["Line69", "Amount2"] Amount,+ line70 = Field ["Line70", "Amount"] Amount,+ line71 = Field ["Line71", "Amount"] Amount,+ line72 = Field ["Line72", "Amount"] Amount,+ line73 = Field ["Line73", "Amount"] Amount,+ line74_basicReduction = Field ["Line74", "Amount"] $ Constant 274 Amount,+ line75_childrenNum = Field ["Line75", "Line_60969", "Number"] Count,+ line75_amount = Field ["Line75", "Amount"] Amount,+ line76_childrenNum = Field ["Line76", "Line_60970", "Number"] Count,+ line76_amount = Field ["Line76", "Amount"] Amount,+ line77 = Field ["Line77", "Amount"] Amount,+ line78_copy = Field ["Line78", "Amount1"] Amount,+ line78_product = Field ["Line78", "Amount2"] Amount,+ line79 = Field ["Line79", "Amount"] Amount,+ line80_difference = subCalculationFields "Line80" ["Amount1"] ["Amount2"],+ line81 = Field ["Line81", "Amount"] Amount,+ line82 = Field ["Line82", "Amount"] Amount,+ line83 = Field ["Line83", "Amount"] Amount}++page4Fields = Page4 {+ line84 = Field ["Line84", "Amount"] Amount,+ line85_lift = Field ["Line85", "Amount"] Amount,+ line86 = Field ["Line86", "Amount"] Amount,+ line87_foodDonations = Field ["Line87", "Line62150", "Amount1"] Amount,+ line87_fraction = Field ["Line87", "Amount2"] Amount,+ line88 = Field ["Line88", "Amount"] Amount,+ line89_health = Field ["Line89", "Amount"] Amount,+ line90 = Field ["Line90", "Amount"] Amount,+ healthPremium = within "ON_Health_Prenium-worksheet" . within "Chart_ON_Health_Prenium" Rank2.<$> healthPremiumFields}++healthPremiumFields = HealthPremium {+ row1 = within "Taxable_Line2" Rank2.<$> healthPremiumBracketFields{HealthPremiumBracket.equalsTax = NoField},+ row2 = within "Taxable_Line4" Rank2.<$> healthPremiumBracketFields,+ row3 = within "Taxable_Line6" Rank2.<$> healthPremiumBracketFields,+ row4 = within "Taxable_Line8" Rank2.<$> healthPremiumBracketFields,+ row5 = within "Taxable_Line10" Rank2.<$> healthPremiumBracketFields}++healthPremiumBracketFields = HealthPremiumBracket {+ taxableIncome = Field ["Amount1"] Amount,+ overThreshold = Field ["Amount2"] Amount,+ timesRate = Field ["Amount3"] Amount,+ equalsTax = Field ["Amount4"] Amount}
@@ -0,0 +1,161 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++module Tax.Canada.Province.ON.ON428.Fix (ON428, fixON428) where++import Control.Applicative (liftA2)+import Control.Monad (guard, mfilter)+import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.ON.ON428.Types+import Tax.Canada.Shared (fixBaseCredit, fixMedicalExpenses, fixSubCalculation, fixTaxIncomeBracket,+ BaseCredit(cont), MedicalExpenses (difference),+ SubCalculation (result), TaxIncomeBracket (equalsTax))+import Tax.Util (fixEq, fractionOf, nonNegativeDifference, totalOf)++fixON428 :: ON428 Maybe -> ON428 Maybe+fixON428 = fixEq $ \on428@ON428{..}-> ON428{page1 = fixPage1 page1,+ page2 = fixPage2 on428 page2,+ page3 = fixPage3 on428 page3,+ page4 = fixPage4 on428 page4}++fixPage1 :: Page1 Maybe -> Page1 Maybe+fixPage1 = fixEq $ \Page1{..}-> Page1{+ line1 = line1,+ partA = fixPage1PartA line1 partA,+ partB = fixPage1PartB partB}++fixPage1PartA :: Maybe Centi -> Page1PartA Maybe -> Page1PartA Maybe+fixPage1PartA income = fixEq $ \Page1PartA{..}-> Page1PartA{+ column1 = fixTaxIncomeBracket income (Just column2) column1,+ column2 = fixTaxIncomeBracket income (Just column3) column2,+ column3 = fixTaxIncomeBracket income (Just column4) column3,+ column4 = fixTaxIncomeBracket income (Just column5) column4,+ column5 = fixTaxIncomeBracket income Nothing column5}++fixPage1PartB :: Page1PartB Maybe -> Page1PartB Maybe+fixPage1PartB = fixEq $ \part@Page1PartB{..}-> part{+ line9_basic = Just 11865,+ spouseAmount = fixBaseCredit spouseAmount,+ dependantAmount = fixBaseCredit dependantAmount,+ line18 = totalOf [line9_basic, line10_age, spouseAmount.cont, dependantAmount.cont, line17_caregiver],+ line24_sum = fixSubCalculation $+ totalOf [line19_cppQpp,+ line20_cppQpp,+ line21_employmentInsurance,+ line22_employmentInsurance,+ line23_adoption],+ line25 = totalOf [line18, line24_sum.result]}++fixPage2 :: ON428 Maybe -> Page2 Maybe -> Page2 Maybe+fixPage2 on428 = fixEq $ \Page2{..}-> Page2{+ partB = fixPage2PartB on428 partB,+ partC = fixPage2PartC on428 partC}++fixPage2PartB :: ON428 Maybe -> Page2PartB Maybe -> Page2PartB Maybe+fixPage2PartB on428 = fixEq $ \part@Page2PartB{..}-> part{+ line26 = on428.page1.partB.line25,+ line28 = totalOf [line26, line27_pension],+ line31 = totalOf [line28, line29_disability, line30],+ line35 = totalOf [line31, line32_interest, line33_education, line34_transferred],+ medicalExpenses = fixMedicalExpenses 2685 medicalExpenses,+ line43_sum = fixSubCalculation $ totalOf [medicalExpenses.difference, line42],+ line44 = totalOf [line35, line43_sum.result],+ line46_fraction = line45_rate `fractionOf` line44,+ donations = fixDonations donations,+ line50 = totalOf [line46_fraction, donations.line49_sum.result]}++fixPage2PartC :: ON428 Maybe -> Page2PartC Maybe -> Page2PartC Maybe+fixPage2PartC on428 = fixEq $ \part@Page2PartC{..}-> part{+ line51_tax = totalOf [on428.page1.partA.column1.equalsTax,+ on428.page1.partA.column2.equalsTax,+ on428.page1.partA.column3.equalsTax,+ on428.page1.partA.column4.equalsTax,+ on428.page1.partA.column5.equalsTax],+ line52_credits = on428.page2.partB.line50,+ line53 = nonNegativeDifference line51_tax line52_credits,+ line55 = totalOf [line53, line54],+ line56 = line53,+ line58 = nonNegativeDifference line56 line57,+ line59_product = Just 0.3367 `fractionOf` line59_copy,+ line60_lesser = min <$> line58 <*> line59_product,+ line61 = nonNegativeDifference line55 line60_lesser}++fixDonations :: Donations Maybe -> Donations Maybe+fixDonations = fixEq $ \part@Donations{..} -> part{+ line47_fraction = Just 0.0505 `fractionOf` line47_base,+ line48_fraction = Just 0.1116 `fractionOf` line48_base,+ line49_sum = fixSubCalculation $ totalOf [line47_fraction, line48_fraction]}++fixPage3 :: ON428 Maybe -> Page3 Maybe -> Page3 Maybe+fixPage3 on428 = fixEq $ \page@Page3{..}-> page{+ line62 = on428.page2.partC.line61,+ line63 = line62,+ line64 = on428.page2.partC.line54,+ line65 = nonNegativeDifference line63 line64,+ line66_copy = line65,+ line66_surtax = Just 0.2 `fractionOf` nonNegativeDifference line66_copy (Just 5315),+ line67_copy = line65,+ line67_surtax = Just 0.36 `fractionOf` nonNegativeDifference line67_copy (Just 6802),+ line68_sum = fixSubCalculation $ totalOf [line66_surtax, line67_surtax],+ line69 = totalOf [line62, line68_sum.result],+ line70 = on428.page2.partC.line57,+ line71 = nonNegativeDifference line69 line70,+ line73 = totalOf [line71, line72],+ line75_amount = ((506 *) . fromIntegral) <$> line75_childrenNum,+ line76_amount = ((506 *) . fromIntegral) <$> line76_childrenNum,+ line77 = totalOf [line74_basicReduction, line75_amount, line76_amount],+ line78_copy = line77,+ line78_product = (2 *) <$> line78_copy,+ line79 = line73,+ line80_difference = fixSubCalculation $ nonNegativeDifference line78_product line79,+ line81 = nonNegativeDifference line73 line80_difference.result,+ line83 = nonNegativeDifference line81 line82}++fixPage4 :: ON428 Maybe -> Page4 Maybe -> Page4 Maybe+fixPage4 on428 = fixEq $ \page@Page4{..}-> page{+ line84 = on428.page3.line83,+ line86 = nonNegativeDifference line84 line85_lift,+ line87_fraction = Just 0.25 `fractionOf` line87_foodDonations,+ line88 = nonNegativeDifference line86 line87_fraction,+ line89_health = totalOf [between 0 20000 0,+ healthPremium.row1.equalsTax,+ between 25000 36000 300,+ healthPremium.row2.equalsTax,+ between 38500 48000 450,+ healthPremium.row3.equalsTax,+ between 48600 72000 600,+ healthPremium.row4.equalsTax,+ between 72600 200000 750,+ healthPremium.row5.equalsTax,+ if income > 200600 then Just 900 else Nothing],+ line90 = totalOf [line88, line89_health],+ healthPremium = fixHealthPremium income healthPremium}+ where income = sum on428.page1.line1+ between floor ceiling tax+ | income > floor && income <= ceiling = Just tax+ | otherwise = Nothing++fixHealthPremium :: Centi -> HealthPremium Maybe -> HealthPremium Maybe+fixHealthPremium income = fixEq $ \HealthPremium{..}-> HealthPremium{+ row1 = fixHealthPremiumBracket income 20000 25000 0.06 0 row1,+ row2 = fixHealthPremiumBracket income 36000 38500 0.06 300 row2,+ row3 = fixHealthPremiumBracket income 48000 48600 0.25 450 row3,+ row4 = fixHealthPremiumBracket income 72000 72600 0.25 600 row4,+ row5 = fixHealthPremiumBracket income 200000 200600 0.25 750 row5}++fixHealthPremiumBracket :: Centi -> Centi -> Centi -> Rational -> Centi+ -> HealthPremiumBracket Maybe -> HealthPremiumBracket Maybe+fixHealthPremiumBracket income floor ceiling rate base HealthPremiumBracket{..}+ | income > floor && income < ceiling = HealthPremiumBracket{+ taxableIncome = Just income,+ overThreshold = Just $ income - floor,+ timesRate = Just rate `fractionOf` overThreshold,+ equalsTax = totalOf [timesRate, Just base]}+ | otherwise = Rank2.pure Nothing
@@ -0,0 +1,167 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Province.ON.ON428.Types where++import Data.Fixed (Centi)+import Language.Haskell.TH qualified as TH+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Shared (BaseCredit, MedicalExpenses, SubCalculation, TaxIncomeBracket)++data ON428 line = ON428 {+ page1 :: Page1 line,+ page2 :: Page2 line,+ page3 :: Page3 line,+ page4 :: Page4 line}++data Page1 line = Page1 {+ line1 :: line Centi,+ partA :: Page1PartA line,+ partB :: Page1PartB line}++data Page1PartA line = Page1PartA {+ column1 :: TaxIncomeBracket line,+ column2 :: TaxIncomeBracket line,+ column3 :: TaxIncomeBracket line,+ column4 :: TaxIncomeBracket line,+ column5 :: TaxIncomeBracket line}++data Page1PartB line = Page1PartB {+ line9_basic :: line Centi,+ line10_age :: line Centi,+ spouseAmount :: BaseCredit line,+ dependantAmount :: BaseCredit line,+ line17_caregiver :: line Centi,+ line18 :: line Centi,+ line19_cppQpp :: line Centi,+ line20_cppQpp :: line Centi,+ line21_employmentInsurance :: line Centi,+ line22_employmentInsurance :: line Centi,+ line23_adoption :: line Centi,+ line24_sum :: SubCalculation line,+ line25 :: line Centi}++data Page2 line = Page2 {+ partB :: Page2PartB line,+ partC :: Page2PartC line}++data Page2PartB line = Page2PartB {+ line26 :: line Centi,+ line27_pension :: line Centi,+ line28 :: line Centi,+ line29_disability :: line Centi,+ line30 :: line Centi,+ line31 :: line Centi,+ line32_interest :: line Centi,+ line33_education :: line Centi,+ line34_transferred :: line Centi,+ line35 :: line Centi,+ medicalExpenses :: MedicalExpenses line,+ line42 :: line Centi,+ line43_sum :: SubCalculation line,+ line44 :: line Centi,+ line45_rate :: line Rational,+ line46_fraction :: line Centi,+ donations :: Donations line,+ line50 :: line Centi}++data Donations line = Donations {+ line47_base :: line Centi,+ line47_fraction :: line Centi,+ line48_base :: line Centi,+ line48_fraction :: line Centi,+ line49_sum :: SubCalculation line}++data Page2PartC line = Page2PartC {+ line51_tax :: line Centi,+ line52_credits :: line Centi,+ line53 :: line Centi,+ line54 :: line Centi,+ line55 :: line Centi,+ line56 :: line Centi,+ line57 :: line Centi,+ line58 :: line Centi,+ line59_copy :: line Centi,+ line59_product :: line Centi,+ line60_lesser :: line Centi,+ line61 :: line Centi}++data Page3 line = Page3 {+ line62 :: line Centi,+ line63 :: line Centi,+ line64 :: line Centi,+ line65 :: line Centi,+ line66_copy :: line Centi,+ line66_surtax :: line Centi,+ line67_copy :: line Centi,+ line67_surtax :: line Centi,+ line68_sum :: SubCalculation line,+ line69 :: line Centi,+ line70 :: line Centi,+ line71 :: line Centi,+ line72 :: line Centi,+ line73 :: line Centi,+ line74_basicReduction :: line Centi,+ line75_amount :: line Centi,+ line75_childrenNum :: line Word,+ line76_amount :: line Centi,+ line76_childrenNum :: line Word,+ line77 :: line Centi,+ line78_copy :: line Centi,+ line78_product :: line Centi,+ line79 :: line Centi,+ line80_difference :: SubCalculation line,+ line81 :: line Centi,+ line82 :: line Centi,+ line83 :: line Centi}++data Page4 line = Page4 {+ line84 :: line Centi,+ line85_lift :: line Centi,+ line86 :: line Centi,+ line87_foodDonations :: line Centi,+ line87_fraction :: line Centi,+ line88 :: line Centi,+ line89_health :: line Centi,+ line90 :: line Centi,+ healthPremium :: HealthPremium line}++data HealthPremium line = HealthPremium {+ row1 :: HealthPremiumBracket line,+ row2 :: HealthPremiumBracket line,+ row3 :: HealthPremiumBracket line,+ row4 :: HealthPremiumBracket line,+ row5 :: HealthPremiumBracket line}++data HealthPremiumBracket line = HealthPremiumBracket {+ taxableIncome :: line Centi,+ overThreshold :: line Centi,+ timesRate :: line Centi,+ equalsTax :: line Centi}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Centi), Show (line Rational), Show (line Word))+ => Show ($(TH.conT t) line)+ deriving instance (Eq (line Centi), Eq (line Rational), Eq (line Word))+ => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''ON428, ''Page1, ''Page2, ''Page3, ''Page4,+ ''Page1PartA, ''Page1PartB, ''Page2PartB, ''Page2PartC,+ ''Donations, ''HealthPremium, ''HealthPremiumBracket])
@@ -0,0 +1,48 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.Province.ON.ON479.FieldNames (on479Fields) where++import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.ON.ON479.Types+import Tax.Canada.Shared (subCalculationFields)+import Tax.FDF (Entry (Count, Constant, Amount, Percent, RadioButton, Textual), FieldConst (Field), within)++on479Fields = within "form1" Rank2.<$> ON479 {+ page1 = within "Page1" Rank2.<$> page1Fields,+ page2 = within "Page2" Rank2.<$> page2Fields}+++page1Fields = Page1 {+ line_63050_childcare = Field ["Line1", "Amount"] Amount,+ line4_homecare_copy = Field ["Line2", "Amount"] Amount,+ line5_allowable = Field ["Line3", "Percent_ReadOnly"] $ Constant 0.25 Percent,+ line6_fraction = Field ["Line4", "Amount"] Amount,+ line7_netIncome_copy = Field ["Line5", "Amount"] Amount,+ line8_spouse_copy = Field ["Line6", "Amount"] Amount,+ line9_sum = Field ["Line7", "Amount1"] Amount,+ line10_base = Field ["Line8", "Amount"] $ Constant 35_000 Amount,+ line11_difference = Field ["Line9", "Amount"] Amount,+ line12_rate = Field ["Line10", "Percent_ReadOnly"] $ Constant 0.05 Percent,+ line13_fraction = subCalculationFields "Line11" ["Amount1"] ["Amount2"],+ line_63095_difference = subCalculationFields "Line12" ["Amount1"] ["Amount2"],+ line_63100_transit = Field ["Line13", "Line63100", "Amount"] Amount,+ line_63100_fraction = Field ["Line13", "Amount"] Amount,+ line16_sum = Field ["Line14", "Amount"] Amount}++page2Fields = Page2 {+ line17_copy = Field ["Line15", "Amount"] Amount,+ line_63110_contributions = Field ["ON_Political_Contribution", "Line16", "Amount"] Amount,+ line_63110_credit = Field ["ON_Political_Contribution", "Line17", "Amount"] Amount,+ line_63220_fromT1221 = Field ["Line18", "Line63220", "Amount1"] Amount,+ line_63220_fraction = Field ["Line18", "Amount2"] Amount,+ line_63260_placements = Field ["ON_coop_education", "Line63260", "NmbrApprentices"] Count,+ line_63265_partnership = Field ["ON_coop_education", "Line63265", "RadioButtonGroup"] $ RadioButton [True, False],+ line_63270_business = Field ["ON_coop_education", "Line63270", "BusinessNumber_9_Comb_Bottom_Adv", "BusinessNumber"] Textual,+ line_63300_total = Field ["Line19", "Amount"] Amount,+ line23_credits = Field ["Line20", "Amount"] Amount}
@@ -0,0 +1,39 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++module Tax.Canada.Province.ON.ON479.Fix (ON479, fixON479) where++import Control.Applicative (liftA2)+import Control.Monad (guard, mfilter)+import Data.Fixed (Centi)+import Rank2 qualified++import Tax.Canada.Province.ON.ON479.Types+import Tax.Canada.Shared (fixSubCalculation, SubCalculation(result))+import Tax.Util (fixEq, fractionOf, nonNegativeDifference, totalOf)++fixON479 :: ON479 Maybe -> ON479 Maybe+fixON479 = fixEq $ \on479@ON479{..}-> ON479{page1 = fixPage1 page1,+ page2 = fixPage2 on479 page2}++fixPage1 :: Page1 Maybe -> Page1 Maybe+fixPage1 = fixEq $ \page@Page1{..}-> page{+ line6_fraction = line5_allowable `fractionOf` line4_homecare_copy,+ line9_sum = totalOf [line7_netIncome_copy, line8_spouse_copy],+ line11_difference = nonNegativeDifference line9_sum line10_base,+ line13_fraction = fixSubCalculation $ line12_rate `fractionOf` line11_difference,+ line_63095_difference = fixSubCalculation $ nonNegativeDifference line6_fraction line13_fraction.result,+ line_63100_fraction = (0.15 *) <$> line_63100_transit,+ line16_sum = totalOf [line_63050_childcare, line_63095_difference.result, line_63100_fraction]}++fixPage2 :: ON479 Maybe -> Page2 Maybe -> Page2 Maybe+fixPage2 on479 = fixEq $ \page2@Page2{..}-> page2{+ line17_copy = on479.page1.line16_sum,+ line_63110_credit = if line_63110_contributions >= Just 3531 then Just 1552 else line_63110_credit, -- TODO worksheet?+ line_63220_fraction = (0.05 *) <$> line_63220_fromT1221,+ line23_credits = totalOf [line17_copy, line_63110_credit, line_63220_fraction, line_63300_total]}
@@ -0,0 +1,68 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Tax.Canada.Province.ON.ON479.Types where++import Data.Fixed (Centi)+import Data.Text (Text)+import Language.Haskell.TH qualified as TH+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.Canada.Shared (SubCalculation)++data ON479 line = ON479 {+ page1 :: Page1 line,+ page2 :: Page2 line}++data Page1 line = Page1 {+ line_63050_childcare :: line Centi,+ line4_homecare_copy :: line Centi,+ line5_allowable :: line Rational,+ line6_fraction :: line Centi,+ line7_netIncome_copy :: line Centi,+ line8_spouse_copy :: line Centi,+ line9_sum :: line Centi,+ line10_base :: line Centi,+ line11_difference :: line Centi,+ line12_rate :: line Rational,+ line13_fraction :: SubCalculation line,+ line_63095_difference :: SubCalculation line,+ line_63100_transit :: line Centi,+ line_63100_fraction :: line Centi,+ line16_sum :: line Centi}++data Page2 line = Page2 {+ line17_copy :: line Centi,+ line_63110_contributions :: line Centi,+ line_63110_credit :: line Centi,+ line_63220_fromT1221 :: line Centi,+ line_63220_fraction :: line Centi,+ line_63260_placements :: line Word,+ line_63265_partnership :: line Bool,+ line_63270_business :: line Text,+ line_63300_total :: line Centi,+ line23_credits :: line Centi}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Bool), Show (line Centi), Show (line Rational), Show (line Text), Show (line Word))+ => Show ($(TH.conT t) line)+ deriving instance (Eq (line Bool), Eq (line Centi), Eq (line Rational), Eq (line Text), Eq (line Word))+ => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''ON479, ''Page1, ''Page2])
@@ -0,0 +1,3 @@+module Tax.Canada.Province.PE (t1Fields) where++import Tax.Canada.T1.FieldNames.PE (t1Fields)
@@ -0,0 +1,3 @@+module Tax.Canada.Province.QC (t1Fields) where++import Tax.Canada.T1.FieldNames.QC (t1Fields)
@@ -0,0 +1,101 @@+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++-- | Common types and functions shared by multiple Canadian tax forms+module Tax.Canada.Shared where++import Control.Monad (guard, mfilter)+import Data.Fixed (Centi)+import Data.Text (Text)+import Language.Haskell.TH qualified as TH+import Rank2.TH qualified+import Transformation.Shallow.TH qualified++import Tax.FDF (FieldConst(Field), Entry(Amount))+import Tax.Util (fixEq, fractionOf, nonNegativeDifference)++data TaxIncomeBracket line = TaxIncomeBracket {+ income :: line Centi,+ threshold :: line Centi,+ overThreshold :: line Centi,+ rate :: line Rational,+ timesRate :: line Centi,+ baseTax :: line Centi,+ equalsTax :: line Centi}++data MedicalExpenses line = MedicalExpenses {+ expenses :: line Centi,+ netIncome :: line Centi,+ incomeRate :: line Rational,+ fraction :: line Centi,+ lesser :: line Centi,+ difference :: line Centi}++-- | Used in several provincial forms to calculate a fixed amount of tax credit reduced by income.+data BaseCredit line = BaseCredit {+ baseAmount :: line Centi,+ reduction :: line Centi,+ difference :: line Centi,+ cont :: line Centi}++-- | A pair of form fields appearing next to each other at the same line, the right field value always a copy of the+-- left one.+data SubCalculation line = SubCalculation {+ calculation :: line Centi,+ result :: line Centi}++$(foldMap+ (\t-> concat <$> sequenceA [+ [d|+ deriving instance (Show (line Centi), Show (line Rational))+ => Show ($(TH.conT t) line)+ deriving instance (Eq (line Centi), Eq (line Rational))+ => Eq ($(TH.conT t) line)+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t])+ [''BaseCredit, ''MedicalExpenses, ''SubCalculation, ''TaxIncomeBracket])++fixTaxIncomeBracket :: Maybe Centi -> Maybe (TaxIncomeBracket Maybe) -> TaxIncomeBracket Maybe -> TaxIncomeBracket Maybe+fixTaxIncomeBracket theIncome nextBracket = fixEq $ \bracket@TaxIncomeBracket{..} -> bracket{+ income = do i <- theIncome+ floor <- threshold+ let ceiling = nextBracket >>= (.threshold)+ guard (floor <= i && all (i <) ceiling)+ Just i,+ overThreshold = liftA2 (-) income threshold,+ timesRate = fromRational <$> liftA2 (*) (toRational <$> overThreshold) rate,+ equalsTax = liftA2 (+) timesRate baseTax}++fixBaseCredit :: BaseCredit Maybe -> BaseCredit Maybe+fixBaseCredit = fixEq $ \credit@BaseCredit{..}-> credit{+ difference = mfilter (> 0) $ liftA2 (-) baseAmount reduction,+ cont = difference}++fixMedicalExpenses :: Centi -> MedicalExpenses Maybe -> MedicalExpenses Maybe+fixMedicalExpenses ceiling = fixEq $ \part@MedicalExpenses{..} -> part{+ fraction = incomeRate `fractionOf` netIncome,+ lesser = min ceiling <$> fraction,+ difference = nonNegativeDifference expenses lesser}++fixSubCalculation :: Maybe Centi -> SubCalculation Maybe+fixSubCalculation result = SubCalculation{+ calculation = result,+ result = result}++subCalculationFields :: Text -> [Text] -> [Text] -> SubCalculation FieldConst+subCalculationFields parent calculationPath resultPath = SubCalculation{+ calculation = Field (parent : calculationPath) Amount,+ result = Field (parent : resultPath) Amount}
@@ -0,0 +1,57 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}++-- | The T1 forms look similar, but there are subtle differences between different provinces and+-- territories. Therefore they share the same 'T1' form type and the same 'fixT1' completion function, but field+-- paths are separately provided by 't1FieldsForProvince'.+module Tax.Canada.T1 (fixT1, formPrefixForProvince, t1FieldsForProvince, module Tax.Canada.T1.Types) where++import Data.CAProvinceCodes qualified as Province+import Data.Enum.Memo (memoize)++import Tax.FDF (FieldConst)+import Tax.Canada.T1.Types+import Tax.Canada.T1.Fix (fixT1)+import Tax.Canada.T1.FieldNames.AB qualified as AB+import Tax.Canada.T1.FieldNames.BC qualified as BC+import Tax.Canada.T1.FieldNames.NB qualified as NB+import Tax.Canada.T1.FieldNames.NL qualified as NL+import Tax.Canada.T1.FieldNames.NT qualified as NT+import Tax.Canada.T1.FieldNames.NU qualified as NU+import Tax.Canada.T1.FieldNames.ON qualified as ON+import Tax.Canada.T1.FieldNames.QC qualified as QC+import Tax.Canada.T1.FieldNames.YT qualified as YT++-- | The distinct provincial prefix of the T1 form PDF file, such as @5006@ in @5006-r-fill-23e.pdf@ for Ontario+formPrefixForProvince :: Province.Code -> String+formPrefixForProvince = memoize $ \case+ Province.AB -> "5015"+ Province.BC -> "5010"+ Province.MB -> "5015"+ Province.NB -> "5000"+ Province.NL -> "5001"+ Province.NS -> "5015"+ Province.NT -> "5012"+ Province.NU -> "5014"+ Province.ON -> "5006"+ Province.PE -> "5000"+ Province.QC -> "5005"+ Province.SK -> "5015"+ Province.YT -> "5011"++-- | T1 field paths for the given province+t1FieldsForProvince :: Province.Code -> T1 FieldConst+t1FieldsForProvince = memoize $ \case+ Province.AB -> AB.t1Fields+ Province.BC -> BC.t1Fields+ Province.MB -> AB.t1Fields+ Province.NB -> NB.t1Fields+ Province.NL -> NL.t1Fields+ Province.NS -> AB.t1Fields+ Province.NT -> NT.t1Fields+ Province.NU -> NU.t1Fields+ Province.ON -> ON.t1Fields+ Province.PE -> NB.t1Fields+ Province.QC -> QC.t1Fields+ Province.SK -> AB.t1Fields+ Province.YT -> YT.t1Fields
@@ -1,336 +0,0 @@-{-# LANGUAGE ImportQualifiedPost #-}-{-# LANGUAGE DisambiguateRecordFields #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE OverloadedStrings #-}--module Tax.Canada.T1.FieldNames (t1Fields) where--import Data.Fixed (Centi)-import Data.Text (Text)-import Data.Time (Day)-import Rank2 qualified--import Tax.FDF (FieldConst (Field), Entry (..), within)-import Tax.Canada.T1.Types--t1Fields :: T1 FieldConst-t1Fields = within "form1" Rank2.<$> T1 {- page1 = within "Page1" . within "Step1" Rank2.<$> page1Fields,- page2 = within "Page2" Rank2.<$> page2Fields,- page3 = within "Page3" . within "Step2" Rank2.<$> page3Fields,- page4 = within "Page4" . within "Step3" Rank2.<$> page4Fields,- page5 = within "Page5" Rank2.<$> page5Fields,- page6 = within "Page6" . within "PartB" Rank2.<$> page6Fields,- page7 = within "Page7" Rank2.<$> page7Fields,- page8 = within "Page8" Rank2.<$> page8Fields}--page1Fields = Page1 {- identification = within "Identification" Rank2.<$> page1IdentificationFields,- residence = within "Residence_Info" Rank2.<$> page1ResidenceFields,- spouse = within "Info_Spouse_CLP" Rank2.<$> page1SpouseFields}--page1IdentificationFields = Identification {- emailAddress = Field ["EmailAddress"] Textual,- dateDeath = Field ["DateDeath_Comb_BordersAll", "DateDeath_Comb"] Date,- postalCode = Field ["PostalCode_Comb_BordersAll", "PostalCode"] Textual,- your_Language = Field ["Your_Language", "RadioButtonlanguaget"] $ RadioButton [English, French],- id_City = Field ["ID_City"] Textual,- sin = Field ["SIN_Comb_BordersAll", "SIN_Comb"] Textual,- id_LastName = Field ["ID_LastName"] Textual,- dateBirth = Field ["DateBirth_Comb_BordersAll", "DateBirth_Comb"] Date,- id_FirstNameInitial = Field ["ID_FirstNameInitial"] Textual,- id_MailingAddress = Field ["ID_MailingAddress"] Textual,- maritalStatus = Field ["MaritalStatus_Checkbox"] $ RadioButtons "MaritalStatus" [Married .. Single],- id_RuralRoute = Field ["ID_RuralRoute"] Textual,- id_POBox = Field ["ID_POBox"] Textual,- prov_DropDown = Field ["Prov_DropDown"] Province}--page1ResidenceFields = Residence {- prov_DropDown_Business = Field ["Prov_DropDown-Business"] Province,- prov_DropDown_Residence = Field ["Prov_DropDown-Residence"] Province,- date_Departure = Field ["Date_Departure", "DateMMDD_Comb_BordersAll_Std", "DateMMDD_Comb"] Date,- date_Entry = Field ["Date_Entry", "DateMMDD_Comb_BordersAll_Std", "DateMMDD_Comb"] Date,- prov_DropDown = Field ["Prov_DropDown"] Textual}- -page1SpouseFields = Spouse {- line23600 = Field ["Line23600", "Amount"] Amount,- self_employment = Field ["Self-employment", "Checkbox"] Checkbox,- spouse_First_Name = Field ["Spouse_First_Name"] Textual,- line11700 = Field ["Line11700", "Amount"] Amount,- line21300 = Field ["Line21300", "Amount"] Amount,- sin = Field ["SIN_Comb_BordersAll", "SIN_Comb"] Textual}--page2Fields = Page2 {- foreign_property = Field ["Foreign_property", "Line26600"] $ Switch "Option1" "Option2" "ForeignProperty_CheckBox",- tax_exempt = Field ["Tax_exempt", "Exempt", "Spouse_SelfEmployed"] Checkbox,- electionsCanada = within "ElectionsCanada" Rank2.<$> page2ElectionsCanadaFields,- cai = Field ["CAI", "CAI_ON", "Tick_box"] Checkbox,- organ_donor = Field ["Organ_donor", "Question"] $ Switch "Option1" "Option2" "OrganDonor_CheckBox"-}--page2ElectionsCanadaFields = ElectionsCanada {- citizenship = Field ["LineA"] $ Switch "Option1" "Option2" "A_CheckBox",- authorization = Field ["LineB"] $ Switch "Option1" "Option2" "B_Authorize_CheckBox"}--page3Fields = Page3 {- line_10400_OtherEmploymentIncome = Field ["Line_10400_OtherEmploymentIncome", "Line_10400_Amount"] Amount,- line_12100_InvestmentIncome = Field ["Line_12100_InvestmentIncome", "Line_12100_Amount"] Amount,- line_11300_OldAgeSecurityPension = Field ["Line_11300_OldAgeSecurityPension", "Line_11300_Amount"] Amount,- line_11500_OtherPensions = Field ["Line_11500_OtherPensions", "Line_11500_Amount"] Amount,- line_13000_OtherIncome = Field ["Line_13000_OtherIncome", "Line_13000_Amount"] Amount,- line_13000_OtherIncomeSource = Field ["Line_13000_OtherIncome", "Line_13000_Specify"] Textual,- line_11410_DisabilityBenefits = Field ["Line_11410_DisabilityBenefits", "Line_11410_Amount"] Amount,- line_14400_WorkersCompBen = Field ["Line_14400_WorkersCompBen", "Line_14400_Amount"] Amount,- line_11400_CPP_QPP = Field ["Line_11400_CPP_QPP", "Line_11400_Amount"] Amount,- line_25_sum = Field ["Line_25", "Amount1"] Amount,- line_25_cont = Field ["Line_25", "Amount2"] Amount,- line_11700_UCCB = Field ["Line_11700_UCCB", "Line_11700_Amount"] Amount,- line_10100_EmploymentIncome = Field ["Line_10100_EmploymentIncome", "Line_10100_Amount"] Amount,- line_12700_TaxableCapitalGains = Field ["Line_12700_TaxableCapitalGains", "Line_12700_Amount"] Amount,- line_13700_Amount = Field ["Line21", "Line_13700_Amount"] Amount,- line_13699_Amount = Field ["Line21", "Line_13699_Amount"] Amount,- line_11900_EmploymentInsurance = Field ["Line_11900_EmploymentInsurance", "Line_11900_Amount"] Amount,- line_14100_Amount = Field ["Line23", "Line_14100_Amount"] Amount,- line_14099_Amount = Field ["Line23", "Line_14099_Amount"] Amount,- line_10120_Commissions = Field ["Line_10120_Commissions", "Line_10120_Amount"] Amount,- line_11600_ElectedSplitPension = Field ["Line_11600_ElectedSplitPension", "Line_11600_Amount"] Amount,- line_14700_EqualsAmount = Field ["Line_14700_AddLines", "Line_14700_EqualsAmount"] Amount,- line_14700_PlusAmount = Field ["Line_14700_AddLines", "Line_14700_PlusAmount"] Amount,- line_13010_Taxablescholarship = Field ["Line_13010_Taxablescholarship", "Amount"] Amount,- line_19 = Field ["Line_19", "Amount"] Amount,- line_12599_12600_RentalIncome = Field ["Line_12599_12600_RentalIncome", "Line_12599_Amount"] Amount,- line_12600_Amount = Field ["Line_12599_12600_RentalIncome", "Line_12600_Amount"] Amount,- line_12200_PartnershipIncome = Field ["Line_12200_PartnershipIncome", "Line_12200_Amount"] Amount,- line_11905_Employmentmaternity = Field ["Line_11905_Employmentmaternity", "Line_11905_Amount"] Amount,- line_14500_SocialAssistPay = Field ["Line_14500_SocialAssistPay", "Line_14500_Amount"] Amount,- line_15000_TotalIncome = Field ["Line_15000_TotalIncome", "Line_15000_Amount"] Amount,- line_10105_Taxexemptamount = Field ["Line_10105_Taxexemptamount", "Line_10105_Amount"] Amount,- line_12900_RRSPIncome = Field ["Line_12900_RRSPIncome", "Line_12900_Amount"] Amount,- line_12500_RDSP = Field ["Line_12500_RDSP", "Line_12500_Amount"] Amount,- line_26 = Field ["Line_26", "Amount1"] Amount,- line_12000_TaxableDividends = Field ["Line_12000_TaxableDividends", "Amount"] Amount,- line_14600_NetFedSupplements = Field ["Line_14600_NetFedSupplements", "Line_14600_Amount"] Amount,- line_10130_sf = Field ["Line_10130_sf", "Line_10130_Amount"] Amount,- line_12010_OtherTaxableDividends = Field ["Line_12010_OtherTaxableDividends", "Line_12010_Amount"] Amount,- line_11701_UCCBDesignated = Field ["Line_11701_UCCBDesignated", "Line_11701_Amount"] Amount,- line_13499_Amount = Field ["Line20", "Line_13499_Amount"] Amount,- line_13500_Amount = Field ["Line20", "Line_13500_Amount"] Amount,- line_12800_Amount = Field ["Line_12799_12800_SupportPayReceived", "Line_12800_Amount"] Amount,- line_12799_Amount = Field ["Line_12799_12800_SupportPayReceived", "Line_12799_Amount"] Amount,- line_14299_Amount = Field ["Line24", "Line_14299_Amount"] Amount,- line_14300_Amount = Field ["Line24", "Line_14300_Amount"] Amount,- line_13900_Amount = Field ["Line22", "Line_13900_Amount"] Amount,- line_13899_Amount = Field ["Line22", "Line_13899_Amount"] Amount}- -page4Fields = Page4 {- line_21000_SplitPensionDeduction = Field ["Line_21000_SplitPensionDeduction", "Line_21000_Amount"] Amount,- line_23500_SocialBenefits = Field ["Line_23500_SocialBenefits", "Line_23500_Amount"] Amount,- line_23400_NetBeforeAdjust = Field ["Line_23400_NetBeforeAdjust", "Line_23400_Amount"] Amount,- line_22100_CarryingChargesInterest = Field ["Line_22100_CarryingChargesInterest", "Line_22100_Amount"] Amount,- line_21500_DisabilityDeduction = Field ["Line_21500_DisabilityDeduction", "Line_21500_Amount"] Amount,- line_15000_TotalIncome_2 = Field ["Line_15000_TotalIncome_2", "Line_15000_Amount"] Amount,- line_22900_OtherEmployExpenses = Field ["Line_22900_OtherEmployExpenses", "Line_22900_Amount"] Amount,- line_20800_RRSPDeduction = Field ["Line_20800_RRSPDeduction", "Line_20800_Amount"] Amount,- line_22000_Amount = Field ["Line42", "Line_22000_Amount"] Amount,- line_21999_Amount = Field ["Line42", "Line_21999_Amount"] Amount,- line_21699_Amount = Field ["Line40", "Line_21699_Amount"] Amount,- line_21700_Amount = Field ["Line40", "Line_21700_Amount"] Amount,- line_23210 = Field ["Line23210", "Amount"] Amount,- line_20810_PRPP = Field ["Line_20810_PRPP", "Line_20810_Amount"] Amount,- line_20700_RPPDeduction = Field ["Line_20700_RPPDeduction", "Line_20700_Amount"] Amount,- line_22215_DeductionCPP_QPP = Field ["Line_22215_DeductionCPP_QPP", "Line_22215_Amount"] Amount,- line_23300_sum = Field ["Line_23300_AddLines", "Line_23300_Amount1"] Amount,- line_23300_cont = Field ["Line_23300_AddLines", "Line_23300_Amount2"] Amount,- line_23600_NetIncome = Field ["Line_23600_NetIncome", "Line_23600_Amount"] Amount,- line_21200_Dues = Field ["Line_21200_Dues", "Line_21200_Amount"] Amount,- line_20600_PensionAdjustment = Field ["Line_20600_PensionAdjustment", "Line_20600_Amount"] Amount,- line_22400_XplorationDevExpenses = Field ["Line_22400_XplorationDevExpenses", "Line_22400_Amount"] Amount,- line_23200_OtherDeductions = Field ["Line_23200_OtherDeductions", "Line_23200_Amount"] Amount,- line_23200_Specify = Field ["Line_23200_OtherDeductions", "Line_23200_Specify"] Textual,- line_21900_MovingExpenses = Field ["Line_21900_MovingExpenses", "Line_21900_Amount"] Amount,- line_21400_ChildCareExpenses = Field ["Line_21400_ChildCareExpenses", "Line_21400_Amount"] Amount,- line_22200_CPP_QPP_Contributions = Field ["Line_22200_CPP_QPP_Contributions", "Line_22200_Amount"] Amount,- line_21300_UCCBRepayment = Field ["Line_21300_UCCBRepayment", "Line_21300_Amount"] Amount,- line_23100_ClergyResDeduction = Field ["Line_23100_ClergyResDeduction", "Line_23100_Amount"] Amount}- -page5Fields = Page5 {- step4_TaxableIncome = within "Step4_TaxableIncome" Rank2.<$> step4Fields,- partA_FederalTax = within "PartA" Rank2.<$> partAFields,- partB_FederalTaxCredits = within "PartB" Rank2.<$> partBFields}--step4Fields = Step4 {- line_23600_NetIncome_2 = Field ["Line_23600_NetIncome_2", "Line_15000_Amount"] Amount,- line_24400_MilitaryPoliceDeduction = Field ["Line_24400_MilitaryPoliceDeduction", "Line_24400_Amount"] Amount,- line_24900_SecurityDeductions = Field ["Line_24900_SecurityDeductions", "Line_24900_Amount"] Amount,- line_25000_OtherPayDeductions = Field ["Line_25000_OtherPayDeductions", "Line_25000_Amount"] Amount,- line_25100_PartnershipLosses = Field ["Line_25100_PartnershipLosses", "Line_25100_Amount"] Amount,- line_25200_NoncapitalLosses = Field ["Line_25200_NoncapitalLosses", "Line_25200_Amount"] Amount,- line_25300_NetCapitalLosses = Field ["Line_25300_NetCapitalLosses", "Line_25300_Amount"] Amount,- line_25400_CapitalGainsDeduction = Field ["Line_25400_CapitalGainsDeduction", "Line_25400_Amount"] Amount,- line_25500_NorthernDeductions = Field ["Line_25500_NorthernDeductions", "Line_25500_Amount"] Amount,- line_25600_AdditionalDeductions_Amount = Field ["Line_25600_AdditionalDeductions", "Line_25600_Amount"] Amount,- line_25600_AdditionalDeductions_Specify = Field ["Line_25600_AdditionalDeductions", "Line_25600_Specify"] Textual,- line_25700_AddLines_cont = Field ["Line_25700_AddLines", "Line_25700_Amount2"] Amount,- line_25700_AddLines_sum = Field ["Line_25700_AddLines", "Line_25700_Amount1"] Amount,- line_26000_TaxableIncome = Field ["Line_26000_TaxableIncome", "Line_26000_Amount"] Amount}--partAFields = Page5PartA {- column1 = within "Column1" Rank2.<$> TaxIncomeBracket {- line67_income = Field ["Line36Amount1"] Amount,- line69_overThreshold = Field ["Line38Amount1"] Amount,- line71_timesRate = Field ["Line40Amount1"] Amount,- line73_equalsTax = Field ["Line42Amount1"] Amount},- column2 = within "Column2" Rank2.<$> TaxIncomeBracket {- line67_income = Field ["Line36Amount2"] Amount,- line69_overThreshold = Field ["Line38Amount2"] Amount,- line71_timesRate = Field ["Line40Amount2"] Amount,- line73_equalsTax = Field ["Line42Amount2"] Amount},- column3 = within "Column3" Rank2.<$> TaxIncomeBracket {- line67_income = Field ["Line36Amount3"] Amount,- line69_overThreshold = Field ["Line38Amount3"] Amount,- line71_timesRate = Field ["Line40Amount3"] Amount,- line73_equalsTax = Field ["Line42Amount3"] Amount},- column4 = within "Column4" Rank2.<$> TaxIncomeBracket {- line67_income = Field ["Line36Amount4"] Amount,- line69_overThreshold = Field ["Line38Amount4"] Amount,- line71_timesRate = Field ["Line40Amount4"] Amount,- line73_equalsTax = Field ["Line42Amount4"] Amount},- column5 = within "Column5" Rank2.<$> TaxIncomeBracket {- line67_income = Field ["Line36Amount5"] Amount,- line69_overThreshold = Field ["Line38Amount5"] Amount,- line71_timesRate = Field ["Line40Amount5"] Amount,- line73_equalsTax = Field ["Line42Amount5"] Amount}}--partBFields = Page5PartB {- line30000 = Field ["Line30000_Sub", "Line1_Amount"] Amount,- line30100 = Field ["Line30100_Sub", "Line2_Amount"] Amount,- line30300 = Field ["Line30300_Sub", "Line3_Amount"] Amount,- line30400 = Field ["Line30400_Sub", "Line4_Amount"] Amount,- line30425 = Field ["Line30425_sub", "Line4_Amount"] Amount,- line30450 = Field ["Line30450_Sub", "Line6_Amount"] Amount,- line30499_ChildrenNum = Field ["Line30500", "Line7_ChildrenNum"] Count,- line30500 = Field ["Line30500", "Line7_Amount"] Amount,- line_81 = Field ["Line_81", "Line30_Amount"] Amount}- -page6Fields = Page6 {- line82 = Field ["Line_79", "Line43Amount"] Amount,- line30800 = Field ["CPP_QPP_Sub", "Line30800_Sub", "Line8_Amount"] Amount,- line31000 = Field ["CPP_QPP_Sub", "Line31000_Sub", "Line9_Amount"] Amount,- line31200 = Field ["EIPremiums_Sub", "Line31200_Sub", "Line10_Amount"] Amount,- line31217 = Field ["Line31217_Sub", "Line11_Amount"] Amount,- line31220 = Field ["Line31220_Sub", "Line12_Amount"] Amount,- line31240 = Field ["Line31240_Sub", "Line13_Amount"] Amount,- line31260 = Field ["Line31260_Sub", "Line14_Amount"] Amount,- line31270 = Field ["Line31270_Sub", "Line15_Amount"] Amount,- line31285 = Field ["Line31285_sub", "Line16_Amount"] Amount,- line31300 = Field ["Line31300_Sub", "Line17_Amount"] Amount,- line31350 = Field ["Line31350_Sub", "Amount"] Amount,- line94_sum = Field ["Line93", "Amount1"] Amount,- line94_cont = Field ["Line93", "Amount2"] Amount,- line31400 = Field ["Line31400_Sub", "Line18_Amount"] Amount,- line96 = Field ["Line95", "Amount1"] Amount,- line31600 = Field ["Line31600_Sub", "Line19_Amount"] Amount,- line31800 = Field ["Line31800_Sub", "Line20_Amount"] Amount,- line99 = Field ["Line98", "Amount1"] Amount,- line31900 = Field ["Line31900_Sub", "Line21_Amount"] Amount,- line32300 = Field ["Line32300_Sub", "Line22_Amount"] Amount,- line32400 = Field ["Line32400_Sub", "Line23_Amount"] Amount,- line32600 = Field ["Line32600_Sub", "Line24_Amount"] Amount,- line104 = Field ["Line103", "Amount1"] Amount,- medical_expenses = within "Medical_expenses" Rank2.<$> page6MedicalExpensesFields,- line33200_sum = Field ["Line33200_Sub", "Line29_Amount1"] Amount,- line33200_cont = Field ["Line33200_Sub", "Line29_Amount2"] Amount,- line33500 = Field ["Line33500_Sub", "Line30_Amount"] Amount,- line33800 = Field ["Line33800_Sub", "Line32_Amount"] Amount,- line34900 = Field ["Line34900_Sub", "Line33_Amount"] Amount,- line35000 = Field ["Line35000_Sub", "Line34_Amount"] Amount}--page6MedicalExpensesFields = MedicalExpenses {- familyExpenses = Field ["Line104", "Amount"] Amount,- taxableIncome = Field ["Line105", "Amount1"] Amount,- taxableIncomeFraction = Field ["Line105", "Amount2"] Amount,- threshold = Field ["Line26_Sub", "Line26_Amount"] Amount,- difference = Field ["Line27_Sub", "Line27_Amount"] Amount,- otherDependants = Field ["Line33199_Sub", "Line28_Amount"] Amount}--page7Fields = Page7 {- partC_NetFederalTax = within "PartC" Rank2.<$> partCFields,- step6_RefundOrBalanceOwing = within "Step6" Rank2.<$> page7step6Fields}--partCFields = Page7PartC {- line116 = Field ["Line108_sub", "Line43Amount"] Amount,- line40424 = Field ["Line40424_Sub", "Line44Amount"] Amount,- line40400 = Field ["Line40400_Sub", "Line45Amount1"] Amount,- line119 = Field ["Line35000_sub", "Line46Amount"] Amount,- line40425 = Field ["Line40425_Sub", "Line47Amount"] Amount,- line40427 = Field ["Line40427_Sub", "Line48Amount"] Amount,- line122_sum = Field ["Line114_sub", "Line49Amount1"] Amount,- line122_cont = Field ["Line114_sub", "Line49Amount2"] Amount,- line123 = Field ["Line122", "Amount"] Amount,- line124 = Field ["Line123", "Amount"] Amount,- line125 = Field ["Line124", "Amount"] Amount,- line40500 = Field ["Line40500_sub", "Line51Amount"] Amount,- line127 = Field ["Line40600_sub", "Line52Amount"] Amount,- line128 = Field ["Line127", "Amount"] Amount,- line129 = Field ["Line128", "Amount"] Amount,- line130 = Field ["Line129", "Amount"] Amount,- line131 = Field ["Line130", "Amount"] Amount,- line40900 = Field ["Line131", "F40900", "Amount"] Amount,- line41000 = Field ["Line131", "Amount"] Amount,- line41200 = Field ["Line41200_sub", "Line55Amount"] Amount,- line41300 = Field ["Line41400_sub", "Line56Amount1"] Amount,- line41400 = Field ["Line41400_sub", "Line56Amount2"] Amount,- line41600_sum = Field ["Line41600_sub", "Line57Amount1"] Amount,- line41600_cont = Field ["Line41600_sub", "Line57Amount2"] Amount,- line41700 = Field ["Line41700_sub", "Line58Amount"] Amount,- line41500 = Field ["Line41500_sub", "Line59Amount"] Amount,- line41800 = Field ["Line41800_sub", "Line61Amount"] Amount,- line42000 = Field ["Line42000_sub", "Line60Amount"] Amount}--page7step6Fields = Page7Step6 {- line140 = Field ["Line_Y", "Line_42120_Amount"] Amount,- line_42100_CPPContributions = Field ["Line_42100_CPPContributions", "Line_42100_Amount"] Amount,- line_42120_EIPremiums = Field ["Line_42120_EIPremiums", "Line_42120_Amount"] Amount,- line_42200_SocialBenefits = Field ["Line_42200_SocialBenefits", "Line_42200_Amount"] Amount,- line_42800_ProvTerrTax = Field ["Line_42800_ProvTerrTax", "Line_42800_Amount"] Amount,- line_43500_TotalPayable = Field ["Line_43500_TotalPayable", "Line_43500_Amount"] Amount}- -page8Fields = Page8 {- step6_RefundOrBalanceOwing = within "Step6" Rank2.<$> page8step6Fields,- line48400_Refund = Field ["Line48400_48500", "Line48400", "Line_48400_Amount"] Amount,- line48500_BalanceOwing = Field ["Line48400_48500", "Line48500", "Line_48500_Amount"] Amount,- telephone = Field ["Certification", "Telephone"] Amount,- date = Field ["Certification", "Date"] Amount,- taxPreparer = within "Line_49000_IfFeeWasCharged" Rank2.<$> taxPreparerFields,- line_1_ONOpportunitiesFund = Field ["ONOpportunitiesFund2", "Line_1", "Amount"] Amount,- line_46500 = Field ["ONOpportunitiesFund2", "Line_2", "Amount"] Amount,- line_46600 = Field ["ONOpportunitiesFund2", "Line_3", "Amount"] Amount}--page8step6Fields = Page8Step6 {- line_43500_totalpayable = Field ["Line_43500_totalpayable", "Line_42000_Amount"] Amount,- line_43700_Total_income_tax_ded = Field ["LIne_43700_Total_income_tax_ded", "Line_43700_Amount"] Amount,- line_44000 = Field ["Line_44000Sub", "Line_44000_Amount"] Amount,- line_44800_CPPOverpayment = Field ["Line_44800_CPPOverpayment", "Line_44800_Amount"] Amount,- line_45000_EIOverpayment = Field ["Line_45000_EIOverpayment", "Line_45000_Amount"] Amount,- line_45200_MedicalExpense = Field ["Line_45200_MedicalExpense", "Line_45200_Amount"] Amount,- line_45300_CWB = Field ["Line_45300_CWB", "Line_45300_Amount"] Amount,- line_45350_CTC = Field ["Line_45350_CTC", "Line_45300_Amount"] Amount,- line_45400_InvestmentTaxCredit = Field ["Line_45400_InvestmentTaxCredit", "Line_45400_Amount"] Amount,- line_45600_TrustTaxCredit = Field ["Line_45600_TrustTaxCredit", "Line_45600_Amount"] Amount,- line_45700_GST_HST_Rebate = Field ["Line_45700_GST_HST_Rebate", "Line_45700_Amount"] Amount,- line_46800 = Field ["EligibleEducatorSchoolSypplyTaxCredit", "F46800", "Amount"] Amount,- line_46900 = Field ["EligibleEducatorSchoolSypplyTaxCredit", "Amount"] Amount,- line_47555_TaxPaid = Field ["Line_47555_TaxPaid", "Line_47600_Amount"] Amount,- line_47556 = Field ["Line159", "Amount"] Amount,- line_47557 = Field ["Line160", "Amount"] Amount,- line_47600_TaxPaid = Field ["Line_47600_TaxPaid", "Line_47600_Amount"] Amount,- line_47900_ProvTerrCredits = Field ["Line_47900_ProvTerrCredits", "Line_47900_Amount"] Amount,- line_48200_sum = Field ["Line_48200_AddLines", "Line_48200_Amount1"] Amount,- line_48200_cont = Field ["Line_48200_AddLines", "Line_48200_Amount2"] Amount,- line164_Refund_or_BalanceOwing = Field ["Line_162", "Refund_or_BalanceOwing_Amount"] Amount}--taxPreparerFields = TaxPreparer {- eFileNumber = Field ["EFileNumber_Comb", "EFile"] Textual,- nameOfPreparer = Field ["NameOfPreparer"] Textual,- telephoneOfPreparer = Field ["TelephoneOfPreparer"] Textual,- line49000_WasAFeeCharged = Field ["Line49000_CheckBoxGroup"] $ Switch' "Line49000_CheckBox_EN"}
@@ -0,0 +1,35 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.AB (module Tax.Canada.T1.FieldNames.AB, ON.page1Fields) where++import Rank2 qualified++import Tax.FDF (FieldConst (Field, NoField), Entry (..), within)+import Tax.Canada.Shared (subCalculationFields)+import Tax.Canada.T1.Types+import Tax.Canada.T1.Types qualified as Page8 (Page8(..))+import Tax.Canada.T1.FieldNames.BC qualified as BC+import Tax.Canada.T1.FieldNames.ON qualified as ON++t1Fields :: T1 FieldConst+t1Fields = within "form1" Rank2.<$> T1 {+ page1 = within "Page1" . within "Return-pg1" Rank2.<$> ON.page1Fields,+ page2 = within "Page2" . within "Step1-Cont" Rank2.<$> page2Fields,+ page3 = within "Page3" . within "Return-pg3" Rank2.<$> ON.page3Fields,+ page4 = within "Page4" . within "Return-pg4" Rank2.<$> ON.page4Fields,+ page5 = within "Page5" . within "Return-pg5" Rank2.<$> ON.page5Fields,+ page6 = within "Page6" . within "Return-pg6" . within "PartB" Rank2.<$> ON.page6Fields,+ page7 = within "Page7" . within "Return-pg7" Rank2.<$> ON.page7Fields,+ page8 = within "Page8" . within "Return-pg8" Rank2.<$> page8Fields}++page2Fields = ON.page2Fields {+ cai = Field ["CAI", "AB_CAI", "Tick_box"] Checkbox,+ organ_donor = NoField}++page8Fields = BC.page8Fields {+ Page8.step6_RefundOrBalanceOwing = within "Step6-Cont" Rank2.<$> BC.page8step6Fields,+ line48400_Refund = Field ["Refund_or_Balance-Owing", "Line48400", "Line_48400_Amount"] Amount,+ line48500_BalanceOwing = Field ["Refund_or_Balance-Owing", "Line48500", "Line_48500_Amount"] Amount}
@@ -0,0 +1,43 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.BC where++import Rank2 qualified++import Tax.FDF (FieldConst (Field, NoField), Entry (..), within)+import Tax.Canada.T1.Types+import Tax.Canada.T1.Types qualified as Page8 (Page8(..))+import Tax.Canada.T1.FieldNames.ON qualified as ON++t1Fields :: T1 FieldConst+t1Fields = ON.t1Fields {+ page2 = within "form1" . within "Page2" Rank2.<$> page2Fields,+ page3 = within "form1" . within "Page3" . within "Return-pg3" Rank2.<$> page3Fields,+ page4 = within "form1" . within "Page4" . within "Return-pg4" . within "Step3" Rank2.<$> ON.page4Fields,+ page8 = within "form1" . within "Page8" . within "Return-pg8" Rank2.<$> page8Fields}++page2Fields = ON.page2Fields {+ cai = NoField,+ organ_donor = NoField}++page3Fields = ON.page3Fields{+ line_10100_EmploymentIncome = Field ["Line1", "Line_10100_Amount"] Amount}++page8Fields = ON.page8Fields {+ Page8.step6_RefundOrBalanceOwing = within "Step6-Continued" Rank2.<$> page8step6Fields,+ taxPreparer = within "Efile" Rank2.<$> taxPreparerFields,+ line_1_ONOpportunitiesFund = NoField,+ line_46500 = NoField,+ line_46600 = NoField}++page8step6Fields = ON.page8step6Fields {+ line_45350_CTC = Field ["Line45350", "Line_45300_Amount"] Amount,+ line_45355_MHRTC = Field ["Line45355", "Line_45300_Amount"] Amount,+ line_47555_TaxPaid = Field ["Line47555", "Line_47555_Amount"] Amount}++taxPreparerFields = ON.taxPreparerFields {+ eFileNumber = Field ["Line48900", "EFile"] Textual,+ line49000_WasAFeeCharged = Field ["Line49000", "Line49000_CheckBoxGroup"] $ Switch' "Line49000_CheckBox_EN"}
@@ -0,0 +1,23 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.NB where++import Rank2 qualified++import Tax.FDF (FieldConst (Field), Entry (..), within)+import Tax.Canada.T1.Types+import Tax.Canada.T1.FieldNames.PE qualified as PE++t1Fields :: T1 FieldConst+t1Fields = PE.t1Fields{+ page2 = within "form1" . within "Page2" Rank2.<$> page2Fields,+ page8 = within "form1" . within "Page8" . within "Return-pg8" Rank2.<$> page8Fields}++page2Fields = PE.page2Fields{+ cai = Field ["CAI", "CAI_2024", "Tick_box"] Checkbox}++page8Fields = PE.page8Fields {+ line48400_Refund = Field ["Refund_or_Balance-Owing", "Line48400", "Line_48400_Amount"] Amount,+ line48500_BalanceOwing = Field ["Refund_or_Balance-Owing", "Line48500", "Line_48500_Amount"] Amount}
@@ -0,0 +1,37 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.NL (t1Fields) where++import Rank2 qualified++import Tax.FDF (FieldConst (Field, NoField), Entry (..), within)+import Tax.Canada.Shared (subCalculationFields, TaxIncomeBracket (timesRate))+import Tax.Canada.T1.Types+import Tax.Canada.T1.Types qualified as Page8 (Page8(..))+import Tax.Canada.T1.FieldNames.ON qualified as ON+import Tax.Canada.T1.FieldNames.AB qualified as AB+import Tax.Canada.T1.FieldNames.BC qualified as BC++t1Fields :: T1 FieldConst+t1Fields = within "form1" Rank2.<$> T1 {+ page1 = within "Page1" . within "Return-pg1" Rank2.<$> ON.page1Fields,+ page2 = within "Page2" Rank2.<$> page2Fields,+ page3 = within "Page3" . within "Return-pg3" Rank2.<$> BC.page3Fields,+ page4 = within "Page4" . within "Return-pg4" Rank2.<$> ON.page4Fields,+ page5 = within "Page5" . within "Return-pg5" Rank2.<$> ON.page5Fields,+ page6 = within "Page6" . within "Return-pg6" . within "PartB" Rank2.<$> ON.page6Fields,+ page7 = within "Page7" . within "Return-pg7" Rank2.<$> ON.page7Fields,+ page8 = within "Page8" . within "Return-pg8" Rank2.<$> page8Fields}++page2Fields = AB.page2Fields {+ foreign_property = Field ["Foreign_property", "Line26600"] $ Switch' "ForeignProperty_CheckBox",+ tax_exempt = Field ["Indian_Act", "IndianAct_Question", "Checkbox"] Checkbox}++page8Fields = BC.page8Fields {+ Page8.step6_RefundOrBalanceOwing = within "Step6-Cont" Rank2.<$> BC.page8step6Fields,+ telephone = Field ["Certification", "Telephone"] Amount,+ date = Field ["Certification", "Date"] Amount}
@@ -0,0 +1,29 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.NT (module Tax.Canada.T1.FieldNames.NT, page1Fields) where++import Rank2 qualified++import Tax.FDF (FieldConst (Field, NoField), Entry (..), within)+import Tax.Canada.Shared (subCalculationFields)+import Tax.Canada.T1.Types+import Tax.Canada.T1.Types qualified as Page8 (Page8(..))+import Tax.Canada.T1.FieldNames.ON+ hiding (t1Fields,+ page2Fields, page3Fields, page4Fields, page5Fields, page6Fields, page7Fields, page8Fields,+ step4Fields, partBFields, page6MedicalExpensesFields, partCFields, page7step6Fields, page8step6Fields,+ taxPreparerFields)+import Tax.Canada.T1.FieldNames.BC qualified as BC+import Tax.Canada.T1.FieldNames.ON qualified as ON++t1Fields :: T1 FieldConst+t1Fields = ON.t1Fields {+ page2 = within "form1" . within "Page2" Rank2.<$> BC.page2Fields,+ page8 = within "form1" . within "Page8" . within "Return-pg8" Rank2.<$> page8Fields}++page8Fields = BC.page8Fields {+ Page8.step6_RefundOrBalanceOwing = within "Step6" Rank2.<$> BC.page8step6Fields}
@@ -0,0 +1,18 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.NU (t1Fields) where++import Rank2 qualified++import Tax.FDF (FieldConst (NoField), within)+import Tax.Canada.T1.Types+import Tax.Canada.T1.FieldNames.PE qualified as PE+import Tax.Canada.T1.FieldNames.ON qualified as ON++t1Fields :: T1 FieldConst+t1Fields = PE.t1Fields{+ page2 = within "form1" . within "Page2" . within "Step1" Rank2.<$> PE.page2Fields,+ page3 = within "form1" . within "Page3" . within "Return-pg3" Rank2.<$> ON.page3Fields}
@@ -0,0 +1,345 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.ON where++import Rank2 qualified++import Data.Text (Text)+import Data.Text.Lazy (toStrict)+import Data.Text.Lazy.Builder (fromText, toLazyText)+import Data.Text.Lazy.Builder.Int (decimal)+import Tax.FDF (FieldConst (Field, NoField), Entry (..), within)+import Tax.Canada.Shared (TaxIncomeBracket (..), subCalculationFields)+import Tax.Canada.T1.Types++t1Fields :: T1 FieldConst+t1Fields = within "form1" Rank2.<$> T1 {+ page1 = within "Page1" . within "Return-pg1" Rank2.<$> page1Fields,+ page2 = within "Page2" Rank2.<$> page2Fields,+ page3 = within "Page3" . within "Return-pg3" Rank2.<$> page3Fields,+ page4 = within "Page4" . within "Return-pg4" Rank2.<$> page4Fields,+ page5 = within "Page5" . within "Return-pg5" Rank2.<$> page5Fields,+ page6 = within "Page6" . within "Return-pg6" . within "PartB" Rank2.<$> page6Fields,+ page7 = within "Page7" . within "Return-pg7" Rank2.<$> page7Fields,+ page8 = within "Page8" Rank2.<$> page8Fields}++page1Fields = Page1 {+ identification = within "Identification" Rank2.<$> page1IdentificationFields,+ residence = within "Residence_Info" Rank2.<$> page1ResidenceFields,+ spouse = within "Info_Spouse_CLP" Rank2.<$> page1SpouseFields}++page1IdentificationFields = Identification {+ emailAddress = Field ["EmailAddress"] Textual,+ dateDeath = Field ["DateDeath_Comb_BordersAll", "DateDeath_Comb"] Date,+ postalCode = Field ["PostalCode_Comb_BordersAll", "PostalCode"] Textual,+ your_Language = Field ["Your_Language", "RadioButtonlanguaget"] $ RadioButton [English, French],+ id_City = Field ["ID_City"] Textual,+ sin = Field ["SIN_Comb_BordersAll", "SIN_Comb"] Textual,+ id_LastName = Field ["ID_LastName"] Textual,+ dateBirth = Field ["DateBirth_Comb_BordersAll", "DateBirth_Comb"] Date,+ id_FirstNameInitial = Field ["ID_FirstNameInitial"] Textual,+ id_MailingAddress = Field ["ID_MailingAddress"] Textual,+ maritalStatus = Field ["MaritalStatus_Checkbox"] $ RadioButtons 0 1 "MaritalStatus" [Married .. Single],+ id_RuralRoute = Field ["ID_RuralRoute"] Textual,+ id_POBox = Field ["ID_POBox"] Textual,+ prov_DropDown = Field ["Prov_DropDown"] Province}++page1ResidenceFields = Residence {+ prov_DropDown_Business = Field ["Prov_DropDown-Business"] Province,+ prov_DropDown_Residence = Field ["Prov_DropDown-Residence"] Province,+ date_Departure = Field ["Date_Departure", "DateMMDD_Comb_BordersAll_Std", "DateMMDD_Comb"] Date,+ date_Entry = Field ["Date_Entry", "DateMMDD_Comb_BordersAll_Std", "DateMMDD_Comb"] Date,+ prov_DropDown = Field ["Prov_DropDown"] Textual}+ +page1SpouseFields = Spouse {+ line23600 = Field ["Line23600", "Amount"] Amount,+ self_employment = Field ["Self-employment", "Checkbox"] Checkbox,+ spouse_First_Name = Field ["Spouse_First_Name"] Textual,+ line11700 = Field ["Line11700", "Amount"] Amount,+ line21300 = Field ["Line21300", "Amount"] Amount,+ sin = Field ["SIN_Comb_BordersAll", "SIN_Comb"] Textual}++page2Fields = Page2 {+ foreign_property = Field ["Foreign_property", "Line26600"] $ Switch "Option1" "Option2" "ForeignProperty_CheckBox",+ tax_exempt = Field ["Tax_exempt", "Exempt", "Spouse_SelfEmployed"] Checkbox,+ electionsCanada = within "ElectionsCanada" Rank2.<$> page2ElectionsCanadaFields,+ cai = Field ["CAI", "CAI_ON", "Tick_box"] Checkbox,+ organ_donor = Field ["Organ_donor", "Question"] $ Switch "Option1" "Option2" "OrganDonor_CheckBox"+}++page2ElectionsCanadaFields = ElectionsCanada {+ citizenship = Field ["LineA"] $ Switch "Option1" "Option2" "A_CheckBox",+ authorization = Field ["LineB"] $ Switch "Option1" "Option2" "B_Authorize_CheckBox"}++page3Fields = Page3 {+ line_10100_EmploymentIncome = Field ["Line10100", "Line_10100_Amount"] Amount,+ line_10105_Taxexemptamount = Field ["Line10105", "Line_10105_Amount"] Amount,+ line_10120_Commissions = Field ["Line10120", "Line_10120_Amount"] Amount,+ line_10130_sf = Field ["Line10130", "Line_10130_Amount"] Amount,+ line_10400_OtherEmploymentIncome = Field ["Line10400", "Line_10400_Amount"] Amount,+ line_11300_OldAgeSecurityPension = Field ["Line11300", "Line_11300_Amount"] Amount,+ line_11400_CPP_QPP = Field ["Line11400", "Line_11400_Amount"] Amount,+ line_11410_DisabilityBenefits = Field ["Line11410", "Line_11410_Amount"] Amount,+ line_11500_OtherPensions = Field ["Line11500", "Line_11500_Amount"] Amount,+ line_11600_ElectedSplitPension = Field ["Line11600", "Line_11600_Amount"] Amount,+ line_11700_UCCB = Field ["Line11700", "Line_11700_Amount"] Amount,+ line_11701_UCCBDesignated = Field ["Line11701", "Line_11701_Amount"] Amount,+ line_11900_EmploymentInsurance = Field ["Line11900", "Line_11900_Amount"] Amount,+ line_11905_Employmentmaternity = Field ["Line11905", "Line_11905_Amount"] Amount,+ line_12000_TaxableDividends = Field ["Line12000", "Line_12000_Amount"] Amount,+ line_12010_OtherTaxableDividends = Field ["Line12010", "Line_12010_Amount"] Amount,+ line_12100_InvestmentIncome = Field ["Line12100", "Line_12100_Amount"] Amount,+ line_12200_PartnershipIncome = Field ["Line12200", "Line_12200_Amount"] Amount,+ line_12500_RDSP = Field ["Line12500", "Line_12500_Amount"] Amount,+ line_12599_12600_RentalIncome = Field ["Line12600", "Line12599", "Line_12599_Amount"] Amount,+ line_12600_Amount = Field ["Line12600", "Line_12600_Amount"] Amount,+ line_12700_TaxableCapitalGains = Field ["Line12700", "Line_12700_Amount"] Amount,+ line_12799_Amount = Field ["Line12800", "Line_12799", "Line_12799_Amount"] Amount,+ line_12800_Amount = Field ["Line12800", "Line_12800_Amount"] Amount,+ line_12900_RRSPIncome = Field ["Line12900", "Line_12900_Amount"] Amount,+ line_12905_FHSAIncome = Field ["Line12905", "Line_12905_Amount"] Amount,+ line_12906_OtherFHSAIncome = Field ["Line12906", "Line_12906_Amount"] Amount,+ line_13000_OtherIncome = Field ["Line13000", "Line_13000_Amount"] Amount,+ line_13000_OtherIncomeSource = Field ["Line13000", "Line_13000_Specify"] Textual,+ line_13010_TaxableScholarship = Field ["Line13010", "Line_13010_Amount"] Amount,+ line_19 = Field ["Line21", "Amount"] Amount,+ selfEmployment = selfEmploymentFields,+ line_25_sum = subCalculationFields "Line27" ["Amount1"] ["Amount2"],+ line_26 = Field ["Line28", "Amount"] Amount,+ line_14400_WorkersCompBen = Field ["Line14400", "Line_14400_Amount"] Amount,+ line_14500_SocialAssistPay = Field ["Line14500", "Line_14500_Amount"] Amount,+ line_14600_NetFedSupplements = Field ["Line14600", "Line_14600_Amount"] Amount,+ line_14700_EqualsAmount = Field ["Line14700", "Line_14700_Amount1"] Amount,+ line_14700_PlusAmount = Field ["Line14700", "Line_14700_Amount2"] Amount,+ line_15000_TotalIncome = Field ["Line15000", "Line_15000_Amount"] Amount}++selfEmploymentFields = SelfEmploymentIncome {+ line_13499_Amount = Field ["Line13500", "Line13499", "Line_13499_Amount"] Amount,+ line_13500_Amount = Field ["Line13500", "Line_13500_Amount"] Amount,+ line_13699_Amount = Field ["Line13700", "Line13699", "Line_13699_Amount"] Amount,+ line_13700_Amount = Field ["Line13700", "Line_13700_Amount"] Amount,+ line_13899_Amount = Field ["Line13900", "Line13899", "Line_13899_Amount"] Amount,+ line_13900_Amount = Field ["Line13900", "Line_13900_Amount"] Amount,+ line_14099_Amount = Field ["Line14100", "Line14099", "Line_14099_Amount"] Amount,+ line_14100_Amount = Field ["Line14100", "Line_14100_Amount"] Amount,+ line_14299_Amount = Field ["Line14300", "Line14299", "Line_14299_Amount"] Amount,+ line_14300_Amount = Field ["Line14300", "Line_14300_Amount"] Amount}++page4Fields = Page4 {+ line_15000_TotalIncome_2 = Field ["Line34", "Amount"] Amount,+ line_20600_PensionAdjustment = Field ["Line20600", "Line_20600_Amount"] Amount,+ line_20700_RPPDeduction = Field ["Line20700", "Line_20700_Amount"] Amount,+ line_20800_RRSPDeduction = Field ["Line20800", "Line_20800_Amount"] Amount,+ line_20805_FHSADeduction = Field ["Line20805", "Line_20805_Amount"] Amount,+ line_20810_PRPP = Field ["Line20810", "Line_20810_Amount"] Amount,+ line_21000_SplitPensionDeduction = Field ["Line21000", "Line_21000_Amount"] Amount,+ line_21200_Dues = Field ["Line21200", "Line_21200_Amount"] Amount,+ line_21300_UCCBRepayment = Field ["Line21300", "Line_21300_Amount"] Amount,+ line_21400_ChildCareExpenses = Field ["Line21400", "Line_21400_Amount"] Amount,+ line_21500_DisabilityDeduction = Field ["Line21500", "Line_21500_Amount"] Amount,+ line_21699_Amount = Field ["Line21700", "Line21699", "Line_21699_Amount"] Amount,+ line_21700_Amount = Field ["Line21700", "Line_21700_Amount"] Amount,+ line_21900_MovingExpenses = Field ["Line21900", "Line_21900_Amount"] Amount,+ line_21999_Amount = Field ["Line22000", "Line21999", "Line_21999_Amount"] Amount,+ line_22000_Amount = Field ["Line22000", "Line_22000_Amount"] Amount,+ line_22100_CarryingChargesInterest = Field ["Line22100", "Line_22100_Amount"] Amount,+ line_22200_CPP_QPP_Contributions = Field ["Line22200", "Line_22200_Amount"] Amount,+ line_22215_DeductionCPP_QPP = Field ["Line22215", "Line_22215_Amount"] Amount,+ line_22300_DeductionPPIP = NoField,+ line_22400_XplorationDevExpenses = Field ["Line22400", "Line_22400_Amount"] Amount,+ line_22900_OtherEmployExpenses = Field ["Line22900", "Line_22900_Amount"] Amount,+ line_23100_ClergyResDeduction = Field ["Line23100", "Line_23100_Amount"] Amount,+ line_23200_OtherDeductions = Field ["Line23200", "Line_23200_Amount"] Amount,+ line_23200_Specify = Field ["Line23200", "Line_23200_Specify"] Textual,+ line_23300_sum = subCalculationFields "Line23300" ["Line_23300_Amount1"] ["Line_23300_Amount2"],+ line_23400_NetBeforeAdjust = Field ["Line23400", "Line_23400_Amount"] Amount,+ line_23500_SocialBenefits = Field ["Line23500", "Line_23500_Amount"] Amount,+ line_23600_NetIncome = Field ["Line23600", "Line_23600_Amount"] Amount}++page5Fields = Page5 {+ step4_TaxableIncome = within "Step4" Rank2.<$> step4Fields,+ partA_FederalTax = within "PartA" Rank2.<$> partAFields "Column" 36,+ partB_FederalTaxCredits = within "PartB" Rank2.<$> partBFields}++step4Fields = Step4 {+ line_23600_NetIncome_2 = Field ["Line57", "Amount"] Amount,+ line_24400_MilitaryPoliceDeduction = Field ["Line24400", "Line_24400_Amount"] Amount,+ line_24900_SecurityDeductions = Field ["Line24900", "Line_24900_Amount"] Amount,+ line_25000_OtherPayDeductions = Field ["Line25000", "Line_25000_Amount"] Amount,+ line_25100_PartnershipLosses = Field ["Line25100", "Line_25100_Amount"] Amount,+ line_25200_NoncapitalLosses = Field ["Line25200", "Line_25200_Amount"] Amount,+ line_25300_NetCapitalLosses = Field ["Line25300", "Line_25300_Amount"] Amount,+ line_25400_CapitalGainsDeduction = Field ["Line25400", "Line_25400_Amount"] Amount,+ line_25500_NorthernDeductions = Field ["Line25500", "Line_25500_Amount"] Amount,+ line_25600_AdditionalDeductions_Amount = Field ["Line25600", "Line_25600_Amount"] Amount,+ line_25600_AdditionalDeductions_Specify = Field ["Line25600", "Line_25600_Specify"] Textual,+ line_25700_AddLines_sum = subCalculationFields "Line25700" ["Line_25700_Amount1"] ["Line_25700_Amount2"],+ line_26000_TaxableIncome = Field ["Line26000", "Line_26000_Amount"] Amount}++partAFields :: Text -> Int -> Page5PartA FieldConst+partAFields = partAFieldsWith fieldNameAt+ where fieldNameAt line column isRate =+ toText $ "Line" <> decimal line <> (if isRate then "Rate" else "Amount") <> decimal column+ toText = toStrict . toLazyText++partAFieldsWith :: (Int -> Int -> Bool -> Text) -> Text -> Int -> Page5PartA FieldConst+partAFieldsWith fieldNameAt columnPrefix startLine = Page5PartA {+ column1 = column 1 0 0.15 0,+ column2 = column 2 53_359.00 0.205 8_003.85,+ column3 = column 3 106_717.00 0.26 18_942.24,+ column4 = column 4 165_430.00 0.29 34_207.62,+ column5 = column 5 235_675.00 0.33 54_578.67}+ where column n threshold rate baseTax = within (columnPrefix <> toText (decimal n)) Rank2.<$> TaxIncomeBracket {+ income = Field [fieldNameAt startLine n False] Amount,+ threshold = Field [fieldNameAt (startLine + 1) n False] $ Constant threshold Amount,+ overThreshold = Field [fieldNameAt (startLine + 2) n False] Amount,+ rate = Field [fieldNameAt (startLine + 3) n True] $ Constant rate Percent,+ timesRate = Field [fieldNameAt (startLine + 4) n False] Amount,+ baseTax = Field [fieldNameAt (startLine + 5) n False] $ Constant baseTax Amount,+ equalsTax = Field [fieldNameAt (startLine + 6) n False] Amount}+ toText = toStrict . toLazyText++partBFields = Page5PartB {+ line30000 = Field ["Line30000", "Line_30000_Amount"] Amount,+ line30100 = Field ["Line30100", "Line_30100_Amount"] Amount,+ line30300 = Field ["Line30300", "Line_30300_Amount"] Amount,+ line30400 = Field ["Line30400", "Line_30400_Amount"] Amount,+ line30425 = Field ["Line30425", "Line_30425_Amount"] Amount,+ line30450 = Field ["Line30450", "Line_30450_Amount"] Amount,+ line30499_ChildrenNum = Field ["Line30500", "Line30499", "Line_30499_ChildrenNum"] Count,+ line30500 = Field ["Line30500", "Line_30500_Amount"] Amount,+ line_81 = Field ["Line83", "Amount"] Amount}+ +page6Fields = Page6 {+ line82 = Field ["Line84", "Amount"] Amount,+ line30800 = Field ["Line30800", "Line_30800_Amount"] Amount,+ line31000 = Field ["Line31000", "Line_31000_Amount"] Amount,+ line31200 = Field ["Line31200", "Line_31200_Amount"] Amount,+ line31205 = NoField,+ line31210 = NoField,+ line31215 = NoField,+ line31217 = Field ["Line31217", "Line_31217_Amount"] Amount,+ line31220 = Field ["Line31220", "Line_31220_Amount"] Amount,+ line31240 = Field ["Line31240", "Line_31240_Amount"] Amount,+ line31260 = Field ["Line31260", "Line_31260_Amount"] Amount,+ line31270 = Field ["Line31270", "Line_31270_Amount"] Amount,+ line31285 = Field ["Line31285", "Line_31285_Amount"] Amount,+ line31300 = Field ["Line31300", "Line_31300_Amount"] Amount,+ line31350 = Field ["Line31350", "Line_31350_Amount"] Amount,+ line94_sum = subCalculationFields "Line96" ["Amount1"] ["Amount2"],+ line31400 = Field ["Line31400", "Line_31400_Amount"] Amount,+ line96 = Field ["Line98", "Amount"] Amount,+ line31600 = Field ["Line31600", "Line_31600_Amount"] Amount,+ line31800 = Field ["Line31800", "Line_31800_Amount"] Amount,+ line99 = Field ["Line101", "Amount"] Amount,+ line31900 = Field ["Line31900", "Line_31900_Amount"] Amount,+ line32300 = Field ["Line32300", "Line_32300_Amount"] Amount,+ line32400 = Field ["Line32400", "Line_32400_Amount"] Amount,+ line32600 = Field ["Line32600", "Line_32600_Amount"] Amount,+ line104 = Field ["Line106", "Amount"] Amount,+ medical_expenses = page6MedicalExpensesFields,+ line33200_sum = subCalculationFields "Line33200" ["Line_33200_Amount1"] ["Line_33200_Amount2"],+ line33500 = Field ["Line33500", "Line_33500_Amount"] Amount,+ line112 = Field ["Line114", "Percent"] $ Constant 0.15 Percent,+ line33800 = Field ["Line33800", "Line_33800_Amount"] Amount,+ line34900 = Field ["Line34900", "Line_34900_Amount"] Amount,+ line35000 = Field ["Line35000", "Line_35000_Amount"] Amount}++page6MedicalExpensesFields = MedicalExpenses {+ familyExpenses = Field ["Line33099", "Line_33099_Amount"] Amount,+ taxableIncome = Field ["Line108", "Amount1"] Amount,+ taxableIncomeFraction = Field ["Line108", "Amount2"] Amount,+ threshold = Field ["Line109", "Amount"] Amount,+ difference = Field ["Line110", "Amount"] Amount,+ otherDependants = Field ["Line33199", "Line_33199_Amount"] Amount}++page7Fields = Page7 {+ partC_NetFederalTax = within "PartC" Rank2.<$> partCFields,+ step6_RefundOrBalanceOwing = within "Step6" Rank2.<$> page7step6Fields}++partCFields = Page7PartC {+ line116 = Field ["Line118", "Amount"] Amount,+ line40424 = Field ["Line40424", "Line_40424_Amount"] Amount,+ line40400 = Field ["Line40400", "Line_40400_Amount"] Amount,+ line119 = Field ["Line121", "Amount"] Amount,+ line40425 = Field ["Line40425", "Line_40425_Amount"] Amount,+ line40427 = Field ["Line40427", "Line_40427_Amount"] Amount,+ line122_sum = subCalculationFields "Line124" ["Amount1"] ["Amount2"],+ line42900 = Field ["Line42900", "Line_42900_Amount"] Amount,+ line124 = Field ["Line126", "Amount"] Amount,+ line125 = Field ["Line127", "Amount"] Amount,+ line40500 = Field ["Line40500", "Line_40500_Amount"] Amount,+ line127 = Field ["Line129", "Amount"] Amount,+ line128 = Field ["Line130", "Amount"] Amount,+ line129 = Field ["Line131", "Amount"] Amount,+ line130 = Field ["Line132", "Amount"] Amount,+ line40600 = Field ["Line40600", "Line_40600_Amount"] Amount,+ line40900 = Field ["Line41000", "Line40900", "Line_40900_Amount"] Amount,+ line41000 = Field ["Line41000", "Line_41000_Amount"] Amount,+ line41200 = Field ["Line41200", "Line_41200_Amount"] Amount,+ line41300 = Field ["Line41400", "Line41300", "Line_41300_Amount"] Amount,+ line41400 = Field ["Line41400", "Line_41400_Amount"] Amount,+ line41600_sum = subCalculationFields "Line41600" ["Line_41600_Amount1"] ["Line_41600_Amount2"],+ line41700 = Field ["Line41700", "Line_41700_Amount"] Amount,+ line41500 = Field ["Line41500", "Line_41500_Amount"] Amount,+ line41800 = Field ["Line41800", "Line_41800_Amount"] Amount,+ line42000 = Field ["Line42000", "Line_42000_Amount"] Amount}++page7step6Fields = Page7Step6 {+ line140 = Field ["Line14", "Amount"] Amount,+ line_42100_CPPContributions = Field ["Line42100", "Line_42100_Amount"] Amount,+ line_42120_EIPremiums = Field ["Line42120", "Line_42120_Amount"] Amount,+ line_42200_SocialBenefits = Field ["Line42200", "Line_42200_Amount"] Amount,+ line_42800_ProvTerrTax = Field ["Line42800", "Line_42800_Amount"] Amount,+ line_43200_FirstNationsTax = NoField,+ line_43500_TotalPayable = Field ["Line43500", "Line_43500_Amount"] Amount}+ +page8Fields = Page8 {+ step6_RefundOrBalanceOwing = within "Step6-Continued" Rank2.<$> page8step6Fields,+ line48400_Refund = Field ["Refund_or_Balance-owing", "Line48400", "Line_48400_Amount"] Amount,+ line48500_BalanceOwing = Field ["Refund_or_Balance-owing", "Line48500", "Line_48500_Amount"] Amount,+ telephone = Field ["Certification", "Telephone"] Amount,+ date = Field ["Certification", "Date"] Amount,+ taxPreparer = within "Line_49000_IfFeeWasCharged" Rank2.<$> taxPreparerFields,+ line_1_ONOpportunitiesFund = Field ["ONOpportunitiesFund2", "Line_1", "Amount"] Amount,+ line_46500 = Field ["ONOpportunitiesFund2", "Line_2", "Amount"] Amount,+ line_46600 = Field ["ONOpportunitiesFund2", "Line_3", "Amount"] Amount}++page8step6Fields = Page8Step6 {+ line_43500_totalpayable = Field ["Line148", "Amount"] Amount,+ line_43700_Total_income_tax_ded = Field ["Line43700", "Line_43700_Amount"] Amount,+ line_43800_TaxTransferQC = NoField,+ line_43850_diff = Rank2.pure NoField,+ line_42900_copy = NoField,+ line_44000 = Field ["Line44000", "Line_44000_Amount"] Amount,+ line_44100 = NoField,+ line_44800_CPPOverpayment = Field ["Line44800", "Line_44800_Amount"] Amount,+ line_45000_EIOverpayment = Field ["Line45000", "Line_45000_Amount"] Amount,+ line_31210_copy = NoField,+ line_45100_diff = Rank2.pure NoField,+ line_45200_MedicalExpense = Field ["Line45200", "Line_45200_Amount"] Amount,+ line_45300_CWB = Field ["Line45300", "Line_45300_Amount"] Amount,+ line_45350_CTC = Field ["Line45350", "Line_45350_Amount"] Amount,+ line_45355_MHRTC = Field ["Line45355", "Line_45355_Amount"] Amount,+ line_45400_InvestmentTaxCredit = Field ["Line45400", "Line_45400_Amount"] Amount,+ line_45600_TrustTaxCredit = Field ["Line45600", "Line_45600_Amount"] Amount,+ line_45700_GST_HST_Rebate = Field ["Line45700", "Line_45700_Amount"] Amount,+ line_46800 = Field ["Line46900", "Line46800", "Line_46800_Amount"] Amount,+ line_46900 = Field ["Line46900", "Line_46900_Amount"] Amount,+ line_47555_TaxPaid = Field ["Line47555", "Line_47600_Amount"] Amount,+ line_47556 = Field ["Line47556", "Line_47556_Amount"] Amount,+ line_47557 = Field ["Line47557", "Line_47557_Amount"] Amount,+ line_47600_TaxPaid = Field ["Line47600", "Line_47600_Amount"] Amount,+ line_47900_ProvTerrCredits = Field ["Line47900", "Line_47900_Amount"] Amount,+ line_48200_sum = subCalculationFields "Line48200" ["Line_48200_Amount1"] ["Line_48200_Amount2"],+ line164_Refund_or_BalanceOwing = Field ["Line167", "Amount"] Amount}++taxPreparerFields = TaxPreparer {+ eFileNumber = Field ["EFileNumber_Comb", "EFile"] Textual,+ nameOfPreparer = Field ["NameOfPreparer"] Textual,+ telephoneOfPreparer = Field ["TelephoneOfPreparer"] Textual,+ line49000_WasAFeeCharged = Field ["Line49000_CheckBoxGroup"] $ Switch' "Line49000_CheckBox_EN"}
@@ -0,0 +1,18 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.PE (t1Fields, BC.page2Fields, BC.page8Fields) where++import Rank2 qualified++import Tax.FDF (FieldConst (Field), Entry (..), within)+import Tax.Canada.T1.Types+import Tax.Canada.T1.FieldNames.AB qualified as AB+import Tax.Canada.T1.FieldNames.BC qualified as BC++t1Fields :: T1 FieldConst+t1Fields = AB.t1Fields{+ page2 = within "form1" . within "Page2" . within "Return-pg2" Rank2.<$> BC.page2Fields,+ page3 = BC.t1Fields.page3,+ page8 = BC.t1Fields.page8}
@@ -0,0 +1,127 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.QC (t1Fields) where++import Data.Text.Lazy (toStrict)+import Data.Text.Lazy.Builder (toLazyText)+import Data.Text.Lazy.Builder.Int (decimal)+import Rank2 qualified++import Tax.FDF (FieldConst (Field, NoField), Entry (..), within)+import Tax.Canada.Shared (TaxIncomeBracket (..), subCalculationFields)+import Tax.Canada.Shared qualified as TaxIncomeBracket (TaxIncomeBracket (..))+import Tax.Canada.T1.Types+import Tax.Canada.T1.Types qualified as Page8 (Page8(..))+import Tax.Canada.T1.Types qualified as MedicalExpenses (MedicalExpenses(..))+import Tax.Canada.T1.FieldNames.ON qualified as ON+import Tax.Canada.T1.FieldNames.BC qualified as BC++t1Fields :: T1 FieldConst+t1Fields = within "form1" Rank2.<$> T1 {+ page1 = within "Page1" . within "Return-pg1" Rank2.<$> ON.page1Fields,+ page2 = within "Page2" . within "Return-pg2" Rank2.<$> page2Fields,+ page3 = within "Page3" . within "Return-pg3" Rank2.<$> page3Fields,+ page4 = within "Page4" . within "Step3" Rank2.<$> page4Fields,+ page5 = within "Page5" Rank2.<$> page5Fields,+ page6 = within "Page6" . within "PartB" Rank2.<$> page6Fields,+ page7 = within "Page7" Rank2.<$> page7Fields,+ page8 = within "Page8" Rank2.<$> page8Fields}++page2Fields = ON.page2Fields {+ cai = NoField,+ organ_donor = NoField}++page3Fields = ON.page3Fields{+ line_10100_EmploymentIncome = Field ["Line1", "Line_10100_Amount"] Amount}++page4Fields = ON.page4Fields{+ line_20810_PRPP = Field ["Line20810", "Amount"] Amount,+ line_22300_DeductionPPIP = Field ["Line22300", "Line_22300_Amount"] Amount}++page5Fields = Page5 {+ step4_TaxableIncome = within "Step4" Rank2.<$> step4Fields,+ partA_FederalTax = within "Part_A" Rank2.<$> partA1{column4 = column4, column5 = partA2.column5},+ partB_FederalTaxCredits = within "Part_B" Rank2.<$> partBFields}+ where partA1 = ON.partAFieldsWith fieldName1 "Column" 71+ partA2 = ON.partAFieldsWith fieldName2 "Column" 39+ column4 = partA2.column4{+ TaxIncomeBracket.income = partA1.column4.income,+ TaxIncomeBracket.threshold = partA1.column4.threshold}+ fieldName1 line _column True = "Percent_Line" <> toText (decimal line)+ fieldName1 line _column False = "Amount_Line" <> toText (decimal line)+ fieldName2 line column isRate =+ toText $ "Line" <> decimal line <> (if isRate then "Rate" else "Amount") <> decimal column+ toText = toStrict . toLazyText++step4Fields = ON.step4Fields {+ line_23600_NetIncome_2 = Field ["Line58", "Amount"] Amount}++partBFields = ON.partBFields {+ line30499_ChildrenNum = Field ["Line30500", "Line30499", "Line_30499_Number"] Count,+ line30500 = Field ["Line30500", "Line_30499_Amount"] Amount,+ line_81 = Field ["Line84", "Amount"] Amount}++page6Fields = ON.page6Fields {+ line82 = Field ["Line85", "Amount"] Amount,+ line31205 = Field ["Line31205", "Line_31205_Amount"] Amount,+ line31210 = Field ["Line31210", "Line_31210_Amount"] Amount,+ line31215 = Field ["Line31215", "Line_31215_Amount"] Amount,+ line31600 = Field ["Line31600", "Line_31600_mount"] Amount,+ line94_sum = subCalculationFields "Line100" ["Amount1"] ["Amount2"],+ line96 = Field ["Line102", "Amount"] Amount,+ line99 = Field ["Line105", "Amount"] Amount,+ line104 = Field ["Line110", "Amount"] Amount,+ medical_expenses = page6MedicalExpensesFields,+ line33200_sum = subCalculationFields "Line33200" ["Line_33200_Amount1"] ["Line_33200_Line32Amount2"],+ line112 = Field ["Line118", "Percent"] $ Constant 0.15 Percent}++page6MedicalExpensesFields = ON.page6MedicalExpensesFields {+ taxableIncome = Field ["Line112", "Amount1"] Amount,+ taxableIncomeFraction = Field ["Line112", "Amount2"] Amount,+ MedicalExpenses.threshold = Field ["Line113", "Amount"] Amount,+ difference = Field ["Line114", "Amount"] Amount}++page7Fields = Page7 {+ partC_NetFederalTax = within "PartC" Rank2.<$> partCFields,+ step6_RefundOrBalanceOwing = within "Step6" Rank2.<$> page7step6Fields}++partCFields = ON.partCFields {+ line116 = Field ["Line122", "Amount"] Amount,+ line119 = Field ["Line125", "Amount"] Amount,+ line122_sum = subCalculationFields "Line128" ["Amount1"] ["Amount2"],+ line124 = Field ["Line130", "Amount"] Amount,+ line125 = Field ["Line131", "Amount"] Amount,+ line127 = Field ["Line133", "Amount"] Amount,+ line128 = Field ["Line134", "Amount"] Amount,+ line129 = Field ["Line135", "Amount"] Amount,+ line130 = Field ["Line136", "Amount"] Amount}++page7step6Fields = ON.page7step6Fields {+ line140 = Field ["Line146", "Amount"] Amount,+ line_42100_CPPContributions = NoField}++page8Fields = ON.page8Fields {+ Page8.step6_RefundOrBalanceOwing = within "Step6-Continued" Rank2.<$> page8step6Fields,+ line_1_ONOpportunitiesFund = NoField,+ line_46500 = NoField,+ line_46600 = NoField,+ line48400_Refund = Field ["Refund_or_Balancing-owing", "Line48400", "Line_48400_Amount"] Amount,+ line48500_BalanceOwing = Field ["Refund_or_Balancing-owing", "Line48500", "Line_48500_Amount"] Amount}++page8step6Fields = ON.page8step6Fields {+ line_43500_totalpayable = Field ["Line151", "Amount"] Amount,+ line_43800_TaxTransferQC = Field ["Line43800", "Line_43800_Amount"] Amount,+ line_43850_diff = subCalculationFields "Line43900" ["Line_43900_Amount1"] ["Line_43900_Amount2"],+ line_42900_copy = Field ["Line44000", "Line_44000_Amount1"] Amount,+ line_44000 = Field ["Line44000", "Line_44000_Amount2"] Amount,+ line_44800_CPPOverpayment = NoField,+ line_31210_copy = Field ["Line157", "Amount"] Amount,+ line_45100_diff = subCalculationFields "Line45100" ["Line_45100_Amount1"] ["Line_45100_Amount2"],+ line_45350_CTC = Field ["Line45350", "Line_45300_Amount"] Amount,+ line_47555_TaxPaid = Field ["Line47555", "Line_47555_Amount"] Amount,+ line_47900_ProvTerrCredits = NoField,+ line164_Refund_or_BalanceOwing = Field ["Line172", "Refund_or_BalanceOwing_Amount"] Amount}
@@ -0,0 +1,45 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}++module Tax.Canada.T1.FieldNames.YT (t1Fields) where++import Rank2 qualified++import Tax.FDF (FieldConst (Field, NoField), Entry (..), within)+import Tax.Canada.Shared (subCalculationFields)+import Tax.Canada.T1.Types+import Tax.Canada.T1.Types qualified as Page8 (Page8(..))+import Tax.Canada.T1.FieldNames.BC qualified as BC+import Tax.Canada.T1.FieldNames.NT qualified as NT+import Tax.Canada.T1.FieldNames.ON qualified as ON++t1Fields :: T1 FieldConst+t1Fields = NT.t1Fields{+ page2 = within "form1" . within "Page2" . within "Step1-Continued" Rank2.<$> BC.page2Fields,+ page7 = within "form1" . within "Page7" Rank2.<$> page7Fields,+ page8 = within "form1" . within "Page8" Rank2.<$> page8Fields}++page7Fields = Page7 {+ partC_NetFederalTax = within "PartC" Rank2.<$> partCFields,+ step6_RefundOrBalanceOwing = within "Step6" Rank2.<$> page7step6Fields}++partCFields = ON.partCFields {+ line40900 = Field ["Line4100", "Line40900", "Line_40900_Amount"] Amount,+ line41000 = Field ["Line4100", "Line_41000_Amount"] Amount}++page7step6Fields = ON.page7step6Fields {+ line140 = Field ["Line142", "Amount"] Amount,+ line_43200_FirstNationsTax = Field ["Line43200", "Line_43200_Amount"] Amount}++page8Fields = BC.page8Fields {+ Page8.step6_RefundOrBalanceOwing = within "Step6-Cont" Rank2.<$> page8step6Fields,+ taxPreparer = within "Line_49000_IfFeeWasCharged" Rank2.<$> BC.taxPreparerFields}++page8step6Fields = ON.page8step6Fields {+ line_43500_totalpayable = Field ["Line149", "Amount"] Amount,+ line_44100 = Field ["Line44100", "Line_44000_Amount"] Amount,+ line_46800 = Field ["Line46900", "sfline46800end", "Line_46800_Amount"] Amount,+ line_47555_TaxPaid = Field ["Line47555", "Line_47555_Amount"] Amount,+ line164_Refund_or_BalanceOwing = Field ["Line169", "Amount"] Amount}
@@ -2,23 +2,26 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE NumericUnderscores #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} -module Tax.Canada.T1.Fix (fixT1) where+module Tax.Canada.T1.Fix (T1, fixT1) where import Control.Applicative ((<|>)) import Data.Fixed (Centi) import Data.Maybe (fromMaybe) import Data.Text (Text) import Data.Time.Calendar (Year, dayPeriod)+import GHC.Stack (HasCallStack) import Rank2 qualified import Tax.Canada.T1.Types-import Tax.Util (difference, fixEq, leastOf, nonNegativeDifference, totalOf)+import Tax.Canada.Shared (fixSubCalculation, fixTaxIncomeBracket, SubCalculation(result), TaxIncomeBracket (equalsTax))+import Tax.Util (difference, fixEq, fractionOf, nonNegativeDifference, totalOf) -fixT1 :: T1 Maybe -> T1 Maybe+fixT1 :: HasCallStack => T1 Maybe -> T1 Maybe fixT1 = fixEq $ \t1@T1{..}-> T1{page1 = fixPage1 page1, page2 = fixPage2 page2, page3 = fixPage3 page3,@@ -35,7 +38,7 @@ fixPage2 = id fixPage3 :: Page3 Maybe -> Page3 Maybe-fixPage3 = fixEq $ \page@Page3{..}-> page{+fixPage3 = fixEq $ \page@Page3{selfEmployment=SelfEmploymentIncome{..}, ..}-> page{ line_19 = totalOf [line_10100_EmploymentIncome , line_10400_OtherEmploymentIncome, line_11300_OldAgeSecurityPension,@@ -52,15 +55,17 @@ line_12700_TaxableCapitalGains, line_12800_Amount, line_12900_RRSPIncome,+ line_12905_FHSAIncome,+ line_12906_OtherFHSAIncome, line_13000_OtherIncome,- line_13010_Taxablescholarship],- line_25_sum = totalOf [line_13500_Amount,+ line_13010_TaxableScholarship],+ line_25_sum = fixSubCalculation $+ totalOf [line_13500_Amount, line_13700_Amount, line_13900_Amount, line_14100_Amount, line_14300_Amount],- line_25_cont = line_25_sum,- line_26 = totalOf [line_19, line_25_cont],+ line_26 = totalOf [line_19, line_25_sum.result], line_14700_EqualsAmount = totalOf [line_14400_WorkersCompBen, line_14500_SocialAssistPay, line_14600_NetFedSupplements],@@ -70,8 +75,10 @@ fixPage4 :: T1 Maybe -> Page4 Maybe -> Page4 Maybe fixPage4 t1 = fixEq $ \page@Page4{..}-> page{ line_15000_TotalIncome_2 = t1.page3.line_15000_TotalIncome,- line_23300_sum = totalOf [line_20700_RPPDeduction,+ line_23300_sum = fixSubCalculation $+ totalOf [line_20700_RPPDeduction, line_20800_RRSPDeduction,+ line_20805_FHSADeduction, line_21000_SplitPensionDeduction, line_21200_Dues, line_21300_UCCBRepayment,@@ -83,16 +90,15 @@ line_22100_CarryingChargesInterest, line_22200_CPP_QPP_Contributions, line_22215_DeductionCPP_QPP,+ line_22300_DeductionPPIP, line_22400_XplorationDevExpenses, line_22900_OtherEmployExpenses, line_23100_ClergyResDeduction,- line_23200_OtherDeductions,- line_23210],- line_23300_cont = line_23300_sum,- line_23400_NetBeforeAdjust = nonNegativeDifference line_15000_TotalIncome_2 line_23300_cont,+ line_23200_OtherDeductions],+ line_23400_NetBeforeAdjust = nonNegativeDifference line_15000_TotalIncome_2 line_23300_sum.result, line_23600_NetIncome = nonNegativeDifference line_23400_NetBeforeAdjust line_23500_SocialBenefits} -fixPage5 :: T1 Maybe -> Page5 Maybe -> Page5 Maybe+fixPage5 :: HasCallStack => T1 Maybe -> Page5 Maybe -> Page5 Maybe fixPage5 t1 = fixEq $ \Page5{..}-> Page5{ step4_TaxableIncome = fixStep4 t1 step4_TaxableIncome, partA_FederalTax = fixPage5PartA t1 partA_FederalTax,@@ -101,11 +107,15 @@ fixPage6 :: T1 Maybe -> Page6 Maybe -> Page6 Maybe fixPage6 t1 = fixEq $ \page@Page6{..}-> page{ line82 = t1.page5.partB_FederalTaxCredits.line_81,- line31260 = leastOf [Just 1287,+ line31260 = minimum [Just 1368, totalOf [t1.page3.line_10100_EmploymentIncome, t1.page3.line_10400_OtherEmploymentIncome]],- line94_sum = totalOf [line30800,+ line94_sum = fixSubCalculation $+ totalOf [line30800, line31000, line31200,+ line31205,+ line31210,+ line31215, line31217, line31220, line31240,@@ -114,15 +124,13 @@ line31285, line31300, line31350],- line94_cont = line94_sum,- line96 = totalOf [line82, line94_cont, line31400],+ line96 = totalOf [line82, line94_sum.result, line31400], line99 = totalOf [line96, line31600, line31800], line104 = totalOf [line99, line31900, line32300, line32400, line32600], medical_expenses = fixMedicalExpenses t1 medical_expenses,- line33200_sum = totalOf [medical_expenses.difference, medical_expenses.otherDependants],- line33200_cont = line33200_sum,- line33500 = totalOf [line104, line33200_cont],- line33800 = (* 0.15) <$> line33500,+ line33200_sum = fixSubCalculation $ totalOf [medical_expenses.difference, medical_expenses.otherDependants],+ line33500 = totalOf [line104, line33200_sum.result],+ line33800 = line112 `fractionOf` line33500, line35000 = totalOf [line33800, line34900]} fixPage7 :: T1 Maybe -> Page7 Maybe -> Page7 Maybe@@ -143,7 +151,8 @@ fixStep4 :: T1 Maybe -> Step4 Maybe -> Step4 Maybe fixStep4 t1 = fixEq $ \step@Step4{..}-> step{ line_23600_NetIncome_2 = t1.page4.line_23600_NetIncome,- line_25700_AddLines_sum = totalOf [line_24400_MilitaryPoliceDeduction,+ line_25700_AddLines_sum = fixSubCalculation $+ totalOf [line_24400_MilitaryPoliceDeduction, line_24900_SecurityDeductions, line_25000_OtherPayDeductions, line_25100_PartnershipLosses,@@ -152,35 +161,34 @@ line_25400_CapitalGainsDeduction, line_25500_NorthernDeductions, line_25600_AdditionalDeductions_Amount],- line_25700_AddLines_cont = line_25700_AddLines_sum,- line_26000_TaxableIncome = nonNegativeDifference line_23600_NetIncome_2 line_25700_AddLines_cont}+ line_26000_TaxableIncome = nonNegativeDifference line_23600_NetIncome_2 line_25700_AddLines_sum.result} -fixPage5PartA :: T1 Maybe -> Page5PartA Maybe -> Page5PartA Maybe+fixPage5PartA :: HasCallStack => T1 Maybe -> Page5PartA Maybe -> Page5PartA Maybe fixPage5PartA t1 = fixEq $ \part@Page5PartA{..}-> part{- column1 = taxIncomeBracket 0 50197 0.15 0,- column2 = taxIncomeBracket 50197 100392 0.205 7529.55,- column3 = taxIncomeBracket 100392 155625 0.26 17819.53,- column4 = taxIncomeBracket 155625 221708 0.29 32180.11,- column5 = taxIncomeBracket 221708 (10^12) 0.33 51344.18} -- a trillion ought to be enough for anybody- where taxIncomeBracket threshold ceiling rate baseTax- | income > threshold && income <= ceiling = TaxIncomeBracket{- line67_income = Just income,- line69_overThreshold = Just (income - threshold),- line71_timesRate = Just ((income - threshold) * rate),- line73_equalsTax = Just ((income - threshold) * rate + baseTax)}- | otherwise = Rank2.pure Nothing- income = fromMaybe 0 t1.page5.step4_TaxableIncome.line_26000_TaxableIncome+ column1 = fixTaxIncomeBracket income (Just part.column2) part.column1,+ column2 = fixTaxIncomeBracket income (Just part.column3) part.column2,+ column3 = fixTaxIncomeBracket income (Just part.column4) part.column3,+ column4 = fixTaxIncomeBracket income (Just part.column5) part.column4,+ column5 = fixTaxIncomeBracket income Nothing part.column5}+ where income = t1.page5.step4_TaxableIncome.line_26000_TaxableIncome fixPage5PartB :: T1 Maybe -> Page5PartB Maybe -> Page5PartB Maybe fixPage5PartB t1 = fixEq $ \part@Page5PartB{..}-> part{ line30000 = let income = fromMaybe 0 t1.page4.line_23600_NetIncome- in if income <= 155625 then Just 14398- else if income >= 221708 then Just 12719- else Just $ 14398 - (14398 - 12719) * (income - 155625) / (221708 - 155625),- line30100 = if any ((<= (1957 :: Year)) . dayPeriod) t1.page1.identification.dateBirth- then Just 12719+ threshold = 165_430+ ceiling = 235_675+ in if income <= threshold then Just 15_000+ else if income >= ceiling then Just 13_520+ else Just $ 15_000 - (15_000 - 13_250) * (income - threshold) / (ceiling - threshold),+ line30100 = if any ((<= (1958 :: Year)) . dayPeriod) t1.page1.identification.dateBirth+ then let income = fromMaybe 0 t1.page4.line_23600_NetIncome+ threshold = 42_335+ ceiling = 98_309+ in if income <= threshold then Just 8396+ else if income >= ceiling then Just 0+ else Just (8396 - (income - threshold) * 0.15) else Nothing,- line30500 = ((* 2350) . fromIntegral) <$> line30499_ChildrenNum,+ line30500 = ((* 2499) . fromIntegral) <$> line30499_ChildrenNum, line_81 = totalOf [line30000, line30100, line30300,@@ -194,37 +202,36 @@ taxableIncomeFraction, threshold}-> expenses{ taxableIncome = t1.page4.line_23600_NetIncome, taxableIncomeFraction = (* 0.03) <$> taxableIncome,- threshold = min 2479 <$> taxableIncomeFraction,+ threshold = min 2635 <$> taxableIncomeFraction, difference = nonNegativeDifference familyExpenses threshold} fixPage7PartC :: T1 Maybe -> Page7PartC Maybe -> Page7PartC Maybe fixPage7PartC t1 = fixEq $ \part@Page7PartC{..}-> part{ line116 = let partA = t1.page5.partA_FederalTax- in partA.column1.line73_equalsTax- <|> partA.column2.line73_equalsTax- <|> partA.column3.line73_equalsTax- <|> partA.column4.line73_equalsTax- <|> partA.column5.line73_equalsTax,+ in partA.column1.equalsTax+ <|> partA.column2.equalsTax+ <|> partA.column3.equalsTax+ <|> partA.column4.equalsTax+ <|> partA.column5.equalsTax, line40400 = totalOf [line116, line40424], line119 = t1.page6.line35000, line40425, line40427,- line122_sum = totalOf [line119, line40425, line40427],- line122_cont = line122_sum,- line123 = nonNegativeDifference line40400 line122_cont,- line125 = totalOf [line123, line124],+ line122_sum = fixSubCalculation $ totalOf [line119, line40425, line40427],+ line42900 = nonNegativeDifference line40400 line122_sum.result,+ line125 = totalOf [line42900, line124], line127 = difference line125 line40500, line129 = totalOf [line127, line128],- line131 = nonNegativeDifference line129 line130,+ line40600 = nonNegativeDifference line129 line130, line41000 = case line40900 of Just x- | x <= 400 -> Just (x * 0.75)- | x <= 750 -> Just ((x - 400) * 0.5 + 300)- | otherwise-> Just ((x - 750) * 0.3333 + 475)+ | x <= 400 -> Just (x * 0.75)+ | x <= 750 -> Just ((x - 400) * 0.5 + 300)+ | x <= 1275 -> Just ((x - 750) * 0.3333 + 475)+ | otherwise -> Just 650 Nothing -> Nothing,- line41600_sum = totalOf [line41000, line41200, line41400],- line41600_cont = line41600_sum,- line41700 = nonNegativeDifference line131 line41600_cont,+ line41600_sum = fixSubCalculation $ totalOf [line41000, line41200, line41400],+ line41700 = nonNegativeDifference line40600 line41600_sum.result, line42000 = totalOf [line41700, line41500, line41800]} fixPage7Step6 :: T1 Maybe -> Page7Step6 Maybe -> Page7Step6 Maybe@@ -237,13 +244,19 @@ fixPage8Step6 t1 = fixEq $ \step@Page8Step6{..}-> step{ line_43500_totalpayable = t1.page7.step6_RefundOrBalanceOwing.line_43500_TotalPayable, line_46900 = (* 0.25) <$> line_46800,- line_48200_sum = totalOf [line_43700_Total_income_tax_ded,+ line_43850_diff = fixSubCalculation $ difference line_43700_Total_income_tax_ded line_43800_TaxTransferQC,+ line_31210_copy = t1.page6.line31210,+ line_45100_diff = fixSubCalculation $ difference line_45000_EIOverpayment line_31210_copy,+ line_48200_sum = fixSubCalculation $+ totalOf [line_43850_diff.result, line_44000,+ line_45100_diff.result, line_44800_CPPOverpayment, line_45000_EIOverpayment, line_45200_MedicalExpense, line_45300_CWB, line_45350_CTC,+ line_45355_MHRTC, line_45400_InvestmentTaxCredit, line_45600_TrustTaxCredit, line_45700_GST_HST_Rebate,@@ -253,5 +266,4 @@ line_47557, line_47600_TaxPaid, line_47900_ProvTerrCredits],- line_48200_cont = line_48200_sum,- line164_Refund_or_BalanceOwing = difference line_43500_totalpayable line_48200_sum}+ line164_Refund_or_BalanceOwing = difference line_43500_totalpayable line_48200_sum.result}
@@ -1,13 +1,19 @@ {-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NoFieldSelectors #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} +-- | The T1 form type, shared by all provinces and territories module Tax.Canada.T1.Types where import Data.Fixed (Centi)@@ -17,7 +23,11 @@ import Data.CAProvinceCodes qualified as Province import Language.Haskell.TH qualified as TH import Rank2.TH qualified+import Transformation.Shallow.TH qualified +import Tax.Canada.Shared (SubCalculation)+import Tax.Canada.Shared (TaxIncomeBracket)+ data T1 line = T1 { page1 :: Page1 line, page2 :: Page2 line,@@ -107,10 +117,23 @@ line_12799_Amount :: line Centi, line_12800_Amount :: line Centi, line_12900_RRSPIncome :: line Centi,+ line_12905_FHSAIncome :: line Centi,+ line_12906_OtherFHSAIncome :: line Centi, line_13000_OtherIncome :: line Centi, line_13000_OtherIncomeSource :: line Text,- line_13010_Taxablescholarship :: line Centi,+ line_13010_TaxableScholarship :: line Centi, line_19 :: line Centi,+ selfEmployment :: SelfEmploymentIncome line,+ line_25_sum :: SubCalculation line,+ line_26 :: line Centi,+ line_14400_WorkersCompBen :: line Centi,+ line_14500_SocialAssistPay :: line Centi,+ line_14600_NetFedSupplements :: line Centi,+ line_14700_EqualsAmount :: line Centi,+ line_14700_PlusAmount :: line Centi,+ line_15000_TotalIncome :: line Centi}++data SelfEmploymentIncome line = SelfEmploymentIncome { line_13499_Amount :: line Centi, line_13500_Amount :: line Centi, line_13699_Amount :: line Centi,@@ -120,22 +143,14 @@ line_14099_Amount :: line Centi, line_14100_Amount :: line Centi, line_14299_Amount :: line Centi,- line_14300_Amount :: line Centi,- line_25_sum :: line Centi,- line_25_cont :: line Centi,- line_26 :: line Centi,- line_14400_WorkersCompBen :: line Centi,- line_14500_SocialAssistPay :: line Centi,- line_14600_NetFedSupplements :: line Centi,- line_14700_EqualsAmount :: line Centi,- line_14700_PlusAmount :: line Centi,- line_15000_TotalIncome :: line Centi}+ line_14300_Amount :: line Centi} data Page4 line = Page4 { line_15000_TotalIncome_2 :: line Centi, line_20600_PensionAdjustment :: line Centi, line_20700_RPPDeduction :: line Centi, line_20800_RRSPDeduction :: line Centi,+ line_20805_FHSADeduction :: line Centi, line_20810_PRPP :: line Centi, line_21000_SplitPensionDeduction :: line Centi, line_21200_Dues :: line Centi,@@ -150,14 +165,13 @@ line_22100_CarryingChargesInterest :: line Centi, line_22200_CPP_QPP_Contributions :: line Centi, line_22215_DeductionCPP_QPP :: line Centi,+ line_22300_DeductionPPIP :: line Centi, line_22400_XplorationDevExpenses :: line Centi, line_22900_OtherEmployExpenses :: line Centi, line_23100_ClergyResDeduction :: line Centi, line_23200_OtherDeductions :: line Centi, line_23200_Specify :: line Text,- line_23210 :: line Centi,- line_23300_cont :: line Centi,- line_23300_sum :: line Centi,+ line_23300_sum :: SubCalculation line, line_23400_NetBeforeAdjust :: line Centi, line_23500_SocialBenefits :: line Centi, line_23600_NetIncome :: line Centi}@@ -179,8 +193,7 @@ line_25500_NorthernDeductions :: line Centi, line_25600_AdditionalDeductions_Amount :: line Centi, line_25600_AdditionalDeductions_Specify :: line Text,- line_25700_AddLines_cont :: line Centi,- line_25700_AddLines_sum :: line Centi,+ line_25700_AddLines_sum :: SubCalculation line, line_26000_TaxableIncome :: line Centi} data Page5PartA line = Page5PartA {@@ -201,13 +214,6 @@ line30500 :: line Centi, line_81 :: line Centi} -data TaxIncomeBracket line = TaxIncomeBracket {- line67_income :: line Centi,- line69_overThreshold :: line Centi,- line71_timesRate :: line Centi,- line73_equalsTax :: line Centi- }- data Page6 line = Page6 { line82 :: line Centi, -- CPP_QPP@@ -215,6 +221,9 @@ line31000 :: line Centi, -- EI line31200 :: line Centi,+ line31205 :: line Centi,+ line31210 :: line Centi,+ line31215 :: line Centi, line31217 :: line Centi, line31220 :: line Centi, line31240 :: line Centi,@@ -223,8 +232,7 @@ line31285 :: line Centi, line31300 :: line Centi, line31350 :: line Centi,- line94_sum :: line Centi,- line94_cont :: line Centi,+ line94_sum :: SubCalculation line, line31400 :: line Centi, line96 :: line Centi, line31600 :: line Centi,@@ -236,9 +244,9 @@ line32600 :: line Centi, line104 :: line Centi, medical_expenses :: MedicalExpenses line,- line33200_sum :: line Centi,- line33200_cont :: line Centi,+ line33200_sum :: SubCalculation line, line33500 :: line Centi,+ line112 :: line Rational, line33800 :: line Centi, line34900 :: line Centi, line35000 :: line Centi}@@ -262,9 +270,8 @@ line119 :: line Centi, line40425 :: line Centi, line40427 :: line Centi,- line122_sum :: line Centi,- line122_cont :: line Centi,- line123 :: line Centi,+ line122_sum :: SubCalculation line,+ line42900 :: line Centi, line124 :: line Centi, line125 :: line Centi, line40500 :: line Centi,@@ -272,14 +279,13 @@ line128 :: line Centi, line129 :: line Centi, line130 :: line Centi,- line131 :: line Centi,+ line40600 :: line Centi, line40900 :: line Centi, line41000 :: line Centi, line41200 :: line Centi, line41300 :: line Centi, line41400 :: line Centi,- line41600_sum :: line Centi,- line41600_cont :: line Centi,+ line41600_sum :: SubCalculation line, line41700 :: line Centi, line41500 :: line Centi, line41800 :: line Centi,@@ -291,6 +297,7 @@ line_42120_EIPremiums :: line Centi, line_42200_SocialBenefits :: line Centi, line_42800_ProvTerrTax :: line Centi,+ line_43200_FirstNationsTax :: line Centi, line_43500_TotalPayable :: line Centi} data Page8 line = Page8 {@@ -307,12 +314,19 @@ data Page8Step6 line = Page8Step6 { line_43500_totalpayable :: line Centi, line_43700_Total_income_tax_ded :: line Centi,+ line_43800_TaxTransferQC :: line Centi,+ line_43850_diff :: SubCalculation line,+ line_42900_copy :: line Centi, line_44000 :: line Centi,+ line_44100 :: line Centi, line_44800_CPPOverpayment :: line Centi, line_45000_EIOverpayment :: line Centi,+ line_31210_copy :: line Centi,+ line_45100_diff :: SubCalculation line, line_45200_MedicalExpense :: line Centi, line_45300_CWB :: line Centi, line_45350_CTC :: line Centi,+ line_45355_MHRTC :: line Centi, line_45400_InvestmentTaxCredit :: line Centi, line_45600_TrustTaxCredit :: line Centi, line_45700_GST_HST_Rebate :: line Centi,@@ -323,8 +337,7 @@ line_47557 :: line Centi, line_47600_TaxPaid :: line Centi, line_47900_ProvTerrCredits :: line Centi,- line_48200_sum :: line Centi,- line_48200_cont :: line Centi,+ line_48200_sum :: SubCalculation line, line164_Refund_or_BalanceOwing :: line Centi} data TaxPreparer line = TaxPreparer {@@ -334,23 +347,20 @@ line49000_WasAFeeCharged :: line Bool} $(foldMap- (\t-> [d|+ (\t-> concat <$> sequenceA [+ [d| deriving instance (Show (line Bool), Show (line Centi), Show (line Word), Show (line Text),- Show (line Province.Code), Show (line Day),+ Show (line Rational), Show (line Province.Code), Show (line Day), Show (line LanguageOfCorrespondence), Show (line MaritalStatus)) => Show ($(TH.conT t) line) deriving instance (Eq (line Bool), Eq (line Centi), Eq (line Word), Eq (line Text),- Eq (line Province.Code), Eq (line Day),+ Eq (line Rational), Eq (line Province.Code), Eq (line Day), Eq (line LanguageOfCorrespondence), Eq (line MaritalStatus)) => Eq ($(TH.conT t) line)- |])- [''T1, ''ElectionsCanada, ''Identification, ''MedicalExpenses,- ''Page1, ''Page2, ''Page3, ''Page4, ''Page5, ''Page6, ''Page7, ''Page8,- ''Step4, ''Page5PartA, ''Page5PartB, ''Page7PartC, ''Page7Step6, ''Page8Step6,- ''Residence, ''Spouse, ''TaxIncomeBracket, ''TaxPreparer])--$(foldMap Rank2.TH.deriveAll+ |],+ Rank2.TH.deriveAll t,+ Transformation.Shallow.TH.deriveAll t]) [''T1, ''ElectionsCanada, ''Identification, ''MedicalExpenses, ''Page1, ''Page2, ''Page3, ''Page4, ''Page5, ''Page6, ''Page7, ''Page8, ''Step4, ''Page5PartA, ''Page5PartB, ''Page7PartC, ''Page7Step6, ''Page8Step6,- ''Residence, ''Spouse, ''TaxIncomeBracket, ''TaxPreparer])+ ''Residence, ''Spouse, ''SelfEmploymentIncome, ''TaxPreparer])
@@ -0,0 +1,3 @@+module Tax.Canada.Territory.NT (t1Fields) where++import Tax.Canada.T1.FieldNames.NT (t1Fields)
@@ -0,0 +1,3 @@+module Tax.Canada.Territory.NU (t1Fields) where++import Tax.Canada.T1.FieldNames.NU (t1Fields)
@@ -0,0 +1,3 @@+module Tax.Canada.Territory.YT (t1Fields) where++import Tax.Canada.T1.FieldNames.YT (t1Fields)
@@ -3,28 +3,42 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} -module Tax.FDF where+-- | Utility functions for dealing with 'FDF' forms -import Data.Char (isDigit)+module Tax.FDF (FDFs, FieldConst(..), Entry(..),+ mapForm, mapForm2, mapForms, load, loadAll, store, storeAll, update, updateAll, formKeys, within) where++import Control.Monad (join)+import Data.Biapplicative (biliftA2, biliftA3)+import Data.Bitraversable (bisequence, bitraverse) import Data.CAProvinceCodes qualified as Province+import Data.Char (isDigit, isSpace) import Data.Fixed (Centi) import Data.Foldable (find) import Data.Functor.Const (Const (Const, getConst))+import Data.List (elemIndex) import Data.Map.Lazy (Map) import Data.Map.Lazy qualified as Map+import Data.Semigroup (Endo (Endo, appEndo)) import Data.Semigroup.Cancellative (stripSuffix) import Data.Text (Text) import Data.Text qualified as Text import Data.Time (Day, defaultTimeLocale, formatTime, parseTimeM)+import Data.Void (Void) import Rank2 qualified-import Text.FDF (FDF, foldMapWithKey, mapWithKey, parse, serialize)+import Text.FDF (FDF (FDF, body), Field, foldMapWithKey, mapWithKey, parse, serialize, traverseWithKey) import Text.Read (readEither) +-- | A form field path serves to uniquely identify and locate the field inside a form data FieldConst a = Field {path :: [Text], entry :: Entry a}+ | NoField +-- | The type of a single form field value data Entry a where+ Constant :: (Eq a, Show a) => a -> Entry a -> Entry a Count :: Entry Word Date :: Entry Day Province :: Entry Province.Code@@ -32,98 +46,210 @@ Amount :: Entry Centi Percent :: Entry Rational Checkbox :: Entry Bool- RadioButton :: (Bounded a, Enum a, Eq a, Show a) => [a] -> Entry a- RadioButtons :: (Bounded a, Enum a, Eq a, Show a) => Text -> [a] -> Entry a+ RadioButton :: (Eq a, Show a) => [a] -> Entry a+ RadioButtons :: (Bounded a, Enum a, Eq a, Show a) => Int -> Int -> Text -> [a] -> Entry a Switch :: Text -> Text -> Text -> Entry Bool Switch' :: Text -> Entry Bool deriving instance Show a => Show (Entry a) +-- | A collection of 'FDF' forms keyed by a 'Text' identifier+type FDFs = Map Text FDF++-- | Add a head component to a field path within :: Text -> FieldConst x -> FieldConst x within root field@Field{path} = field{path = root:path}+within _ NoField = NoField +-- | The list of all field paths inside a form+formKeys :: Rank2.Foldable form => form FieldConst -> [[Text]]+formKeys = flip appEndo [] . Rank2.foldMap addEntry+ where addEntry :: FieldConst a -> Endo [[Text]]+ addEntry NoField = mempty+ addEntry Field{path, entry = Switch yes no leaf} = Endo ([path ++ [yes, leaf], path ++ [no, leaf]] ++)+ addEntry Field{path, entry = Switch' leaf} = Endo ([path ++ [leaf], path ++ [leaf <> "[1]"]] ++)+ addEntry Field{path} = Endo (path :)++-- | Given a form's field paths and a function that modifies a form with optional field values, try to update an+-- 'FDF' with the form. Fail if any of the field paths can't be found in the form.+mapForm :: (Rank2.Apply form, Rank2.Traversable form)+ => form FieldConst -> (form Maybe -> form Maybe) -> FDF -> Either String FDF+mapForm fields f fdf = load fields fdf >>= store fields fdf . f++-- | Given the field paths of multiple forms with path heads distinguishing among the forms, and a function that+-- modifies a collection of forms with optional field values, try to update 'FDFs' of the forms. Fail if any of the+-- field paths can't be found in the forms.+mapForms :: (Rank2.Apply form, Rank2.Traversable form)+ => form FieldConst -> (form Maybe -> form Maybe) -> FDFs -> Either String FDFs+mapForms fields f fdfs = loadAll fields fdfs >>= storeAll fields fdfs . f++-- | Given two forms' field paths and a function that modifies both forms with optional field values, try to update+-- two 'FDF's with the forms. Fail if any of the field paths can't be found in the forms.+mapForm2 :: (Rank2.Apply form1, Rank2.Apply form2, Rank2.Traversable form1, Rank2.Traversable form2)+ => (form1 FieldConst, form2 FieldConst)+ -> ((form1 Maybe, form2 Maybe) -> (form1 Maybe, form2 Maybe))+ -> (FDF, FDF)+ -> Either String (FDF, FDF)+mapForm2 fields f fdfs = bisequence (biliftA2 load load fields fdfs) >>= bisequence . biliftA3 store store fields fdfs . f++-- | Try to load all 'FDFs' into a form with optional values using the given field paths.+loadAll :: forall form. (Rank2.Apply form, Rank2.Traversable form) => form FieldConst -> FDFs -> Either String (form Maybe)+loadAll fields fdfs = fromPresentFieldMap $ Map.foldMapWithKey (\k-> foldMapWithKey (Map.singleton . (k <> "[0]" :))) fdfs+ where fromPresentFieldMap :: Map [Text] Text -> Either String (form Maybe)+ fillPresent :: Map [Text] Text -> FieldConst a -> Either String (Maybe a)+ fromPresentFieldMap m = Rank2.traverse (fillPresent m) fields+ fillPresent m f@Field {path = root : _}+ | Map.member root fdfs = fill m f+ fillPresent _ _ = Right Nothing++-- | Try to load an 'FDF' into a form with optional values using the given field paths. load :: (Rank2.Apply form, Rank2.Traversable form) => form FieldConst -> FDF -> Either String (form Maybe) load fields = fromFieldMap fields . foldMapWithKey Map.singleton -update :: (Rank2.Apply form, Rank2.Foldable form) => form FieldConst -> form Maybe -> FDF -> FDF-update fields = mapWithKey . updateKey . Rank2.foldMap (uncurry Map.singleton . getConst) . Rank2.liftA2 pairKey fields- where pairKey :: FieldConst a -> Maybe a -> Const ([Text], Text) a- pairKey Field {path, entry} v = Const ((<> "[0]") <$> path, foldMap (fromEntry entry) v)- updateKey :: Map [Text] Text -> [Text] -> Text -> Text- updateKey m k v = Map.findWithDefault v k m- fromEntry :: Entry a -> a -> Text- fromEntry Textual v = v- fromEntry Date v = Text.pack $ formatTime defaultTimeLocale "%Y%m%d" v- fromEntry Checkbox True = "Yes"- fromEntry Checkbox False = "No"- fromEntry (RadioButton values) v = Text.pack $ show $ fromEnum v + 1- fromEntry Amount v = Text.pack (show v)- fromEntry Percent v = Text.pack (show (fromRational $ v * 100 :: Centi)) <> "%"- fromEntry Count v = Text.pack (show v)- fromEntry Province v = Text.pack (show v)+-- | Try to store a form with optional values into the given map of 'FDFs' according to given field paths. The heads+-- of the paths correspond to the map keys. Fail if any of the 'FDF's doesn't contain a field path, but ignore the+-- path heads not present among the keys of 'FDFs'.+storeAll :: (Rank2.Apply form, Rank2.Foldable form) => form FieldConst -> FDFs -> form Maybe -> Either String FDFs+storeAll fields = flip (updateAll fields) +-- | Try to store a form with optional values into the given 'FDF' according to given field paths. Fail if the 'FDF'+-- doesn't contain a field path.+store :: (Rank2.Apply form, Rank2.Foldable form) => form FieldConst -> FDF -> form Maybe -> Either String FDF+store fields = flip (update fields)++-- | Try to update the given map of 'FDFs' from the form with optional values according to given field paths. The+-- heads of the paths correspond to the map keys. Fail if any of the 'FDF's doesn't contain a field path, but ignore+-- the path heads not present among the keys of 'FDFs'.+updateAll :: (Rank2.Apply form, Rank2.Foldable form) => form FieldConst -> form Maybe -> FDFs -> Either String FDFs+updateAll formFields formValues = case toFieldMap formFields formValues of+ Left err -> const (Left err)+ Right m -> Right . Map.mapWithKey (\k-> mapWithKey (updateKeyFrom m . (k <> "[0]" :)))++-- | Try to update the given 'FDF' from the form with optional values according to given form field paths. Fail if+-- the 'FDF' doesn't contain a field path.+update :: (Rank2.Apply form, Rank2.Foldable form) => form FieldConst -> form Maybe -> FDF -> Either String FDF+update formFields formValues = case toFieldMap formFields formValues of+ Left err -> const (Left err)+ Right m -> Right . mapWithKey (updateKeyFrom m)++updateKeyFrom :: Map [Text] Text -> [Text] -> Text -> Text+updateKeyFrom m k v = Map.findWithDefault v k m++toFieldMap :: (Rank2.Apply form, Rank2.Foldable form) => form FieldConst -> form Maybe -> Either String (Map [Text] Text)+toFieldMap fields = sequenceA+ . Rank2.foldMap (foldMap (uncurry Map.singleton) . getConst)+ . textualFields fields++textualFields :: (Rank2.Apply form, Rank2.Foldable form)+ => form FieldConst -> form Maybe -> form (Const (Maybe ([Text], Either String Text)))+textualFields = Rank2.liftA2 pairKey+ where pairKey :: FieldConst a -> Maybe a -> Const (Maybe ([Text], Either String Text)) a+ pairKey Field {path, entry = RadioButtons start step leaf values} (Just v)+ | Just i <- elemIndex v values+ = Const $ Just (map addIndex path ++ [leaf <> "[" <> Text.pack (show $ start + i*step) <> "]"],+ Right $ Text.pack $ show $ succ i)+ | otherwise = Const $ Just (path, Left ("Missing enum value " <> show v))+ pairKey Field {path, entry = Switch yes no leaf} (Just v) =+ Const $ Just (addIndex <$> (path ++ [if v then yes else no, leaf]), Right $ if v then "1" else "2")+ pairKey Field {path, entry = Switch' leaf} (Just True) = Const $ Just (addIndex <$> (path ++ [leaf]), Right "1")+ pairKey Field {path, entry = Switch' leaf} (Just False) =+ Const $ Just (map addIndex path ++ [leaf <> "[1]"], Right "1")+ pairKey Field {path, entry = Constant c e} (Just v)+ | c == v = Const Nothing+ | otherwise = Const $ Just (path, Left ("Trying to replace constant field " ++ show (path, c) ++ " with " ++ show v))+ pairKey Field {path, entry} v = Const $ Just (addIndex <$> path, maybe (Right "") (fromEntry entry) v)+ pairKey NoField _ = Const Nothing+ fromEntry :: Entry a -> a -> Either String Text+ fromEntry (Constant c e) _ = fromEntry e c+ fromEntry Textual v = Right v+ fromEntry Date v = Right $ Text.pack $ formatTime defaultTimeLocale "%Y%m%d" v+ fromEntry Checkbox True = Right "Yes"+ fromEntry Checkbox False = Right "No"+ fromEntry e@(RadioButton values) v = case elemIndex v values+ of Just i -> Right $ Text.pack $ show $ i+1+ Nothing -> Left (show e <> " doesn't allow value " <> show v)+ fromEntry Amount v = Right $ Text.pack (show v)+ fromEntry Percent v = Right $ dropInsignificantZeros (Text.pack $ show (fromRational $ v * 100 :: Centi)) <> "%"+ where dropInsignificantZeros = Text.dropWhileEnd (== '.') . Text.dropWhileEnd (== '0')+ fromEntry Count v = Right $ Text.pack (show v)+ fromEntry Province v = Right $ Text.pack (show v)+ fromFieldMap :: Rank2.Traversable form => form FieldConst -> Map [Text] Text -> Either String (form Maybe)-fromFieldMap fields fieldValues = Rank2.traverse fill fields- where fill :: FieldConst a -> Either String (Maybe a)- fill Field {path, entry}- | Just v <- Map.lookup path fieldValues = toEntry entry (Text.unpack v)- | Just v <- Map.lookup ((<> "[0]") <$> path) fieldValues = toEntry entry (Text.unpack v)- | RadioButtons leaf values <- entry,- Just (n, v) <- find (\(i, _)-> any (`notElem` ["", "Off"]) $- Map.lookup (((<> "[0]") <$> path) <> [leaf <> "[" <> Text.pack (show i) <> "]"]) fieldValues)- (zip [0 ..] values)- = Right $ Just v- | Switch yes no leaf <- entry,- Just yesValue <- Map.lookup ((<> "[0]") <$> (path <> [yes, leaf])) fieldValues,- Just noValue <- Map.lookup ((<> "[0]") <$> (path <> [no, leaf])) fieldValues- = if yesValue `elem` ["", "Off"] && noValue `elem` ["", "Off"] then Right Nothing- else if yesValue == "1" && noValue `elem` ["", "Off"] then Right (Just True)- else if yesValue `elem` ["", "Off"] && noValue `elem` ["1", "2"] then Right (Just False)- else error ("Can't figure out the checkbox at " <> show (path, entry, yesValue, noValue))- | Switch' leaf <- entry,- Just yesValue <- Map.lookup (map (<> "[0]") path <> [leaf <> "[0]"]) fieldValues,- Just noValue <- Map.lookup (map (<> "[0]") path <> [leaf <> "[1]"]) fieldValues- = if yesValue `elem` ["", "Off"] && noValue `elem` ["", "Off"] then Right Nothing- else if yesValue == "1" && noValue `elem` ["", "Off"] then Right (Just True)- else if yesValue `elem` ["", "Off"] && noValue `elem` ["1", "2"] then Right (Just False)- else error ("Can't figure out the checkbox at " <> show (path, entry, yesValue, noValue))- | otherwise = error ("Unknown field path " ++ show path ++ " between "- ++ show (Map.lookupLT ((<> "[0]") <$> path) fieldValues,- Map.lookupGT ((<> "[0]") <$> path) fieldValues))- toEntry :: Entry a -> String -> Either String (Maybe a)- toEntry _ "" = Right Nothing- toEntry Count v = Just <$> readEither v- toEntry Date v = Just <$> parseTimeM False defaultTimeLocale "%Y%m%d" v- toEntry Province v = Just <$> readEither v- toEntry Textual v = Right $ Just $ Text.pack v- toEntry Amount v = Just <$> readEither (dropCommas v)- toEntry Percent v- | Just v' <- stripSuffix "%" v,- (wholePart, pointyPart) <- span (/= '.') v',- Right whole <- fromInteger <$> readEither wholePart,- Right decimal <- case pointyPart- of '.' : decimals -> (/ 10 ^ length decimals) . fromInteger <$> readEither decimals- "" -> Right 0- _ -> Left "bad decimals"- = Right $ Just ((whole + decimal) / 100)- | otherwise = Left ("Bad percentage value: " <> show v)- toEntry Checkbox "Yes" = Right $ Just True- toEntry Checkbox "No" = Right $ Just False- toEntry Checkbox "Off" = Right $ Just False- toEntry Checkbox "1" = Right $ Just True- toEntry Checkbox v = Left ("Bad checkbox value: " <> show v)- toEntry e@(RadioButton values) v- | Right n <- readEither v, n > 0, x:_ <- drop (n - 1) values = Right $ Just x- | otherwise = Left ("Bad radio button value: " <> show (e, v))- toEntry e@RadioButtons{} v = error (show (e, v))- toEntry e@(Switch a b leaf) v = error (show (e, v))- toEntry e@(Switch' leaf) v = error (show (e, v))- dropCommas num+fromFieldMap fieldForm fieldMap = Rank2.traverse (fill fieldMap) fieldForm++fill :: forall a. Map [Text] Text -> FieldConst a -> Either String (Maybe a)+fill fieldValues NoField = Right Nothing+fill fieldValues Field {path, entry}+ | Just v <- Map.lookup path fieldValues = toEntry entry (Text.unpack v)+ | Just v <- Map.lookup (addIndex <$> path) fieldValues = toEntry entry (Text.unpack v)+ | RadioButtons start step leaf values <- entry,+ alts <- [ (Map.lookup (map addIndex path <> [leaf <> "[" <> Text.pack (show $ start + i*step) <> "]"]) fieldValues,+ v)+ | (i, v) <- zip [0 ..] values ]+ = if null alts then Left ("No radio buttons on path " <> show path)+ else Right $ snd <$> find (any (`notElem` ["", "Off"]) . fst) (alts :: [(Maybe Text, a)])+ | Switch yes no leaf <- entry,+ Just yesValue <- Map.lookup (addIndex <$> (path <> [yes, leaf])) fieldValues,+ Just noValue <- Map.lookup (addIndex <$> (path <> [no, leaf])) fieldValues+ = if yesValue `elem` ["", "Off"] && noValue `elem` ["", "Off"] then Right Nothing+ else if yesValue == "1" && noValue `elem` ["", "Off"] then Right (Just True)+ else if yesValue `elem` ["", "Off"] && noValue `elem` ["1", "2"] then Right (Just False)+ else Left ("Can't figure out the checkbox at " <> show (path, entry, yesValue, noValue))+ | Switch' leaf <- entry,+ Just yesValue <- Map.lookup (map addIndex path <> [leaf <> "[0]"]) fieldValues,+ Just noValue <- Map.lookup (map addIndex path <> [leaf <> "[1]"]) fieldValues+ = if yesValue `elem` ["", "Off"] && noValue `elem` ["", "Off"] then Right Nothing+ else if yesValue == "1" && noValue `elem` ["", "Off"] then Right (Just True)+ else if yesValue `elem` ["", "Off"] && noValue `elem` ["1", "2"] then Right (Just False)+ else Left ("Can't figure out the checkbox at " <> show (path, entry, yesValue, noValue))+ | otherwise = Left ("Unknown field path " ++ show path ++ " between "+ ++ show (Map.lookupLT (addIndex <$> path) fieldValues,+ Map.lookupGT (addIndex <$> path) fieldValues))++toEntry :: Entry a -> String -> Either String (Maybe a)+toEntry _ "" = Right Nothing+toEntry (Constant expected entry) v = do+ e <- toEntry entry v+ if e == Just expected+ then pure e+ else Left ("Expected " <> show expected <> ", got " <> show (v, e))+toEntry Count v = Just <$> readEither v+toEntry Date v = Just <$> parseTimeM False defaultTimeLocale "%Y%m%d" v+toEntry Province v = Just <$> readEither v+toEntry Textual v = Right $ Just $ Text.pack v+toEntry Amount v = Just <$> readEither (dropCommas v)+ where dropCommas num | (wholePart, pointyPart@('.' : decimals)) <- span (/= '.') num, length decimals == 2, all isDigit decimals = filter (/= ',') wholePart <> pointyPart | otherwise = num+toEntry Percent v+ | Just v' <- stripSuffix "%" v,+ (wholePart, pointyPart) <- span (/= '.') v',+ Right whole <- fromInteger <$> readEither wholePart,+ Right decimal <- case takeWhile (not . isSpace) pointyPart+ of '.' : decimals -> (/ 10 ^ length decimals) . fromInteger <$> readEither decimals+ "" -> Right 0+ _ -> Left ("Bad decimals: " <> show v')+ = Right $ Just ((whole + decimal) / 100)+ | otherwise = Left ("Bad percentage value: " <> show v)+toEntry Checkbox "Yes" = Right $ Just True+toEntry Checkbox "No" = Right $ Just False+toEntry Checkbox "Off" = Right $ Just False+toEntry Checkbox "1" = Right $ Just True+toEntry Checkbox v = Left ("Bad checkbox value: " <> show v)+toEntry e@(RadioButton values) v+ | Right n <- readEither v, n > 0, x:_ <- drop (n - 1) values = Right $ Just x+ | otherwise = Left ("Bad radio button value: " <> show (e, v))+toEntry e@RadioButtons{} v = Left (show (e, v))+toEntry e@(Switch a b leaf) v = Left (show (e, v))+toEntry e@(Switch' leaf) v = Left (show (e, v))++addIndex :: Text -> Text+addIndex key+ | "]" `Text.isSuffixOf` key = key+ | otherwise = key <> "[0]" instance MonadFail (Either String) where fail = Left
@@ -0,0 +1,34 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE OverloadedStrings #-}++-- | IO functions for invoking PDFTk as an external process++module Tax.PDFtk where++import Data.ByteString.Lazy qualified as Lazy+import System.Process.Typed (ExitCode (ExitFailure, ExitSuccess), byteStringInput, readProcess, setStdin, shell)++-- | Convert a PDF file to an FDF bytestring via @pdftk generate_fdf@+pdfFile2fdf :: FilePath -> IO (Either String Lazy.ByteString)+pdfFile2fdf pdfPath = do+ (exitCode, fdf, errors) <- readProcess (shell $ "pdftk " <> pdfPath <> " generate_fdf output -")+ case exitCode of+ ExitSuccess -> pure (Right fdf)+ ExitFailure n -> pure (Left $ "Error converting PDF to FDF (exit code " <> show n <> ").\n" <> show errors)++-- | Convert a PDF bytestring to FDF via @pdftk generate_fdf@+pdf2fdf :: Lazy.ByteString -> IO (Either String Lazy.ByteString)+pdf2fdf pdf = do+ (exitCode, fdf, errors) <- readProcess (setStdin (byteStringInput pdf) $ shell "pdftk - generate_fdf output -")+ case exitCode of+ ExitSuccess -> pure (Right fdf)+ ExitFailure n -> pure (Left $ "Error converting PDF to FDF (exit code " <> show n <> ").\n" <> show errors)++-- | Given a PDF file, convert an FDF bytestring to filled PDF via @pdftk fill_form@+fdf2pdf :: FilePath -> Lazy.ByteString -> IO (Either String Lazy.ByteString)+fdf2pdf pdfPath fdf = do+ (exitCode, pdf, errors)+ <- readProcess (setStdin (byteStringInput fdf) $ shell $ "pdftk " <> pdfPath <> " fill_form - output -")+ case exitCode of+ ExitSuccess -> pure (Right pdf)+ ExitFailure n -> pure (Left $ "Error converting FDF to PDF (exit code " <> show n <> ").\n" <> show errors)
@@ -13,7 +13,7 @@ where a' = f a -- | Sum the list of arguments; return 'Nothing' iff all items are 'Nothing'.-totalOf :: [Maybe Centi] -> Maybe Centi+totalOf :: Num a => [Maybe a] -> Maybe a totalOf = fmap sum . nonEmpty . mapMaybe id -- | Subtraction under 'Maybe'@@ -30,7 +30,3 @@ fractionOf :: Maybe Rational -> Maybe Centi -> Maybe Centi fractionOf (Just x) (Just amt) = Just $ fromRational (x * toRational amt) fractionOf _ _ = Nothing---- | The minimum of all amounts, 'Nothing' ignored.-leastOf :: [Maybe Centi] -> Maybe Centi-leastOf = fmap minimum . nonEmpty . mapMaybe id
@@ -0,0 +1,154 @@+{-# LANGUAGE Haskell2010 #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Main where++import Tax.Canada.Province.AB qualified as AB+import Tax.Canada.Province.BC qualified as BC+import Tax.Canada.Province.MB qualified as MB+import Tax.Canada.Province.NB qualified as NB+import Tax.Canada.Province.NL qualified as NL+import Tax.Canada.Province.ON qualified as ON+import Tax.Canada.Province.PE qualified as PE+import Tax.Canada.Province.QC qualified as QC+import Tax.Canada.Territory.NT qualified as NT+import Tax.Canada.Territory.NU qualified as NU+import Tax.Canada.Territory.YT qualified as YT+import Tax.Canada.T1 (T1, fixT1)+import Tax.Canada.Federal.Schedule6 (schedule6Fields)+import Tax.Canada.Federal.Schedule7 (schedule7Fields)+import Tax.Canada.Federal.Schedule9 (schedule9Fields)+import Tax.Canada.Federal.Schedule11 (schedule11Fields)+import Tax.FDF as FDF+import Paths_canadian_income_tax (getDataDir)++import Test.Transformations qualified as Transformations++import Data.ByteString qualified as ByteString+import Data.Either (isLeft, isRight)+import Data.Functor.Const (Const (Const, getConst))+import Data.List qualified as List+import Data.Maybe (fromMaybe)+import Data.Semigroup.Cancellative (isSuffixOf)+import Data.Semigroup (All (All, getAll))+import Data.Text (Text, isInfixOf, stripSuffix)+import Rank2 qualified+import System.Directory (listDirectory)+import System.Exit (die)+import System.FilePath.Posix (combine, isExtensionOf)+import Transformation.Shallow qualified as Shallow+import Text.FDF (FDF (body), Field, parse)+import Text.FDF qualified++import Hedgehog (Gen, Property, (===), annotateShow, assert, forAll, property)+import Hedgehog.Gen qualified as Gen+import Test.Tasty+import Test.Tasty.Hedgehog++main = do+ dataDir <- getDataDir+ fdfMaps <- traverse (readFDFs . combine dataDir) [".", "T1/fdf", "428", "479"]+ either die (defaultMain . properties) $ sequenceA fdfMaps+ where+ readFDFs :: FilePath -> IO (Either String [(FilePath, FDF)])+ readFDFs dir = do+ fdfFileNames <- filter (".fdf" `isSuffixOf`) <$> listDirectory dir+ fdfBytes <- traverse (ByteString.readFile . combine dir) fdfFileNames+ pure $ traverse (traverse parse) $ zip fdfFileNames fdfBytes++properties :: [[(FilePath, FDF)]] -> TestTree+properties [dataRootMap, fdfT1Map, fdf428Map, fdf479Map] =+ testGroup "Properties" [+ testGroup "Idempotence" [+ testGroup "Alberta" [+ testProperty "T1" (checkFormIdempotent AB.t1Fields fixT1),+ testProperty "AB428" (checkFormIdempotent AB.ab428Fields AB.fixAB428),+ testProperty "Federal+AB428" (checkFormIdempotent AB.returnFields AB.fixReturns)],+ testGroup "British Columbia" [+ testProperty "T1" (checkFormIdempotent BC.t1Fields fixT1),+ testProperty "BC428" (checkFormIdempotent BC.bc428Fields BC.fixBC428),+ testProperty "Federal+BC428+BC479" (checkFormIdempotent BC.returnFields BC.fixReturns)],+ testGroup "Manitoba" [+ testProperty "T1" (checkFormIdempotent MB.t1Fields fixT1),+ testProperty "MB428" (checkFormIdempotent MB.mb428Fields MB.fixMB428),+ testProperty "Federal+MB428" (checkFormIdempotent MB.returnFields MB.fixReturns)],+ testGroup "Ontario" [+ testProperty "T1" (checkFormIdempotent ON.t1Fields fixT1),+ testProperty "ON428" (checkFormIdempotent ON.returnFields.on428 ON.fixON428),+ testProperty "ON479" (checkFormIdempotent ON.returnFields.on479 ON.fixON479),+ testProperty "Federal+ON428+ON479" (checkFormIdempotent ON.returnFields ON.fixReturns)]],+ testGroup "Roundtrip" [+ testGroup "T1" [+ testProperty ("T1 for " <> name) (checkFormFields fields $ List.lookup (prefix <> "-r-fill-23e.fdf") fdfT1Map)+ | (name, prefix, fields) <- provincesT1],+ testProperty "Schedule 6" (checkFormFields schedule6Fields $ List.lookup "5000-s6-fill-23e.fdf" dataRootMap),+ testProperty "Schedule 7" (checkFormFields schedule7Fields $ List.lookup "5000-s7-fill-23e.fdf" dataRootMap),+ testProperty "Schedule 9" (checkFormFields schedule9Fields $ List.lookup "5000-s9-fill-23e.fdf" dataRootMap),+ testProperty "Schedule 11" (checkFormFields schedule11Fields $ List.lookup "5000-s11-fill-23e.fdf" dataRootMap),+ testGroup "428" [+ testProperty ("Form 428 for " <> name) (checkFields $ List.lookup (prefix <> "-c-fill-23e.fdf") fdf428Map)+ | (name, prefix, checkFields) <- provinces428],+ testGroup "479" [+ testProperty ("Form 479 for " <> name) (checkFields $ List.lookup (prefix <> "-tc-fill-23e.fdf") fdf479Map)+ | (name, prefix, checkFields) <- provinces479]],+ testGroup "Load mismatch" [+ testProperty ("Load T1 for " <> p1name <> " from FDF for " <> p2name) $ property $ assert+ $ any (isLeft . FDF.load p1fields) $ List.lookup (p2fdfPrefix <> "-r-fill-23e.fdf") fdfT1Map+ | (p1name, _, p1fields) <- provincesT1,+ (p2name, p2fdfPrefix, _) <- provincesT1,+ p1name /= p2name]]+ where provincesT1 = [("Newfoundland and Labrador", "5001", NL.t1Fields),+ ("PEI", "5002", PE.t1Fields),+ ("New Brunswick", "5004", NB.t1Fields),+ ("Quebec", "5005", QC.t1Fields),+ ("Ontario", "5006", ON.t1Fields),+ ("British Columbia", "5010", BC.t1Fields),+ ("Northwest Territories", "5012", NT.t1Fields),+ ("Yukon", "5011", YT.t1Fields),+ ("Nunavut", "5014", NU.t1Fields),+ ("Alberta, Manitoba, Nova Scotia, and Saskatchewan", "5015", AB.t1Fields)]+ provinces428 = [("Ontario", "5006", checkFormFields ON.on428Fields),+ ("Manitoba", "5007", checkFormFields MB.mb428Fields),+ ("Alberta", "5009", checkFormFields AB.ab428Fields),+ ("British Columbia", "5010", checkFormFields BC.bc428Fields)]+ provinces479 = [("Ontario", "5006", checkFormFields ON.on479Fields),+ ("British Columbia", "5010", checkFormFields BC.bc479Fields)]+properties maps = error ("Unexpected data directory contents: " <> show maps)++checkFormIdempotent :: (Eq (g Maybe), Show (g Maybe),+ Rank2.Applicative g, Shallow.Traversable Transformations.Gen g)+ => g FieldConst -> (g Maybe -> g Maybe) -> Property+checkFormIdempotent fields f = checkIdempotent (generateForm fields) f++checkFormFields :: (Eq (g Maybe), Show (g Maybe),+ Rank2.Applicative g, Shallow.Traversable Transformations.Gen g)+ => g FieldConst -> Maybe FDF -> Property+checkFormFields _ Nothing = error "Missing FDF template"+checkFormFields fields (Just fdf) = property $ do+ annotateShow $ FDF.load fields fdf+ assert $ isRight $ FDF.load fields fdf+ form <- forAll (generateForm fields)+ let Right fdf' = FDF.update fields form fdf+ formKeys = FDF.formKeys fields+ fdfKeys = Text.FDF.foldMapWithKey (const . (:[]) . map dropIndex) fdf+ dropIndex t = fromMaybe t (stripSuffix "[0]" t)+ keyHeads = List.nub $ take 2 <$> formKeys+ noCheckbox :: [[Text]] -> [[Text]]+ noCheckbox = filter $ not . or . ([isSuffixOf "Checkbox", isInfixOf "CheckBox",+ isInfixOf "Footnote", isInfixOf "address", isInfixOf "Nameof",+ (== "QuestionA"), (== "Note1"), (== "Note2"), (== "CAI-2023")] <*>)+ -- annotateShow fdf'+ FDF.load fields fdf' === Right form+ List.sort (noCheckbox formKeys) === List.sort (noCheckbox $ filter (\x-> any (`List.isPrefixOf` x) keyHeads) fdfKeys)++generateForm :: (Rank2.Applicative g, Shallow.Traversable Transformations.Gen g) => g FieldConst -> Gen (g Maybe)+generateForm = Shallow.traverse Transformations.Gen++checkIdempotent :: (Eq a, Show a) => Gen a -> (a -> a) -> Property+checkIdempotent gen f = property $ forAll gen >>= \x-> let x' = f x in f x' === x'+
@@ -0,0 +1,87 @@+{-# LANGUAGE Haskell2010 #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Main where++import Tax.Canada.Province.ON qualified as ON+import Tax.Canada.Province.AB qualified as AB (t1Fields)+import Tax.Canada.Province.BC qualified as BC (t1Fields)+import Tax.Canada.T1 (T1, fixT1)+import Tax.FDF as FDF++import Control.Monad.IO.Class (liftIO)+import Data.ByteString qualified as ByteString+import Data.ByteString.Lazy (fromStrict)+import Data.Foldable (toList)+import Data.Functor.Const (Const (Const, getConst))+import Data.List qualified as List+import Data.Map qualified as Map+import Data.Maybe (fromMaybe)+import Data.Semigroup (All (All, getAll))+import Data.Text (Text)+import Data.Text qualified as Text+import Rank2 qualified+import System.Directory (doesDirectoryExist, listDirectory)+import System.Exit (die)+import System.FilePath.Posix (combine)+import Text.FDF (FDF, parse, serialize)+import Text.FDF qualified++import Test.Tasty+import Test.Tasty.Golden++main = listDirectory inputDir >>= traverse test >>= defaultMain . testGroup "Regression"++rootDir, inputDir, outputDir, referenceDir :: FilePath+rootDir = combine "test" "regression"+inputDir = combine rootDir "inputs"+outputDir = combine rootDir "outputs"+referenceDir = combine rootDir "reference"++test :: FilePath -> IO TestTree+test path = do+ let inputPath = combine inputDir path+ isDir <- liftIO (doesDirectoryExist inputPath)+ if isDir+ then testReturn path+ else testT1 path++testT1 :: FilePath -> IO TestTree+testT1 path = do+ fdfBytes <- ByteString.readFile $ combine inputDir path+ case parse fdfBytes of+ Left err -> die err+ Right fdf ->+ pure $+ goldenVsString path+ (combine referenceDir path)+ (pure $ fromStrict $ serialize $ either error id $ FDF.mapForm ON.t1Fields fixT1 fdf)++testReturn :: FilePath -> IO TestTree+testReturn path = do+ let inputPath = combine inputDir path+ fdfFileNames <- listDirectory inputPath+ fdfBytes <- traverse (ByteString.readFile . combine inputPath) fdfFileNames+ case traverse parse fdfBytes of+ Left err -> die err+ Right fdfs -> case FDF.mapForms ON.returnFields ON.fixReturns (Map.fromList $ zip (formKey <$> fdfFileNames) fdfs) of+ Left err -> die err+ Right filled+ | let fdfOutputs = fromStrict . serialize <$> filled+ diff ref new = ["diff", "-uw", ref, new]+ compare key fdfOutput+ | let Just fileName = List.find ((key ==) . formKey) fdfFileNames+ = pure $ goldenVsStringDiff fileName diff (combine referenceDir $ combine path fileName) (pure fdfOutput)+ -> testGroup path . toList <$> Map.traverseWithKey compare fdfOutputs+++formKey :: FilePath -> Text+formKey "5000-s6-fill-23e.fdf" = "Schedule6"+formKey "5006-c-fill-23e.fdf" = "428"+formKey "5006-r-fill-23e.fdf" = "T1"+formKey name = error ("File name " <> name <> " is not recognized as a form.")
@@ -0,0 +1,78 @@+{-# LANGUAGE Haskell2010 #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NoFieldSelectors #-}+{-# LANGUAGE NumericUnderscores #-}+{-# LANGUAGE OverloadedRecordDot #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++module Test.Transformations where++import Data.Functor.Compose+import Data.Void (Void)+import Data.Word (Word)+import Data.Text (Text)+import Data.Time (Day)+import Data.Time.Calendar (fromGregorian)+import Data.CAProvinceCodes qualified as Province++import Hedgehog qualified+import Hedgehog.Gen qualified as Gen+import Hedgehog.Range qualified as Range++import Transformation (Transformation (Domain, Codomain), At)+import Transformation qualified+import Transformation.Shallow qualified as Shallow+import Transformation.Shallow.TH qualified as Shallow.TH++import Tax.FDF (FieldConst (Field, NoField), Entry (Constant))+import Tax.Canada.T1 (LanguageOfCorrespondence, MaritalStatus)+import Data.Fixed (Centi, Fixed (MkFixed))++data Gen = Gen++instance Transformation Gen where+ type Domain Gen = FieldConst+ type Codomain Gen = Compose Hedgehog.Gen Maybe++adjust :: Hedgehog.Gen a -> Compose Hedgehog.Gen Maybe a+adjust g = Compose $ Gen.frequency [(4, pure Nothing), (1, Just <$> g)]++instance Gen `At` Void where+ _ $ _ = Compose (pure Nothing)++instance Gen `At` Bool where+ _ $ NoField = Compose (pure Nothing)+ _ $ _ = adjust Gen.enumBounded++instance Gen `At` Centi where+ _ $ NoField = Compose (pure Nothing)+ _ $ Field _ (Constant c _) = Compose (pure $ Just c)+ _ $ _ = adjust $ MkFixed <$> Gen.integral (Range.linear 0 1_000_000_000)++instance Gen `At` Rational where+ _ $ Field _ (Constant c _) = Compose (pure $ Just c)+ _ $ _ = adjust $ ((/ 10_000) . toRational) <$> Gen.integral (Range.linear 0 10_000)++instance Gen `At` Word where+ _ $ _ = adjust $ Gen.word (Range.linear 0 1_000)++instance Gen `At` Text where+ _ $ _ = adjust $ Gen.text (Range.linear 1 500) Gen.unicode++instance Gen `At` Province.Code where+ _ $ _ = adjust $ Gen.element Province.all++instance Gen `At` Day where+ _ $ _ = adjust $ Gen.enum (fromGregorian 1910 1 1) (fromGregorian 2050 12 31)++instance Gen `At` LanguageOfCorrespondence where+ _ $ _ = adjust Gen.enumBounded++instance Gen `At` MaritalStatus where+ _ $ _ = adjust Gen.enumBounded
@@ -0,0 +1,94 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}++module Main where++import Codec.Archive.Zip (addEntryToArchive, emptyArchive, fromArchive, toEntry)+import Control.Category ((>>>))+import Control.Monad (forM, join)+import Control.Monad.IO.Class (liftIO)+import Control.Exception (assert)+import Data.ByteString (ByteString)+import Data.ByteString qualified as ByteString+import Data.ByteString.Lazy qualified as Lazy+import Data.ByteString.Lazy qualified as ByteString.Lazy+import Data.Functor.Compose (Compose(..))+import Data.Map.Lazy qualified as Map+import Data.Monoid.Textual (toString)+import Data.Monoid.Instances.ByteString.UTF8 (ByteStringUTF8(..))+import Data.String (fromString)+import Data.Time.Clock (nominalDiffTimeToSeconds)+import Data.Time.Clock.POSIX (getPOSIXTime)+import Data.Text (Text)+import Data.Text.Lazy qualified as Text.Lazy+import Network.HTTP.Types.Status (ok200, internalServerError500,+ notFound404, unsupportedMediaType415, unprocessableEntity422)+import Network.Wai.Middleware.RequestLogger+import Network.Wai.Middleware.Static+import Network.Wai.Parse (FileInfo (..))+import System.Directory (removeDirectoryRecursive)+import System.FilePath.Posix ((</>))+import System.Posix.Temp (mkdtemp)+import Text.FDF (parse, serialize)+import Text.Read (readMaybe)+import Web.Scotty++import Paths_canadian_income_tax (getDataDir)+import Tax.Canada (completeForms)+import Tax.FDF qualified as FDF+import Tax.PDFtk (fdf2pdf, pdfFile2fdf)++main :: IO ()+main = scotty 3000 $ do+ middleware logStdoutDev+ get "/" $ do+ setHeader "Content-Type" "text/html; charset=utf-8"+ file "web/client/build/index.html"+ get "/about.html" $ do+ file "web/static/about.html"+ post "/t1/PDF/:province" $ do+ provinceCode <- captureParam "province"+ province <- case readMaybe (Text.Lazy.unpack provinceCode)+ of Nothing -> status notFound404+ >> text ("No such province as " <> provinceCode)+ >> finish+ Just p -> pure p+ pdfFiles <- files+ dir <- liftIO $ mkdtemp "tax"+ fdfBytes <- liftIO $ fmap sequenceA $ forM pdfFiles $ \(key, FileInfo name _ content)-> do+ let path = dir </> fromUTF8 name+ Lazy.writeFile path content+ fdf <- pdfFile2fdf path+ pure ((,) key <$> fdf)+ case fdfBytes >>= traverse (traverse $ Lazy.toStrict >>> parse) of+ Left err -> status unsupportedMediaType415 >> text (fromString err)+ Right fdfs -> case completeForms province (Map.fromList fdfs) of+ Left err -> status unprocessableEntity422 >> text (fromString err)+ Right fdfs' -> do+ let fdfBytes' = Lazy.fromStrict . serialize <$> fdfs'+ replaceContent :: (Text, FileInfo Lazy.ByteString) -> IO (Either String (Text, FileInfo Lazy.ByteString))+ replaceContent (key, FileInfo name ty _) = case Map.lookup key fdfBytes' of+ Just c -> ((,) key . FileInfo name ty <$>) <$> fdf2pdf (dir </> fromUTF8 name) c+ Nothing -> pure (Left $ "Unknown key " <> show key)+ pdfFiles' <- liftIO $ traverse replaceContent pdfFiles+ case sequenceA pdfFiles' of+ Left err -> do+ status internalServerError500 >> text (fromString err)+ Right [(_, FileInfo _ _ pdf)] -> do+ status ok200+ setHeader "Content-Type" "application/pdf"+ raw pdf+ Right pdfFiles' -> do+ now <- liftIO $ round . nominalDiffTimeToSeconds <$> getPOSIXTime+ let pdfArchive = foldr addPDF emptyArchive pdfFiles'+ addPDF (_, FileInfo name _ c) = addEntryToArchive (toEntry (fromUTF8 name) now c)+ status ok200+ setHeader "Content-Type" "application/zip"+ raw (fromArchive pdfArchive)+ liftIO $ removeDirectoryRecursive dir+ middleware $ staticPolicy (noDots >-> addBase "web/client/build")++fromUTF8 :: ByteString -> String+fromUTF8 = toString mempty . ByteStringUTF8