From 34685838bc30188487f49100b5ae57cbc58d7d2c Mon Sep 17 00:00:00 2001 From: Ryjek Date: Fri, 25 Mar 2022 16:42:41 +0100 Subject: [PATCH] Initial commit --- .dockerignore | 11 + .gitignore | 3 + docker-compose.override.yml | 9 + docker-compose.yml | 46 + project/.env | 43 + project/.gitignore | 20 + project/.gitold/COMMIT_EDITMSG | 1 + project/.gitold/HEAD | 1 + project/.gitold/config | 5 + project/.gitold/description | 1 + project/.gitold/hooks/applypatch-msg.sample | 15 + project/.gitold/hooks/commit-msg.sample | 24 + .../.gitold/hooks/fsmonitor-watchman.sample | 109 + project/.gitold/hooks/post-update.sample | 8 + project/.gitold/hooks/pre-applypatch.sample | 14 + project/.gitold/hooks/pre-commit.sample | 49 + project/.gitold/hooks/pre-merge-commit.sample | 13 + project/.gitold/hooks/pre-push.sample | 53 + project/.gitold/hooks/pre-rebase.sample | 169 + project/.gitold/hooks/pre-receive.sample | 24 + .../.gitold/hooks/prepare-commit-msg.sample | 42 + project/.gitold/hooks/update.sample | 128 + project/.gitold/index | Bin 0 -> 6934 bytes project/.gitold/info/exclude | 6 + project/.gitold/logs/HEAD | 6 + project/.gitold/logs/refs/heads/master | 5 + .../00/b524335ee2e9ab0145571aa925e69a936145c0 | Bin 0 -> 218 bytes .../02/01281d3cb52c5ba159964b4637dda02bd28104 | Bin 0 -> 223 bytes .../02/2353f629dde562fccdd7f5b723980bffd17d87 | Bin 0 -> 133 bytes .../05/6b04aa67638796099e0a4e86c84dac7ac9ce19 | Bin 0 -> 1220 bytes .../06/c0ddec3b46efcb2493422821723fc4b6356982 | Bin 0 -> 482 bytes .../08/ca5245c9ed212ccdfa34debd69c0028f92638d | Bin 0 -> 65 bytes .../0a/6e540ccd4e3de21baa39e874364c861bdf4ae9 | Bin 0 -> 637 bytes .../0b/f514536b286561f7ae05dd6fb37718dc2545a0 | Bin 0 -> 2479 bytes .../0c/c2b6aba6096c240349d629869e8be054a22f26 | 1 + .../0d/ddb97d461f2421eae461f314de7d8b85990f40 | Bin 0 -> 396 bytes .../0f/c74bbac4b757dd49782f0be496f6fd7e07e47c | Bin 0 -> 111 bytes .../12/ecdf61323c1cb9a115664fbb7efe566e5da6e0 | Bin 0 -> 873 bytes .../13/a682b9df37a32f9d331bb600314f1ae463e1eb | Bin 0 -> 1021 bytes .../15/28f835cc0eda2dc7f5331c8bda9f809a9a62d8 | 4 + .../17/893da18dc7491afce0f912cc1482a766493acd | 3 + .../17/d67388c0c2673d8ddc613a1d39af7d30763cb9 | Bin 0 -> 575 bytes .../18/21ccc079e911f276bd1866f6349ce54c963ebe | Bin 0 -> 71 bytes .../19/2d34e334db3a10c9950a7c872aa0a3d5c32512 | Bin 0 -> 51 bytes .../1a/78753f40514f6dca9c3ce235166ced652e847a | Bin 0 -> 846 bytes .../1b/4f85ff36062c98c019e7b74cd80d46e746233e | Bin 0 -> 980 bytes .../1c/e28bb15d93ce50528ab5239ceae60f7f266c5a | Bin 0 -> 1151 bytes .../1f/0e3e0a17b95b48e87e3173c302101ab7200c40 | Bin 0 -> 162 bytes .../1f/eac7d227ebbddad15544db66f58da2608b1a5d | Bin 0 -> 515 bytes .../22/3d6452d1adfb1205703964ef77c9b2177b1ee8 | Bin 0 -> 575 bytes .../23/b1acf1039353047de4758d5a6b0973cbbc97bc | Bin 0 -> 629 bytes .../26/6b553dc2e71c375aa0e6e893eb67d598a07927 | Bin 0 -> 958 bytes .../2a/8af98280c47db3015a3fa7f98086b9f6df8614 | Bin 0 -> 1159 bytes .../2b/74757572e965c8617b3b866d9bd04687354cb1 | Bin 0 -> 683 bytes .../2d/6a76f94dce138741e2d63ae83a11c1879031d9 | Bin 0 -> 554 bytes .../2f/c79fa03c3e0cfce4381bf39eb73e827ea4a5bc | Bin 0 -> 542 bytes .../34/ce750428aa4975a81acc1b0fec57b6fe44a4ca | Bin 0 -> 54 bytes .../35/18b382820fd0978362507fef6e4ac2c07c25f6 | Bin 0 -> 140 bytes .../37/bb0b8af13e37f902644d6fd042c970db241668 | 1 + .../39/84a48dc799df576d3586f28b767f99f3a1023e | Bin 0 -> 271 bytes .../3d/7ec6a0948dc7e39bc86e50381026002346e947 | Bin 0 -> 106 bytes .../3e/2c590174e7e925c9a34703e76f0bbd9da83fca | Bin 0 -> 132 bytes .../44/ae7f76389a9db31f83ec0bcd63b5027722919a | 2 + .../45/000b5cb0d80beb0e6ce570584ba148f99924a6 | Bin 0 -> 52 bytes .../46/834f0c9adde9d3b233e1dd076971467f3113f3 | Bin 0 -> 821 bytes .../48/bcb511d02db420505230c64dbdb4b0a3e96f77 | Bin 0 -> 369 bytes .../49/3953c593a9ab0b38ba7621212ec3c006c74012 | Bin 0 -> 59 bytes .../49/d3fb6fcef0acfd0f1d4920a71806ca22a69942 | Bin 0 -> 89 bytes .../4a/b2df64357e7ad919942b96dbf8cd55ec3c1887 | 3 + .../4b/4d90496e3d7b5960556196fce70b1b6e525642 | Bin 0 -> 526 bytes .../4b/766ce57ff106fab2e113e28d8b35f2192b5a22 | 2 + .../4b/8c4844aeaf6dbe0799b8c57591129a396b03bb | Bin 0 -> 996 bytes .../4f/670c2c8fc4cc1be2a0bcd985450760432ac774 | Bin 0 -> 469 bytes .../50/7680e173b544ccbc859338906860a606e88dd6 | Bin 0 -> 747 bytes .../51/af4d16538d2241926e9bf22390926692f0794c | Bin 0 -> 86 bytes .../53/d0f8e03bae159222b6e2ecf67d7a99ae884324 | Bin 0 -> 215 bytes .../55/203d5f901790ca9ca8798d52b036b5209c7301 | Bin 0 -> 11622 bytes .../56/a650d89b2aec830ca3618bbdc7b6ff752e3501 | Bin 0 -> 64 bytes .../58/7083a6c948f2ae6ce1d4eb67664b86ae5c742e | Bin 0 -> 407 bytes .../58/9136e0d01b7acb25858aa8b07f79de23e89311 | Bin 0 -> 441 bytes .../59/6a1446436706c7d62eeb880a7c69041b321e4e | Bin 0 -> 182 bytes .../5b/a4d9cb331dc4aaae0db8bd6a0c97f92c5882e9 | Bin 0 -> 122 bytes .../5d/2c15ddda88cc4dee0bc1f74552ee8e89d4ecd9 | Bin 0 -> 182 bytes .../5e/bcdb2153c870e7d915f3b3fcdd55821424284c | Bin 0 -> 130 bytes .../5f/e407d9f19b17657a3ad8f71069b06d7ef7633b | Bin 0 -> 222 bytes .../60/891d2a243b49577261302c6e093b4574d8f011 | Bin 0 -> 64 bytes .../60/90715e99f419dd0ed444abd5067fbfe3905ede | Bin 0 -> 491 bytes .../60/d32cfae3503a6e3013f27a72370226a8a7388c | Bin 0 -> 1191 bytes .../61/01d008829d110316f10fd80558fb2679070d04 | Bin 0 -> 996 bytes .../61/04c8b4631aace06184f878f4fd63e231e6ee26 | 3 + .../65/8224830e07405ea2db343174077e581de2548d | Bin 0 -> 166 bytes .../66/47b9ae7020590a3e28b34db617bccec943ecfd | Bin 0 -> 1019 bytes .../68/99b72003fca67f5a56b945cd3e07f5c8a33774 | Bin 0 -> 378 bytes .../69/5281fe650c24a76806d1bc7b56c1023cce4619 | Bin 0 -> 928 bytes .../6a/36b5f0160f5e69fa8963d275c08abc2fd8948c | Bin 0 -> 90 bytes .../6f/7fd895e6a5705d8e69d01463fb41d3b79069cb | Bin 0 -> 171 bytes .../70/32f3c87b40d609325feb8f98514b68881f3896 | Bin 0 -> 486 bytes .../74/e6f64f2fd0278fddc8560c247f75b8886cc82d | Bin 0 -> 188 bytes .../77/9cd1f2b12e0d30731787539ba67645b73ef796 | 2 + .../78/53e9ed52b8997cf8ea4c7252c6476a7eb41794 | 1 + .../78/9a9ac141ba2c9f6ece6369e836db4fa2fa8884 | Bin 0 -> 752 bytes .../7f/64c04c5a511800f55f3cfab19e63b4fc2fb11b | Bin 0 -> 298 bytes .../7f/dcc07f6c0a5c56eb8e92f5785e1cd670f04180 | Bin 0 -> 184 bytes .../81/3010a741088d0c1ebb62dcd0b7254684a7dac1 | 2 + .../81/e579bfc1be85d29babd1118ccefafac4c44642 | Bin 0 -> 98 bytes .../82/e3a754b6a0fcb238b03c0e47d05219fbf9cf89 | Bin 0 -> 55 bytes .../85/336af99217fea79cd422d95155bfd13194dc86 | Bin 0 -> 1229 bytes .../86/c0e7b97c6486f9935fc7281eeb19fdee500ce9 | Bin 0 -> 216 bytes .../8a/9e00df3771b6861b14017a13003ca5a5189d2b | Bin 0 -> 746 bytes .../8b/d9061d53c8d3913bbb31cc42a41726e128492f | Bin 0 -> 116 bytes .../8c/199e0f8699925b9368b49e6ba63189a4e85566 | Bin 0 -> 2612 bytes .../8c/9efa91e025afcfcd7b1622d2238446b86cab07 | Bin 0 -> 568 bytes .../8d/85319fd8654424c2c9602a3f813415d58b6dae | Bin 0 -> 132 bytes .../8f/e1dd407de61e8eaca1869a3de7c06dc6860fa6 | Bin 0 -> 532 bytes .../90/82863d3e99aa7612f4033b5233a13ba3a8a977 | Bin 0 -> 884 bytes .../90/dee228e58e5e3de04813b84dd4a98ec1b3b26e | 1 + .../92/d01a769077d960c6c5d61285137e99b09a732f | Bin 0 -> 51 bytes .../94/9f88c10102de82ab31be2dd3fed439c90c40db | Bin 0 -> 527 bytes .../99/82c218d6969c72d4c91e3834e3f535e2dfe68b | 2 + .../9b/a1b2987ea11c3f7f51ebdfe72e8e1a685b67b0 | Bin 0 -> 56 bytes .../9c/3b2cf9f494654dd9a6995d5b65720f19e9b562 | Bin 0 -> 89 bytes .../9c/c6985532bb0842a066523f70eb1d23ac602677 | Bin 0 -> 215 bytes .../a0/a17a0847b5572883f74fab89c95f4fff8590f3 | 2 + .../a1/c6e90cf130716da3c36d3cc628626079c91c99 | Bin 0 -> 54 bytes .../a2/176a537c208482c9ad07e91f05d2587ed4e428 | 3 + .../a4/956f3ac16864c348ea2856e6c02c4154d561fe | Bin 0 -> 1196 bytes .../a6/7f91e25c268247e2034877873a2b27f37619f0 | 2 + .../a8/0a8cf90ad60ac55c7da7bc6ab499c5592e7e51 | Bin 0 -> 385 bytes .../a9/5e41d33e4690d6cf3253dab6f4b16905f37563 | Bin 0 -> 59 bytes .../a9/d691259f5933b7f2f5427aca039f32c50e7b5d | 1 + .../ab/b76aae82db19944114e4c29c75ac913b18c897 | 3 + .../ad/874afdde10699363e41671ad21e784477d0b4d | 4 + .../b4/753d7dbc0f28642c57ad2c570e065ef31b9110 | Bin 0 -> 97 bytes .../bb/0a6aa13842ed71824123a207380477f7f1ce1a | 2 + .../bd/89662193851b09144656eb49384ebee1a30d23 | Bin 0 -> 220 bytes .../be/07dc945351cf1b2e6686c87107512b118c0d22 | Bin 0 -> 579 bytes .../c1/b176e1474219dea2ae9e6d4c247e9fc4af34da | Bin 0 -> 39913 bytes .../c3/283aa2e33bc813c55504d6c5a7a26653bd3dde | Bin 0 -> 70 bytes .../c6/1f388813e3259b30a7a42fe56d3e3436e6016a | Bin 0 -> 441 bytes .../c9/33dc535d0d19032f851d0aad82ae768fba6968 | 4 + .../c9/79f0098ad286d0a8f07eebbc2fb877851c226f | Bin 0 -> 92 bytes .../cb/273a6b2600582a2b778aa42f93bcb93d330d0c | Bin 0 -> 140 bytes .../cb/33b131595765db651e2be3d47e211f6c8fd0ee | Bin 0 -> 56 bytes .../cb/c3399714d2abe136ee5d708c2da7851a48dd13 | Bin 0 -> 207 bytes .../cd/c324dbd6ec6c317229bb08aa9c39712f97dfee | 2 + .../cf/0e159bb332e68d638bd3459ee2662a3dcfa10a | Bin 0 -> 215 bytes .../d1/460e7619e8c02ed2d28e69c73e31307d56deba | Bin 0 -> 98 bytes .../d2/0edb5e0d2c5bc477e6580450be8b7ac300bb85 | 2 + .../d4/f83f7f8bf0387ab3873e312961337fa3589b85 | Bin 0 -> 410 bytes .../d5/64d0bc3dd917926892c55e3706cc116d5b165e | Bin 0 -> 53 bytes .../d8/8611f1b33e8a7b4de78224d77a3d37bca497ec | 4 + .../da/8f0a3fe77d08e6957bd87c32456759ac37e09f | Bin 0 -> 211 bytes .../db/ca17e2be98e018fa588783a6b76275d0066735 | Bin 0 -> 1050 bytes .../de/3979f007134724056316a1b689032567575438 | Bin 0 -> 276 bytes .../e2/5e8749e8fbf8e6a1884494051265e8adc26381 | Bin 0 -> 758 bytes .../e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 | Bin 0 -> 15 bytes .../e7/1c120948690f02a247897ac9a2f80de8744306 | Bin 0 -> 57 bytes .../e8/47027bdbedd033df76a4dc1a1f5eba3da3eb7b | 3 + .../e9/2efc5969392ae3d73489d066d8cd625dd27718 | Bin 0 -> 91 bytes .../ee/f9fa9d3003d11ee394ddaeab9e82518eea8a9d | Bin 0 -> 43176 bytes .../f7/fc322866f1218d5d0f4050827e3f438b59837c | Bin 0 -> 246 bytes .../f9/f4cc539ba6fee13b96c7ee0a6f1d861785a3be | 1 + project/.gitold/refs/heads/master | 1 + project/assets/app.js | 12 + project/assets/bootstrap.js | 11 + project/assets/controllers.json | 4 + .../assets/controllers/hello_controller.js | 16 + project/assets/styles/app.css | 3 + project/assets/styles/global.less | 1 + project/bin/console | 17 + project/composer.json | 109 + project/composer.lock | 8985 +++++++++++++++++ project/config/bundles.php | 16 + project/config/packages/cache.yaml | 19 + project/config/packages/debug.yaml | 5 + project/config/packages/doctrine.yaml | 42 + .../config/packages/doctrine_migrations.yaml | 6 + project/config/packages/framework.yaml | 24 + project/config/packages/mailer.yaml | 3 + project/config/packages/messenger.yaml | 24 + project/config/packages/monolog.yaml | 61 + project/config/packages/notifier.yaml | 16 + project/config/packages/routing.yaml | 12 + project/config/packages/security.yaml | 40 + .../packages/sensio_framework_extra.yaml | 3 + project/config/packages/translation.yaml | 13 + project/config/packages/twig.yaml | 6 + project/config/packages/validator.yaml | 13 + project/config/packages/web_profiler.yaml | 15 + project/config/packages/webpack_encore.yaml | 49 + project/config/preload.php | 5 + project/config/routes.yaml | 3 + project/config/routes/annotations.yaml | 7 + project/config/routes/framework.yaml | 4 + project/config/routes/web_profiler.yaml | 8 + project/config/services.yaml | 33 + project/migrations/.gitignore | 0 project/migrations/Version20220304082919.php | 47 + project/migrations/Version20220304105042.php | 32 + project/migrations/Version20220304162139.php | 32 + project/package.json | 23 + project/public/index.php | 9 + project/src/Controller/.gitignore | 0 project/src/Controller/TaxesController.php | 99 + project/src/Entity/.gitignore | 0 project/src/Entity/ExchangeRates.php | 77 + project/src/Helper/Currency.php | 97 + project/src/Helper/DataNeed/CryptoValues.php | 45 + project/src/Helper/FIFO/Crypto.php | 39 + project/src/Helper/FIFO/Main.php | 54 + project/src/Helper/Sheets/ReadSheet.php | 41 + project/src/Kernel.php | 11 + project/src/Logic/Crypto/MainObject.php | 76 + project/src/Logic/Dividends/DividendsData.php | 109 + .../src/Logic/Dividends/DividendsSummary.php | 109 + project/src/Logic/Dividends/SheetData.php | 127 + project/src/Logic/Dividends/XMLReader.php | 85 + project/src/Repository/.gitignore | 0 .../Repository/ExchangeRatesRepository.php | 76 + project/src/Services/CryptoService.php | 30 + project/src/Services/DividendsService.php | 40 + project/src/Services/MasterServices.php | 40 + project/symfony.lock | 554 + project/templates/base.html.twig | 21 + project/templates/taxes/index.html.twig | 23 + project/templates/taxes/show.html.twig | 35 + project/translations/.gitignore | 0 project/uploads/.gitkeep | 0 project/webpack.config.js | 76 + services/config/entrypoint.sh | 5 + services/config/nginx-site.conf | 37 + services/wait_for_it/Dockerfile | 6 + services/wait_for_it/sayhello.sh | 9 + services/wait_for_it/wait-for-it.sh | 182 + services/www/Dockerfile | 69 + 235 files changed, 12766 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 docker-compose.override.yml create mode 100644 docker-compose.yml create mode 100644 project/.env create mode 100644 project/.gitignore create mode 100644 project/.gitold/COMMIT_EDITMSG create mode 100644 project/.gitold/HEAD create mode 100644 project/.gitold/config create mode 100644 project/.gitold/description create mode 100755 project/.gitold/hooks/applypatch-msg.sample create mode 100755 project/.gitold/hooks/commit-msg.sample create mode 100755 project/.gitold/hooks/fsmonitor-watchman.sample create mode 100755 project/.gitold/hooks/post-update.sample create mode 100755 project/.gitold/hooks/pre-applypatch.sample create mode 100755 project/.gitold/hooks/pre-commit.sample create mode 100755 project/.gitold/hooks/pre-merge-commit.sample create mode 100755 project/.gitold/hooks/pre-push.sample create mode 100755 project/.gitold/hooks/pre-rebase.sample create mode 100755 project/.gitold/hooks/pre-receive.sample create mode 100755 project/.gitold/hooks/prepare-commit-msg.sample create mode 100755 project/.gitold/hooks/update.sample create mode 100644 project/.gitold/index create mode 100644 project/.gitold/info/exclude create mode 100644 project/.gitold/logs/HEAD create mode 100644 project/.gitold/logs/refs/heads/master create mode 100644 project/.gitold/objects/00/b524335ee2e9ab0145571aa925e69a936145c0 create mode 100644 project/.gitold/objects/02/01281d3cb52c5ba159964b4637dda02bd28104 create mode 100644 project/.gitold/objects/02/2353f629dde562fccdd7f5b723980bffd17d87 create mode 100644 project/.gitold/objects/05/6b04aa67638796099e0a4e86c84dac7ac9ce19 create mode 100644 project/.gitold/objects/06/c0ddec3b46efcb2493422821723fc4b6356982 create mode 100644 project/.gitold/objects/08/ca5245c9ed212ccdfa34debd69c0028f92638d create mode 100644 project/.gitold/objects/0a/6e540ccd4e3de21baa39e874364c861bdf4ae9 create mode 100644 project/.gitold/objects/0b/f514536b286561f7ae05dd6fb37718dc2545a0 create mode 100644 project/.gitold/objects/0c/c2b6aba6096c240349d629869e8be054a22f26 create mode 100644 project/.gitold/objects/0d/ddb97d461f2421eae461f314de7d8b85990f40 create mode 100644 project/.gitold/objects/0f/c74bbac4b757dd49782f0be496f6fd7e07e47c create mode 100644 project/.gitold/objects/12/ecdf61323c1cb9a115664fbb7efe566e5da6e0 create mode 100644 project/.gitold/objects/13/a682b9df37a32f9d331bb600314f1ae463e1eb create mode 100644 project/.gitold/objects/15/28f835cc0eda2dc7f5331c8bda9f809a9a62d8 create mode 100644 project/.gitold/objects/17/893da18dc7491afce0f912cc1482a766493acd create mode 100644 project/.gitold/objects/17/d67388c0c2673d8ddc613a1d39af7d30763cb9 create mode 100644 project/.gitold/objects/18/21ccc079e911f276bd1866f6349ce54c963ebe create mode 100644 project/.gitold/objects/19/2d34e334db3a10c9950a7c872aa0a3d5c32512 create mode 100644 project/.gitold/objects/1a/78753f40514f6dca9c3ce235166ced652e847a create mode 100644 project/.gitold/objects/1b/4f85ff36062c98c019e7b74cd80d46e746233e create mode 100644 project/.gitold/objects/1c/e28bb15d93ce50528ab5239ceae60f7f266c5a create mode 100644 project/.gitold/objects/1f/0e3e0a17b95b48e87e3173c302101ab7200c40 create mode 100644 project/.gitold/objects/1f/eac7d227ebbddad15544db66f58da2608b1a5d create mode 100644 project/.gitold/objects/22/3d6452d1adfb1205703964ef77c9b2177b1ee8 create mode 100644 project/.gitold/objects/23/b1acf1039353047de4758d5a6b0973cbbc97bc create mode 100644 project/.gitold/objects/26/6b553dc2e71c375aa0e6e893eb67d598a07927 create mode 100644 project/.gitold/objects/2a/8af98280c47db3015a3fa7f98086b9f6df8614 create mode 100644 project/.gitold/objects/2b/74757572e965c8617b3b866d9bd04687354cb1 create mode 100644 project/.gitold/objects/2d/6a76f94dce138741e2d63ae83a11c1879031d9 create mode 100644 project/.gitold/objects/2f/c79fa03c3e0cfce4381bf39eb73e827ea4a5bc create mode 100644 project/.gitold/objects/34/ce750428aa4975a81acc1b0fec57b6fe44a4ca create mode 100644 project/.gitold/objects/35/18b382820fd0978362507fef6e4ac2c07c25f6 create mode 100644 project/.gitold/objects/37/bb0b8af13e37f902644d6fd042c970db241668 create mode 100644 project/.gitold/objects/39/84a48dc799df576d3586f28b767f99f3a1023e create mode 100644 project/.gitold/objects/3d/7ec6a0948dc7e39bc86e50381026002346e947 create mode 100644 project/.gitold/objects/3e/2c590174e7e925c9a34703e76f0bbd9da83fca create mode 100644 project/.gitold/objects/44/ae7f76389a9db31f83ec0bcd63b5027722919a create mode 100644 project/.gitold/objects/45/000b5cb0d80beb0e6ce570584ba148f99924a6 create mode 100644 project/.gitold/objects/46/834f0c9adde9d3b233e1dd076971467f3113f3 create mode 100644 project/.gitold/objects/48/bcb511d02db420505230c64dbdb4b0a3e96f77 create mode 100644 project/.gitold/objects/49/3953c593a9ab0b38ba7621212ec3c006c74012 create mode 100644 project/.gitold/objects/49/d3fb6fcef0acfd0f1d4920a71806ca22a69942 create mode 100644 project/.gitold/objects/4a/b2df64357e7ad919942b96dbf8cd55ec3c1887 create mode 100644 project/.gitold/objects/4b/4d90496e3d7b5960556196fce70b1b6e525642 create mode 100644 project/.gitold/objects/4b/766ce57ff106fab2e113e28d8b35f2192b5a22 create mode 100644 project/.gitold/objects/4b/8c4844aeaf6dbe0799b8c57591129a396b03bb create mode 100644 project/.gitold/objects/4f/670c2c8fc4cc1be2a0bcd985450760432ac774 create mode 100644 project/.gitold/objects/50/7680e173b544ccbc859338906860a606e88dd6 create mode 100644 project/.gitold/objects/51/af4d16538d2241926e9bf22390926692f0794c create mode 100644 project/.gitold/objects/53/d0f8e03bae159222b6e2ecf67d7a99ae884324 create mode 100644 project/.gitold/objects/55/203d5f901790ca9ca8798d52b036b5209c7301 create mode 100644 project/.gitold/objects/56/a650d89b2aec830ca3618bbdc7b6ff752e3501 create mode 100644 project/.gitold/objects/58/7083a6c948f2ae6ce1d4eb67664b86ae5c742e create mode 100644 project/.gitold/objects/58/9136e0d01b7acb25858aa8b07f79de23e89311 create mode 100644 project/.gitold/objects/59/6a1446436706c7d62eeb880a7c69041b321e4e create mode 100644 project/.gitold/objects/5b/a4d9cb331dc4aaae0db8bd6a0c97f92c5882e9 create mode 100644 project/.gitold/objects/5d/2c15ddda88cc4dee0bc1f74552ee8e89d4ecd9 create mode 100644 project/.gitold/objects/5e/bcdb2153c870e7d915f3b3fcdd55821424284c create mode 100644 project/.gitold/objects/5f/e407d9f19b17657a3ad8f71069b06d7ef7633b create mode 100644 project/.gitold/objects/60/891d2a243b49577261302c6e093b4574d8f011 create mode 100644 project/.gitold/objects/60/90715e99f419dd0ed444abd5067fbfe3905ede create mode 100644 project/.gitold/objects/60/d32cfae3503a6e3013f27a72370226a8a7388c create mode 100644 project/.gitold/objects/61/01d008829d110316f10fd80558fb2679070d04 create mode 100644 project/.gitold/objects/61/04c8b4631aace06184f878f4fd63e231e6ee26 create mode 100644 project/.gitold/objects/65/8224830e07405ea2db343174077e581de2548d create mode 100644 project/.gitold/objects/66/47b9ae7020590a3e28b34db617bccec943ecfd create mode 100644 project/.gitold/objects/68/99b72003fca67f5a56b945cd3e07f5c8a33774 create mode 100644 project/.gitold/objects/69/5281fe650c24a76806d1bc7b56c1023cce4619 create mode 100644 project/.gitold/objects/6a/36b5f0160f5e69fa8963d275c08abc2fd8948c create mode 100644 project/.gitold/objects/6f/7fd895e6a5705d8e69d01463fb41d3b79069cb create mode 100644 project/.gitold/objects/70/32f3c87b40d609325feb8f98514b68881f3896 create mode 100644 project/.gitold/objects/74/e6f64f2fd0278fddc8560c247f75b8886cc82d create mode 100644 project/.gitold/objects/77/9cd1f2b12e0d30731787539ba67645b73ef796 create mode 100644 project/.gitold/objects/78/53e9ed52b8997cf8ea4c7252c6476a7eb41794 create mode 100644 project/.gitold/objects/78/9a9ac141ba2c9f6ece6369e836db4fa2fa8884 create mode 100644 project/.gitold/objects/7f/64c04c5a511800f55f3cfab19e63b4fc2fb11b create mode 100644 project/.gitold/objects/7f/dcc07f6c0a5c56eb8e92f5785e1cd670f04180 create mode 100644 project/.gitold/objects/81/3010a741088d0c1ebb62dcd0b7254684a7dac1 create mode 100644 project/.gitold/objects/81/e579bfc1be85d29babd1118ccefafac4c44642 create mode 100644 project/.gitold/objects/82/e3a754b6a0fcb238b03c0e47d05219fbf9cf89 create mode 100644 project/.gitold/objects/85/336af99217fea79cd422d95155bfd13194dc86 create mode 100644 project/.gitold/objects/86/c0e7b97c6486f9935fc7281eeb19fdee500ce9 create mode 100644 project/.gitold/objects/8a/9e00df3771b6861b14017a13003ca5a5189d2b create mode 100644 project/.gitold/objects/8b/d9061d53c8d3913bbb31cc42a41726e128492f create mode 100644 project/.gitold/objects/8c/199e0f8699925b9368b49e6ba63189a4e85566 create mode 100644 project/.gitold/objects/8c/9efa91e025afcfcd7b1622d2238446b86cab07 create mode 100644 project/.gitold/objects/8d/85319fd8654424c2c9602a3f813415d58b6dae create mode 100644 project/.gitold/objects/8f/e1dd407de61e8eaca1869a3de7c06dc6860fa6 create mode 100644 project/.gitold/objects/90/82863d3e99aa7612f4033b5233a13ba3a8a977 create mode 100644 project/.gitold/objects/90/dee228e58e5e3de04813b84dd4a98ec1b3b26e create mode 100644 project/.gitold/objects/92/d01a769077d960c6c5d61285137e99b09a732f create mode 100644 project/.gitold/objects/94/9f88c10102de82ab31be2dd3fed439c90c40db create mode 100644 project/.gitold/objects/99/82c218d6969c72d4c91e3834e3f535e2dfe68b create mode 100644 project/.gitold/objects/9b/a1b2987ea11c3f7f51ebdfe72e8e1a685b67b0 create mode 100644 project/.gitold/objects/9c/3b2cf9f494654dd9a6995d5b65720f19e9b562 create mode 100644 project/.gitold/objects/9c/c6985532bb0842a066523f70eb1d23ac602677 create mode 100644 project/.gitold/objects/a0/a17a0847b5572883f74fab89c95f4fff8590f3 create mode 100644 project/.gitold/objects/a1/c6e90cf130716da3c36d3cc628626079c91c99 create mode 100644 project/.gitold/objects/a2/176a537c208482c9ad07e91f05d2587ed4e428 create mode 100644 project/.gitold/objects/a4/956f3ac16864c348ea2856e6c02c4154d561fe create mode 100644 project/.gitold/objects/a6/7f91e25c268247e2034877873a2b27f37619f0 create mode 100644 project/.gitold/objects/a8/0a8cf90ad60ac55c7da7bc6ab499c5592e7e51 create mode 100644 project/.gitold/objects/a9/5e41d33e4690d6cf3253dab6f4b16905f37563 create mode 100644 project/.gitold/objects/a9/d691259f5933b7f2f5427aca039f32c50e7b5d create mode 100644 project/.gitold/objects/ab/b76aae82db19944114e4c29c75ac913b18c897 create mode 100644 project/.gitold/objects/ad/874afdde10699363e41671ad21e784477d0b4d create mode 100644 project/.gitold/objects/b4/753d7dbc0f28642c57ad2c570e065ef31b9110 create mode 100644 project/.gitold/objects/bb/0a6aa13842ed71824123a207380477f7f1ce1a create mode 100644 project/.gitold/objects/bd/89662193851b09144656eb49384ebee1a30d23 create mode 100644 project/.gitold/objects/be/07dc945351cf1b2e6686c87107512b118c0d22 create mode 100644 project/.gitold/objects/c1/b176e1474219dea2ae9e6d4c247e9fc4af34da create mode 100644 project/.gitold/objects/c3/283aa2e33bc813c55504d6c5a7a26653bd3dde create mode 100644 project/.gitold/objects/c6/1f388813e3259b30a7a42fe56d3e3436e6016a create mode 100644 project/.gitold/objects/c9/33dc535d0d19032f851d0aad82ae768fba6968 create mode 100644 project/.gitold/objects/c9/79f0098ad286d0a8f07eebbc2fb877851c226f create mode 100644 project/.gitold/objects/cb/273a6b2600582a2b778aa42f93bcb93d330d0c create mode 100644 project/.gitold/objects/cb/33b131595765db651e2be3d47e211f6c8fd0ee create mode 100644 project/.gitold/objects/cb/c3399714d2abe136ee5d708c2da7851a48dd13 create mode 100644 project/.gitold/objects/cd/c324dbd6ec6c317229bb08aa9c39712f97dfee create mode 100644 project/.gitold/objects/cf/0e159bb332e68d638bd3459ee2662a3dcfa10a create mode 100644 project/.gitold/objects/d1/460e7619e8c02ed2d28e69c73e31307d56deba create mode 100644 project/.gitold/objects/d2/0edb5e0d2c5bc477e6580450be8b7ac300bb85 create mode 100644 project/.gitold/objects/d4/f83f7f8bf0387ab3873e312961337fa3589b85 create mode 100644 project/.gitold/objects/d5/64d0bc3dd917926892c55e3706cc116d5b165e create mode 100644 project/.gitold/objects/d8/8611f1b33e8a7b4de78224d77a3d37bca497ec create mode 100644 project/.gitold/objects/da/8f0a3fe77d08e6957bd87c32456759ac37e09f create mode 100644 project/.gitold/objects/db/ca17e2be98e018fa588783a6b76275d0066735 create mode 100644 project/.gitold/objects/de/3979f007134724056316a1b689032567575438 create mode 100644 project/.gitold/objects/e2/5e8749e8fbf8e6a1884494051265e8adc26381 create mode 100644 project/.gitold/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 create mode 100644 project/.gitold/objects/e7/1c120948690f02a247897ac9a2f80de8744306 create mode 100644 project/.gitold/objects/e8/47027bdbedd033df76a4dc1a1f5eba3da3eb7b create mode 100644 project/.gitold/objects/e9/2efc5969392ae3d73489d066d8cd625dd27718 create mode 100644 project/.gitold/objects/ee/f9fa9d3003d11ee394ddaeab9e82518eea8a9d create mode 100644 project/.gitold/objects/f7/fc322866f1218d5d0f4050827e3f438b59837c create mode 100644 project/.gitold/objects/f9/f4cc539ba6fee13b96c7ee0a6f1d861785a3be create mode 100644 project/.gitold/refs/heads/master create mode 100644 project/assets/app.js create mode 100644 project/assets/bootstrap.js create mode 100644 project/assets/controllers.json create mode 100644 project/assets/controllers/hello_controller.js create mode 100644 project/assets/styles/app.css create mode 100644 project/assets/styles/global.less create mode 100755 project/bin/console create mode 100644 project/composer.json create mode 100644 project/composer.lock create mode 100644 project/config/bundles.php create mode 100644 project/config/packages/cache.yaml create mode 100644 project/config/packages/debug.yaml create mode 100644 project/config/packages/doctrine.yaml create mode 100644 project/config/packages/doctrine_migrations.yaml create mode 100644 project/config/packages/framework.yaml create mode 100644 project/config/packages/mailer.yaml create mode 100644 project/config/packages/messenger.yaml create mode 100644 project/config/packages/monolog.yaml create mode 100644 project/config/packages/notifier.yaml create mode 100644 project/config/packages/routing.yaml create mode 100644 project/config/packages/security.yaml create mode 100644 project/config/packages/sensio_framework_extra.yaml create mode 100644 project/config/packages/translation.yaml create mode 100644 project/config/packages/twig.yaml create mode 100644 project/config/packages/validator.yaml create mode 100644 project/config/packages/web_profiler.yaml create mode 100644 project/config/packages/webpack_encore.yaml create mode 100644 project/config/preload.php create mode 100644 project/config/routes.yaml create mode 100644 project/config/routes/annotations.yaml create mode 100644 project/config/routes/framework.yaml create mode 100644 project/config/routes/web_profiler.yaml create mode 100644 project/config/services.yaml create mode 100644 project/migrations/.gitignore create mode 100644 project/migrations/Version20220304082919.php create mode 100644 project/migrations/Version20220304105042.php create mode 100644 project/migrations/Version20220304162139.php create mode 100644 project/package.json create mode 100644 project/public/index.php create mode 100644 project/src/Controller/.gitignore create mode 100644 project/src/Controller/TaxesController.php create mode 100644 project/src/Entity/.gitignore create mode 100644 project/src/Entity/ExchangeRates.php create mode 100644 project/src/Helper/Currency.php create mode 100644 project/src/Helper/DataNeed/CryptoValues.php create mode 100644 project/src/Helper/FIFO/Crypto.php create mode 100644 project/src/Helper/FIFO/Main.php create mode 100644 project/src/Helper/Sheets/ReadSheet.php create mode 100644 project/src/Kernel.php create mode 100644 project/src/Logic/Crypto/MainObject.php create mode 100644 project/src/Logic/Dividends/DividendsData.php create mode 100644 project/src/Logic/Dividends/DividendsSummary.php create mode 100644 project/src/Logic/Dividends/SheetData.php create mode 100644 project/src/Logic/Dividends/XMLReader.php create mode 100644 project/src/Repository/.gitignore create mode 100644 project/src/Repository/ExchangeRatesRepository.php create mode 100644 project/src/Services/CryptoService.php create mode 100644 project/src/Services/DividendsService.php create mode 100644 project/src/Services/MasterServices.php create mode 100644 project/symfony.lock create mode 100644 project/templates/base.html.twig create mode 100644 project/templates/taxes/index.html.twig create mode 100644 project/templates/taxes/show.html.twig create mode 100644 project/translations/.gitignore create mode 100644 project/uploads/.gitkeep create mode 100644 project/webpack.config.js create mode 100644 services/config/entrypoint.sh create mode 100644 services/config/nginx-site.conf create mode 100644 services/wait_for_it/Dockerfile create mode 100644 services/wait_for_it/sayhello.sh create mode 100755 services/wait_for_it/wait-for-it.sh create mode 100644 services/www/Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..554a9ab --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +storage +services/www/Dockerfile +project/vendor +project/var +project/bin/* +!project/bin/console +project/.env.*.local +project/.env.local +project/tokens/* +**/.git/ +**/.idea diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ce9ab52 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea +storage +project/package-lock.json \ No newline at end of file diff --git a/docker-compose.override.yml b/docker-compose.override.yml new file mode 100644 index 0000000..a2340d1 --- /dev/null +++ b/docker-compose.override.yml @@ -0,0 +1,9 @@ +version: '3' + +services: + ###> symfony/mailer ### + mailer: + image: schickling/mailcatcher + ports: [1025, 1080] + ###< symfony/mailer ### +###< doctrine/doctrine-bundle ### diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..4c1ddc0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,46 @@ +version: '3' + +services: + database: + image: postgres:${POSTGRES_VERSION:-13}-alpine + ports: [ "5432" ] + environment: + POSTGRES_DB: ${POSTGRES_DB:-taxes} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-xEPOzHeAj5rHZo0Y} + POSTGRES_USER: ${POSTGRES_USER:-taxes_user} + volumes: + - ./storage/database:/var/lib/postgresql/data:rw + networks: + - internal + www: + restart: on-failure + build: + context: . + dockerfile: services/www/Dockerfile + networks: + - frontend + - internal + volumes: + - ./project:/var/www/html +# depends_on: +# - database + labels: + traefik.enable: 'true' + traefik.http.routers.taxes.entrypoints: web + traefik.http.routers.taxes.rule: Host(`taxes.docker`) + traefik.http.services.taxes.loadbalancer.server.port: 80 + traefik.http.routers.taxes.service: taxes +# wait_for_it: +# build: +# context: . +# dockerfile: services/wait_for_it/Dockerfile +# networks: +# - internal +# depends_on: +# - database +# command: sh -c "/wait -t 30 database:5432 -- echo 123;" +networks: + internal: + internal: true + frontend: + external: true \ No newline at end of file diff --git a/project/.env b/project/.env new file mode 100644 index 0000000..4b8c484 --- /dev/null +++ b/project/.env @@ -0,0 +1,43 @@ +# In all environments, the following files are loaded if they exist, +# the latter taking precedence over the former: +# +# * .env contains default values for the environment variables needed by the app +# * .env.local uncommitted file with local overrides +# * .env.$APP_ENV committed environment-specific defaults +# * .env.$APP_ENV.local uncommitted environment-specific overrides +# +# Real environment variables win over .env files. +# +# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. +# +# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2). +# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration + +###> symfony/framework-bundle ### +APP_ENV=dev +APP_SECRET=7d223d3c273f6a895ab338007ee2f49b +###< symfony/framework-bundle ### + +###> symfony/webapp-meta ### +MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0 +###< symfony/webapp-meta ### + +###> doctrine/doctrine-bundle ### +# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url +# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml +# +# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db" +# DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7&charset=utf8mb4" +DATABASE_URL="postgresql://taxes_user:xEPOzHeAj5rHZo0Y@database:5432/taxes?serverVersion=13&charset=utf8" +###< doctrine/doctrine-bundle ### + +###> symfony/messenger ### +# Choose one of the transports below +# MESSENGER_TRANSPORT_DSN=doctrine://default +# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages +# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages +###< symfony/messenger ### + +###> symfony/mailer ### +# MAILER_DSN=smtp://localhost +###< symfony/mailer ### diff --git a/project/.gitignore b/project/.gitignore new file mode 100644 index 0000000..da8f0a3 --- /dev/null +++ b/project/.gitignore @@ -0,0 +1,20 @@ + +###> symfony/framework-bundle ### +/.env.local +/.env.local.php +/.env.*.local +/config/secrets/prod/prod.decrypt.private.php +/public/bundles/ +/var/ +/vendor/ +###< symfony/framework-bundle ### + +###> symfony/webpack-encore-bundle ### +/node_modules/ +/public/build/ +npm-debug.log +yarn-error.log +###< symfony/webpack-encore-bundle ### +uploads/* +!uploads/.gitkeep +package-lock.json \ No newline at end of file diff --git a/project/.gitold/COMMIT_EDITMSG b/project/.gitold/COMMIT_EDITMSG new file mode 100644 index 0000000..9e4a9ab --- /dev/null +++ b/project/.gitold/COMMIT_EDITMSG @@ -0,0 +1 @@ +minor fixes diff --git a/project/.gitold/HEAD b/project/.gitold/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/project/.gitold/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/project/.gitold/config b/project/.gitold/config new file mode 100644 index 0000000..515f483 --- /dev/null +++ b/project/.gitold/config @@ -0,0 +1,5 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = false + logallrefupdates = true diff --git a/project/.gitold/description b/project/.gitold/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/project/.gitold/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/project/.gitold/hooks/applypatch-msg.sample b/project/.gitold/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/project/.gitold/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/project/.gitold/hooks/commit-msg.sample b/project/.gitold/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/project/.gitold/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/project/.gitold/hooks/fsmonitor-watchman.sample b/project/.gitold/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..ef94fa2 --- /dev/null +++ b/project/.gitold/hooks/fsmonitor-watchman.sample @@ -0,0 +1,109 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 1) and a time in nanoseconds +# formatted as a string and outputs to stdout all files that have been +# modified since the given time. Paths must be relative to the root of +# the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $time) = @ARGV; + +# Check the hook interface version + +if ($version == 1) { + # convert nanoseconds to seconds + # subtract one second to make sure watchman will return all changes + $time = int ($time / 1000000000) - 1; +} else { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree; +if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $git_work_tree = Win32::GetCwd(); + $git_work_tree =~ tr/\\/\//; +} else { + require Cwd; + $git_work_tree = Cwd::cwd(); +} + +my $retry = 1; + +launch_watchman(); + +sub launch_watchman { + + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $time but were not transient (ie created after + # $time but no longer exist). + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. + + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $time, + "fields": ["name"] + }] + END + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + my $json_pkg; + eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; + } or do { + require JSON::PP; + $json_pkg = "JSON::PP"; + }; + + my $o = $json_pkg->new->utf8->decode($response); + + if ($retry > 0 and $o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) { + print STDERR "Adding '$git_work_tree' to watchman's watch list.\n"; + $retry--; + qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + print "/\0"; + eval { launch_watchman() }; + exit 0; + } + + die "Watchman: $o->{error}.\n" . + "Falling back to scanning...\n" if $o->{error}; + + binmode STDOUT, ":utf8"; + local $, = "\0"; + print @{$o->{files}}; +} diff --git a/project/.gitold/hooks/post-update.sample b/project/.gitold/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/project/.gitold/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/project/.gitold/hooks/pre-applypatch.sample b/project/.gitold/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/project/.gitold/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/project/.gitold/hooks/pre-commit.sample b/project/.gitold/hooks/pre-commit.sample new file mode 100755 index 0000000..6a75641 --- /dev/null +++ b/project/.gitold/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/project/.gitold/hooks/pre-merge-commit.sample b/project/.gitold/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/project/.gitold/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/project/.gitold/hooks/pre-push.sample b/project/.gitold/hooks/pre-push.sample new file mode 100755 index 0000000..6187dbf --- /dev/null +++ b/project/.gitold/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +z40=0000000000000000000000000000000000000000 + +while read local_ref local_sha remote_ref remote_sha +do + if [ "$local_sha" = $z40 ] + then + # Handle delete + : + else + if [ "$remote_sha" = $z40 ] + then + # New branch, examine all commits + range="$local_sha" + else + # Update to existing branch, examine new commits + range="$remote_sha..$local_sha" + fi + + # Check for WIP commit + commit=`git rev-list -n 1 --grep '^WIP' "$range"` + if [ -n "$commit" ] + then + echo >&2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/project/.gitold/hooks/pre-rebase.sample b/project/.gitold/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/project/.gitold/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/project/.gitold/hooks/pre-receive.sample b/project/.gitold/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/project/.gitold/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/project/.gitold/hooks/prepare-commit-msg.sample b/project/.gitold/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/project/.gitold/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/project/.gitold/hooks/update.sample b/project/.gitold/hooks/update.sample new file mode 100755 index 0000000..80ba941 --- /dev/null +++ b/project/.gitold/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --bool hooks.allowunannotated) +allowdeletebranch=$(git config --bool hooks.allowdeletebranch) +denycreatebranch=$(git config --bool hooks.denycreatebranch) +allowdeletetag=$(git config --bool hooks.allowdeletetag) +allowmodifytag=$(git config --bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero="0000000000000000000000000000000000000000" +if [ "$newrev" = "$zero" ]; then + newrev_type=delete +else + newrev_type=$(git cat-file -t $newrev) +fi + +case "$refname","$newrev_type" in + refs/tags/*,commit) + # un-annotated tag + short_refname=${refname##refs/tags/} + if [ "$allowunannotated" != "true" ]; then + echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/project/.gitold/index b/project/.gitold/index new file mode 100644 index 0000000000000000000000000000000000000000..d38cbd38550ed6ccd2aa81b30f58d021ebef5bdb GIT binary patch literal 6934 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 I*~jhrKW|=9Q2+n{ literal 0 HcmV?d00001 diff --git a/project/.gitold/info/exclude b/project/.gitold/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/project/.gitold/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/project/.gitold/logs/HEAD b/project/.gitold/logs/HEAD new file mode 100644 index 0000000..a73b02b --- /dev/null +++ b/project/.gitold/logs/HEAD @@ -0,0 +1,6 @@ +0000000000000000000000000000000000000000 3518b382820fd0978362507fef6e4ac2c07c25f6 Ryjek 1646149899 +0100 commit (initial): Add initial set of files +3518b382820fd0978362507fef6e4ac2c07c25f6 6f7fd895e6a5705d8e69d01463fb41d3b79069cb Ryjek 1646149906 +0100 commit: Add webapp packages +6f7fd895e6a5705d8e69d01463fb41d3b79069cb cdc324dbd6ec6c317229bb08aa9c39712f97dfee Ryjek 1646732039 +0100 commit: first actions +cdc324dbd6ec6c317229bb08aa9c39712f97dfee 0000000000000000000000000000000000000000 Ryjek 1646732044 +0100 Branch: renamed refs/heads/main to refs/heads/master +0000000000000000000000000000000000000000 cdc324dbd6ec6c317229bb08aa9c39712f97dfee Ryjek 1646732044 +0100 Branch: renamed refs/heads/main to refs/heads/master +cdc324dbd6ec6c317229bb08aa9c39712f97dfee 1f0e3e0a17b95b48e87e3173c302101ab7200c40 Ryjek 1647359232 +0100 commit: minor fixes diff --git a/project/.gitold/logs/refs/heads/master b/project/.gitold/logs/refs/heads/master new file mode 100644 index 0000000..90110bf --- /dev/null +++ b/project/.gitold/logs/refs/heads/master @@ -0,0 +1,5 @@ +0000000000000000000000000000000000000000 3518b382820fd0978362507fef6e4ac2c07c25f6 Ryjek 1646149899 +0100 commit (initial): Add initial set of files +3518b382820fd0978362507fef6e4ac2c07c25f6 6f7fd895e6a5705d8e69d01463fb41d3b79069cb Ryjek 1646149906 +0100 commit: Add webapp packages +6f7fd895e6a5705d8e69d01463fb41d3b79069cb cdc324dbd6ec6c317229bb08aa9c39712f97dfee Ryjek 1646732039 +0100 commit: first actions +cdc324dbd6ec6c317229bb08aa9c39712f97dfee cdc324dbd6ec6c317229bb08aa9c39712f97dfee Ryjek 1646732044 +0100 Branch: renamed refs/heads/main to refs/heads/master +cdc324dbd6ec6c317229bb08aa9c39712f97dfee 1f0e3e0a17b95b48e87e3173c302101ab7200c40 Ryjek 1647359232 +0100 commit: minor fixes diff --git a/project/.gitold/objects/00/b524335ee2e9ab0145571aa925e69a936145c0 b/project/.gitold/objects/00/b524335ee2e9ab0145571aa925e69a936145c0 new file mode 100644 index 0000000000000000000000000000000000000000..67f0de32a377119074a65f02075d1f94c1dc6c5d GIT binary patch literal 218 zcmV<0044u;0V^p=O;s>5G-fa{00IT){JfH){G6QBB8JANmHQ9wYrQmk^+my+bH9Ea zIpXF7QRJFel37y8u%*tcxsi^ zjqd`P8*=NuCtDjD7?_!uD0rt9<)!B66=W1Jl+U^NX`>#mL9uvy@a$z}uG{UtPlFf} zlv7&`?4{U^>b-5026{)gxia2F#rGn literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/02/01281d3cb52c5ba159964b4637dda02bd28104 b/project/.gitold/objects/02/01281d3cb52c5ba159964b4637dda02bd28104 new file mode 100644 index 0000000000000000000000000000000000000000..964ab4db507194159367821d4e047c425b81e503 GIT binary patch literal 223 zcmV<503iQ(0bNi*P6IIv1g@YLWl)k+i0RT8{P zu*#Wk6%rXX=Xj;x&%3|#>pPq7_NA1=E*snTVT8B$VOWlopN-Vcz<;rH${N6`)#q8v Z1xcm(VWr6xRBeGyBg`0;h984!at1g)ZM6UZ literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/02/2353f629dde562fccdd7f5b723980bffd17d87 b/project/.gitold/objects/02/2353f629dde562fccdd7f5b723980bffd17d87 new file mode 100644 index 0000000000000000000000000000000000000000..d6073d62d0268a2196ffb5d21b8edeb9f65efaaa GIT binary patch literal 133 zcmV;00DAv;0V^p=O;s>7He@g~FfcPQQAo_o%P&bR$;{6y)~ig+&0%<{_a`#bQtR<` zlgs!c0O%uOxNFUp3f&W)-yPg&L+)t)``&-BUqz0<8JT)o4 npeR2rGbgnOqPVx!aQ=-{7nMUN6SV9bO+>GD=dJ?)%{Dj_F5Ev} literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/05/6b04aa67638796099e0a4e86c84dac7ac9ce19 b/project/.gitold/objects/05/6b04aa67638796099e0a4e86c84dac7ac9ce19 new file mode 100644 index 0000000000000000000000000000000000000000..dad356bd6093e0eb975097b7e49763361b98608b GIT binary patch literal 1220 zcmV;#1Uvh90gYB`Z`?!_<#T?;B}mw*vbOq=kcxsz(k%pN8nS)BCp5P2?oK$IGDTcFmf$Cd6;@#wdq-!Xsb=VKj|lRym&P zwWFm}TphuC`DIS8lI|wQH{XYMF~#4NCnxmx5#et2Wk#LT^qg$yIHB1g?xJ$PxY&;8o z2>x35by*CdQL?R@AXQfvCzIv8OasnDaJmUnAVQAqhAr?S(Z+Za)+X6Z7j}NGlkMy$ zd)PZL8W3yd4z`!Z(#7K|)CK>z(9HIEbv!7u9ixh|gClau&i~BYYs*Xdwk&qB=VN!$ z58a{p)$^O*>EhYdlgl5*wcVCz*WiVsZz{Q3RV0Q1 z49Ezlm)yLr&LsRE@7R$ z0=IM!HD@gv#ToQPZYO&28!gZxK?O&RmEDS|OjScdqn*YW@4OZJ96+;ZX}Wlx?v;Db zV5+x9DYg!I8+{PNtJpXBdUr~%ax>Gh8|}z7l?U+tO@=!wK*EB zLCz?;fQI#K2SOXsk5{MEYLlak(Ifv=m|PP5VT4q|KOdHkXEzYojgT9^22F&?fu{$ z*7Yc~P_Dl2Ok20XTJXJILO?x33fI0@Ux9YWWY$9+W|Qa9(n!o!F+_RDigC{9R6dVV zfqbK=jT}l#SH{bwY*Q&?(GK<(XoQxZioqSo=Cw6lXk+0alIipTyVt_4qcVU*TJ*qU z--DuQ@7}v##U?xS@e(|RE#y<~l=(v!`SebJ&jm0p%lv&pXWxxN9plc6)u6&kYF7=x zK`I}CJFM!wI0KgkE3N4mC*?P$?Ds{B+e$U&?8b^}_6qr4R--ZUGwn$QCu8xBS z1W3U_;BXFeCC*|Durs><$?z6Pq+Ucpb76>5HCAO( z3T*#kM8|f=_8RRIhbyQx3SJte&$k0-0sYXze*OR1xna?M6hvCe!2D+vked}=0MH#? zS?RZD$5mAwlknb3=m406xt@f1l#Q>^QTh!*J$8CAzE|9&Y?)8zL3fJjZuKCJskL08 zUq4Lma&r1(WUu=y55e`1p^N&n78@{_qEIRB;{?Y57WDepz?fB;dXrNTyaB^Evg5oD iK=6?2(N=h*@Y_6W&Zd_KU>TMAB0Wz^@bn+Ot|ks;1#v3? literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/06/c0ddec3b46efcb2493422821723fc4b6356982 b/project/.gitold/objects/06/c0ddec3b46efcb2493422821723fc4b6356982 new file mode 100644 index 0000000000000000000000000000000000000000..500e49c331ad74a1c590bd69cf8ceb9be06e369c GIT binary patch literal 482 zcmV<80UiE$0d-SBZrd;r>{+ka1U^tk+#shScH`DS5THO%2TgBrU{KV`V#|sINu@Db z|Gi66c4WcjNf2jeXJ?0n(gj>!e|Y!tlc`NsqEOr-bKXkf*M4iz-CX6ftl_`V87>eO z#;or3MvB#~e32zKrJH40>kuAlv#cs9a7AB_#v(6Wjp$cjmUmouZMOs@e&^sD-JyL9 zx7nWz=ol+sxJL+`n+=RAsqlgOdUkZnt>s%7McP~L`Lg&yoUy(wloU|4jqp-8uwDz@ z5LqjHoMz9NM|A2L>SP5h^jhPqbl$PpIM3ez0W|Wpbd&jB6WkZr=R^^z!x<%p$=sp8*SuUP6^(T4KcK)Hlhddzqj+E+=iWjacD(0S zM9hZv^v0+(Aw>;r)FYV8X{kLqz+D&Iuk@CN?w;7_(=%yk@HZTiLHyyxg!;+c>qU4B YtnWq_z+g#VS0w| XmhSPd#xmWv<~Pimm2?9D4eJ%PDK;Ds literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/0a/6e540ccd4e3de21baa39e874364c861bdf4ae9 b/project/.gitold/objects/0a/6e540ccd4e3de21baa39e874364c861bdf4ae9 new file mode 100644 index 0000000000000000000000000000000000000000..b93287805e3b48e0137c99be6621c151d3c9a3c0 GIT binary patch literal 637 zcmV-@0)qW`0d-VeZ__Xo_>l4z$X`!;#;YLzPq>q<+f3Jnhrvd|<|NtYa$ zLSNFG<{Y*$_6|ZRtQNaW*|T|VA7&5-QgG5kv^6k>9|Gbj3MCzw+Mq^5ZA!-Q9@;qT z5DzWbknPp#H)(5pd`3uyE@_b17_W6;BTv5^up-jS3y@`0t=txMY3wohA zXEy0^fl1-Lp3Pt_a{FvJeB6P@n9*beCnpqxR|;RB8&(8Ls(Sl9FdO<^P@rMM;!K z05wvoMn2ds5#0p(`E@s_%0_+1lrr?U|9<-pf1XUEhpwpYTGn+l$f0QJ{^=jzcTdL^ zTif;UEByF`6HK4}J`#?PI;)G;o-Ch!ZyUeJ{?Z*Yjzk{ zl-3{p--oB;&U90|;$_`6o5A*TDJAc+DvzxGGm=dVk7CtQzn)6yX?7NpfJk>dK2kPi zY4wsqM3M#Rt7=r+WnI#QBqTs;lq^9KAwnPx5!x0MykJFJl<)-347~aTw~S>lrxg++*(2{AqF(YQ<4#kQ;|82tsxnnob67HJs+iZ zQF+J5bLB1R#BOaptSVW9b#y`Zg@6+bIYsS!$Z5jVBtc;GmqT4q_k#qJlQ9N3VF?N_ zDD7Kx<0Ke0jsgpwo5G7jp||vh%oJuXu zjZ7WF)F8tMaWYrh0&wA)V`NDR2~zDOabx=13GVqIxaU!DQ5?N58)WroyQ*vtEMm!R z%OT32MTi3nARdBx9x2a2>7Fv~0kLXu z9@%GY6NSGt6nc>zQQQr3+A&agOgat-uH$Hv=Dt}^oYF&_RV z`l24f9pade`hGCxfX+Q4K`ZD%< zY}+E-Qk@G1hGi|wkfKs+iZOFgo97Hlq1+m0%}fr*c=i+@UL9ijK}gq`S5e&txTZed z>KaTPz-$K=@i7oh(pkRw8VGf|hj}I^n2Jyw+_5R{Rxbu4*8vwj1z4KteBSZfO z9{5HcT?1G3bB9JUjr&o7mozBAK;m$s@ zFLYvd^$0K|+;oMOpv5MW7VavLjA^Pfri93FiVYDMKv`}@p3ULdF;-s-LnaaJBJ7cT z4D~1F;#D!Y+rZE{7V9GR+grWq;F81=h<w1q6*m zZs;^%@M6B{a(=yiM`gu4SZPj!OcwlN?5&M#H5p z%s5V=|H+Z$F2@Gywdwpfy4Flg7h~e=c|UJxEwrp=WOo|S@UwtP*zFUN9euo%dki}W zHD#3|IL$Oqt+gqnKxL64c?$gr;WX07SeId%-Pii@V!CVqwratR;L@Lxy-i++s!aUi zW1(|;Pj8RpmoElAhSWnNU`>g32GUy!!%Dc)3lm_HDV0NCh;WKDCjMFi)kitpkk}4F zx+=46Ww$b$3Q+G&!PJw(T&w9~7rtVJ-cPGm(Mv8%!~m9kw`j3%_}G>~m{OXWj9Et< zBdLRnnuxhn2!t7UC|u)o&_Da!bn3hn3$lLRi|e9ao`BW$$K?wF8VF?T@3jmvXiTRA zy07VQo$g_T>C=^ak!oo<fvPO0np48kT&N5}X0GUTgX+fg__?kn2-WvH zS8&Y$u;&u6hav1dntOwrO++@R0M>6 zlO5n=hPF-q`0y#l^iVa;038w;SpwESP1$6> txDR^vQO8Ipg zXB;S1c`R6vg_C$@?#w;*BsUW{4v)4@FN#^gm_(8D5}VeQO1QCG6ll-(TV2L9pQA0f zK!}Z?sK%bkO74`=mco@?2S)K_l#T{shI9V$>TV{iOGnX!dU4@Cw@9qhZZl{@R5`Pk zp+;(h5nXAg{ex=h|+FTWrt0b<~fiTYvBP)OH+nH7zPKy;eK!w z9EN}|4z;xKtv`EZKu=LkawT9|Y2iIWhAu`cN>%vZX6pnzBc0XB?8jWrp zSh63*s-pRh2X<_YiR7M)l3&C+9dI*cfzn$rU*QJY;Tvdnq1XVT+$NJ+)=#(N<@V0G zl!M2-*@)6%(uZMmnI^|qm@I0i{yW4}Ng4HLMz9m36hnl|V$wC3^$?atFwYiouBh literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/0f/c74bbac4b757dd49782f0be496f6fd7e07e47c b/project/.gitold/objects/0f/c74bbac4b757dd49782f0be496f6fd7e07e47c new file mode 100644 index 0000000000000000000000000000000000000000..c981b13d097b5e0e0e294f1d8c59f50ac5bdab18 GIT binary patch literal 111 zcmV-#0FeK90ZYosPf{>6GGHjrNX>IdNiDPDQUHSZ)S{yNqGAXKBv6!EoL^d$oNA?@ z?%-CGn44OjUzF`snwOH3sviWEE7niW&r8cp*DuO1Ey>JF*M}IQSCN~e4mK5JP(e{@ RT4sfnfDWzq_GUfmP literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/12/ecdf61323c1cb9a115664fbb7efe566e5da6e0 b/project/.gitold/objects/12/ecdf61323c1cb9a115664fbb7efe566e5da6e0 new file mode 100644 index 0000000000000000000000000000000000000000..bb2411cdd6d9f8628f689a6c82ddca78967d7c2d GIT binary patch literal 873 zcmV-v1D5=F0ku_WZ=*;M-Ov1rTFH{_D6{b~@ysN9s10og4F94ku*L&ruUKxoK} zwaS0rYA3#8XX1>sNS2|x>Q&Y2IwnarfljCQ@t5EK%4fNvL_AD_f;U82#9`@|^PG!6 z+RbxCNrO8s@*w1(Wg(uXd=yWMpp3Ir;Bh6^2V<>IjIk5W_+9Y)cfPH#HXV}*`U=8w zB|@;1qay{5fK+AnVaijEZg>PMjWe(l9-za!EQ)XEP-ZaCssd8ZBk?O*o+!6*8YFH1pS+qRaR|3n8p<4D%1e!lu!wW{ z*=U}D!_@k9^Q#DXS-d&uJG1=z_6l(Sd>syE?o zNjIP**rMhb@-0H*a+{L{tcqDZ;XTJxR^o^JB(1;_%cEPmp=NZPa zWYiCYSc#<`foO z*0&#&;OZlaq>k)Hs|i=SdtrI*LJ0p@Cfx`icnIPom?ZpNRuNC)2VNZHOQQqg8Oxh_ zKc~8>(QDAPYyZ#wze(9oIcWF# zq}$f|uQ}Lc_W%bL14eCwV8jE@R9#ubX;$JuTh!lnC1U?G>Uzv{z-9VyNEr|ZYPD70 z$=>VJp>A$Tq|~NtV6hS8Q~wFRF|O~@Kdv8xNw0oeU&7g0i8FGewI!H*o&u5D>$aD2 zYHDjitp)}$haMSH98URE+$ZNhXhe-!_9`=d0Q6dSTxZD#4%#X9<$mIS1p7STmXtly zyM!YH7kSi8Y;PCvIy_sG<8XidAcsJSdI8M3!tki-p{mU+m1-WN%Sd;LZ8TQ_zOoFW z>|6S-b+9n_Ul)RUK}Y0y1-^A_Z)^{hI4aTTTPXWB#9=nOlrQZbl}F`2r`M^IdmOc* literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/13/a682b9df37a32f9d331bb600314f1ae463e1eb b/project/.gitold/objects/13/a682b9df37a32f9d331bb600314f1ae463e1eb new file mode 100644 index 0000000000000000000000000000000000000000..7c27e0046cc689004a939f9912076652ec7b74b7 GIT binary patch literal 1021 zcmVY8+`gchn+#0OdkDMAx9#2=C;h;_W;4iRv;T?AM2PPgNK*TTia)(7;%?rl`^ z!}kyQU8e)j`AZ-yIeB|}Bbd?8QEqfo8Wx<;d`Y!7fd*l;kD$j@{&uM0h)Z8cQR@=j z%^uhJ{XABQoojUu#Wwl+qL^_CU0CO<)er!2gY{Z*9gJH7X%eyk4ih*nq+w4eb)Roe zgiKXIik2YmfofX%J?Ehday@b(LITwh3Ob3U&U2TLL#-Y%F3hrWRPlpxPXxGkbQs)s z`N((QsLJSONxg4v-{*JvC=&?*Y4WBeb`o<;g5sc0?^-8k;DNWfpM>xipvFT?nn_@|sIH7}_1t==y6~dHI z^WiI_jWoMq!Z+gwlSqJ9B`R^n9&{82?9aLl7|UH~2xVW76}mFlw7xV%Q4I-qq;R6V zl6Y6^aE%?$S?!?J4d|In7d$XQrTFIxLq2w?-E1iE0JWFcX6A7RF-+W~XV2hPNukxu zYCG_PNTIR!OsWD9wU#KD3{lx>b4|4ZFiROU6U~g{1NJ~*HEQ)qqM_VGA;~#YG9FpN&sT~>`wXAsY*&7`N`wPT-p)9nB*1P@=rf3u@4R-jmb190W z2oBfRZVp0ItkA*17^G5~1F^E+37lE|6;4BDlr>OY%Sb6yH+kkR_BT&T4!w@iz)Ntv zAGT2{ezHVv*W+do{bPtA^f+qhyhdfl!gGQ0CbSOFGH8i~KGq2vMce=!FA0PaATV(3 zB%Iqwaw&YsE}HSi1(;VDY3w6Me-eYq{77?Vy(4#{BXs(`wVyskgWj>_z~Cq+Nh9zX z_ln-%S*^cuAAGAk#IKX;9k-IQlhr4s#v0jFLduDK=L~jv`8k8Z+<#cdxNqB_6M3FF zVMF9~5M_*?T)IID8D)FEWs+0uADt<}R5{oq5Q!^+-*%Z_y!qw#4?lnW@vomg{`v+} z&~6SWc`@}+z4b5uYin!*M_lh)Ohf z|1a>1jq0M%=&+>=pFLQDiBQ0GMWyf7<#-=IS-&=Sd%`j1*O9*+?!1DN%Ox-BuNoGL rKE?Uj@5Cqjb5iJou?HI1KC&=3F9^(gsPK`}7T-p2^Lq0iwg^>%;w$+f literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/15/28f835cc0eda2dc7f5331c8bda9f809a9a62d8 b/project/.gitold/objects/15/28f835cc0eda2dc7f5331c8bda9f809a9a62d8 new file mode 100644 index 0000000..08267de --- /dev/null +++ b/project/.gitold/objects/15/28f835cc0eda2dc7f5331c8bda9f809a9a62d8 @@ -0,0 +1,4 @@ +xuUn@3_1EV0Q IZjJi&JT)Dhv;+`9̅e-է_qދ0LD_iCлUp=KQ,D'zrn57|#j{*Ҕ$Y)FԧA 4֥r,$wBscQkRlK='|4B'ncQb ^T$K'"O2=0w3)<$xbɋeCX"<XTE=Rh]Tu eघlMK`0C=Rk(&_ZNnSP/zwY**He0ފlB#Fs9w٠~9xi0a|> ߫a0l\ B ْDךlRUsQf 4_ P/x\c +痵QW}Ӫku,f39 xMFSEu +߅ +3Oߌi?<d=OWjEhR.Vvb[*ʮ2[.e󷹲4DhzA1/|SnCVXD R,̥oRԽ4rS' 7kHZaHXD홋3gg4N6{2>@VJJcR2v }뫖IM )CXں&e¬ %3)\T':PW\3n!7mu`U?i^ \ No newline at end of file diff --git a/project/.gitold/objects/17/893da18dc7491afce0f912cc1482a766493acd b/project/.gitold/objects/17/893da18dc7491afce0f912cc1482a766493acd new file mode 100644 index 0000000..91a48bd --- /dev/null +++ b/project/.gitold/objects/17/893da18dc7491afce0f912cc1482a766493acd @@ -0,0 +1,3 @@ +xK0 DY>PWܤjҩ0q +;Ig,Gim#ҡǵqT4:56dznL UQ,74t̠[$ŭDISz8 Ĵ~@UBa.C^; +[ \ No newline at end of file diff --git a/project/.gitold/objects/17/d67388c0c2673d8ddc613a1d39af7d30763cb9 b/project/.gitold/objects/17/d67388c0c2673d8ddc613a1d39af7d30763cb9 new file mode 100644 index 0000000000000000000000000000000000000000..aa76c9f72f3998cc3401db0d58a741ab366d304b GIT binary patch literal 575 zcmV-F0>J%v0V^p=O;s>AGGQ<@FfcPQQAkcq&Pdg(Ow7$;$e6iZf%(s}`lzs-u4nDo zzn)lZUIJB>lA2VS4pFtX-Rti?fy~LtPs9q>Dn4&2A!h~WzsR&ls*4cBP??!UV8WW4|X)(M}X zdeVv#b5qOni?SgqD}rCX4calY=Ep0aqM&2$S#?{)r$ANaCT8ZO7D1GSEep6YTkB0T z&*H@Hy~nrxFV!<;geglcE>6u$hpCJxXkK>G zc2I>y`K2Y9c~Aqr%W|I9e`Nc$>7nqW-fq)RlG;&9P<6$r$)!b^C6!Pw&zg16ahJ~g zymQH!FU)THFZ$Kd0#}$S-ntlOU|C{LW=dj7J~Z_AcBUy#Zk6T~aSMCxY2ml;;bLB8sBz_~N$~|m`Duu# z67RHK*n8Yl>d%9pLT5ypmZy1Iokb`vNKDR-Pt8ltFM=j7w`PByS$AJv-emmnE_-I7 NTfL$1X8<7%EWjSuF~|S_ literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/18/21ccc079e911f276bd1866f6349ce54c963ebe b/project/.gitold/objects/18/21ccc079e911f276bd1866f6349ce54c963ebe new file mode 100644 index 0000000000000000000000000000000000000000..58c5d5da891f0eca1285e009f915505f9326ded8 GIT binary patch literal 71 zcmV-N0J#5n0ZYosPf{>5W++b0E6&W1Pb*5yO)bwa%8pO1C@D&`;!*&DqWsd5)FKEQ d#81r2%P&bR$;{6ywo*t-%qdRg0svTJ7cg@MA4C8E literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/19/2d34e334db3a10c9950a7c872aa0a3d5c32512 b/project/.gitold/objects/19/2d34e334db3a10c9950a7c872aa0a3d5c32512 new file mode 100644 index 0000000000000000000000000000000000000000..85a431f8ed06d98e9cd1827014ed157f93e300ed GIT binary patch literal 51 zcmbRJdgMrPnk&7ndf{En^r+UDjhdyMr+Z{f-`f>o}S(DJn>80`c1bbi zOG%rtMPYY~v0M@(nC>+-xKd0H^DZEuT!WM)9o6eY;^Oh{Se8m+%;DaPA%_t&%Qb`HZQ~O=677Qb6oCURCHAqK% zGqPPm?%-ywlGe~xwmX&1OK=G+%~+Kg2UD7=`{cA!xJwb#Q2=M2j$jG9|FwVd<9a|u zAHVcZb_GmvmMmyT$lM_?sdsqT&gb3(T!^^ijM)cZb|ZP5GdVN2m8)+_r{C0pp5Go5 z?k1sQ37csbcPA9~c+6q)?RIg0`9VDh@Ku0kR;T^U4;= z`x0`+#crp#TCV}+l57gLFUL$4Nv(Tn_7ZkpSaDdrnGrNI+MT-Q Y7B#ob(+gS+2&@XTAr{`^ALDXS%44LI_5c6? literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/1b/4f85ff36062c98c019e7b74cd80d46e746233e b/project/.gitold/objects/1b/4f85ff36062c98c019e7b74cd80d46e746233e new file mode 100644 index 0000000000000000000000000000000000000000..3d2fa4496fe509145d5a02d9316882324a7c96e3 GIT binary patch literal 980 zcmV;_11tP^0gY8{Z{kJ}?q`0*2%4&`g3U`35>)Pv1E+^{KxCYg?h{(uW7x*tb#~X` z`1hT)A(-?O6=Yt#JM%m<&ok>Vl_7NRdfi`IFcZMi6i~cyB}In9=u0qLghZyP+;Opi zgr}&1DTGwA7-Qgx-LVJ!!L_+;w95S{GX@nH_GDvng%QRmA_VzjZr`e1heG=R^G(-f)&gb5PX@f z;C}YiqpiNZF2(=P-xsrX!K5;HEcyiKe~Wf?cYNU%%f zl1kIcFIF;A4XlL_Xh#N)|gxmUH7o;P+B*Z zksB3Cku%*8wOQwiQOXFlvo%@TqQsWV(Y@_gTeOKmn~Ov-Z4|L66t>A<3EvcoSx${c ztJV5&;-XlFJE@-9VIg8FhE^K~`A0Fnl)tMUjs|hB*N^*AZ_rO}*zMgl3;X@sPG^AF zORnxhoB6NzGoOR+FeKl$Gc>HkoqMa5xA@!h*MUD?tR9wru%50KBkG1xTp%^+Fd`pW zVdPq)De_V09QSR~3i6o3cDBq_ueSyFQf17Lm35?eNMk~Oj=Jo2JLffu#Qg^&<4Cn} z55M&(XB@KBMd8x1K%%({6C?>Ebk8KHB&1t{GSRuwF0}n*?LwvGhuPc~K3)Vv_$~{W zKdu6@S|uUEUKR?-kM?|_OOvFRfHcqapDsFi6wr`V0dCHsC$_;8MQ6`40wI{`I2eB( zue|l6|8>;V&nY*y!S2NqDuJnUsBRr|b>Wh~+?W~W#9{M4vDu!Ytv2DBe5r=?oinY; zRq>~8Z{T$3-5vJ(og2GFkl{X71$?XckFK4;Z_$=1(sNXpB7!MRm4)EWs)l}2sBWGm@Z04eAy z9}Hj=6FQg5Xb6!WBGjh;@8@?mv+Oyi=5FYTV20)Ar}E_9Qb&f@H-nyg(Mw#*&kFrc zB84%x=gcYkra!o=Mb@YHyxupxV07vo8!;c#f$EoIsxxDmzUHr*d_48CQ`En#_J0a# CLhsoC literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/1c/e28bb15d93ce50528ab5239ceae60f7f266c5a b/project/.gitold/objects/1c/e28bb15d93ce50528ab5239ceae60f7f266c5a new file mode 100644 index 0000000000000000000000000000000000000000..330a427f4f440b03e0d67e5d4f63f46e0c4abda8 GIT binary patch literal 1151 zcmV-_1c3W^0hLy5Z{kJ}?q`0*#*Vm?dn_UR%5C z>znVDy1_Bl$P$-DlKKYaJ|`*f3bRxFIDWS-KJhkB{EDO00? zf7uZ8H6B z`$PqOG3wwZern5#k#Epx%OcXhw9KW%A&*TJ5Lf&d|t}_v8o(QsBhKT^+S*X3k zmVKjVvxF90z2T}m&iz7^O$ap+O~2Tpcu-3`-yO#A!Zg;-)F1Pgr+picIU;}LF(WRf z1^)%))MZloWJuOgLUkM6if-@Le=_z3krhhavCXIF+&VcHgEQtLQxholhzu-5JmzcS zfof@IM1JzC_}hx#SBg8rBE|OA2R=Ej|E{KQf-w#%#gT>-4ZQeQ;j%K`a#RX zA%BinC|ue`d|WA}y}Xoln#{`VFMM)(O8$%B%;XvTFZ_0(lIcu}f-^@PRr*I$ah;@C zq%cZEjSID)R!KX>=nNBL>55#u|9E>RCUESPK?as1Xujge=Wg7El+}n*u;Ro;tL-4m zf>|?V!3G2hRj(5Y?#eps-Zne}EEed9^xH)`=*%1{+o}+rU~i-`0E=EjU-;DJyJM*O zAHsGU7y6Y(x%+c6=)=>Fc~2RNTnx@CiLFHKDPhWO+L5Q&#PvuG$i__Rj$zI#u7IG1 zF*ew?mzK&p%G72rcq?SABT**`x>5cMOq2M_=c6P0!!2 z3);fx;4VI51d=h!ub@`hepfwRoc>t+r#`l^}accHro0`zVHlP}ns*O@-!a5Ksktf`~lfpRdr$ zF`+DQELkHR?3irGywsgU50gShu-v05Br6X2p|xRkeKLroE|@&IG^)^5B?y(beZgM1 zE%oJ-Jg5;IZLj?O&1&@+FMl2tPQ^Wv(AHRpQWUS$ZwVYh`u=Z9^dJahjl|W<>orZQ z=|J%v0V^p=O;s>AGGQ<@FfcPQQAkcq&Pdg(Ow7$;$e6iZf%(s}`lzs-u4nDo zzn)lZUIJB>lA2VS4pFtX-Rti?fy~LtPs9q>Dn4&2A!h~WzsR&ls*4cBP??!UV8WW4|X)(M}X zdeVv#b5qOni?SgqD}rCX4calY=Ep0aqM&2$S#?{)r$ANaCT8ZO7D1GSEep6YTkB0T z&*H@Hy~nrxFV!<;geglcE>6u$hpCJxXkK>G zc2I>y`K2Y9c~Aqr%W|I9e`Nc$>7nqW-fq)RlG;&9P<6$r$)!b^C6!Pw&zg16ahJ~g zymQH!FU)THFZ$Kd0#}$S-ntlOU|C{LW=dj7J~Z^17&T;Vw(3MLjGX4}W`1{p_N7J^sBz_~N$~|m`Duu# z67RHK*n8Yl>d%9pLT5ypmZy1Iokb`vNKDR-Pt8ltFM=j7w`PByS$AJv-emmnE_-I7 NTfL$1X8^&AEAroOGED#g literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/23/b1acf1039353047de4758d5a6b0973cbbc97bc b/project/.gitold/objects/23/b1acf1039353047de4758d5a6b0973cbbc97bc new file mode 100644 index 0000000000000000000000000000000000000000..b7a12d098b5ddb6dfc5ee6bb43e151ea082e8911 GIT binary patch literal 629 zcmV-*0*d{30d-WtZqq;z3&*iKs?BH8=in>X_&yUL3doPW5uc=PFVnU+C9agLfIV|5nWd%G*iOwWgtK;f25 zi7~;~vRp1mKV&hPNf1=VfBHdrNqTuhn2=tiM0Rp~=DyC+;-5&OWmbYyBniZqWY8p206LqGQ8;>Lfz zTK!>FMUNe5)OW_aA!g)R7n(3mp+PkB0W=VFBBTsGJ_hV=yi1Wfw z*JMknN6{?yv@ON=lIY1(=N1>0vVM`BnIX*Jy_b3=K|}VpyK#(MIqnXYORD6TS8j(+ PTHL4rn*#g)H)^mrBJDP# literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/26/6b553dc2e71c375aa0e6e893eb67d598a07927 b/project/.gitold/objects/26/6b553dc2e71c375aa0e6e893eb67d598a07927 new file mode 100644 index 0000000000000000000000000000000000000000..ac59121b2c59194c74f1327232d44371a0e59144 GIT binary patch literal 958 zcmV;v13~S)G z*wk@VFv&zEkaaj`oVnUF_#d1`h&HsOCLrMBX5malTW&*tRm}L0jSayLeXTvo%NLjF zD!ph~!V0}}h(t5b4p$ga^49MhtQ3kk!z9hHl*(bpl(ZgnwM@_Z40~LBL3t&MU~qDE zU`K>x@dXLCH4S%v+d5s19-)i~CalusvJU{yfw2-)I%P7DjYAy3U<6-tuE$uk*NC@_XO z`+Yl@E@))go~X?f@z^SB-B2X4}`TQIA@&^>0^b~Hzv$RouMRRbK>eR!S_cUu>!F=4(3Q%7 z=nWUlx!NJkt1Sz2pj!$PhA5#Ggg5g(L3*KEYJ7vSsG!hn2zIo9BfAmicljrYdbCYu z2GM1s2L+2gLu+*)QyTIW@(bb0LCxYKWZIAu=Cq%yh8751ao`vjcHqvLm#1LXC8Nh! zWgHBQ;HfXI7l(bk}6gHOTe*IIx3<`1-nWW56iF^P_{?lm)K{L+6&e70Amb;iY z0kv6t-2=l3uLh>>*SqRw!N*3f zQ1);VwB#I?OU!M13H9s#NxI8ud(qkZ{4lV$#XZj8XmUaG>Yuu`z&Cz?b@$AJJ82}e gPU#(X*Vm?dn_UR%5C z>znVDy1_Bl$P$-DkfKYsV~`*f3bRxFIDWS-KJhkB{EDO00? zf7uZNSt{WP~GKT$znj4J@96uHi%WFp*l{_YTX((F0nAyJxY_@PqLEpbCD!n$8;G5H~L3GEwA!a{R{fJ(CkK2|2FCxz0qW zc_PSi872aNXQB2ETlS5f%@SI0^@gkNIQI)tHX+nRH2q===t14_e0Lbb3)5IO*P^`=?5(jhx|ESp>Sy%@o}Y?_VQBJX)-IbzwpWFDfusgGm~fVzwq0EN~SX@ z3eFsHROug0#dVTmk-{huH7?YGS|#liqccp1r7Lpr{^RYPn82}D1{qk6p!td;pSy7v zQdT2M!HN?Xt+spx%PQ$i3)`mGy zgkI6m&CIR>5L$Y7QK2EQ0A3oen0|Gk`d5JjiaV1k(q(?@dePtoKs=YVoFpm^Ylllt`ivo09 z-AlLz!BPhv8)JJ;Y)S1bMzz_Qq3RjT-f!Q?Nj`iVZ)W{}e>ppg`3elQhg44HgA^!; z-gcDRD(Q`RImqrQ)LD6ZHw6<6_ExJ`ap9LYIj=FkhC_2bt0mgbfTBa;=CS5tbrnU( zh_YH{=NfnIxO?a45d^% z=;-VGuIc&vbwOMB9Nfi6j6gDG`4!YE+wZEUi_`yObY>E5AWr~0emuXn6!8|ZD9T{O ZicRA8%<`yu2i;d-?7v-S_YV?KgB&}}ImiG2 literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/2b/74757572e965c8617b3b866d9bd04687354cb1 b/project/.gitold/objects/2b/74757572e965c8617b3b866d9bd04687354cb1 new file mode 100644 index 0000000000000000000000000000000000000000..6b312ece28546548d06141314bccf7da1a2b3133 GIT binary patch literal 683 zcmV;c0#yBY0nJsxa?>yn+}iQRHL zpft7dTv~3cPmRy2fa|Sik&b|jTn@^Kj zVfl(1%h@}{zF|^8gOYbe&Zmdm7oZJdfMk$NsiaHLb6BFqHx?Zo1>}glT7k_~N;-}G zkfjhL<1!6UoNtje2)tXkM$27N~IUSP5pmYj) zQr(O9`3u42$~zMxJe+qI_u!yRR;6bPcY2&zk_%?XhtuT&#*@F|0 zaTEBD7lA`UA=q52YeP_ew}SF9ZQtFpY{DY{-EWMhY1k1L>0!qLVswd{%uU)tQ84WY7m&MNE15ViOU%o@+P$EpPr;T*!X zuN(KgC)N3et_lHfIS8CZYbsD9d+KQFX)c**z|s7n1YJ!^E^wfPedyO`TpG7VV=B{6 zIcPxNV`!y78OE68mw2227gXb40tZ&ucM&)!TGiCJ4!N0O4w$DH)jzv@eHYx6ZsuT0 zVNLktc)z?QSl@x0ZLKvLqoY36@@yZp3&i16(|edxKY}mSs>^9iPCJkEzvlRN^k924 R{T}~O_wjTS`~-W}a0A)TN-F>W literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/2d/6a76f94dce138741e2d63ae83a11c1879031d9 b/project/.gitold/objects/2d/6a76f94dce138741e2d63ae83a11c1879031d9 new file mode 100644 index 0000000000000000000000000000000000000000..9e7fc6684915a4cd7f77a95fd7fd24140750f206 GIT binary patch literal 554 zcmV+_0@eL^0dI1E35t)EdQzb;I>do{Zu=ADAQGbk>G-O^0^x4H)&R;xvq!wU3SYas&` zFSq_%3MlZVU=?mFI)QB)LCbr(rtt++QCK9NRn7xQE>uq{{!vdSWg7H;R?;7pyLEq4 zx8mE>mdf_+hMHcHODhZaJu=hLaU01S2q0@q(}cnDN1&4mS?A3ryI$v~M`CoYmm(*8 zR(}|e%om?VuTgK{9hPh;9FnxVBYMO}ic9MwoJxN1MHcGm@XsfKj#t)*(!Wl`&2 s#7~}3^$Ag~3#DVwt$Ia6f5w?%n{{W<&=yjrlZ%CQ&4^e309=1#&IvvU5C8xG literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/2f/c79fa03c3e0cfce4381bf39eb73e827ea4a5bc b/project/.gitold/objects/2f/c79fa03c3e0cfce4381bf39eb73e827ea4a5bc new file mode 100644 index 0000000000000000000000000000000000000000..3df24bf3e1bbd459c60efb7c6d67f1b3145d7a07 GIT binary patch literal 542 zcmV+(0^$950V^p=O;s>6v1BkbFfcPQQP4}xD`SxMZ~bq^rZeM!$jeWT`a|5?g*$eEFOF$ne=aHSF3zs#kFJ{N%dEbu^}S`JSvTGml2<)dfOa zk(-%blvt9PpI6M#^muv5wgrDSS!}T3bH5NI`TOVjPN8TLEHyQ{mcjV~h zk=vbg=fZYXx0dC%4nhnoC{4=AOlB}SSIVNX%CmHZ)ER01H{sj=DWGOKH8c8WJ>YPzu`0JE|LR(Ee0ZvX%Q literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/34/ce750428aa4975a81acc1b0fec57b6fe44a4ca b/project/.gitold/objects/34/ce750428aa4975a81acc1b0fec57b6fe44a4ca new file mode 100644 index 0000000000000000000000000000000000000000..c046006a3234f004cc77cd6df67af2978c667ecd GIT binary patch literal 54 zcmV-60LlM&0V^p=O;s>9XD~D{Ff%bx$jnPgt M=>D^A0A7I-?Kk5X9smFU literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/35/18b382820fd0978362507fef6e4ac2c07c25f6 b/project/.gitold/objects/35/18b382820fd0978362507fef6e4ac2c07c25f6 new file mode 100644 index 0000000000000000000000000000000000000000..b6749bf5cae871cc000fabc11f289c9b9efcb123 GIT binary patch literal 140 zcmV;70CWF%0hP@`3c@fDKvCB@#q0&i*d#U}qF3++Njg(UlLp#|)YIE5xc%_>sg@!Q zu(!K56Tyj{N!lbEEMl)UTgzSI5YdzCqTzJph!|CPw@01fzCP&%=jFSWI*s9z<#ioP ukbFqBTmYSMXngNI>@{kwwz~Zq{V&yR7(gaz5;82*pfa#zTGS7g{5@>ri$z5M literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/37/bb0b8af13e37f902644d6fd042c970db241668 b/project/.gitold/objects/37/bb0b8af13e37f902644d6fd042c970db241668 new file mode 100644 index 0000000..c327148 --- /dev/null +++ b/project/.gitold/objects/37/bb0b8af13e37f902644d6fd042c970db241668 @@ -0,0 +1 @@ +x+)JMU01b040031QHJ,N(+)LgþEv;CD[\ \ No newline at end of file diff --git a/project/.gitold/objects/39/84a48dc799df576d3586f28b767f99f3a1023e b/project/.gitold/objects/39/84a48dc799df576d3586f28b767f99f3a1023e new file mode 100644 index 0000000000000000000000000000000000000000..ed8caf14ee4a3fbf1cd11de43de5388539155168 GIT binary patch literal 271 zcmV+q0r38K0ew+jOT#b}^?ASI!WdPU4isPdZH>=gxs8S&$%aAbG3%+%d3;EW&$gvci{k8X8GfZ=4E$YN-CQYHVH3y($ z7|zmN2*C*D`{^>C-aaIE%f;C!@QPl;Z5BCZjoY629L3T7({$b=Tde=}vlVetoy=+$ z&mMas&QW45I^H6BnfGW-HYt%Oh2oTc{N!@oLnsY`OF!`m$L)C^V+=-^NjnQD?JIBC zrFJ5v&QRJAUIP@2c<}ZM%_+?o#qDsAji~W{3IZ_@MXl!)Q|^`lD_2=ox9|{xOya14m<-9J2;$vMA-?kS{<9%j zG+VRT&+-(wu?v)WD4M;~t2W_sFyjP~UR;D6<05i7a}drG0Fdn}ImP}f1y@p9eiOU_ mJ5p`%4*%l4MyEbSe6SwdDb=XC4I}Pwrkttu>gNjweLDMGV(/*潿q7QXg7*%M%+ne]1Y#ɯ{L=:h2imq_ZN FTvT :0z=;%)m|4_ez6RIDg^c(aRbTq0kuStc3M4RVfQ81 z*IDOs!HX>5Cj*Q73R)*D?*zue1{kp^vEmX-STF;oQN4s5h3c0pI4K7OlTdQQa(d)R zQZ^%y2r%|{L8xNF;B2V*fEJjwn&-}^QOFdUca$zm5L_O> zvf2cg_+fv>iFLiUL6+sVQL;IA17$PC%BxD{#iEzjHcQ@LBWY z6s57YGn*{4{%hJO+jC-@mUzq>BAF|7$V&fau1PTF=eVW;%XJ*&x}dCj3Ye74vUPx4 zTTM1eHY9?7I;iE_o-jPOIfrvgudx10k)aCtAhsQSn4h*a!)eN}gKfOyWZc#nuIhMn_m>7$`|#c3aCfm?2ZgQ!XW&ZkYol~!#4@RJ{^7}^F} z(^i!@$ToIMgYhfZup|DyspF=Fg*H=TbmTU;qCzx3Szgf<2?cL;P1{X}MTNh+p4U)0 zS@^EvR>f6$dLq{TR?*2K^7~=e{O&E15V}cLAe|5^NX9D35}uzU>xeRbc;y_8Y2#fQ z6#2vo()dN47aBv$@NjA?vQ%Q|BKd5;Xn&3+uACX|wRINAuZ5BouQPv`S&b&6OIc=@ zmpVPMRt$7PfzcV2W-azgAEM@Qwa@x{GwfR?d4b_ zlHCxDTK@;NLdl5!@yNIc*PetsqBedDZqm1rme0A6ClaUAZeJt*g6)3-{YqXOEkK%2 literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/48/bcb511d02db420505230c64dbdb4b0a3e96f77 b/project/.gitold/objects/48/bcb511d02db420505230c64dbdb4b0a3e96f77 new file mode 100644 index 0000000000000000000000000000000000000000..1fe7e4b503d7aa2d0919ce212751642e09709482 GIT binary patch literal 369 zcmV-%0gnE70d-PMO9L?w^}N4gEPL2Jv?7RzwUvU12eHLoJS;5PbhaCeyCE~HEz$~ow{p}mE&aX48)5+9BC$4lfRGav}!@GD;2Pdd#Y7G7@O?vJ^dSS!~4 P5qq88DmKv%NX5%1%+Ir~ literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/49/3953c593a9ab0b38ba7621212ec3c006c74012 b/project/.gitold/objects/49/3953c593a9ab0b38ba7621212ec3c006c74012 new file mode 100644 index 0000000000000000000000000000000000000000..fb30f9d44a39ef298bac4f028b0d27ba7ba6d614 GIT binary patch literal 59 zcmV-B0L1@z0V^p=O;s>4VlXr?Ff%bxNGnRrO)bwa%GRq)%*|ooKkmKj$oBBNo)!As RPo{nQTgU#S1^}$o6b#W390mXY literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/49/d3fb6fcef0acfd0f1d4920a71806ca22a69942 b/project/.gitold/objects/49/d3fb6fcef0acfd0f1d4920a71806ca22a69942 new file mode 100644 index 0000000000000000000000000000000000000000..c577c01c0bb1845e41b6c025e01a7c863b3e7841 GIT binary patch literal 89 zcmV-f0H*(V0ZYosPg1ZnXRxs^$SC0ADoQOWEy`1f=28HH;L6;z{JhE-r_#KXoYWY% vqQu}Y6IY$36 + 1tm {7+0p#Wdv8?H(y$K ֿ~ӟ}1Y)\Ti>x| _d8fS昣M|d;, 5噖r-F zzT-al-8JZ4U+0xKHz5j=GV>TDbxj_d+_n-pIhCuXU2DPOtA|yEpq3=(=N9A_rxxjD z73b$M2rp~edEb1o{#;|}Z48F~Qcsc}zD8G=lb@W;@b2fYxdzM^RF+COHtO@rXX*}(Vvwh$pyui_Za>kZ<*~<(&m%Io~gP2m1np=>QSdv=IkY%>@gBX8Y z=C97=OQi?8_UPZ3(gRgfl$cixR0Q@})8pkK+ZO!UWU;}9&;3G>D>zp7K8 +J\6;P1.E[i 3(Èm!S۽gR|.fRԔ}ǂS=m9 L̵=֛@c3iMbտ?l{]ٻ8q֪'p=˵Y?-,w@c glr \ No newline at end of file diff --git a/project/.gitold/objects/4b/8c4844aeaf6dbe0799b8c57591129a396b03bb b/project/.gitold/objects/4b/8c4844aeaf6dbe0799b8c57591129a396b03bb new file mode 100644 index 0000000000000000000000000000000000000000..746b9a78f52a6331cf565abfe94c071c96ef0041 GIT binary patch literal 996 zcmV)O&gVP`#5EB7p9d)&WGQ$k zvMeE}QCSyk61}FnjFABpZb7M4ngt>p`dT=wJPA9(aj?42!71Jv?G^zMpC?Yc|vb;^Gh-DEqK?^WP zq>_r$N-u^ob6$ix5gZDI@JZrxkw{`pZL?VLtsSTM3ZI8vtM@x4g0E?v_*jpmc4r0Z?b3;f_B1V$&{9aqLA1oeZ|SDkj!9e zG+M3J=K~hWGTaFH)D8+BQ89Gd*wH_X@TL4+^>EmadOas{!d~BrFWBYPISU-;veW4! z_Tsavz(oG@(bta`mIxD_&Enxw2knFKT@^k>h@X0x&0yolWI7-~z% zmA(6|4l$#Er8aV#)&h}cON@~y4ADNKprVj&af(EHqg^QT$=ZcXNe`2$DSR~Z2ko`l*kjC^kqj(Gb;+3|MAVX|>B=I>cbbOfwXU)bjKAJ(jq9H01 zY4(b$%Ju5r&;Px{(f4zC_mAj2UK^AFQ#d$3b9#1Z`7T@6IZ8(L7}@R_K9E@(h-2Ai zs1))QHQWqK3vSkeHUtPxSNV_tEg4t2kXk{2^gtn_|F7*2j9K=aQ=?b(bkKwH^Sa#P zYwFJ6{G#8pPkOO!@EOuS2qZB|%+5J@UpW1%nrD5IkL!Kc3q~7o--zjmmaA8etje@O S`WC-x@_qwm2d^K1?S&RKJM%vP literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/4f/670c2c8fc4cc1be2a0bcd985450760432ac774 b/project/.gitold/objects/4f/670c2c8fc4cc1be2a0bcd985450760432ac774 new file mode 100644 index 0000000000000000000000000000000000000000..c98976d6ab479219e9f80d4077fb337e3509f34a GIT binary patch literal 469 zcmV;`0V@7@0gY8VZ^AGT?wnt7Lk5ae0b5l{AA+S)N7MGT#$Zq6mjW3*zBHpRHb+%;m123I;_0pCbG-%SC`U(E1!5f3O&JE0R4 zi!!5$$*Vauz+qu4TT?nnIKGulK?+K|w^JL?PO9$N9Tk_3 z+@Ld_l6J?hha6HDImkzOvqmRvi;wIxqcO2L+o5E!ixFdTYi`5MOooM-L?}yN>SbaASV;3U7|O zAhhbUg>Gg9#T$4nKFq^){Jx>LbaPi5(8%a>pgpF0P4KhKhYuN1vG|`D^ut#-_o4Ou LxJK7M4?O*fq_5TW literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/50/7680e173b544ccbc859338906860a606e88dd6 b/project/.gitold/objects/50/7680e173b544ccbc859338906860a606e88dd6 new file mode 100644 index 0000000000000000000000000000000000000000..1c6fc4695948f0ef904d219f9c9acf079470bcff GIT binary patch literal 747 zcmVf{W?9%JoSvPZy%@nwt{GOkAdp|56Oi$)hRSN=!CO$) ztn@lKg4zZLc58siZL}gz1|xVUkqp{2p%tn-Tob3jVVP-1%3HyD29Z%kCL^PCgbefL%fR66R`{QTcY)#wzz8nnv=mH*MNtbP6Eb&eRr3z$j zg~d*#fE&~WE=8px$t8gdDT}auon3Hb29zW85{vyURODJj5sPI}de)156@-e}eZWGm zv_Lj_!H5(a#EYuB-LvY5#R5vYpCm~d>zeH7p$AojjP{RXH?!Ttt6uZ z_Js^fob2`u_K#n8lphZr-G}HO_G0_tNwOw?+4|~Bdvkn}pcmw2ka5K8<6(}R4^Q@} zQHuXm#N@xVKDusf^nEfu^woIsW6-MwvkXcr`=YBVT1Xomoyu`D$gX&Z-qp`dB|3?F zMYcq2Yy?$7D9SL_ce_UfC=2KS4T~+-3{xlT1r<%9aAVK6i>Ff%bxNGvGOOD-;EIBmSqFfu&#cB-8A<12NF@;Ut% s-a(b5=j10P=IG_50+r2PxM@b+LK*w|z}NSm>-9-xM5k{60IBF7#R7yV-2eap literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/53/d0f8e03bae159222b6e2ecf67d7a99ae884324 b/project/.gitold/objects/53/d0f8e03bae159222b6e2ecf67d7a99ae884324 new file mode 100644 index 0000000000000000000000000000000000000000..d8b6e4f4c909c78eb59879b56d7a97b4ff554e20 GIT binary patch literal 215 zcmV;|04V=>0V^p=O;s>5GGj0_FfcPQQAjGyOUX$s)+@*;V7O;l`GH;7U4=DSY~i*} zX4UlY5DOCnAW$esOwLYBPc3FpvP}uPxc0XYYk_6T`|^{U#H;0AKuszrO3lenOaYq| zx97HE@QH%wH$^{h{&P39Nkm1%2dbCf5gU$-mI;QoKHwjF9tacWUnW-`nq-K?^ozUPG79Uon@ RdSNAauziBzO#qPVT&G5PV{QNd literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/55/203d5f901790ca9ca8798d52b036b5209c7301 b/project/.gitold/objects/55/203d5f901790ca9ca8798d52b036b5209c7301 new file mode 100644 index 0000000000000000000000000000000000000000..157bff23626986922e12079de42ac562f9ada5d7 GIT binary patch literal 11622 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 Wb@cRc4T^UO_R~~V=K=s!>k(A2vmLtt literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/58/7083a6c948f2ae6ce1d4eb67664b86ae5c742e b/project/.gitold/objects/58/7083a6c948f2ae6ce1d4eb67664b86ae5c742e new file mode 100644 index 0000000000000000000000000000000000000000..2d4822f428bd759e8921b439ddc9d017b9e0a74b GIT binary patch literal 407 zcmV;I0cies0i{z-YlA=#?K!_b9s-H#?(3t0^RUjie{Ed9%M2NQmYgQ6ZHLNrQwy=6J4iLD&+9(J_=~#kXM9KKZwvn@^9L9X{3C@q B!e;;g literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/58/9136e0d01b7acb25858aa8b07f79de23e89311 b/project/.gitold/objects/58/9136e0d01b7acb25858aa8b07f79de23e89311 new file mode 100644 index 0000000000000000000000000000000000000000..4ee620ec2bdeab431bc37149aa45701d655af1d8 GIT binary patch literal 441 zcmV;q0Y?6K0gaMDZrd;rMZ4B1CN2!S3yXFN2ad#OQ=sSpvgs#0`*2fB+3=_}~1QQtA?R*B{><=YXR}#T_h4<}hu2CsRL&W&!h4l7#b8 z>S_;Oc!?qO1*Oz*&qj2gwDMLX5HF(6A0!qDgeS$3bw=W9u*?{= zaDBe4TAeNgWY;<#vGphZnyIs>L4AmcV;A;bPJ9tw{mDjox|yM zjY@M2LM5yAjn%#48NC0zjc*QyaV}Jo!L=FTCTay>@W?cAiggI5(-r*u@tu;8l$_b_Tj8L#A~+@w(4ljzK?t!*cL5_D=`K5G(q2vq z(KaeY@m2TsnF25mGVZWag@~#kX2We2_xz zm+KFKcvie!LnZ!vzI|IMq^cbehJpLEu?_@`O+$|y$$MM-V{)_lV#jAXjL`NwJ jBb|VQUA4B|GJay`(}Y5l_nld~7SW%>7YqIiRsR!f0RPuV literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/59/6a1446436706c7d62eeb880a7c69041b321e4e b/project/.gitold/objects/59/6a1446436706c7d62eeb880a7c69041b321e4e new file mode 100644 index 0000000000000000000000000000000000000000..bfc64b1ffa7364adc32b3d8ebbdf2e42f3437214 GIT binary patch literal 182 zcmV;n07?IN0V^p=O;s?ouw*baFfcPQQAjK((90@j*v*x-(8B3$VUwfsB6bUw^6wwd zNkLU4<>!|amlP#})p>2YpJG~9byISR_O#nS&W66Rk!XjiOU}7GGH(?FfcPQQAkcq&Pdg(Ow7$;$e6iZf%(s}`lzs-u4nDo zzn)lZUIJB>R+N~VTAp8&4N+MU{PJzkj+r$-UilOS9dpmB+af*%sikIK?Vr9nRh?ps+*Eiw5Q$vaW?dgjYKHq)$ literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/5e/bcdb2153c870e7d915f3b3fcdd55821424284c b/project/.gitold/objects/5e/bcdb2153c870e7d915f3b3fcdd55821424284c new file mode 100644 index 0000000000000000000000000000000000000000..3a528c855cf40a8704e5a0151b751851a49d9ecc GIT binary patch literal 130 zcmV-|0Db>>0ZYosPf{?nFk!Ht`@&`8V7NsUjf$Sf`?)=0@L%1g{m)rgOG z@eGQO*VI$jFH0=aPfkqENYyVW%1_aEEGUTgPA$qy%?SW5HDE9_FfcPQQE)CTDoV{uuGA~YC}7a)`q|WQq;@l7l>PFb z4Q)HW-ER|ts&h#!NpwsqE-6Y(E&;2x(}`p(dHz!MEv4Wm-4KaBI>R@(SWLhs0z+VO@$cgvaY_&V%FTv^389!&n9nW zDp#5~3#t^X2;>H^nG>4YZ0%;QDiiv`Y#n60(0cKTmE}-{A&C{irMbC@MGzll1~vXm Y4XD~D{Ff%bx$Vkn}$&XLY&nqd)&&f$G(#tAlc;U`eef#YN WQU-{a*B5_74h<~jg;s>F%R2dhRPM zskxF6nwEH(3u~hR_QfKh<7wOeBsMvOl7PWRueY8eB$rW;l*WKc4#5RaioDz_EC^Dx z^GrX%MPQwIZi|l7Bf-v@XW%^n?3Ho+c-^$9wXagY-8}vT1qPAR-y$!eceM2Up*v{Q zC6$8=On`JAZ0`THk$= zyT>Z8H-H{b?mc3a+9+r*un}|%u8UqF^GT;2Em+96XKc0hP92YWZFRgv-L?Ck)m1ed zZ_`iljJJ!0(KVwSci4b>K)jk&*Ql|&hD^02UdsO(qANmQ?g< h?i~#cC)jfQi_a$w$f(_>i2OF|cP4mbe*trfuZ65d`+@)f literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/60/d32cfae3503a6e3013f27a72370226a8a7388c b/project/.gitold/objects/60/d32cfae3503a6e3013f27a72370226a8a7388c new file mode 100644 index 0000000000000000000000000000000000000000..cab7d154474123ef00c4228bf093bfe3f967dfe8 GIT binary patch literal 1191 zcmV;Y1X%lc0i9P{Pvb@u?sI;{$Uyqy>$^V+o;3$OEBv)XFMtxzaJG|j~@e1WXQhh6VnpMd$S!OdSmf>k3 zV$Q;I1yDT#arNC|6`tH{qiAH>t#t`!GRvi4!i48iW#OL-!-P(y0K63oua`MUPdUTI zyBR0NeU_S+SicyPpG$Cp8q|5k{w}?`CYlwuP6ii&Wn4VMr2lq2*D(&h}pucASHXM#I}D#t{|%r zH_KIOMa_G3G`&48MdIfS;(?6Fo=H;ek0Xd*!!Slpi*vcb3E@qcIT$=Y#E(S;0-3b7tv`D%cJ>YK(G6x?VuL~t0vcLH)>l%U+tsnRU=0g}`# zt^L~rvW9uX_l2Lwvo|}wGvHU{TOCa#TrjQayb7mF&L}kLvJwzV9Qoa$1UVX@aIA3l^t8TW1L@%nx8wC2Iy3<`k8s*Ty?kHHMjt*Wuxx8FF} zteS-Y>?Kquz@-bE7Q8I}*;8O9$RB(heEMa@38XF!L`7ZoR#rOt)H;JZ_<%W#MhSXm zEulw*!2B*!vV!ip+wzU6^m2FB6BUPhTnAfJDtc!XE1f} zejMzK)|K0i`c}bnuhG@j0n>o8A?e!TA+Y1YFfmY6&0{)uyS*8EP&IJh;oxEGyxW;) zAa`ru@$F*NSwb6sox`$rTQ6wCR{K&}zH|Huo)ClQ%_*qF=;cueVf4WCYCZ?x>7q|| zPC_=ofy5u<(2hM-Z%MT|6Lvg8I#@FW^HDdkwq1hffM})zG^)iP9Gfl(<;8;v zo4?f`kkjQE%*{qEz5Y7P$m=krq*~##-)rJ)+>yMEpUPewCF&{BtAtfC_uPB#{ST=HHtIe6rA3o^2PIb>=f?A^WynmV$BZ z(~fn52kM%%tArM+R>TKd2q{8?4ERIx1hI}++(iT|ZWqDTyyJHK?^-xqY<-A+*u6!P zAHILcHyuY@=P!Y<#HBB!sC60L z%^uhJ{XABQool)K$L{j=#bd^)=)yW*t@;3n8?4ug>tNgxM3ayOaG1bqAq{(qr|$E+ z(IHb+kfJ3V_aHSb{hssC1-Tx$fRI2nLV=T5>O6M|*=O~TabcE~qlzDldm^B{qy6B% z%Ll&uMpZ^POX_`V`##^~gG?j@q{*9B*h$PW35o-s-nCB7zyoh{KMCP4AdQEZG?7&A zYPyRBJ&6bHUpiq{4__V!DyB%PE|JqDNBK_0Gzs2^UOcDWZm8irOd(crBs6XpAU@Ui`A(VYRR_MxHV|{6eq8bwJNZ~|z zCGoD-;hH+0v)Vzc>&Y{jF1TQVO7YJXg*`wU#KD3`jO^uBlc4W+{VaqM32Lryd+w4O)FV(NJ}{*aHN)JZnnO zQP*D{N0l0(_$Rt{4$0zNsa-TQXj!=N*&B@qZ?iZJU%SBtU95_Xy}3oDGzVg3y%TZB zoVMclVn$g5<*-Bzpd86Fci50TDLFJJMguRw(rG&4Dg0zfjjk!pAWqebpy)9&bY4d? zW1+sG9to`j+;LjQ${cdS697lH<0XMm0t5z*jl#J_RZ8JQE6mu8H!i?{iIL*PKl+mt zOy&p7ne~or220WD_tt*;ga*B1%bvkOP7)*Ni4TF3zq72raUXn39`NfVz2jC=HhQb1 z)L0{%N=P~JKske5eyyCrU{F7-G44_MdFF%-sB14ujGtWEi4ro(_I%4Er}4sfrU+AI zZ}3NCoZ)`kWq$GIm)}49{PD-Xe){<9o0x)j)W?$-D-5bUq`HZy?c$FkFj{ywaP_$N zXM4FKB$Ct?8WjJ39D|a;YYOjIoTxpalFZ%z3;M>+a`Dh$v6U-cd$0s8ynyYBO5eS2 zaUVa~>7CmR_G8Si1AjZ*c?BnzOJ3Ap)!h|+!hv^s#Eu@kiO>gQ4>Yhnsxa5!2@Ghc S@BwLyZzH&Qz4;HjTteY(`|utB literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/61/04c8b4631aace06184f878f4fd63e231e6ee26 b/project/.gitold/objects/61/04c8b4631aace06184f878f4fd63e231e6ee26 new file mode 100644 index 0000000..b2ef935 --- /dev/null +++ b/project/.gitold/objects/61/04c8b4631aace06184f878f4fd63e231e6ee26 @@ -0,0 +1,3 @@ +x} +0E]+vэOQ#"Iv0M$Qp!0wo&t5cD +=gi*82X|B.˖t")<%ܭ rHvmS'+U~(H{ 49x5i2DP\n Uy(/QVK/ \ No newline at end of file diff --git a/project/.gitold/objects/65/8224830e07405ea2db343174077e581de2548d b/project/.gitold/objects/65/8224830e07405ea2db343174077e581de2548d new file mode 100644 index 0000000000000000000000000000000000000000..108485b64d420777d3bb772e6f7e39ee72be5ed3 GIT binary patch literal 166 zcmV;X09pTd0V^p=O;s?oG-oh0FfcPQQP4}zEXhpI%P&f0csBRZ>`fQ1IeT|&t}Bna zap*};@I;`ZXlqN>uj8Mfkl%#do(Tj(4asXEDG2`z(|avU0t9k zH$t2L-WlGa=XDD9Dz+92@t&bP)E*Z@j|4~~HWr41(CF9CONupH8`~LPn<*ey$i##=8 z80R$~scWRPn6|F3)4Hn!@2_g(P1;c*D<^kdm5RKs$jwb!S5Uex74aa=Bq~+D6RD?i zi}{Vjecm3PdGN`KRO}Nm&SI;n;(DA-dfqaj3-?d|N&$`&a-!l7eR3u`UfFc`I8gNs zuS;3(HU{EJWfaNpNGx*^YtTAx2{|Lngt(Zby|ybMlBEKTC-}LmIiu-42`muWlIVZd zlhqlCa>2^b8tO(nT7X3k2(ws9Eyy##hj;!bLeEcEQhwrA#lA*&*I;fv(nnhdy5vW4-!pl7Qd;!Ys>O7M` zK3h0QonHssvC|_7YpvY7%DJE-!CEn7t*%qhnSvw57^6(63;`N{lWatMKk@h-*Z&KgJVTUwML)8&p5GHIF4EB=r0(B3e8);da zylt6)u7m`y4Ww%*O>hFC1|4mzgo4S-U{ z4Z|;^$-qei&tfPp7H=|bI(#D^~dgz|Wc0(oFctWHT4eK}Q$~PYYx;A*Z`@4ra+}Yh?5SC@|5)c>(kL-O3c# zQA~&RH!D{W1_&aBgdlNr4_31W1BjY$KrMaiUfmD9VkH z=HEL*Qlca)MR_n}ahCVq42Rl8>4u%YJ3W2%;bZoYIa>%KF2KvB2m^U1%M9}Qi9d4^ z9z&k-0NCd&TYZBl12JGR;J|=Mq?Vf7aSPFNA<3zyN`Hy4w6S zCdDQSgUTO-NX2})M)U+E)0?{@31pZi?Cvf|6Qo}R(ra;HZmdc9%1_gv2(Ekx^P@#0 zEt|6hezOXaS9@wa&;6P2K^l#|l;>%YNKtw|JJYxiazZW@2|_^24YbQ`TBU7mAL?zD zF5*gR3bacF@Zf=YhL^1e&zn9zvl1u(Jc^KbUB4neS|Ftc7tNk*Y1usFNU;qAHeWC| zln{3_w7tkex$Sw>XGzxKj(M-cJO_zvP_bo|W9|D`x7HiPK5ZkU2(-F}Z;+*_Ice^> zgrMKG3E-eWEi`R0bz=QnVYZdEjwCo{UkLMj2;A96Ld!ena zv<9XU1H!ZVo(4REvoq|~i!je3US7jJP6BUmG&puKkU#E^g82(jF$l^FMpa$3T~7-T z(u4S&BHH2*d`)qPx(|tCm`F_T1rSCaY2!CEYt&MJEJUK6wQSWGGUK(LfGET@&RfsS z+bzy!8biA%mFhDQ@`g@YV!!&qG)cLGq&0KCERV2omp$(k>RrPTNLKGU~T?Y_-+;lhp53>Yd`$Ki)QuhmT&=nsKB!3(< zN@Sb8a-wP0H^G|YK#8HOXc$>dsl>F5CY_mNTfsh2`xRi%j*4tRuSZ%qgMB@29w`@z zpxeoN-4K+O5E`j*6C14W$ZNN^)~k!d_(S)&_a>*3o8JDE-!m3IYp17a{Wta?vD zXqYKj%CrYh)jcW^rN&%j+lx;RZq+Nx^<3qdIg<%-r`3&RW3=mG8Vs*heHid-CgXy~ z_It+Ogxr{z&za5#2j6b%Zy>LJYIyr+Y@deP?$Ogk>f3oqv!K3wxyFqso#(%#ZLeUr CExEw} literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/6a/36b5f0160f5e69fa8963d275c08abc2fd8948c b/project/.gitold/objects/6a/36b5f0160f5e69fa8963d275c08abc2fd8948c new file mode 100644 index 0000000000000000000000000000000000000000..92bd7f144e663a782cbde99a3790e765a1b25319 GIT binary patch literal 90 zcmV-g0HyzU0V^p=O;s>AVK6i>Ff%bxNJ=bD)ypW!&Cx3<&rD~y#CJQ6S10;N`LhU? wfPLLnhZ%Oaniv3qLP=spYB9qcYn`88rlk7bTsAW{I<<&j^5xbf0G(_fa6X(nsG_fvUt@8J##qsiNK`TdK=iqSHiC+4E4uY`p8WgBxrrE>R+^Bj%V~paEmm z8q~9pU=$i^FnsSn>kjAVuP*R)dp+BFo%nH?m*doUzI@8szQG0`tj`$(9MB?~cYXhL Z{l7G)afF8!-Zt1+7M}EG{s1MqNpk;_Rd)aY literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/70/32f3c87b40d609325feb8f98514b68881f3896 b/project/.gitold/objects/70/32f3c87b40d609325feb8f98514b68881f3896 new file mode 100644 index 0000000000000000000000000000000000000000..afc344022a586d9b0c205c62e4ccf1167893e782 GIT binary patch literal 486 zcmVy0dZyGTWg?rv#F^xEQQE9@V7iegaqDYmZ5;eVr2zkA;tXp?&+1@m$ z<-d1qFJxKKJs~{v&70@vLg@mgS63h2eEei;la(kGx5%8gQuvME8Fbgve4aJ@7dpcQ z!qS-ao!&~ZzLC$e#HMufENdOYeQj1%B?YeO*MqUhOIIWM^_SHx7hc;P6%yY$_(o@F zAHwN@lKshmK4axG_Xt5jvxQM572b1S&reRdwR{Joh`-^UuZkbUj{R++q=2ezgqOO3 z%|_^kV6E_Rs{=ES)oEtvlNGQqYlAP+dB@`5Jbx_+MI&EJH(4As!FAG?w1t9wr0$cH z%kdaKTlB4MAPWAQ7ACzgzC5dTi~d+cJFy&Qsdb>Xqjq{uZAd!K;ywR~x3pyB7Fw$T zHkj~suw)LW9(1ECt{e^*52K@T-zhlc4!#(rOJo=CFWwE!qfo`^u_t5&Ep;5DGMfqd z(_=~sYeglk^XXaw{c-w~6C!knZ4=`EKrS{|icU^G5(wiE(d*((TpGZT4zu}k+;)jvo cm*Fw6z8hTtgE8H8g$5v|unaFfcPQQEGft*=CyA1XT)F1b4&jQ{s>I&3GX3E26!5+4iK; q3vB78P=yh`J`iKUCQ4P5+B*dL=boBl^T<>z=WVK9OBDb~)mBFAKv$pu literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/77/9cd1f2b12e0d30731787539ba67645b73ef796 b/project/.gitold/objects/77/9cd1f2b12e0d30731787539ba67645b73ef796 new file mode 100644 index 0000000..66b05f7 --- /dev/null +++ b/project/.gitold/objects/77/9cd1f2b12e0d30731787539ba67645b73ef796 @@ -0,0 +1,2 @@ +xeNA +1<'DOzqm]Ŀ[isɄ$$.j-W`(6`]*?P`8zHOvx&NjH[iHD; oײJ \ No newline at end of file diff --git a/project/.gitold/objects/78/53e9ed52b8997cf8ea4c7252c6476a7eb41794 b/project/.gitold/objects/78/53e9ed52b8997cf8ea4c7252c6476a7eb41794 new file mode 100644 index 0000000..383b6c3 --- /dev/null +++ b/project/.gitold/objects/78/53e9ed52b8997cf8ea4c7252c6476a7eb41794 @@ -0,0 +1 @@ +xRj0_1@ SC[ICKNF+b%wlBrFy2" "cn&QkK6vb$ C=Xl,%&PCul+'e0?>v_Oۿ?|c3nd "@}GGd=LX{a.`V4RÃ FC?_`E1,؃w0b8VKW7S N h0ȝ[HS˭XN5&ֹ$m! si^Wzr}ܗY8n8OhިNYL;./,"=t@ \ No newline at end of file diff --git a/project/.gitold/objects/78/9a9ac141ba2c9f6ece6369e836db4fa2fa8884 b/project/.gitold/objects/78/9a9ac141ba2c9f6ece6369e836db4fa2fa8884 new file mode 100644 index 0000000000000000000000000000000000000000..7d476a68e3c7e456a78dd675208d4c883bbf0cbd GIT binary patch literal 752 zcmVtUx$xjsML#5K9Ufv?CjXjQ+u6LuIbu2^q zcV>Lat$+$*pJIFG%sDe>CUfKFaC&xj`id~Eybeu#0DRD@xxqwLp+FmSs)F-LsjOO{ zk0JO9+iN2zLReB9MbwnJv&}ShWt6!zVldB<(EvLwLTN@G7n%ZkZ5IYW>QYb3q z#ZnQ~&S%s@4^N4FMo%3t;da-hntgEP(pgS2yX(30E041W2AzHG!Ok}dFq1Ermh-qBRt0WqBC1-y?#ZEAhqP!v_f=^xjNn31Bg#Zr>TK}Nu=W&*Aa@>& z@(Yx*2kk6@%b{_V2hw4fqH7n}k2lsZM1gR^f+(B}7z1P|RNyW#2PCL9n`MsDf~=*{ zB~1Fun?{ac!X9I@6yg+>mD-Mh86w4SdvkS>oPYdudENW2>%ewE@2lOAhr5egjyR}! zJG=`>p-Z=R*1B-NpW-gl`vx-1Rb|4MDR%P@{ltUv2p)-Rl_F@KTT6O{plk*~Jt72M z;uP)+O`yA_A)s62dzokomli|?LE&m#p&t)7TPpk5!ppj_ z$uZ{U^IBVzrIw?%sYgZ3lc8I(oavt1n>%A%%}!gFspIT1tJpNH1$YrY@_eSecSV7? zf@1_|>4-EhXILpyAx(Ec{?~5Y0Tp)2EFAwm6lE-<>z;j29h(5&a^G icor&cWZO#on?J_$7&-eayxX2V!0GE3Ap8W@zCAkXnrOlR literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/7f/64c04c5a511800f55f3cfab19e63b4fc2fb11b b/project/.gitold/objects/7f/64c04c5a511800f55f3cfab19e63b4fc2fb11b new file mode 100644 index 0000000000000000000000000000000000000000..02ae5b786790649b3905fe648b1115bf618ad6a8 GIT binary patch literal 298 zcmV+_0oDF^0V^p=O;s>9v|unaFfcPQQP4}xD`Sv%F%whPvEN``WuGp<5~z zCZC>Jl9`^DUzEzQtbXF77_}z%N6a4O?N-|ApUWgam>2+oLQ-ZPgQTv>W0Tuf0wfd@Feg7b zn;}%eHhzNmgi~`?RQ3jKFx#pyrNPL4mWA@^GH@4En= zmkqKvsuuEz={t_T$^Ngtc!}2bQ7l zRAO@LkS<^5)XT(v)IDs!X)wWCwV^sC)TnuxfR3`r?Cbwz`|uN(q-|RPT4LBWKyq-8 m$(f^oA3m!{BY9t&s;44 literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/81/3010a741088d0c1ebb62dcd0b7254684a7dac1 b/project/.gitold/objects/81/3010a741088d0c1ebb62dcd0b7254684a7dac1 new file mode 100644 index 0000000..4941297 --- /dev/null +++ b/project/.gitold/objects/81/3010a741088d0c1ebb62dcd0b7254684a7dac1 @@ -0,0 +1,2 @@ +xPMK0_Qr6uOA"^6v2IZnTm1>nM닏,)7ЁV%ewy"x0n@ue}GD! +vϞ{O4^aPw|P"b/Ar8y2&B+q=Oe=d f9a-J6fba_taa%a~.\[>~l9]؎a~8ؕ%s>Lت#tht`!v*O;" \ No newline at end of file diff --git a/project/.gitold/objects/81/e579bfc1be85d29babd1118ccefafac4c44642 b/project/.gitold/objects/81/e579bfc1be85d29babd1118ccefafac4c44642 new file mode 100644 index 0000000000000000000000000000000000000000..8d0d84b1752b7a2348a109338ccde91ee4982054 GIT binary patch literal 98 zcmV-o0G)7U|?ckU~Cw8!TY?2BO>Ebjqy1D+((Eo1id1>5 zvu*O<`$%dJyGT%fS&PRUZ{ECNqfA2&AAk4lSFO>`(^R*{GM$j+zk;+}7Ej%}pBufd zZ@3vm`+madNOAQ2!9iWqOQC~MYE8I5my3YQe#vBm_OfSUy^_}Gp0y`ACv7|lWm$B4 z7dl$Ar)Hfl9%l20u-ErOcU5$9?h8l3@jNKHS+b_J3Gth}G0Ned@CX<|7)@iCRgR~6 z=V&e!R|oK3ex1{+q`S`XO?Tm)ZQ}3Bqa*s~fbcgS-=_B8TjgL)%g$9uw7R%_HvMyY z@rFKrq@v?h#OTw(LAH_%B9{)Rw%*uv%mip5&jA5;B%EXK=te3<4U@we?$WIa8<)Wk z!Cwi#EQ=vDO15!2itRF>Fn7B>Vkh}AHk)dFg-8Uxt!B~_9SE@0RI{j9n>!vZ9vVfQ3n2M^-C9Jbo z;Fb=e=B!1dIDlows6_185d4Z7!asd*#kE znCh)jimgN5M(@S&Hug=v-W}81+{|?71|_{a%z4L7aX=I_aXq>kj2R?@FR9!M^sUE| z84$PpTX<=7#-vJC5*laApx?W4m-|?&q$Vf;@dso?E|6&ak{u&po0>Zq+Srr;z#jh5I_@E$b}j)OIu?Hrzp2UZrS&I`s1tD z*VE7NFF{ZD_LR;*>MYFx3v>@UtDfC|6&1rmfpxE%;u~A)uZig-hS7Z$LX_GU=fXla1%m(n!o!F+_RDigC*5R6dPT zfqbK=jT}l#7skuEY*Q&?(f0OdXoQwuioxy4=9M*FXk+0alIipwyO+W(qcVU*TJ*qU z*Mp*IA3S_i#U|VL@diAFE#y;fmHD=de0nRurvez4W&S>*lOIN*j&bM3YEWSzwX25U zAeB$S9aeQ-oPbM%aY9X6g%(SnY`tU`l{(t^wBv1NjiZeP6qr4R---sK)<{xiu8xBS z1W3U_;BXFe<;zi`(_;brxpo+~MQ~tjkz?4)CC*|DuoHUp+3;paq@G1Vb76>5HCAP# z6xe=YM921abzh)=w(H{+v{f9spxh{gX~e!-51fVdw&mUW|Fd(=qP-JbTFQWJd$Hb& z0y4C~%K&=B3oHHl}7p_9#v1h9+>ewLmsCHVU<_82X4{`77y literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/86/c0e7b97c6486f9935fc7281eeb19fdee500ce9 b/project/.gitold/objects/86/c0e7b97c6486f9935fc7281eeb19fdee500ce9 new file mode 100644 index 0000000000000000000000000000000000000000..16706bdffca1456a963c6ef0f390ce71806c93e2 GIT binary patch literal 216 zcmV;}04M)=0V^p=O;s>5GGj0_FfcPQQAjGyOUX$s)+@*;VDP;BJOA8=HGlbKJr$Nq zu$@v`Hq*((00eDpeQvbKQRSt zQrw=~ioquep5GMxy!p@F&?XTT4IikoqWsblpna8zxj77nHLMmrwmuiC`G(8AL&rbU|9k1i=_r zF@Qyf6$Nr0O5$Xp!~liS;{ckdXeudDuLz6=LQz7+f21bZbnygeZEAw?m8q#<7 zXL;`HYH4(x2~*{T5xI!Yai95ue3)B@A~gM!p;DvhX}Ygwx-@Rez)A`X(&%a5O!MDh zA2=HTeB{g*I#*yHgG53{a zO@{P5LH51(xX&RSt)y>e_yh#db4yi)y6`W7*35hoh!;*Sc;I{#1Ph@pvcg*ylu+n> zD=hCs4!B0CaKS2NNiGO@NJWC}>+BvUWa(KE&O(OiK zB2VFG>!7Q~K)=SvhmJZP{~q)@!J>f5@TTahO6HMTCXf2G6L?G9C)dj7c4CF3jl%mO zH8ujP2w4-_gl_Aw^mz3gprP7e?P210v7n#{SVwDVqUT*ip4W``Vf%=i)%KxcRcOUW cXK#-D_4e^%^J)9=?Z{o~udmMk0(9lg?_M)_k^lez literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/8b/d9061d53c8d3913bbb31cc42a41726e128492f b/project/.gitold/objects/8b/d9061d53c8d3913bbb31cc42a41726e128492f new file mode 100644 index 0000000000000000000000000000000000000000..0e2deeb1839a5be03f16957241b7d0ea48354747 GIT binary patch literal 116 zcmV-)0E_>40V^p=O;s>7F=a3@00IT){JfH){G6QBB8H~N%R{y;__N7kgAJeig&@h_ zKhJkU6uIV=WR_H7RbXgfU}j>X;GJ5OmztwjkWs);KIh`6je5KW#p3P3vzL{*ZnyhB W4Ps1CYC(Q+W=Vb#cB25~kwLDKyg2y) literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/8c/199e0f8699925b9368b49e6ba63189a4e85566 b/project/.gitold/objects/8c/199e0f8699925b9368b49e6ba63189a4e85566 new file mode 100644 index 0000000000000000000000000000000000000000..bcad808a8423593fe92ab0088f1c3344cac54de0 GIT binary patch literal 2612 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 G84k7)G#0x6 literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/8d/85319fd8654424c2c9602a3f813415d58b6dae b/project/.gitold/objects/8d/85319fd8654424c2c9602a3f813415d58b6dae new file mode 100644 index 0000000000000000000000000000000000000000..576f6aded5664859946eed01f06e0b31930d4626 GIT binary patch literal 132 zcmV-~0DJ#<0ZYosPf{>4wO}aENX>IdNiDPDQUHST)TH==qWrYXoYbQD@{|&YC`hI# zwK%`DC^^+iLERxdH7Nk9$f-0hB_~xs2r65wpPZkUmYJ?!lwVqsnU}5)G()c?-YqSUm^3M&PDknvoYmcneO*k+hPxU7fCa{&OhnOIC5594Bbe!vxr{DDpkNCpy8{p<~o(DOpxw355x(97)KH zq#mv1UCFv;%p;<0)b&k9N2hf?48)*vB4;LzDO6Is9zGt%RVs>i_Jm|mCoJy|7G7|4 zeC4RPni;Qr)7jD$bnlw5QqNq;tiNAMl3GbNiBm?S%@WNQkIr{J?yTuM9*$CEIft`s zHqS(M_hWW@#!|pHwJN064Nr!Lyn%a3GGoyF9mKjaXRlGXP<1VeNZU?jiIoi6r)iJd z4rSXMYcF4FZZHv%pdY~pA#o)m>xyE^1 zZQ)J|_}62N|BY+_*OImERm2`|EIsu?T6z6;*Z9$x#_;a;lN0b^dCZMVma_Kj8MG7$ W{}d+{?IBOhc@tz;HTnlT>ti8lKmxA- literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/90/82863d3e99aa7612f4033b5233a13ba3a8a977 b/project/.gitold/objects/90/82863d3e99aa7612f4033b5233a13ba3a8a977 new file mode 100644 index 0000000000000000000000000000000000000000..bf7dd655a2ee6b7a4cf0b20561575aeecc9d687c GIT binary patch literal 884 zcmV-)1B?840mW8LZ<|06?U`ROwNMO-lP2z=RZ<)!PSyI7OWKobSs1Tl6ucl%5_Uk)KGL~ODj)Uq&0rzXh#BC@-=hXqcvOInY1%oip!!5XZ_)Nk}Df{pN z*uyED!N~~7>j2K_adJPo>#|*<;e;>Qi?X&nlT-1>Onh=0%{O+7i&ksy^K3u2@EqCz>ytpV(qjD@``d|W5(42`f z=Q_3tNU|y@J-VE+r33);n$A?QBv_?63!^pYAUgZ705>MUAQ)-r%Z(kKa@1-;0B5#b zhE}jpYC3_cmF33dL7H?S(jw+1Yf5$!8>NB8ASk!!t_bRtkknM8>L@oL3z0=g{4Ds$ zNVe$*a+F%8lEuDI0D9?3@n9blSxiRtOQJyDN#B2M$w}8VVCu#*O%5_>`)gL){8w_x z2#tW1%>tYGXdD_-7kTog&SP0`Yx`d{GEblX&_fx!-oP$;)y8Dcae~-pwnhM zR6h)Ey152FdQ%%G<%fx>v_yx-*4Wg>mimnyFj{(S_b(4Gh@0&=ExE|I2RDUeXoI|7 zjTZ#ad#Pe0QYF#Y2etG$d%n)|gRCLK%jR@a#C>F2G~F!bMY+J;DaWYXO#5*W^ZslA zX9F14vXqFbh*PqiDQKl{16!>H8bM{FR1SbB!bdhvlXAoF==?c|qjqU6tfuekOxhm~ z?NxDPb_K5XD>?-EL+5gz#~imi0qI+7qng)VM6K@`03=NEC4y@LA*@{VYiphKIRLKqe_9l;3BZ5GLt5IRhVmr2shwdu%}*&H7?bu{ewYXrtn4fuSO zq~RVcYm4hbp2DPLRw*i`g_d-77%wcd`zZU@W%9ZFzVMo36IRnQfN6hx-5)^z=RMsg zU+Mnsra$xH=m?Mk2teC*h~GxOKWbIfi42j^21dh6qidmSIQHK$Q|B~{%RFa1+Fo3^ zk$Q|-(K-w&&h;vlZLO>(^CV+E_L3#(l6k$;-avgXphui4_-Idqc8oaInb=-jW>$92 K&iM^4?#eP84zrH{ literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/90/dee228e58e5e3de04813b84dd4a98ec1b3b26e b/project/.gitold/objects/90/dee228e58e5e3de04813b84dd4a98ec1b3b26e new file mode 100644 index 0000000..6504952 --- /dev/null +++ b/project/.gitold/objects/90/dee228e58e5e3de04813b84dd4a98ec1b3b26e @@ -0,0 +1 @@ +xMO0 9WT=1'$qEj$*Nl4[׏7ab"bwZd%@'OqHV^ ;m6v'Miz@aQr֖qqFhֳiFi籐쮌Հ֤Q%YJ9 XtK1R46:*q҅yH)ח}<EW1i±BW(Zs{(O]t]j;ODŽ>:a0+>PҩݥFg|Q~-0O9_H \ No newline at end of file diff --git a/project/.gitold/objects/92/d01a769077d960c6c5d61285137e99b09a732f b/project/.gitold/objects/92/d01a769077d960c6c5d61285137e99b09a732f new file mode 100644 index 0000000000000000000000000000000000000000..4c274d54cc77eaefcb2e2dac4d654dc96dc2da79 GIT binary patch literal 51 zcmV-30L=e*0V^p=O;s>9V=yrQ0tJ`Mvdom!yp&>wl4sxi^)IOR-#rn=qf%eGqa){p JE&xt45d0ve7ViK6 literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/94/9f88c10102de82ab31be2dd3fed439c90c40db b/project/.gitold/objects/94/9f88c10102de82ab31be2dd3fed439c90c40db new file mode 100644 index 0000000000000000000000000000000000000000..2d30f2e104f2cdeaafc93f17ab80434fadf6f88a GIT binary patch literal 527 zcmV+q0`UEK0V^p=O;s?pFk&z?FfcPQQP4}xD`W8P@o-tUK6fAc%pFHdCkoB7%x2yV zlTXhq$xP47FG^*&)z4-Byq4qH)an~GMy~0RYs??aH!%PLg~a0G)RJO`SRK*3w>r-F zzT-al-8JZ4U+0xKHz5j=GV>TDbxj_d+_n-pIhCuXU2DPOtA|yEpq3=(=N9A_rxxjD z73b$MBr;y$Xqqd?EcTKA25ZD`wMuqg7IcL<`N`P~?|%N8YruR_?(vkn>sHTe3haB; zH5X!Ea(-S~W;(-pKGE5mjh^);cVBj$_b5%v_WVLFh=SbA^rFO)%>2A!hSVmNW33`^MSB4i(h^g^vGNKDR7OizV4Yr?%p8c+M;Y#(?C@9@2{vhU#LO?eQ*3QCi5 zGLsoh&Xuxgtnw^fA$3NY|4sO|e=bW-K@=1hB{MK=RWXix^l~+$Yq-=()n~INC%PVh zT2ow^o0gwfsR#B{kK{c5wwaTnCueM#m%YrebIFU)G>9oBsksF?i6yDU3|VGdKZx+!x zF{PN{YRZK@wl~EmWlTC6XU=v;FgIE(4(h1#)FhDi^&mkB3<8E$P#Q!ayb4BT9 RVCepfhEwje0RRRR>`F`V1Z4mK literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/99/82c218d6969c72d4c91e3834e3f535e2dfe68b b/project/.gitold/objects/99/82c218d6969c72d4c91e3834e3f535e2dfe68b new file mode 100644 index 0000000..15c409e --- /dev/null +++ b/project/.gitold/objects/99/82c218d6969c72d4c91e3834e3f535e2dfe68b @@ -0,0 +1,2 @@ +x=M 0D=WAH x +RiD]Pwߕ7Up4'V_/PH)/ SPB1|mL׃R2qŶ0ɕgt;/GO+ " ݜÅR`ޡ}~NǫI[}A1Wn$nfFE \ No newline at end of file diff --git a/project/.gitold/objects/9b/a1b2987ea11c3f7f51ebdfe72e8e1a685b67b0 b/project/.gitold/objects/9b/a1b2987ea11c3f7f51ebdfe72e8e1a685b67b0 new file mode 100644 index 0000000000000000000000000000000000000000..5e2aed2e58c03e9f02e4a6c21e3b73d2e89b8b33 GIT binary patch literal 56 zcmV-80LTA$0ZYosPf{?kWN^sLEyyn_QBbN&%Fiz;E-6YZ&`-%MF40deF4l(&>E&kT O=>bKQthoS91r%Pl(HIZ_ literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/9c/3b2cf9f494654dd9a6995d5b65720f19e9b562 b/project/.gitold/objects/9c/3b2cf9f494654dd9a6995d5b65720f19e9b562 new file mode 100644 index 0000000000000000000000000000000000000000..cd2a2f66db3ae658a6a1770b630bc788b653ad0a GIT binary patch literal 89 zcmV-f0H*(V0V^p=O;xZkWiT`_Ff%bx$jnPgth;DU73Y1P)Q v6&va+?0V^p=O;s>5GGj0_FfcPQQAjGyOUX$s)+@*;V7O;l`GH;7U4=DSY~i*} zX4UlY5DOCnAW$esOwLYBPc3E;zgFCF;8414@0~;|S165X(Us?jRuQD+=hvBe>)uPANCxnlNvRpg5d{J8P zUfX*R3n8i)n3RLRY2JOB^ylpLuiKSpaR0wp+YU9SIJKxOGZ|)5Kv~1X;;k-c_Owp6 Rn2?dMjO|75H2|i(U1IWsW@!Kb literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/a0/a17a0847b5572883f74fab89c95f4fff8590f3 b/project/.gitold/objects/a0/a17a0847b5572883f74fab89c95f4fff8590f3 new file mode 100644 index 0000000..4c87d2a --- /dev/null +++ b/project/.gitold/objects/a0/a17a0847b5572883f74fab89c95f4fff8590f3 @@ -0,0 +1,2 @@ +xMA0 =+&^L& +LǶtVZ/p&J8Roltk=mk);@fBOB8Y@T&GlBUdLG-l*D%c4^ytyV%X z{i)N*O|kifiHzy!G}oHRc=@S)aK5}`G(naYN3lJgGiEo=-0o*;>Bh-te$Nvo6En`! zlcvG|O&_oo-1vaPKU?6FerpsC z5xIm6L);u!p%pdn(c$FgQy~&Rrw|WhNcQZUn{X6E{91-Fa*}fa=@m?FO8v-OKH-Qa zN#Ny~P!R22uL_-`BL_#1OltWR3%-4To!&YUpA1Jt=0fzgQ>MAFJQK{(S)H>Tbkthy z4@cYeIh|{g{Q7IVyqjKUFjzIYTKjPmE6%3L4nky*?14Z$1<%nS-J66W13oAm@qSTy zK@M6{x)}5S3Ml=b4}bmbo4?D=il=(}DNkKdFfTe?u~cs#0vH0-CFI~u4pDI&QmB$ebZFVRPV{us64aXK-Mx9{d?zzF*>>lpqUQCQu2xpHZDnxAEY`}P+bXExXil+Z zmt{Gq%W^}T2`%9vxI9F+bdNz{JO*6 znz?%LdJ_-t$HUI(T)AnfZxlRrYF%v|Fb!xIlD-=r25vm)&n*;H`@m;@yEkJGDu?e| z96Vf|_gnJ}iiE!N~{x>Y)x4J literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/a6/7f91e25c268247e2034877873a2b27f37619f0 b/project/.gitold/objects/a6/7f91e25c268247e2034877873a2b27f37619f0 new file mode 100644 index 0000000..a715c82 --- /dev/null +++ b/project/.gitold/objects/a6/7f91e25c268247e2034877873a2b27f37619f0 @@ -0,0 +1,2 @@ +x}NI +1WrLMAK3&ɐO^Z(l"+N()Pp8%r49~;:!ޠ+8WB ffܺlS4S^ c^RB* \ No newline at end of file diff --git a/project/.gitold/objects/a8/0a8cf90ad60ac55c7da7bc6ab499c5592e7e51 b/project/.gitold/objects/a8/0a8cf90ad60ac55c7da7bc6ab499c5592e7e51 new file mode 100644 index 0000000000000000000000000000000000000000..5767d75a054cb8643c662e993d1bb1a181024ba2 GIT binary patch literal 385 zcmV-{0e=2?0gaMDZ`3dlg*oR}JhVu?)I?Pel_FFL=n8Rwtu_?I2~FbZ#=`Lg+esCn z{&$?D8?l#yl!IgYy_xy^Dk~MPF0Nh-?1K?k;Oz1&%L4ns)EtUzv)NojOC7y&oF5me z>YcWXbeaL0B2^T)NNd2fbl?J=gn01D;??ilUHRq1ep~+dy4{x_cb^M&arvmocFA&< zup5jQ*RqR?2e4{x-WB-EBK<1ry2n`uZ17!rghqO+q50l86WNZa8*&FmY#1Gd@E~5p zICNfgU&l1)lYT98`?f5HYk$FV{{KUQYq|$v)TB f(&uvnq-?x-J~`P6=D$+*1Z|4sKaBqX5CG?f>FmTu literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/a9/5e41d33e4690d6cf3253dab6f4b16905f37563 b/project/.gitold/objects/a9/5e41d33e4690d6cf3253dab6f4b16905f37563 new file mode 100644 index 0000000000000000000000000000000000000000..9511cb51b2d716cc630c091f3af8c8e1b0006b56 GIT binary patch literal 59 zcmV-B0L1@z0V^p=O;s>4VlXr?Ff%bx2uZ96PAw|SOitA+$S7b?-nix?^WItvVi?3(n郖3yY[J41Q@A,G"df{`W`t^t(~!;{YRZy~)jU(̥hjy \ No newline at end of file diff --git a/project/.gitold/objects/ab/b76aae82db19944114e4c29c75ac913b18c897 b/project/.gitold/objects/ab/b76aae82db19944114e4c29c75ac913b18c897 new file mode 100644 index 0000000..b846949 --- /dev/null +++ b/project/.gitold/objects/ab/b76aae82db19944114e4c29c75ac913b18c897 @@ -0,0 +1,3 @@ +x=0$:6FGVRzS}k ҅7{[uXlNCu-2VZ=݇^ +irb}B?sR+\M6OntF +\^nTFwj&ū4o:ɢ ZI"Ymw~<\I \ No newline at end of file diff --git a/project/.gitold/objects/ad/874afdde10699363e41671ad21e784477d0b4d b/project/.gitold/objects/ad/874afdde10699363e41671ad21e784477d0b4d new file mode 100644 index 0000000..9cc068d --- /dev/null +++ b/project/.gitold/objects/ad/874afdde10699363e41671ad21e784477d0b4d @@ -0,0 +1,4 @@ +xEAk0 wvi`HYEkp +1ۯ ӓx{=|7K4ʼ+K4bFyP2j`L@FR1}$񞣣k68 + +6,_< 1aDBƕ-`q4dsfP# _?͝Š: +r"-Gtif-6?Vb \ No newline at end of file diff --git a/project/.gitold/objects/b4/753d7dbc0f28642c57ad2c570e065ef31b9110 b/project/.gitold/objects/b4/753d7dbc0f28642c57ad2c570e065ef31b9110 new file mode 100644 index 0000000000000000000000000000000000000000..9c377415eafa3ef741a33dbf81bdc77e420af74e GIT binary patch literal 97 zcmV-n0G|JN0V^p=O;xZkW-v4`Ff%bx&`ZxO$xP47FG^*2Huur&O&6~@dv|NDE04Ny z=t)oTM5rp)isX#My!6zd#FErvy@HGahJ*=)aWlV2-sQXEvid4p{r<-j;_d+eQ|~5A Ddt5Mo literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/bb/0a6aa13842ed71824123a207380477f7f1ce1a b/project/.gitold/objects/bb/0a6aa13842ed71824123a207380477f7f1ce1a new file mode 100644 index 0000000..16196a9 --- /dev/null +++ b/project/.gitold/objects/bb/0a6aa13842ed71824123a207380477f7f1ce1a @@ -0,0 +1,2 @@ +x]n0 D;+ VSn]=t%!@KH'ߗr2);j<;9%B3VRz)*ř8@,1@)zt^#XqU('=47V_Ӵ3= +^"[š UNa4usiY[-%WŝaT1!V#bmZ0=D7k%MWiڙ9g x \ No newline at end of file diff --git a/project/.gitold/objects/bd/89662193851b09144656eb49384ebee1a30d23 b/project/.gitold/objects/bd/89662193851b09144656eb49384ebee1a30d23 new file mode 100644 index 0000000000000000000000000000000000000000..592ee1939fff59ca4d836612e9b002627bab5014 GIT binary patch literal 220 zcmV<203-i+0bNkdPQx$^=A5Unv;!C50NSM|kQgt)Q025PvqQP6Z??Zb zJ0^|ru)V*UDrTCseslp^oiOo;&MN1AnNdbg{krM1j?}@ybJ~V))`Hr=PB132i-uOf zqw8(PQdr)>j-_bzyI+i#hG8*B8R!Ng8V?tCO8|qmT}2i*m^meg)Zi1JVe{d3>J>stu(f#lK2{EYkel!daM|5r-X`$2PQ WY1nA&3!1fejvY*xjKUYirg6TG$aZ4@ literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/be/07dc945351cf1b2e6686c87107512b118c0d22 b/project/.gitold/objects/be/07dc945351cf1b2e6686c87107512b118c0d22 new file mode 100644 index 0000000000000000000000000000000000000000..afabd7af263f8a6ea1011e9b6dd7722f55946a5b GIT binary patch literal 579 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

-lLW*?Ej)NlfngOXsWn{7yQs4q6)1e;+a*B z)$4j&y+s{EEB2NT5GuwGsGcL~X)(3_H9-*`_(84Htjs(tAzwkzmFQv*aOVyS6Yl8n zB^1Xk{uX>9ZO$lP0*`mCndC&$_c%>D+Ag8fr43y~Py=v)X&sLwV|* z)|*^C&W{S&7;scty<&=zodYU&%Bx%srJbl$3;Q&#R444p6&u8- zDOzdm}##VMkBJeyRO_4u4E6>o|X)|7iyV}=UKTuzxBoG*$j5{~vK#KLMD z|0e$zO``SU3hXN`c8Agu1%_y=;+`Oml4?%YMI3G!DOku(5`FY4bR}hDBG}m=@(d+W zb7UH15Ydru!#hwCts!3N4%Pkl;rM!@oEx02vQxhs+#u=H4^7GgW$31FB3+bkI;NfI z*31i{*t3zQ*M;7>)$^eQ=Z@D#+&V#HnWlR2cLCzVqN_^u98-xmi+ zViSPf-J9P7u8!mn%WDKrTXNVcHWxKLDDGAzKM9<@x<8e}QL{7FKvKNbLZzBr2r>}0 z7F`hJ8+0s7N9i&pBx)45uYW9`v+e>kiZx0RSquGT3_S*n@mF2wC!~D~CLz1+r9V_%eCGG)Mqm~%I zPQE!v?%^F@rBt_>m1d@|s8(}PepM^&Hl45Hr}0$2OfMMuIXg3*otergWU@y}PUjN_ ztB>Or|9!kz=M?w{ccWGGg|5WUQQoLSq^F#6n727K=7FduX*GgLtaahiUve>IMw68(LGy7S}*@Ogiw~#+F|jb zLstNtit7{Viw@}M6T;#Z++C82i1aL&J7BdkH4Mj`RU^Ra=jdg$n+crb;nqQkD>@Mz zPEiMbuX%p`<y|RRO`nHQL~;KgXz3ATpiB|NmtF<;`+8rXLOtud$E~Rr ztlBT2^g1cQS8mj_D3FI;Z&LAI;itAEKab7 z9`0AuDP7fe=Ub%a-sa@%jwIc>Hc)d&X(oW=~{F+pfpabgD3*(|a`XKF?>!%u7v5i@!i zz#+-&N#A-BXC&1eE9rCaJj88dH$#v<59#Pc(kG!j0J^e57(^G!57{le9AY%8%bWw_ zRD>oqQ;uTsxp>uTq!?2;fyg{0Q*=*!3cR64STZJuQK-yc{yb1>VPWSTL*AKi`s6?W z;E(qRqoB~#j3@OWnX^YO@TZfr_Eyz(ma%7xXLQA>v^zAo?1V~LggJvEWB$|lvZ z0|(~@=@=|vSVa>U8t!&E_cH-OafgB)EEAI(ObOiwr_5EG1+MU;3 z?@_u1)EohEX4=gn4Nxb21H=YrCCHC=x5$k6-H(6&=9h2Ye*NN=M$u!XOOJ+}g{87U zHYhNf$`_&SL8%J?3xkZzHahxYN_&Nm1+40o@n_j zVV)(-(@2j(8TN7zI&*26r2h zlOkvh43C-Sui*t)}59#RGGG9*>sU9qIj{GR7-yxA7%t;c`;(rMuKuJ}R|9iV) zwKK+)Vz=?gA2?I`In1LO=J9orV+w&D{8$t)D_v31Vg!AVJOk@KS>3c6$<`>~2PuZ1 z1ENw;*mI0T<6<+e!Kv?OqeF*Z)@)>$6eD4~mxg_S4qYl9Bl2VcOr73Ei{~XNRda)2 zlpZ=plpvFoWf+l{Bqs9P8xcxE243jm-;sAJux8G4aMhBgR{^NOQxG?cT?IjDen>}0 z0Z@E~lfr$W)U=Yyx6PxfY9UpAQoFPeuSaK(oKC+|o9`cH@lYqSfeQUr?R=SdN+6fA zwv?2*?J*kFM(~_K9qFU0XBY9uGN)6E;iG!8EQ*CrXX?~a*jg&SG%5cwGeMC`QE}?I zT9btU)Icl0ZSzMZCeE%0e^8~dVC{M|{|O&=k5`(U5KA^Y3WE{iNBV3JP{|~tG?`U7nM z=%8yd#Odl|Ry9FNokdZ7j}@orrB4{QKT75wH>d$rl(XnN^86z8CD*Ekv@0Cfc1P+N z_{u9kseIcst;e4>e4@?07})EQ;b0)Z6h4R2i+hCcyC#Wrejr68)1Ft zBV!fY_rWI*>ho2OF#f%(XKv@w;1ed$E6fH7FMIa;ksM0-Etxc^kct=Vo-RvXc0N>I z0@X8|dvY$=^-SZ`bv-OBtf;+_Q45##%CT^(y?COIREmce-FaCGNoRB6*<5%UbKx7F z&aRgHlT|Y3N3p0f2=X#dx4HJNFp!XIDr(R`#q|s{SfXO#?EfiJC=vkZ^O>3hQIkh^ zFQ>?d?jAvRwL?|nA~)1ma;(zh7U^xQ--aJkfwn`WhMG!qfiQ^AA~$z%Qr1U_jKF0lWAlFgHDkK8QJEh z{&eR0p=+9!>3iK8n$x(Tu>=7X+8jJ`aci1r^N@~Cj5ce2E4w_JOqW?!2=BE1^%_&S zvX7jPDR~P)+QI5rps|)p-JOHt%Dq!14tvQ?(HSS5anfmU(%blEj_NX5u7M=avvjqD zu1+H@9z~YtT9Tzp&DX~Gl~pp7q_urL`@3VxmCTA!L`uD)Ae6N+iyYu5@!^XjL=+U{ z{TxFekV}rzK1+yZj*RJ*F}u|5g9>@aS(aua7D; zc0^DT1v0{gUzE=4Noap+_itcUjvC23Z_{PGZXdPGSr3PVA_LhW!?W^^!$SQ1ERo@nly{93 zdm{I1sPRr~OqNGC2p@v~xxSZ7-N;1X1C)6Pf{0*CHbN&frk0+}?3v?EpF=Q&JiiJe z4xWR!T}_C1NJl4vh#XuU0?g!vly!qWu(JwwfZ4kqg&+u`vQu7nC_!yj?a5#}`-eL5 z!yG(FRltlDfNo4$nGr`~O6-X6!42r)_-R^u_Tp(=umwiDpW63e7i=a~B@1VS!#F`9 z3oS@nzhc>%5ij1%dbO`Y{s>YK-MkSWZk(OH7@Aa_@pVoTKbx3vbEH3#AXGz;;$jOT z(dl#TG$0%B607Q&4-$?X2ML}nRMQJ$$8exKkF3DfZOeD2z8iG)lT_?Mg=+^-L)huc2gr$9F(-d&N87Q{;ROsT|atNMLpD}Q2pP;&k2Yq0$y zHu?JcRdu9)^j9}qsE*DW#IpwR#2Q3@1t(m%I8c>qXc0sFH-*p7QQ?WXK~RNW(iZNB z)6)ml@5WN`g0lj!N%$Gz;bQn%0a(Js8r2siwF@qxasI@g2(cMtZF4renFubMTJc&8z}GgGb*y|6&^LLpnM! z@Tr^+4$idbN|HAt3H*Flui3}Pfzy*yfuwK2iE?%c&*10`j!q1Y0zXIcY*fEo%r{j2 z2N}OuWs)78lJ3{Oim<~ip}V2fAW#o2M>g;Xsys+5O)qkhCzd=@yVzz6GA)ohMt(V& zlq6&fs5r?X&*Vs6*(AUM013D7E?J5;1A3swkNMk%jiEp^YzT=TtkX^32tFqWgi<53 zD?`7uj7$4~QX^$iE^%uc@aMEHpv9O5K_7&1?)&86^-N z%#paX_AP4up%CC33Y87#jbKL3Q!e7AKW97)%mNL*sP%PnI0BAkrDb1Q&cib%CP>gPfkgq+AceU*KCw;*LmC8W3_Z3_+H(`dceLUBIw z*K-n$kX;{%&nY-UF@sw2#Gak$jauffhyO=04*qh=!`7Yz<@ z#+0dY1hVI&NpR{Mz1CiVqqJIJXzPcfdM;d{?b(8UD6z5?!U-Mv_7vL7@xQh-Y22y|kkgb@uxN=P1^xTfw!W)uJ&g;tnM z1Gu`Iap1-_08?PuzAw>O=`38F1}R}qJESyp+~T&-Ig*gl0UaF$Db-L9!Xl(&#Ky~M z;329X*;9Q#n36K0pO4^NmM)O^h_y!Lo8FoxmBwj*BOPSy#b_RG*}IIfX>=`3^`1vA zqE@|!tbqm}nylItb`2Pp9GYi~QT z5(F)9Uz0`%GAmcsd6AL~ZsvDs_I?zA9ToX1`(7i(*!Ddx)fn32@tq4Zn>~=qc-D3F zH+S=!n*6}t)QM|)g(sf>7{b$_I%k|dJtPDjZK{l+Ln@869jxKrj|#sic8>?kZ0saF zH11qFM#G0qGTdC<-;pvVfn|#jKp4J?DdkyhbKH66xY>Qx^H3A z1|i>2)jx#&Qc){ti*Nk-D&J@?-o5=+^EVq{*?hdmRi#ehH?^ixWa#v6zPZ(|aGN{( z5XxUs4>T5}1!dI{;rKlk5wVQaxI*+~o+%jJ*(c>}%Q=lt%GVU$&vKO^GueD`uZ39* zzuYhA?oy6vX5h)?_k^ zY6<-S3yutPMOpZ%RTR?b2B|9$ixl~;VcELjd-g0&;>35Sx@Vb4SLR1?Je@hQXFAFF#hmZfllWgeqcgt{zW+$oB8D`_e@Tq;riC3FJTSg8-Inp78x9`1frs-K1iN_`eC zGkV`r6@oOIz)}X6Lp=u#!)%p5mX=~|IeknAh=(=;;swTWndEYx45`Etr zpnR>B`NPwl>!MWE{^idtr3?9X3Yi4^W+3Tg`o^zP3o5Q9A4>7~U~Q8%^2+ep{YE=wY?4SzTSzh0&HN3TJNyIYhOSFp5z8Id>NqJu1`!(@`F>uE zaR}4iSIZmb`6!Qx!60O!#7x6HVj_`5ljd@4u_ds^&@MXNE3u>4q=)Q%{9siwr~7yt zJbroxClUYQN?FbZhPT);gh3+{xB^<(y>sELVfc^=r=805*#8P#64|w?0%aY?yTX@s z`{VC$TkE<(rFv<lbz!3?TSO4U90KM?bj@Fdv6dz*6tIX*Mc#z) z7M@-m+f!o{)ZaEI!w8b8BHaSB6H?j*^c;0|!l~-62l}S7N#ic=+S1$k&%Y4d)Jm|| zH4pL5h@I_z8`6_-?sgsR3_e}Ms2{;yTYRh0!OXwV5~#_)6Rp)EmtLC zy#$dTMjzhOWa?yOvg$G@PPBiyIhoGc4MG*rSthCMi=C+79x+$ttfy!>~VnlPjE2F7MU`SWc z2^97%x^4WYWV=|5aBIQxeQzH~MD#>#vKL?H_h|InRr@A3Ux+w5$8ubg`V^ zUd_srs?@?@^2N4N#|Ss%&$g>v#SP`pt47REbgK;+3dUiYNw)IuR@ zM!_zuQm{s><~B=L={AQ?AygrZ`BdLXbmQ~_6(cPLPdm#}%`?i*I45bJmmeYWTj?%h z8!rv_D6&)y(TVFUNL4@}4SUH&6{6cD8FfKdx=d{Eq`Yd1@Zj1F*bQ-ze1)o~CcFlN zX)rVFC_t(!OV=aIb_3+X(h>YPjZNEdo`XlBa*~y#HFzT8#<2w!B&|a_dJIXc6RC8X zCpdVkFI*G6cY|+EH(H=jM~;Lbg9+qzgvbnVUR5@Yy~AJ@Zdy@5|1H~fA?yhoq413~-Xm${U+@`RUw_{Z7&`~_ zN$btepbolGDH%myaUO=~3Wy|MfPL}Wxh_wJ#AhH^L{=%!=}>-LV$%X0bY9PM>J6f) z)kh+y^nDXV(YJC2TAn52xuxDPMh2?#SXa7tY1#+nUS+Jk7K|%`8v&KVFR9_)djeFt z8{8l~8byvv={IcCF?~-rgU~`Ivv3xAzUezgF!KZCF7Xl(BuFRZGzmGRwXcxq;3{3XBQiaN2ST%z7v#yozq^rG}WcYZ%R5U665RLEi ze5>LNB=us)QXT9y+2TCdIrBks0`K@Lh365~dO^ZZI4z^B3vy>sRW0oXnW|vi=)QbC zBE!*3BoP??HigRy;>gq0S%Z314eA5)t$hwoDlcOMi?OV^S{nQV&e|i&nv2x9k+$&f zQ7k=ys+2Af1K;^N4(AC~RmUNfv^@Jl@Xma4m7=K^pzc`nS#8=R*o+@@TK1W#O^@b+ zQX2fk)qM`Iv>4bRNE*&&dg$pvI5QF>3OvJz&B*hd(DRHW@{`z{S$^pDSg}v%f>KPa zf}?|nFK$v3jvms{iQuU0f+EpbHYbiC4}q+Wq+5HyKdC-Fp-dRT``!H|aieTEB&?^x z%2gIRcpNArtN7YfE$VJEUe{{YTMWkI?Z3S|AFDEhCC zGVUt~1UfAuRuq()A8P5cfU@+5iqSPJqhf{-B0SD-!*H^9KuBY}rm%}uct4u22xb$0 zE{JA-yptjxa+tf)!BYBz6G;>|b!Wz9bA>}0_MdzQJNEuTPEz%(4TGJzx;(2o1}M>h z;isq8aG!+{Ed%?wl1*08u2r(WmY(b-N8j(nk+S_8|JIDPYjIpNhqhCF?icD}8o3 z#s8)c_hw^>bVVNh#QGQ-(I7>PJ@XCQup-}>CJDULqFHDgUgFPmJF?8sN8WyO<~)mJ z{WPaa12cHs;F7in7%qn#qFs5AE}>VT;v?(K3@4BqiHcNI=RqKfy%t#h zzl2xN9@FOn?5FUyp1}Eo$vF8K%9kc-`$=&~p!OQs=(~l+y(#LuToX3hNJ#eX1u z2E2PSdAj?WF}pnp=Y}iWN$E&jP)(HP*}cGIa8a0b6)wlWs?4lKb4*&*eqrd!*CBh< zu0P?-NR;^EaH}js4QI?RtTJsHeJbwznVDjzSB3?^e`y?0p}kb;i?`;9QGYR}LAXDm zoYpAI?oIK(8LG9%PGE*JcjoD_;X9EXBJH(p&qR_gk@M5|1QxTZkpJM3i(A9ayMX); z>F6lPKfc*gAjgD(jFDh&A;oHuOiM*q3B*EM-;*~$nde#Q04SSydvxN5$RWx>4c3u! zZ#v3iHg@_WoYTcUWQ4^?a%fbX3@*vEr5WI+0)dXo*MXGM{kGSdGKzNb2-TJN;A>XN zeN_6qxnO&g3<;g{KD8$NHA^nMkEnH)iF$$m*(;G@BE~1ANTBcI#TxnSU^1n=b&Ome z8u4>Dur1l*8QKb@iSOZO3~lvG+r6}`hpV%9d_ZKB4RkA8&L21Qr5e^CfNNWZ7n%sc zcBV5FpiOKiF$^<~-7s{mBuRWb@MhDQ_Z$E&1pusW;;h2Bg9k5eP!r=G($P^c?l7nd z9Tq{MpE=4>OpAjQfBDb#s5%O))sVc}hhWyqk8J)U1z1n<7AfoiUQmOVr z0^S`yRnyGP1nFIspHRZ1c?OcfRKA?kvC^)s5+$zud+P z?QQz2>~K?o;>w(rvuDQ{o;|KX>s^^Z_&J$x3h~Wfuc4b^HjF}+D=T+~@%%%Kd|i1C zV-h9onlQ6WiYPN=<*GM=VeG@)=Z|XahCTy1kYA@-z*&zI_Bj^XqZc>mie#zHTC4yh8POB;!TL3hb<4 z>fFDB)?s+jvQ|+}MD>b$#}}qUM(Qv9RW;@X2)RJl-&7Qy$vRfp#ySt?$*ne^a%aeY zRLFm}*$~@fA31y5*9+8n%r#VYny8oo+SIzV4-p8EvYJA4gKQq%$a;pS z77c{44H6RUVCuvMVjgTOp6Qc5 z5BL!KG}i*ZkTez--7*G$Ma{I)XYgT@-sLhXO)@=Pq}L>)7zoF>19NrkQZ5W{xRX}) zXv39i>=X{h|BUUEA#-qxs)A~mW-J5h@TMR9Y!q#mFv=(f*?C+#O%IAqB7*}Z-CC!4 zJ`d&#c;!=JgZwtV)4&WWNCi*#MpaEzX{1~Otl;BHL#Sww=F~oqH-yRZahJd?-96Fp z!OB10P{&AHP2mcpyuCr)1?X+>=9^nKWK>*WA*e8oBq;fLA0qc&SwWPg5G!*QbqzvX z=iV_a=I@IggupIDy0j&Z`jNc-0?(sb{4$^4#cIe&(baL z*rFG!BrG3z@DoZWOHkkg5|}j^iDJV{LdSFs$3)u zAB8BG0ud~79aqXkAS2(?ie7AXmFP8i1`60Oh+clN!sYMwUE0{FkkQWip6~OK8}#Qcdu4Ue**x$ zME0Qlnx(=0el1q<$7QCE6U*>X)HDuF!-C1^Imn{&{3@Ar@En>q zLJa9Sq@xqbr2Hrz;&N9PRA&~UELfwIMkxNadW*rOk~pC`6&(9}aXTrgFI~7?azWXJTYurpk)RbXtFq-}^f2lh(8GWH zbU77ThhDh#?tEemACcT640zM*))OxL1#=uHv#RZ3&EV>swS5kq*6}u!BRc-Oz$OGV0?A)P+F~0)MUnq!&!} z5LLxcP{1~)CbV~6JhR-`n<4v-WuwTu+Y?fF68CQPR#X^p@JyPQMAY6L($TRopdpgb z+PP(fwlhKy&b;tEK*<*<<|rI4ppuUWLxdIq=@!DcyK7D}TC{FQ@)Vx4NC;dRtHn`R zu~{hAvwBbNh~m|)sGY2B=jTScwAJ&H>svu2sZ`U1L(!@S0eDge|1EqYZ%?y zkfs|H^YqupFNXG}q!+vv+IJ;cYXz^Jv#eX}M$%%g;aB0`%=67S&2A=9dbe7new0t7 zy|_TiznChJs(g?yUjJ|du19N@wHw|STXE^6Op@%sS~bN$sOyoL1tp3a9jD0Up0 z$F=8>zI%p=82Om^vDZlNNR;G%Zb9`KwNwI@aD;D9*(y^f>zu+TM{l>^& zb5Ab#%v5bC6{{aCWFF7n1$-^-x_lHn9jONyp841q?H=*jmDsif7oGR<>;p}ERedC) zOy9TMNr`qn*R+w$2iml*Oyd%6(6;mN3IgI$YgU(gUbq(H8w6=X-L!mQ*ub4mjo32v zFtkF~wyePL+}PG#-@yY(543s$NQ((pXm;=<6x2=7Xdcqhr-Wu%n&6W9QtF5zF)%A( zNa=!s8MW(+cy)ata&3t^RDsWD*n24@I6FFN$J(In|M#8 zY}LO#CnuKOJkE$(v0IE=e2$3P92wq~VO|>6rEVNSM_v_)6uHW?fzo_@gD|uXUHH_9 z%*4>mSl5wvJ5IvHb^?Ev#G$P_k!ep|vnSx|v~DbXf)#ikJPC2fn&A16j!q1oDR3KM z-0k3*uM)AYe--swdjs)$UuP%ph02Qj*@N-d0sP1j7}g5H&uH17voMLz*S(w4O7L@{ zLBfYOK9#8u$?|an2z#AHD%vKFg5Bp&0{rp`oKdfIkZ23(^I3X^7$Zx+GTck}Z`;Q} zy<|_fqy>I9ke3Z^5Z(>LX%y(OX$Dpp*oI-~h92AQ%$@oOM0B7;wh*T1KP$Y;W>OZ(0)j8+f)Lsv||2&O21-q!egn;-x26<$e;lv|w9j z=Y}TXq8s};f>PZX=~Id*H1*@SE8~bE!Kb*u&k2;e`XEp`odq+)40Jb+BIc>=n7$h# zqpgXE!dSOvu4hJYSMJv0omL6Umc9a|gJ&S_6}t!mC_SX3Gbk;fz{NRt1ueu+inE3y zIU`%CGiOJ!H1S?vzo~Lp0F=7=8I%?$tN7=|0husZV;CxqVmt87$Tk9F3b)=!j}0#{{lIf(wqZ?O!-_-CO`aPnHg>3Z=nR^d zL3HY!9?;Pl6_=>xjEZR?j)#hkGb%1lR(ZY-K*eWJ`fyNcoI&YPK&f%|ACNE;zulju zsupo*9F!V|_z$2eYn(UCC35`=IY<9as8XEmnv9^>v5Nr_F~y(;p-^vX+q$iLuID5y z+{`5hf*EwP@SB~*VH_H>#J9uefI^FDRq%80(EH%$AsrnXezsJj(3ArM*evRv4ntt%5eNwW&0W32X3Gd365BxprTD zjKl2)wrqGqA}cqlvZCHaz70n3BBzshaKf%5B&02gSD_iBnnpc7Smy+^9G|ei(p9GK znyiz)mHFdyO+agobne55>{h0EfMP65k&u3KKk~z8iACyz8;D7!mK}M9nKuJQWn; zOV4ub5E7b>QO({#*^o{UFucf?AKp>`(q3inJA?j#r6wWuIzna21xlc-Hbt>VyyPm? z*iTw5rRz%edAer6iuHQ72kGNGm0Pm(n`BH)E zN_u!CLs^p_s?s-Qrw!>eF>`ufENH3DJ0t1h!c_nK{Iq#M()b^;O2NMDUFzNukTio7 zBK8pcE}x(#EkFGXwz9k16mW=9h&Vn7YQJN#9)rA@E(cCI4`7E+T)%q z$h|@VW9nlI&(>J~?PtvEH;6CF$)THk$*W=Of_sCe$UPQ>q?VLiQ9g-k@M zeO7yuT(NppEY~!HwP<(bT_lFUBdk6_#LZ{m!zT=B#|y@1vj;UGB;)jM1>HfBy3*)!X84A1f- z-JUttH1MZ}YeasmyWX?#1J2UM94m2c@I1tAqf;(=10T}SQN*<*gP}dj(*%Ti0*+Ff zGl9Ya_3N!N3_b9dKhGfL$ZkJut{nNbVr|F)y+B=zx8QExAZvPCf_j7jX*Zqo!13fI0Mn60@1TIg03t3v|1yOb2dhCVTMJizH|LJYIpO^ zt@gps=IJ)q-j$G=@^z&vC`b;4pGQ%s*C<;d#@4jzXY9teAAdhft-1ll`Vp{O79(_j zv?M>Q70{a`z%*c+%rtk_p(YrvZ;R9~ZJz84q$t`X4Q>!((_PcD6BiCDj*b$^wi{T` zrw5@s(+y`98lmGlt`|Rt+Q`!MDzG+q3VmShkdBT5)_~E51FkF%8L=J#;V=_xf#yuo zeOsyn#1YZ%^b-0TrYj!|w@Rf&<-kR+5EZA2UEm`V6^K&1z3^H!$45nOH9z6koFrUd zb3FH!XvG=Goq-(We7e@Ro6S1EoJ`8oPEO1dc6aB&7J98*RBRE=7qi64s;-ur2khAG zGPY{f$<&I2DUpVKRfUIRHJOg@RBUHAV%qicQ^y0h+dy$Tnv}GODyTCVIy_@HVsm5~ zR3ulYI=K&5v1L%D!%0d$>T)QP%qAZho)v={1j}qYFuic*dv@#shJ{fK)fo`l%tQKr z!?zvJo4OuS2Xu19lcbp{*SdmZgNNQczM}5zkd8hfIQAg*SGVs1H`vGq{x1<@070?=M+m^+$GNP|lKEmKSNE3j|1pgLUT=cZ&g# zZ1t)!+g3z^u^np@e_X>@PifXi3x9R9Epfx}4hUh4l61R*p^RK7_X6L1XQbD45|~au z2fpRIb)>&UT`x4_|Mm6jANlM$*Y(ss5N`|CbQV_5 z!pdocmDm0{C*St(udd#}^}V=Ok{Lr ze%fYp_16m#o5|AK5#*@i(w^1aO_s`NF(;y*O@1;KhIt${_ja}U|J(c0b_NdqolIiVc8M6N^Fr#b&|X)Io$I;^BnVH^BrUYOn^uv zxQJ5uQc-oaFoDE!aB$Y|Oi^N8UfH)cZ`Xse(x05L$g)Y`Z;FU<0SopXzA|{mFXh^5!s-mqNu4>F6l>6Y~$kraOF^t?wb}#ZOZvlDZTW z;B`g_TbjW2dQ*=HiLRCIm~SqzW`s-diN*mns7J@{wT$ysfUOViQY;5w1IqC1SOq>1 z3>PuuB60K5XQ9>p<+xuP5mVS$_%#H>U!)O$Ne|fJg{+6iyjtW;ztgq05_$P5HAJJb zAeK&s72LLT)n$Tdac^q>^xfUp+(CVJ_hWs^?(V*Wo4Z=Xv*uIm$45q;@@=hzuTdss zNotAy&3oXAi1E;Xl}XZ3rmxLJ#M8Q|Q4f4p8W<5}Dy-u(L`i2j;v&YqhZQ~Jynz4} z7sIy;CWH^NJT2ExGfG3HLL2cDey*L7OP07gxSy3tJVR<~yxI~X9#FdDsawlX&cYFr zEvx2&J^L9X2FzFtahcCiPDY{O5#jjy(Y12`j_(p!JxJGn878o~;hvUn*f*A!mBCrb z%~=@dfGTlDMI7a*XAy-?>c-&+!MtNPF1#cG&aWH32M9G~dP07-o`Sqt>|T`Q=R-O= ziu?>&XZUk%F8`H6T5PoT;UXIotYY2OtN|AZJMGz)#_+x4Q}Ry;DI7xgLY_YGMQV9j zgsB)ttP^5w2CIs$Hf^2&>-Jn$+3+D=ZpPT}CD3avp>BKmMhHSr%c@odkh0yY0Bl+< ztAYd?`<)j};ex10{kit=d+TLj#LtLgp23VG9;TopJA$+ymF zlWA7Q3wZhl4bI(;~#kezBBvgOX}v1Ok#jyb)s?;5tV zZ6u~Ae^KF(ZgdMsRR{kafCVK;jA;5nms^C zc!BcMAIo=Ab-nsDP4n$hUWUy$jf82Z66a&t_7hBi$PxtNvy^& zdX8(aZY5ckbR<+1yuPt4E7ub+wGu!jhsDBe*+P*G8p3LDj$59CRJR$ zD5viYwNz3e&N}M$RnE9C=Ubms$SGXu$JJ5EUnQ^amLpwtM!jz0o{(-+49!YM9T9SZ zH}cYWJPN&NLg>XnC?3P1UL>xQn4Hj2ttTLF)V7X#NJl5uQIF!9 zmAy|#(DXEd9Mjs2UH7U>1~GBtVluwMC|eu4m&HQ{bqU)o%X+&lAM?cx9Duld-&w5? zenCS(#4$Mwh-U%uJqU<5KmPU|3W#)%Y+^0X&|7pVHea7*tmToQw}cc{+ZbiRMR1Us|DI(liE}lg)#sVVa%|a(T{-f7y(LY{W%T%sEFg-AG>~$xACBM${zAVLE-WC!z^i-6^Vrg_KCFUkUkxR`K8KX_XJNoRasq zqyH{+VzA~AaY=lSs$+YF(Q|m2JvX^opJN4K7?;?}?Aw};Z0`LXPU=sq>1;Wu4Zn!b zO;Pw3;T6kuf&zIA2Wa^P5P>r6BZ}Vg5P~mQX

7HTdbr560MwEy8Jyfh^2RDz}Rq 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 literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/c3/283aa2e33bc813c55504d6c5a7a26653bd3dde b/project/.gitold/objects/c3/283aa2e33bc813c55504d6c5a7a26653bd3dde new file mode 100644 index 0000000000000000000000000000000000000000..5c9abd64d09015ad03ae149581ffba799adb04e5 GIT binary patch literal 70 zcmV-M0J;Bo0ZYosPf{?qU{KD?OG&M;;!;)sf`Y`73@ZhF2q!r|ucRnHCnvSYO2M(9 cAjTQak8w#&ODxSPL5NscfsNq;0BK$vP9d@!tN;K2 literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/c6/1f388813e3259b30a7a42fe56d3e3436e6016a b/project/.gitold/objects/c6/1f388813e3259b30a7a42fe56d3e3436e6016a new file mode 100644 index 0000000000000000000000000000000000000000..12179691783600296bda70099d73ea7acf670d3b GIT binary patch literal 441 zcmV;q0Y?6K0i9G$Ps1<_<;<_JDovbPz7c|M7p~ku+|wpwfh?&S7h0xW_;36#>}6fY zw2ncgHf{WDKl?e&jLYEk{NnmxHUL$lveLs*CcH`}I5i2r>*pgF%nuLAo*9?F0%|mh zwjMVwF;PNx#M*scQ!KX|f^jmsPl_Zx#>sBfovSRC&F{b`VJg)R zBTEk-_SsPd>)20`dOUU|HyO0;@AXDwI%$$T)CbywbqG?8wN;YzTGu7^Rh}#FqcClx z>R{f_sZF-he?3W;U^PxHe%qR&9L;86oGTJ-rK({*r-t=tz8PWZP2E{h_^10Dt4p~* zzCQO$&z&-!59_{l@-gy-u*2vq8a;&5eY0OOuDh%CuQaV(2)dIe@#q;}&K<^r2eGGI ja^F73WZ-lDbC}kqY(*+Prhiy~Enfqw{qubT6Tmyl1wYvY literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/c9/33dc535d0d19032f851d0aad82ae768fba6968 b/project/.gitold/objects/c9/33dc535d0d19032f851d0aad82ae768fba6968 new file mode 100644 index 0000000..163c474 --- /dev/null +++ b/project/.gitold/objects/c9/33dc535d0d19032f851d0aad82ae768fba6968 @@ -0,0 +1,4 @@ +xPKK@bZ I@/EZ[E)q%1i&3q7iQe"IM!n[Ta\GT:O夢$ +sܳIy7kR2BA*3,A0}XZ)aUI**eqa9| 0(x-!Ƣᷭ,5r CG0` +~VR!. ]ŷ<`iUXV (n*0JAWiT-S0tM&%ypp2)oSf7mhNj2ML$)pWv&mwE4WIjkAj#i9 y&vzOc7?_!uD0rt9<)!B66=W1Jl+U^NX`>#mL9uvy@a$z}uG{UtPXhoj)gjZo9W5UK literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/cb/273a6b2600582a2b778aa42f93bcb93d330d0c b/project/.gitold/objects/cb/273a6b2600582a2b778aa42f93bcb93d330d0c new file mode 100644 index 0000000000000000000000000000000000000000..3fd122351f27d43b7612fd6f0ff1c4fc334b960c GIT binary patch literal 140 zcmV;70CWF%0X>Yd4#F@DM49~+9^0`)7YeEh9r=Vx$Z3Vo1tQsZ^-uQUHRa#N_PsqWsdl6y4gB3IZ_@g{^anVX;uKQLyl55y8UBQo$c&Halt{CLx&xMXWu9*U@{K z&4RBP7{2%3OrdQ7gW;$(owB}t8*I)S~CeB`^MkoUV2Vem@9p(L0)w_lQW<9hrW8}Lp-a&06cN!W1%_57`%50V^p=O;s>5GGj0_FfcPQQAjGyOUX$s)+@*;V7O;l`GH;7U4=DSY~i*} zX4UlY5DOCnAW$esOwLYBPc3E;zgFCF;8414@0~;|S165X(Us?jRuQD+=hvBe>)uPANCxnlNvRpg5d{J8P zUfX*R3n8i)n3RLRY2JOB^ylpLuiKSpaR0wp+YU9SIJKxOGZ|)5*F1*%=7rnZq(vC3 Rgc)p>E|r+84FHHIS+?zIWZVD% literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/d1/460e7619e8c02ed2d28e69c73e31307d56deba b/project/.gitold/objects/d1/460e7619e8c02ed2d28e69c73e31307d56deba new file mode 100644 index 0000000000000000000000000000000000000000..ce508b484b2f9544215f0bc8af78e3b4deeb63c9 GIT binary patch literal 98 zcmV-o0G2c?0}AA$koJu0Hm=d E_NYNIHvj+t literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/d2/0edb5e0d2c5bc477e6580450be8b7ac300bb85 b/project/.gitold/objects/d2/0edb5e0d2c5bc477e6580450be8b7ac300bb85 new file mode 100644 index 0000000..987aa93 --- /dev/null +++ b/project/.gitold/objects/d2/0edb5e0d2c5bc477e6580450be8b7ac300bb85 @@ -0,0 +1,2 @@ +xRQn0{O1M*N +r_mE:lbֱl6 s.pم8dBe,z@^}u%TpA+dE:ZeWLIps&<`˭t3L| +LP#,ldK(JPi\$A,5+Ux]'%iiW6t]7Δ.IE';VjDpn){tc %mh_<߾^)AϛcxJs 6ʠvr`ډìa2D+aBX2m5\p5#MhsL6g{疕 kGd|b+fr͛hYi(q>%C-J2 \ No newline at end of file diff --git a/project/.gitold/objects/d4/f83f7f8bf0387ab3873e312961337fa3589b85 b/project/.gitold/objects/d4/f83f7f8bf0387ab3873e312961337fa3589b85 new file mode 100644 index 0000000000000000000000000000000000000000..cfbc90b029327fc619fb1dfb10ead39e9352afe6 GIT binary patch literal 410 zcmV;L0cHMp0gX~oPTVjM<$F&t1g)TIcN2ny0D1F4fnTZuf_^PdG9+dlJGEywo38c@ z{pSk3K+nSkxB@njva~;~r6^;+=QlIYlS-Y!;qk#1+djMeeEsdqIh0h%WWc%~xW!83 zc{1>!U#vpnkd@q6q)BjdeK9%;-oYeDVzL@SDs?u4w=E3Uws!L;VtY=kP)21n^! zU~Yvf;HqQ8%^mEldq;XFEwvJDiAdJ@+2j6ARx4+!m!6^`(@wpKQ{si)+vRn=`vKM) z{+|yp=ym!$k9@&xW<>q(JRR*nGrbK@xEUsv>b%_yPM_Z&y9WQNv%B40VPQ9&uU+ZV Ew%_>7W&i*H literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/d5/64d0bc3dd917926892c55e3706cc116d5b165e b/project/.gitold/objects/d5/64d0bc3dd917926892c55e3706cc116d5b165e new file mode 100644 index 0000000000000000000000000000000000000000..24279dca4468ca5ca61e5498dbfd93f0f9f09795 GIT binary patch literal 53 zcmbx literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/d8/8611f1b33e8a7b4de78224d77a3d37bca497ec b/project/.gitold/objects/d8/8611f1b33e8a7b4de78224d77a3d37bca497ec new file mode 100644 index 0000000..f82ab20 --- /dev/null +++ b/project/.gitold/objects/d8/8611f1b33e8a7b4de78224d77a3d37bca497ec @@ -0,0 +1,4 @@ +xuUn@b`@)D>$MR$bx]P^|gfΜd?_-Or/ƈTFjv9j08IQ$B P=)ATr$?56[h>#eHS"vє(r|wkBpi8?jwG8Y{Og(%D\7 ! +c~ZY1F$?!2y ㎋YF='jiKF#XoA6°[eI@"_i$kB.r!ZsWY࠳~}i0ft [a0o/_lHMQw^\en*lE)pԵ_ PTa +痵LW=dU5thŽ%QY;׮NuZfR5%NH& l`Vif*06ecYkb8YNVdS-fpӴ@U-XU$e1+[-fnz؏1j wӟM= y=&5~BT!0nc+%gLJ?su*QfD|-bD)I?*y{qO8({sNAzp9Vlr0*3@h z0X}95HN(#N0jC^{LY{{JuEv%ks?7=xAVP9&4<`O5RL*2WF(>u>kUFMi0${b9vJr;% N!AXA=!f*90fgnpLXqNy0 literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/db/ca17e2be98e018fa588783a6b76275d0066735 b/project/.gitold/objects/db/ca17e2be98e018fa588783a6b76275d0066735 new file mode 100644 index 0000000000000000000000000000000000000000..2a694c4a5e6a18d0345e6e54d9ba837146610698 GIT binary patch literal 1050 zcmV+#1m*j90lijRPuoZo-e>=c*~lU`O$wBKDQwcEQ0+#lx(~2@2`HL41I*%#t+5A) z5dXdB%*A6*lBTM(>j!Xr?%z4*o0;duoE#tj_WqaOKa}@nv|w3IB}=MW@~ocKtCCft zqx3WqbjhlcW{jMb<@M*{j%U{w{E;u1SX8G`q$(r%i{&Mg*XK$~CbAVsz+qL9%X`M^ z3tH3YB_i;Yl0VX#5h^8Jkyz3v6rO6?!2w}+Z^JDp{?haIt+rl-Z#88Vkl28UV;^dSi-3!EGTK z&F+Z{;xPT87avN2fL#k;71~LmOByHJ5;GrCRztP!k_Oy5>T$uH;o? zV>F-`0ObPQRikz#DD~BtI@FTrLUa)tzW_co(rvneDaMwWWT7t@06!*LJZNIVoTE|u z(I}vI)K6d5jS|!8`P(G0e$Nbsoz4xwijM zBW3aQogV7g?FMcduhyD0Gma3ao0N4YAn3H)4$}{hn`^Ge55IJO#S6=9f6xB~WCeR7 z4cFo9BtdK1`ol5w@4Qd~b{n(lXZYT~*<~`RxUd!+UUwTfigjTu4VkK6hB<4QM9uC@}lCJYSGa7lX>a9)4aD&c_IBs%omN*{1K zlQLN1gZ+K-$0L>9+0&E;+_!(waFJ(5z>(^uf|vExjvv?xVl3ygO3k4en*P*sI0j18 zg1~kLA^gOko_9pXGT;ku!C;a>8M<6t^w?|+E0DyJdcW|vu)A3qG8;7y zILyoyi@4M3sggmtE}$i>4{C)bD0+lbC{T`9(aVUBFEu2ILCk^ U>o{#z-)i_FdW~MAZ@}kSS>baR@&Et; literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/de/3979f007134724056316a1b689032567575438 b/project/.gitold/objects/de/3979f007134724056316a1b689032567575438 new file mode 100644 index 0000000000000000000000000000000000000000..185916b1e27b9ae6d50c5ee7ddc7ecd8e51b8614 GIT binary patch literal 276 zcmV+v0qg#F0hQCuYQr!L0N|bT6u#xs>jvxoV6?jh1{v(o^x(K^XX08xw%6tD*K~0c zdnqM3Np|>4+o@bJfF{n z;>NJ2XSPbYQfV7ma%}6UukOtyDl=J^xMuaah%ir5236ROJz>xu}*}AVH7EX8}J_ zaNAn3{ISG~Hatb07UkEZsP!C#BWars3)6{Kh8h+6X$09+iC5=QWPKbc!y$BQkb^c7 a{SusaYWP}zzl>c4cr=3bL-GscNKUf}+lxH_ literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/e2/5e8749e8fbf8e6a1884494051265e8adc26381 b/project/.gitold/objects/e2/5e8749e8fbf8e6a1884494051265e8adc26381 new file mode 100644 index 0000000000000000000000000000000000000000..4028cc70fca02c7895a71a45dce353c52da2c829 GIT binary patch literal 758 zcmVhLJxP_Wj~?Q1&@nOgFu61HEt*WUXYx`aV+e_ zooTd0oclcYaGAF3HYY3m>Cerr{}yfMmYnhpEWX@MN8|ATu2a_d!v#)JiWlSUhtCHf zYkH~-xCjuZ*=rySVERO;uBE;A8^fa%y~b<1j=Cf-A>FQ#*6hwCITR^LiwH8|K3_+9 z-_1H7va~o3_{qC9Qq9Lby3c3aThm!R-ya|OV(QD-IR{*|FK_S9TN~QBR{dtnQf`~& zV{j9sJFqe$n4^Yo0;Zu|?;G{(<(MNynjimlAOloT#A^mME~*kCDsmz*k`nP1=PR7$ zS&?OcNHygi?Cwc6x{yjkDERl0ci|{}3#QD{_hT%})1MzNDEgS2fEJ7Z!*_`?KY{lX zt4~us#sY81*NF!Fm0S?E2Q&Dr-W~)vXI-+PM(D`k#MpH4^u5K%l?55Qyz>-m-c=N- ze1qp@B$kNOa6ju4r?@^~_2R!wmRH|{7)JK*CyOHhR-m#hB$8E?Wo3y=R-(M7D~3vr z@~X&04R4yPG%)kbNJ&Q<_+{N)!nT2kvjzMZ%5E$X5mf)H9T z%n>D|6qIE|vgdMKpiEwsyv{FM%J1kJy6M$PceK&RT|B<|RMqHh2ij7Rwwrdwp0nHD z`@P6o2X0Utx|1H;Ez^oG!))E3^4B@O{2JawtGyO2Q~$20wXqJ40}B_wfis{-GiS)P z>H9X3))Q-#+F5SJq4U@$Z=Ff%bxa4sz>O3h2I)GNp+V32v#y)kz3xqzUqt;%y= PJ>#!e%ZUO2g#QvJPd*od literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/e8/47027bdbedd033df76a4dc1a1f5eba3da3eb7b b/project/.gitold/objects/e8/47027bdbedd033df76a4dc1a1f5eba3da3eb7b new file mode 100644 index 0000000..c9406ce --- /dev/null +++ b/project/.gitold/objects/e8/47027bdbedd033df76a4dc1a1f5eba3da3eb7b @@ -0,0 +1,3 @@ +xmQN0eWv)Tj҅T*H#'QU€c#=f}MdnȳG͐h>. TK؃y +F^մ'9f`shPpDZJ +Q=s:*5U8'20,> bNM9?`v +D;P˷w8]Q.5U,k)T콴[oFLHZ :Ĺ|uE㨎) \ No newline at end of file diff --git a/project/.gitold/objects/e9/2efc5969392ae3d73489d066d8cd625dd27718 b/project/.gitold/objects/e9/2efc5969392ae3d73489d066d8cd625dd27718 new file mode 100644 index 0000000000000000000000000000000000000000..952f92ce34881e996a0f77db6167bf25bc71e947 GIT binary patch literal 91 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 HHw$HGEg!7 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 literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/f7/fc322866f1218d5d0f4050827e3f438b59837c b/project/.gitold/objects/f7/fc322866f1218d5d0f4050827e3f438b59837c new file mode 100644 index 0000000000000000000000000000000000000000..b0527e8199e6795b58eaa6559a89a8a6bf33b981 GIT binary patch literal 246 zcmV5F=a3@00IT){JfH){G6QBB8H1@d}Wd^4(MIF)R%eO&d{JX z?A|VjBG?RVtt5wP-;Pbab`(=Q6+4q$Y$4easU7T literal 0 HcmV?d00001 diff --git a/project/.gitold/objects/f9/f4cc539ba6fee13b96c7ee0a6f1d861785a3be b/project/.gitold/objects/f9/f4cc539ba6fee13b96c7ee0a6f1d861785a3be new file mode 100644 index 0000000..c1a83ab --- /dev/null +++ b/project/.gitold/objects/f9/f4cc539ba6fee13b96c7ee0a6f1d861785a3be @@ -0,0 +1 @@ +xE10s4 Bʛ0?2?q,jݨ{}]x98_1ɡp m zͶxp57U:w.URbIO;>G&T \ No newline at end of file diff --git a/project/.gitold/refs/heads/master b/project/.gitold/refs/heads/master new file mode 100644 index 0000000..c9f6855 --- /dev/null +++ b/project/.gitold/refs/heads/master @@ -0,0 +1 @@ +1f0e3e0a17b95b48e87e3173c302101ab7200c40 diff --git a/project/assets/app.js b/project/assets/app.js new file mode 100644 index 0000000..a9d6912 --- /dev/null +++ b/project/assets/app.js @@ -0,0 +1,12 @@ +/* + * Welcome to your app's main JavaScript file! + * + * We recommend including the built version of this JavaScript file + * (and its CSS file) in your base layout (base.html.twig). + */ + +// any CSS you import will output into a single css file (app.css in this case) +import './styles/global.less'; + +// start the Stimulus application +import './bootstrap'; diff --git a/project/assets/bootstrap.js b/project/assets/bootstrap.js new file mode 100644 index 0000000..4ab2df6 --- /dev/null +++ b/project/assets/bootstrap.js @@ -0,0 +1,11 @@ +import { startStimulusApp } from '@symfony/stimulus-bridge'; + +// Registers Stimulus controllers from controllers.json and in the controllers/ directory +export const app = startStimulusApp(require.context( + '@symfony/stimulus-bridge/lazy-controller-loader!./controllers', + true, + /\.[jt]sx?$/ +)); + +// register any custom, 3rd party controllers here +// app.register('some_controller_name', SomeImportedController); diff --git a/project/assets/controllers.json b/project/assets/controllers.json new file mode 100644 index 0000000..a1c6e90 --- /dev/null +++ b/project/assets/controllers.json @@ -0,0 +1,4 @@ +{ + "controllers": [], + "entrypoints": [] +} diff --git a/project/assets/controllers/hello_controller.js b/project/assets/controllers/hello_controller.js new file mode 100644 index 0000000..e847027 --- /dev/null +++ b/project/assets/controllers/hello_controller.js @@ -0,0 +1,16 @@ +import { Controller } from '@hotwired/stimulus'; + +/* + * This is an example Stimulus controller! + * + * Any element with a data-controller="hello" attribute will cause + * this controller to be executed. The name "hello" comes from the filename: + * hello_controller.js -> "hello" + * + * Delete this file or adapt it for your use! + */ +export default class extends Controller { + connect() { + this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js'; + } +} diff --git a/project/assets/styles/app.css b/project/assets/styles/app.css new file mode 100644 index 0000000..cb33b13 --- /dev/null +++ b/project/assets/styles/app.css @@ -0,0 +1,3 @@ +body { + background-color: lightgray; +} diff --git a/project/assets/styles/global.less b/project/assets/styles/global.less new file mode 100644 index 0000000..9ba1b29 --- /dev/null +++ b/project/assets/styles/global.less @@ -0,0 +1 @@ +@import "~bootstrap/dist/css/bootstrap.min.css"; diff --git a/project/bin/console b/project/bin/console new file mode 100755 index 0000000..c933dc5 --- /dev/null +++ b/project/bin/console @@ -0,0 +1,17 @@ +#!/usr/bin/env php +=7.4", + "ext-ctype": "*", + "ext-iconv": "*", + "doctrine/annotations": "^1.0", + "doctrine/doctrine-bundle": "^2.5", + "doctrine/doctrine-migrations-bundle": "^3.2", + "doctrine/orm": "^2.11", + "phpdocumentor/reflection-docblock": "^5.3", + "phpoffice/phpspreadsheet": "^1.22", + "phpstan/phpdoc-parser": "^1.2", + "sensio/framework-extra-bundle": "^6.1", + "symfony/asset": "5.4.*", + "symfony/console": "5.4.*", + "symfony/doctrine-messenger": "5.4.*", + "symfony/dotenv": "5.4.*", + "symfony/expression-language": "5.4.*", + "symfony/flex": "^1.17|^2", + "symfony/form": "5.4.*", + "symfony/framework-bundle": "5.4.*", + "symfony/http-client": "5.4.*", + "symfony/intl": "5.4.*", + "symfony/mailer": "5.4.*", + "symfony/mime": "5.4.*", + "symfony/monolog-bundle": "^3.0", + "symfony/notifier": "5.4.*", + "symfony/process": "5.4.*", + "symfony/property-access": "5.4.*", + "symfony/property-info": "5.4.*", + "symfony/proxy-manager-bridge": "5.4.*", + "symfony/runtime": "5.4.*", + "symfony/security-bundle": "5.4.*", + "symfony/serializer": "5.4.*", + "symfony/string": "5.4.*", + "symfony/translation": "5.4.*", + "symfony/twig-bundle": "5.4.*", + "symfony/validator": "5.4.*", + "symfony/web-link": "5.4.*", + "symfony/webapp-meta": "^1.0", + "symfony/webpack-encore-bundle": "^1.14", + "symfony/yaml": "5.4.*", + "twig/extra-bundle": "^2.12|^3.0", + "twig/twig": "^2.12|^3.0", + "ext-curl": "*", + "ext-json": "*", + "ext-simplexml": "*", + "ext-dom": "*", + "ext-libxml": "*" + }, + "config": { + "allow-plugins": { + "composer/package-versions-deprecated": true, + "symfony/flex": true, + "symfony/runtime": true + }, + "optimize-autoloader": true, + "preferred-install": { + "*": "dist" + }, + "sort-packages": true + }, + "autoload": { + "psr-4": { + "App\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "App\\Tests\\": "tests/" + } + }, + "replace": { + "symfony/polyfill-ctype": "*", + "symfony/polyfill-iconv": "*", + "symfony/polyfill-php72": "*" + }, + "scripts": { + "auto-scripts": { + "cache:clear": "symfony-cmd", + "assets:install %PUBLIC_DIR%": "symfony-cmd" + }, + "post-install-cmd": [ + "@auto-scripts" + ], + "post-update-cmd": [ + "@auto-scripts" + ] + }, + "conflict": { + "symfony/symfony": "*" + }, + "extra": { + "symfony": { + "allow-contrib": false, + "require": "5.4.*" + } + }, + "require-dev": { + "symfony/debug-bundle": "5.4.*", + "symfony/maker-bundle": "^1.0", + "symfony/stopwatch": "5.4.*", + "symfony/web-profiler-bundle": "5.4.*" + } +} diff --git a/project/composer.lock b/project/composer.lock new file mode 100644 index 0000000..eef9fa9 --- /dev/null +++ b/project/composer.lock @@ -0,0 +1,8985 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "c7d5407f0c4f5f2541c1ca93c55b048e", + "packages": [ + { + "name": "doctrine/annotations", + "version": "1.13.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "5b668aef16090008790395c02c893b1ba13f7e08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", + "reference": "5b668aef16090008790395c02c893b1ba13f7e08", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" + }, + "require-dev": { + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/coding-standard": "^6.0 || ^8.1", + "phpstan/phpstan": "^0.12.20", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", + "symfony/cache": "^4.4 || ^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.13.2" + }, + "time": "2021-08-05T19:00:23+00:00" + }, + { + "name": "doctrine/cache", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "cache/integration-tests": "dev-master", + "doctrine/coding-standard": "^8.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "predis/predis": "~1.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev", + "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/2.1.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], + "time": "2021-07-17T14:49:29+00:00" + }, + { + "name": "doctrine/collections", + "version": "1.6.8", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/1958a744696c6bb3bb0d28db2611dc11610e78af", + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af", + "shasum": "" + }, + "require": { + "php": "^7.1.3 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", + "vimeo/psalm": "^4.2.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", + "keywords": [ + "array", + "collections", + "iterators", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/collections/issues", + "source": "https://github.com/doctrine/collections/tree/1.6.8" + }, + "time": "2021-08-10T18:51:53+00:00" + }, + { + "name": "doctrine/common", + "version": "3.2.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "295082d3750987065912816a9d536c2df735f637" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/295082d3750987065912816a9d536c2df735f637", + "reference": "295082d3750987065912816a9d536c2df735f637", + "shasum": "" + }, + "require": { + "doctrine/persistence": "^2.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.4.1", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5", + "vimeo/psalm": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", + "keywords": [ + "common", + "doctrine", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/common/issues", + "source": "https://github.com/doctrine/common/tree/3.2.2" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "type": "tidelift" + } + ], + "time": "2022-02-02T09:15:57+00:00" + }, + { + "name": "doctrine/dbal", + "version": "3.3.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "35eae239ef515d55ebb24e9d4715cad09a4f58ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/35eae239ef515d55ebb24e9d4715cad09a4f58ed", + "reference": "35eae239ef515d55ebb24e9d4715cad09a4f58ed", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/cache": "^1.11|^2.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "php": "^7.3 || ^8.0", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" + }, + "require-dev": { + "doctrine/coding-standard": "9.0.0", + "jetbrains/phpstorm-stubs": "2021.1", + "phpstan/phpstan": "1.4.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "9.5.11", + "psalm/plugin-phpunit": "0.16.1", + "squizlabs/php_codesniffer": "3.6.2", + "symfony/cache": "^5.2|^6.0", + "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0", + "vimeo/psalm": "4.16.1" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/3.3.2" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2022-02-05T16:33:45+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "v0.5.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0|^7.0|^8.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0", + "psr/log": "^1.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" + }, + "time": "2021-03-21T12:59:47+00:00" + }, + { + "name": "doctrine/doctrine-bundle", + "version": "2.5.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineBundle.git", + "reference": "f1423b2a640b6ac545b6e0c02575427a4dc1e9dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/f1423b2a640b6ac545b6e0c02575427a4dc1e9dc", + "reference": "f1423b2a640b6ac545b6e0c02575427a4dc1e9dc", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1", + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/dbal": "^2.13.1|^3.3.2", + "doctrine/persistence": "^2.2", + "doctrine/sql-formatter": "^1.0.1", + "php": "^7.1 || ^8.0", + "symfony/cache": "^4.3.3|^5.0|^6.0", + "symfony/config": "^4.4.3|^5.0|^6.0", + "symfony/console": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/dependency-injection": "^4.4.18|^5.0|^6.0", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/doctrine-bridge": "^4.4.22|^5.2.7|^6.0", + "symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/service-contracts": "^1.1.1|^2.0|^3" + }, + "conflict": { + "doctrine/orm": "<2.9|>=3.0", + "twig/twig": "<1.34|>=2.0,<2.4" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "doctrine/orm": "^2.9 || ^3.0", + "friendsofphp/proxy-manager-lts": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3 || ^10.0", + "psalm/plugin-phpunit": "^0.16.1", + "psalm/plugin-symfony": "^3", + "symfony/phpunit-bridge": "^5.2|^6.0", + "symfony/property-info": "^4.3.3|^5.0|^6.0", + "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0|^6.0", + "symfony/security-bundle": "^4.4|^5.0|^6.0", + "symfony/twig-bridge": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/validator": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", + "symfony/yaml": "^3.4.30|^4.3.3|^5.0|^6.0", + "twig/twig": "^1.34|^2.12|^3.0", + "vimeo/psalm": "^4.7" + }, + "suggest": { + "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", + "ext-pdo": "*", + "symfony/web-profiler-bundle": "To use the data collector." + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Doctrine\\Bundle\\DoctrineBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Doctrine Project", + "homepage": "https://www.doctrine-project.org/" + } + ], + "description": "Symfony DoctrineBundle", + "homepage": "https://www.doctrine-project.org", + "keywords": [ + "database", + "dbal", + "orm", + "persistence" + ], + "support": { + "issues": "https://github.com/doctrine/DoctrineBundle/issues", + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.5.6" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", + "type": "tidelift" + } + ], + "time": "2022-02-13T20:17:53+00:00" + }, + { + "name": "doctrine/doctrine-migrations-bundle", + "version": "3.2.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", + "reference": "3393f411ba25ade21969c33f2053220044854d01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/3393f411ba25ade21969c33f2053220044854d01", + "reference": "3393f411ba25ade21969c33f2053220044854d01", + "shasum": "" + }, + "require": { + "doctrine/doctrine-bundle": "~1.0|~2.0", + "doctrine/migrations": "^3.2", + "php": "^7.2|^8.0", + "symfony/framework-bundle": "~3.4|~4.0|~5.0|~6.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.0", + "doctrine/orm": "^2.6", + "doctrine/persistence": "^1.3||^2.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^8.0|^9.0", + "vimeo/psalm": "^4.11" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Doctrine\\Bundle\\MigrationsBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Doctrine Project", + "homepage": "https://www.doctrine-project.org" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DoctrineMigrationsBundle", + "homepage": "https://www.doctrine-project.org", + "keywords": [ + "dbal", + "migrations", + "schema" + ], + "support": { + "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", + "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.2.2" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-migrations-bundle", + "type": "tidelift" + } + ], + "time": "2022-02-01T18:08:07+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2020-05-29T18:28:51+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "vimeo/psalm": "^4.10" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2021-10-22T20:16:43+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-11-10T18:47:58+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-02-28T11:07:21+00:00" + }, + { + "name": "doctrine/migrations", + "version": "3.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/migrations.git", + "reference": "e7df670aa9565b435ffec636cebdb4d0a1987f10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/e7df670aa9565b435ffec636cebdb4d0a1987f10", + "reference": "e7df670aa9565b435ffec636cebdb4d0a1987f10", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/dbal": "^2.11 || ^3.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "friendsofphp/proxy-manager-lts": "^1.0", + "php": "^7.2 || ^8.0", + "psr/log": "^1.1.3 || ^2 || ^3", + "symfony/console": "^3.4 || ^4.4.16 || ^5.0 || ^6.0", + "symfony/stopwatch": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.0", + "doctrine/orm": "^2.6", + "doctrine/persistence": "^1.3 || ^2.0", + "doctrine/sql-formatter": "^1.0", + "ergebnis/composer-normalize": "^2.9", + "ext-pdo_sqlite": "*", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpstan/phpstan-symfony": "^0.12", + "phpunit/phpunit": "^8.5 || ^9.4", + "symfony/cache": "^3.4.26 || ^4.2.12 || ^5.0 || ^6.0", + "symfony/process": "^3.4 || ^4.0 || ^5.0 || ^6.0", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "suggest": { + "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", + "symfony/yaml": "Allows the use of yaml for migration configuration files." + }, + "bin": [ + "bin/doctrine-migrations" + ], + "type": "library", + "extra": { + "composer-normalize": { + "indent-size": 4, + "indent-style": "space" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Michael Simonson", + "email": "contact@mikesimonson.com" + } + ], + "description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.", + "homepage": "https://www.doctrine-project.org/projects/migrations.html", + "keywords": [ + "database", + "dbal", + "migrations" + ], + "support": { + "issues": "https://github.com/doctrine/migrations/issues", + "source": "https://github.com/doctrine/migrations/tree/3.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fmigrations", + "type": "tidelift" + } + ], + "time": "2022-01-28T21:58:35+00:00" + }, + { + "name": "doctrine/orm", + "version": "2.11.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/orm.git", + "reference": "4b88ce787d3916c8366abf52f6c658a7a27ed3a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/orm/zipball/4b88ce787d3916c8366abf52f6c658a7a27ed3a6", + "reference": "4b88ce787d3916c8366abf52f6c658a7a27ed3a6", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/cache": "^1.12.1 || ^2.1.1", + "doctrine/collections": "^1.5", + "doctrine/common": "^3.0.3", + "doctrine/dbal": "^2.13.1 || ^3.2", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.1", + "doctrine/inflector": "^1.4 || ^2.0", + "doctrine/instantiator": "^1.3", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^2.2", + "ext-ctype": "*", + "ext-pdo": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3", + "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "symfony/polyfill-php72": "^1.23", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "doctrine/annotations": "<1.13 || >= 2.0" + }, + "require-dev": { + "doctrine/annotations": "^1.13", + "doctrine/coding-standard": "^9.0", + "phpbench/phpbench": "^0.16.10 || ^1.0", + "phpstan/phpstan": "1.4.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "squizlabs/php_codesniffer": "3.6.2", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", + "vimeo/psalm": "4.19.0" + }, + "suggest": { + "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", + "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" + }, + "bin": [ + "bin/doctrine" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\ORM\\": "lib/Doctrine/ORM" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Object-Relational-Mapper for PHP", + "homepage": "https://www.doctrine-project.org/projects/orm.html", + "keywords": [ + "database", + "orm" + ], + "support": { + "issues": "https://github.com/doctrine/orm/issues", + "source": "https://github.com/doctrine/orm/tree/2.11.1" + }, + "time": "2022-01-30T21:47:06+00:00" + }, + { + "name": "doctrine/persistence", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/persistence.git", + "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/f8af155c1e7963f3d2b4415097d55757bbaa53d8", + "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/collections": "^1.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "php": "^7.1 || ^8.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0" + }, + "conflict": { + "doctrine/annotations": "<1.0 || >=2.0", + "doctrine/common": "<2.10@dev" + }, + "require-dev": { + "composer/package-versions-deprecated": "^1.11", + "doctrine/annotations": "^1.0", + "doctrine/coding-standard": "^6.0 || ^9.0", + "doctrine/common": "^3.0", + "phpstan/phpstan": "1.2.0", + "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", + "symfony/cache": "^4.4 || ^5.0 || ^6.0", + "vimeo/psalm": "4.13.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common", + "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", + "keywords": [ + "mapper", + "object", + "odm", + "orm", + "persistence" + ], + "support": { + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/2.3.0" + }, + "time": "2022-01-09T19:58:46+00:00" + }, + { + "name": "doctrine/sql-formatter", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/sql-formatter.git", + "reference": "20c39c2de286a9d3262cc8ed282a4ae60e265894" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/20c39c2de286a9d3262cc8ed282a4ae60e265894", + "reference": "20c39c2de286a9d3262cc8ed282a4ae60e265894", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4" + }, + "bin": [ + "bin/sql-formatter" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\SqlFormatter\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeremy Dorn", + "email": "jeremy@jeremydorn.com", + "homepage": "http://jeremydorn.com/" + } + ], + "description": "a PHP SQL highlighting library", + "homepage": "https://github.com/doctrine/sql-formatter/", + "keywords": [ + "highlight", + "sql" + ], + "support": { + "issues": "https://github.com/doctrine/sql-formatter/issues", + "source": "https://github.com/doctrine/sql-formatter/tree/1.1.2" + }, + "time": "2021-11-05T11:11:14+00:00" + }, + { + "name": "egulias/email-validator", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "ee0db30118f661fb166bcffbf5d82032df484697" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697", + "reference": "ee0db30118f661fb166bcffbf5d82032df484697", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/3.1.2" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2021-10-11T09:18:27+00:00" + }, + { + "name": "ezyang/htmlpurifier", + "version": "v4.14.0", + "source": { + "type": "git", + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/12ab42bd6e742c70c0a52f7b82477fcd44e64b75", + "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "type": "library", + "autoload": { + "files": [ + "library/HTMLPurifier.composer.php" + ], + "psr-0": { + "HTMLPurifier": "library/" + }, + "exclude-from-classmap": [ + "/library/HTMLPurifier/Language/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" + } + ], + "description": "Standards compliant HTML filter written in PHP", + "homepage": "http://htmlpurifier.org/", + "keywords": [ + "html" + ], + "support": { + "issues": "https://github.com/ezyang/htmlpurifier/issues", + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.14.0" + }, + "time": "2021-12-25T01:21:49+00:00" + }, + { + "name": "friendsofphp/proxy-manager-lts", + "version": "v1.0.6", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", + "reference": "7a3d6121bb5e93014dfbb354d48538e75e9a47d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/7a3d6121bb5e93014dfbb354d48538e75e9a47d6", + "reference": "7a3d6121bb5e93014dfbb354d48538e75e9a47d6", + "shasum": "" + }, + "require": { + "laminas/laminas-code": "~3.4.1|^4.0", + "php": ">=7.1", + "symfony/filesystem": "^4.4.17|^5.0|^6.0" + }, + "conflict": { + "laminas/laminas-stdlib": "<3.2.1", + "zendframework/zend-stdlib": "<3.2.1" + }, + "replace": { + "ocramius/proxy-manager": "^2.1" + }, + "require-dev": { + "ext-phar": "*", + "symfony/phpunit-bridge": "^5.2|^6.0" + }, + "type": "library", + "extra": { + "thanks": { + "name": "ocramius/proxy-manager", + "url": "https://github.com/Ocramius/ProxyManager" + } + }, + "autoload": { + "psr-4": { + "ProxyManager\\": "src/ProxyManager" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + } + ], + "description": "Adding support for a wider range of PHP versions to ocramius/proxy-manager", + "homepage": "https://github.com/FriendsOfPHP/proxy-manager-lts", + "keywords": [ + "aop", + "lazy loading", + "proxy", + "proxy pattern", + "service proxies" + ], + "support": { + "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", + "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.6" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager", + "type": "tidelift" + } + ], + "time": "2022-02-28T14:50:27+00:00" + }, + { + "name": "laminas/laminas-code", + "version": "4.5.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-code.git", + "reference": "6fd96d4d913571a2cd056a27b123fa28cb90ac4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/6fd96d4d913571a2cd056a27b123fa28cb90ac4e", + "reference": "6fd96d4d913571a2cd056a27b123fa28cb90ac4e", + "shasum": "" + }, + "require": { + "php": ">=7.4, <8.2" + }, + "require-dev": { + "doctrine/annotations": "^1.13.2", + "ext-phar": "*", + "laminas/laminas-coding-standard": "^2.3.0", + "laminas/laminas-stdlib": "^3.6.1", + "phpunit/phpunit": "^9.5.10", + "psalm/plugin-phpunit": "^0.16.1", + "vimeo/psalm": "^4.13.1" + }, + "suggest": { + "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", + "laminas/laminas-stdlib": "Laminas\\Stdlib component" + }, + "type": "library", + "autoload": { + "files": [ + "polyfill/ReflectionEnumPolyfill.php" + ], + "psr-4": { + "Laminas\\Code\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", + "homepage": "https://laminas.dev", + "keywords": [ + "code", + "laminas", + "laminasframework" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-code/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-code/issues", + "rss": "https://github.com/laminas/laminas-code/releases.atom", + "source": "https://github.com/laminas/laminas-code" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-12-19T18:06:55+00:00" + }, + { + "name": "maennchen/zipstream-php", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/maennchen/ZipStream-PHP.git", + "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/c4c5803cc1f93df3d2448478ef79394a5981cc58", + "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58", + "shasum": "" + }, + "require": { + "myclabs/php-enum": "^1.5", + "php": ">= 7.1", + "psr/http-message": "^1.0", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "ext-zip": "*", + "guzzlehttp/guzzle": ">= 6.3", + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": ">= 7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "ZipStream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paul Duncan", + "email": "pabs@pablotron.org" + }, + { + "name": "Jonatan Männchen", + "email": "jonatan@maennchen.ch" + }, + { + "name": "Jesse Donat", + "email": "donatj@gmail.com" + }, + { + "name": "András Kolesár", + "email": "kolesar@kolesar.hu" + } + ], + "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", + "keywords": [ + "stream", + "zip" + ], + "support": { + "issues": "https://github.com/maennchen/ZipStream-PHP/issues", + "source": "https://github.com/maennchen/ZipStream-PHP/tree/master" + }, + "funding": [ + { + "url": "https://opencollective.com/zipstream", + "type": "open_collective" + } + ], + "time": "2020-05-30T13:11:16+00:00" + }, + { + "name": "markbaker/complex", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPComplex.git", + "reference": "ab8bc271e404909db09ff2d5ffa1e538085c0f22" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/ab8bc271e404909db09ff2d5ffa1e538085c0f22", + "reference": "ab8bc271e404909db09ff2d5ffa1e538085c0f22", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "phpcompatibility/php-compatibility": "^9.0", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.3", + "squizlabs/php_codesniffer": "^3.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Complex\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@lange.demon.co.uk" + } + ], + "description": "PHP Class for working with complex numbers", + "homepage": "https://github.com/MarkBaker/PHPComplex", + "keywords": [ + "complex", + "mathematics" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPComplex/issues", + "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.1" + }, + "time": "2021-06-29T15:32:53+00:00" + }, + { + "name": "markbaker/matrix", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPMatrix.git", + "reference": "c66aefcafb4f6c269510e9ac46b82619a904c576" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/c66aefcafb4f6c269510e9ac46b82619a904c576", + "reference": "c66aefcafb4f6c269510e9ac46b82619a904c576", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "phpcompatibility/php-compatibility": "^9.0", + "phpdocumentor/phpdocumentor": "2.*", + "phploc/phploc": "^4.0", + "phpmd/phpmd": "2.*", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.3", + "sebastian/phpcpd": "^4.0", + "squizlabs/php_codesniffer": "^3.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Matrix\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@demon-angel.eu" + } + ], + "description": "PHP Class for working with matrices", + "homepage": "https://github.com/MarkBaker/PHPMatrix", + "keywords": [ + "mathematics", + "matrix", + "vector" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPMatrix/issues", + "source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.0" + }, + "time": "2021-07-01T19:01:15+00:00" + }, + { + "name": "monolog/monolog", + "version": "2.3.5", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9", + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7", + "graylog2/gelf-php": "^1.4.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "php-console/php-console": "^3.1.3", + "phpspec/prophecy": "^1.6.1", + "phpstan/phpstan": "^0.12.91", + "phpunit/phpunit": "^8.5", + "predis/predis": "^1.1", + "rollbar/rollbar": "^1.3", + "ruflin/elastica": ">=0.90@dev", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/2.3.5" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2021-10-01T21:08:31+00:00" + }, + { + "name": "myclabs/php-enum", + "version": "1.8.3", + "source": { + "type": "git", + "url": "https://github.com/myclabs/php-enum.git", + "reference": "b942d263c641ddb5190929ff840c68f78713e937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/php-enum/zipball/b942d263c641ddb5190929ff840c68f78713e937", + "reference": "b942d263c641ddb5190929ff840c68f78713e937", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.3 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "1.*", + "vimeo/psalm": "^4.6.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "MyCLabs\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP Enum contributors", + "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" + } + ], + "description": "PHP Enum implementation", + "homepage": "http://github.com/myclabs/php-enum", + "keywords": [ + "enum" + ], + "support": { + "issues": "https://github.com/myclabs/php-enum/issues", + "source": "https://github.com/myclabs/php-enum/tree/1.8.3" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", + "type": "tidelift" + } + ], + "time": "2021-07-05T08:18:36+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", + "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0" + }, + "time": "2022-01-04T19:58:01+00:00" + }, + { + "name": "phpoffice/phpspreadsheet", + "version": "1.22.0", + "source": { + "type": "git", + "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", + "reference": "3a9e29b4f386a08a151a33578e80ef1747037a48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/3a9e29b4f386a08a151a33578e80ef1747037a48", + "reference": "3a9e29b4f386a08a151a33578e80ef1747037a48", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-fileinfo": "*", + "ext-gd": "*", + "ext-iconv": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-xml": "*", + "ext-xmlreader": "*", + "ext-xmlwriter": "*", + "ext-zip": "*", + "ext-zlib": "*", + "ezyang/htmlpurifier": "^4.13", + "maennchen/zipstream-php": "^2.1", + "markbaker/complex": "^3.0", + "markbaker/matrix": "^3.0", + "php": "^7.3 || ^8.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/simple-cache": "^1.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "dompdf/dompdf": "^1.0", + "friendsofphp/php-cs-fixer": "^3.2", + "jpgraph/jpgraph": "^4.0", + "mpdf/mpdf": "8.0.17", + "phpcompatibility/php-compatibility": "^9.3", + "phpstan/phpstan": "^1.1", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^8.5 || ^9.0", + "squizlabs/php_codesniffer": "^3.6", + "tecnickcom/tcpdf": "^6.4" + }, + "suggest": { + "dompdf/dompdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)", + "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", + "mpdf/mpdf": "Option for rendering PDF with PDF Writer", + "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)" + }, + "type": "library", + "autoload": { + "psr-4": { + "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maarten Balliauw", + "homepage": "https://blog.maartenballiauw.be" + }, + { + "name": "Mark Baker", + "homepage": "https://markbakeruk.net" + }, + { + "name": "Franck Lefevre", + "homepage": "https://rootslabs.net" + }, + { + "name": "Erik Tilt" + }, + { + "name": "Adrien Crivelli" + } + ], + "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", + "homepage": "https://github.com/PHPOffice/PhpSpreadsheet", + "keywords": [ + "OpenXML", + "excel", + "gnumeric", + "ods", + "php", + "spreadsheet", + "xls", + "xlsx" + ], + "support": { + "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.22.0" + }, + "time": "2022-02-18T12:57:07+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "dbc093d7af60eff5cd575d2ed761b15ed40bd08e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/dbc093d7af60eff5cd575d2ed761b15ed40bd08e", + "reference": "dbc093d7af60eff5cd575d2ed761b15ed40bd08e", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.2.0" + }, + "time": "2021-09-16T20:46:02+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/link", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/link.git", + "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562", + "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Link\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for HTTP links", + "keywords": [ + "http", + "http-link", + "link", + "psr", + "psr-13", + "rest" + ], + "support": { + "source": "https://github.com/php-fig/link/tree/master" + }, + "time": "2016-10-28T16:06:13+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "sensio/framework-extra-bundle", + "version": "v6.2.6", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", + "reference": "6bd976c99ef3f78e31c9490a10ba6dd8901076eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/6bd976c99ef3f78e31c9490a10ba6dd8901076eb", + "reference": "6bd976c99ef3f78e31c9490a10ba6dd8901076eb", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0" + }, + "conflict": { + "doctrine/doctrine-cache-bundle": "<1.3.1", + "doctrine/persistence": "<1.3" + }, + "require-dev": { + "doctrine/dbal": "^2.10|^3.0", + "doctrine/doctrine-bundle": "^1.11|^2.0", + "doctrine/orm": "^2.5", + "symfony/browser-kit": "^4.4|^5.0|^6.0", + "symfony/doctrine-bridge": "^4.4|^5.0|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/monolog-bridge": "^4.0|^5.0|^6.0", + "symfony/monolog-bundle": "^3.2", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0", + "symfony/security-bundle": "^4.4|^5.0|^6.0", + "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/twig": "^1.34|^2.4|^3.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "6.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Sensio\\Bundle\\FrameworkExtraBundle\\": "src/" + }, + "exclude-from-classmap": [ + "/tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "This bundle provides a way to configure your controllers with annotations", + "keywords": [ + "annotations", + "controllers" + ], + "support": { + "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", + "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.6" + }, + "time": "2022-01-14T11:51:13+00:00" + }, + { + "name": "symfony/amqp-messenger", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/amqp-messenger.git", + "reference": "4175a0a98507e7ec575dca9b36e6c0a5a072d3fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/4175a0a98507e7ec575dca9b36e6c0a5a072d3fd", + "reference": "4175a0a98507e7ec575dca9b36e6c0a5a072d3fd", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/messenger": "^5.3|^6.0" + }, + "require-dev": { + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" + }, + "type": "symfony-messenger-bridge", + "autoload": { + "psr-4": { + "Symfony\\Component\\Messenger\\Bridge\\Amqp\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony AMQP extension Messenger Bridge", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/amqp-messenger/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-09T15:49:12+00:00" + }, + { + "name": "symfony/asset", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/asset.git", + "reference": "156e45cba14f9be3fe8b987e86f482a76aa078f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/asset/zipball/156e45cba14f9be3fe8b987e86f482a76aa078f3", + "reference": "156e45cba14f9be3fe8b987e86f482a76aa078f3", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/http-foundation": "<5.3" + }, + "require-dev": { + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/http-foundation": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Asset\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/asset/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/cache", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "b954c9397b226df319c6dfd002636ddaa4d848ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/b954c9397b226df319c6dfd002636ddaa4d848ef", + "reference": "b954c9397b226df319c6dfd002636ddaa4d848ef", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1.1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/var-exporter": "^4.4|^5.0|^6.0" + }, + "conflict": { + "doctrine/dbal": "<2.13.1", + "symfony/dependency-injection": "<4.4", + "symfony/http-kernel": "<4.4", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.13.1|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-21T15:00:19+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "ac2e168102a2e06a2624f0379bde94cd5854ced2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ac2e168102a2e06a2624f0379bde94cd5854ced2", + "reference": "ac2e168102a2e06a2624f0379bde94cd5854ced2", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-08-17T14:20:01+00:00" + }, + { + "name": "symfony/config", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "d65e1bd990c740e31feb07d2b0927b8d4df9956f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/d65e1bd990c740e31feb07d2b0927b8d4df9956f", + "reference": "d65e1bd990c740e31feb07d2b0927b8d4df9956f", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<4.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-03T09:50:52+00:00" + }, + { + "name": "symfony/console", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad", + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-24T12:45:35+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "17f31bc13ef2b577d3c652d71af49d000cbd5894" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/17f31bc13ef2b577d3c652d71af49d000cbd5894", + "reference": "17f31bc13ef2b577d3c652d71af49d000cbd5894", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<5.3", + "symfony/finder": "<4.4", + "symfony/proxy-manager-bridge": "<4.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^5.3|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4.26|^5.0|^6.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-24T09:30:07+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-07-12T14:48:14+00:00" + }, + { + "name": "symfony/doctrine-bridge", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/doctrine-bridge.git", + "reference": "0c61df4d8311d9ff25a01d479b9c85a0df3b376d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/0c61df4d8311d9ff25a01d479b9c85a0df3b376d", + "reference": "0c61df4d8311d9ff25a01d479b9c85a0df3b376d", + "shasum": "" + }, + "require": { + "doctrine/event-manager": "~1.0", + "doctrine/persistence": "^2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "doctrine/dbal": "<2.13.1", + "doctrine/lexer": "<1.1", + "doctrine/orm": "<2.7.4", + "phpunit/phpunit": "<5.4.3", + "symfony/cache": "<5.4", + "symfony/dependency-injection": "<4.4", + "symfony/form": "<5.1", + "symfony/http-kernel": "<5", + "symfony/messenger": "<4.4", + "symfony/property-info": "<5", + "symfony/proxy-manager-bridge": "<4.4.19", + "symfony/security-bundle": "<5", + "symfony/security-core": "<5.3", + "symfony/validator": "<5.2" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/collections": "~1.0", + "doctrine/data-fixtures": "^1.1", + "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/orm": "^2.7.4", + "psr/log": "^1|^2|^3", + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/doctrine-messenger": "^5.1|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/form": "^5.1.3|^6.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/property-info": "^5.0|^6.0", + "symfony/proxy-manager-bridge": "^4.4|^5.0|^6.0", + "symfony/security-core": "^5.3|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", + "symfony/validator": "^5.2|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "doctrine/data-fixtures": "", + "doctrine/dbal": "", + "doctrine/orm": "", + "symfony/form": "", + "symfony/property-info": "", + "symfony/validator": "" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Doctrine\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Doctrine with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/doctrine-bridge/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-09T08:59:58+00:00" + }, + { + "name": "symfony/doctrine-messenger", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/doctrine-messenger.git", + "reference": "335428f424807178c57b89fd2bed714fba4bf4af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/335428f424807178c57b89fd2bed714fba4bf4af", + "reference": "335428f424807178c57b89fd2bed714fba4bf4af", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/messenger": "^5.1|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "doctrine/dbal": "<2.13", + "doctrine/persistence": "<1.3" + }, + "require-dev": { + "doctrine/dbal": "^2.13|^3.0", + "doctrine/persistence": "^1.3|^2", + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" + }, + "type": "symfony-messenger-bridge", + "autoload": { + "psr-4": { + "Symfony\\Component\\Messenger\\Bridge\\Doctrine\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Doctrine Messenger Bridge", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/doctrine-messenger/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/83a2310904a4f5d4f42526227b5a578ac82232a9", + "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "require-dev": { + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "source": "https://github.com/symfony/dotenv/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-15T17:04:12+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5", + "reference": "c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dec8a9f58d20df252b9cd89f1c6c1530f747685d", + "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<4.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", + "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-07-12T14:48:14+00:00" + }, + { + "name": "symfony/expression-language", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/expression-language.git", + "reference": "c68c6d1a308f6e2a1382bdb3a317959e1ee9aa08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/c68c6d1a308f6e2a1382bdb3a317959e1ee9aa08", + "reference": "c68c6d1a308f6e2a1382bdb3a317959e1ee9aa08", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ExpressionLanguage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an engine that can compile and evaluate expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/expression-language/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "797680071ea8f71b94eb958680c50d0e002638f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/797680071ea8f71b94eb958680c50d0e002638f5", + "reference": "797680071ea8f71b94eb958680c50d0e002638f5", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-27T10:31:47+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d", + "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-26T16:34:36+00:00" + }, + { + "name": "symfony/flex", + "version": "v1.18.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "10e438f53a972439675dc720706f0cd5c0ed94f1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/10e438f53a972439675dc720706f0cd5c0ed94f1", + "reference": "10e438f53a972439675dc720706f0cd5c0ed94f1", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/dotenv": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "support": { + "issues": "https://github.com/symfony/flex/issues", + "source": "https://github.com/symfony/flex/tree/v1.18.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-16T17:26:46+00:00" + }, + { + "name": "symfony/form", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/form.git", + "reference": "18f4f8209d2db06fc3cf5ba3b2eb8e4706b34aac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/form/zipball/18f4f8209d2db06fc3cf5ba3b2eb8e4706b34aac", + "reference": "18f4f8209d2db06fc3cf5ba3b2eb8e4706b34aac", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/options-resolver": "^5.1|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.23", + "symfony/property-access": "^5.0.8|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<4.4", + "symfony/doctrine-bridge": "<4.4", + "symfony/error-handler": "<4.4.5", + "symfony/framework-bundle": "<4.4", + "symfony/http-kernel": "<4.4", + "symfony/translation": "<4.4", + "symfony/translation-contracts": "<1.1.7", + "symfony/twig-bridge": "<4.4" + }, + "require-dev": { + "doctrine/collections": "~1.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/security-csrf": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", + "symfony/validator": "^4.4.17|^5.1.9|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/security-csrf": "For protecting forms against CSRF attacks.", + "symfony/twig-bridge": "For templating with Twig.", + "symfony/validator": "For form validation." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Form\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows to easily create, process and reuse HTML forms", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/form/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-04T23:26:40+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "59eda813401a947efefa8509322b9adee576e926" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/59eda813401a947efefa8509322b9adee576e926", + "reference": "59eda813401a947efefa8509322b9adee576e926", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.2.5", + "symfony/cache": "^5.2|^6.0", + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^5.4.5|^6.0.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4.1|^5.0.1|^6.0", + "symfony/event-dispatcher": "^5.1|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", + "symfony/routing": "^5.3|^6.0" + }, + "conflict": { + "doctrine/annotations": "<1.13.1", + "doctrine/cache": "<1.11", + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "phpunit/phpunit": "<5.4.3", + "symfony/asset": "<5.3", + "symfony/console": "<5.2.5", + "symfony/dom-crawler": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/form": "<5.2", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<5.2", + "symfony/messenger": "<5.4", + "symfony/mime": "<4.4", + "symfony/property-access": "<5.3", + "symfony/property-info": "<4.4", + "symfony/security-csrf": "<5.3", + "symfony/serializer": "<5.2", + "symfony/service-contracts": ">=3.0", + "symfony/stopwatch": "<4.4", + "symfony/translation": "<5.3", + "symfony/twig-bridge": "<4.4", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<5.2", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<5.2" + }, + "require-dev": { + "doctrine/annotations": "^1.13.1", + "doctrine/cache": "^1.11|^2.0", + "doctrine/persistence": "^1.3|^2.0", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^5.3|^6.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dom-crawler": "^4.4.30|^5.3.7|^6.0", + "symfony/dotenv": "^5.1|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/form": "^5.2|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/mailer": "^5.2|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/notifier": "^5.4|^6.0", + "symfony/phpunit-bridge": "^5.3|^6.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/property-info": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0", + "symfony/security-bundle": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/string": "^5.0|^6.0", + "symfony/translation": "^5.3|^6.0", + "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "symfony/validator": "^5.2|^6.0", + "symfony/web-link": "^4.4|^5.0|^6.0", + "symfony/workflow": "^5.2|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/twig": "^2.10|^3.0" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-21T15:00:19+00:00" + }, + { + "name": "symfony/http-client", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "fab84798694e45b4571d305125215699eb2b1f73" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/fab84798694e45b4571d305125215699eb2b1f73", + "reference": "fab84798694e45b4571d305125215699eb2b1f73", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-client-contracts": "^2.4", + "symfony/polyfill-php73": "^1.11", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.0|^2|^3" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "2.4" + }, + "require-dev": { + "amphp/amp": "^2.5", + "amphp/http-client": "^4.2.1", + "amphp/http-tunnel": "^1.0", + "amphp/socket": "^1.1", + "guzzlehttp/promises": "^1.4", + "nyholm/psr7": "^1.0", + "php-http/httplug": "^1.0|^2.0", + "psr/http-client": "^1.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-client/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-27T08:46:18+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ec82e57b5b714dbb69300d348bd840b345e24166" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ec82e57b5b714dbb69300d348bd840b345e24166", + "reference": "ec82e57b5b714dbb69300d348bd840b345e24166", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-11-03T09:24:47+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "dd68a3b24262a902bc338fc7c9a2a61b7ab2029f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/dd68a3b24262a902bc338fc7c9a2a61b7ab2029f", + "reference": "dd68a3b24262a902bc338fc7c9a2a61b7ab2029f", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-21T15:00:19+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "c770c90bc71f1db911e2d996c991fdafe273ac84" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c770c90bc71f1db911e2d996c991fdafe273ac84", + "reference": "c770c90bc71f1db911e2d996c991fdafe273ac84", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.0|^6.0", + "symfony/http-foundation": "^5.3.7|^6.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.0", + "symfony/config": "<5.0", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<5.3", + "symfony/doctrine-bridge": "<5.0", + "symfony/form": "<5.0", + "symfony/http-client": "<5.0", + "symfony/mailer": "<5.0", + "symfony/messenger": "<5.0", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<5.0", + "symfony/validator": "<5.0", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-28T07:57:55+00:00" + }, + { + "name": "symfony/intl", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/intl.git", + "reference": "47a1413da15ff840d7c419fa704d32caba3276ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/intl/zipball/47a1413da15ff840d7c419fa704d32caba3276ac", + "reference": "47a1413da15ff840d7c419fa704d32caba3276ac", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/filesystem": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Intl\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Eriksen Costa", + "email": "eriksen.costa@infranology.com.br" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library", + "homepage": "https://symfony.com", + "keywords": [ + "i18n", + "icu", + "internationalization", + "intl", + "l10n", + "localization" + ], + "support": { + "source": "https://github.com/symfony/intl/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T13:55:17+00:00" + }, + { + "name": "symfony/mailer", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "f6e927ec95c957131e6b2c78790e1a6d4c576447" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/f6e927ec95c957131e6b2c78790e1a6d4c576447", + "reference": "f6e927ec95c957131e6b2c78790e1a6d4c576447", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3", + "php": ">=7.2.5", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/mime": "^5.2.6|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<4.4" + }, + "require-dev": { + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/messenger": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T10:48:33+00:00" + }, + { + "name": "symfony/messenger", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/messenger.git", + "reference": "4319c25b76573cff46f112ee8cc83fffa4b97579" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/messenger/zipball/4319c25b76573cff46f112ee8cc83fffa4b97579", + "reference": "4319c25b76573cff46f112ee8cc83fffa4b97579", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1|^2|^3", + "symfony/amqp-messenger": "^5.1|^6.0", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/doctrine-messenger": "^5.1|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/redis-messenger": "^5.1|^6.0" + }, + "conflict": { + "symfony/event-dispatcher": "<4.4", + "symfony/framework-bundle": "<4.4", + "symfony/http-kernel": "<4.4", + "symfony/serializer": "<5.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/serializer": "^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/validator": "^4.4|^5.0|^6.0" + }, + "suggest": { + "enqueue/messenger-adapter": "For using the php-enqueue library as a transport." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Messenger\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Samuel Roze", + "email": "samuel.roze@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps applications send and receive messages to/from other applications or via message queues", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/messenger/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-12T18:55:10+00:00" + }, + { + "name": "symfony/mime", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "e1503cfb5c9a225350f549d3bb99296f4abfb80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/e1503cfb5c9a225350f549d3bb99296f4abfb80f", + "reference": "e1503cfb5c9a225350f549d3bb99296f4abfb80f", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.1|^6.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/serializer": "^5.2|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "4b56e17c443e7092895477f047f2a70f324f984c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/4b56e17c443e7092895477f047f2a70f324f984c", + "reference": "4b56e17c443e7092895477f047f2a70f324f984c", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1|^2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^5.3|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "symfony/console": "<4.4", + "symfony/http-foundation": "<5.3" + }, + "require-dev": { + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/mailer": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/security-core": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "fde12fc628162787a4e53877abadc30047fd868b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/fde12fc628162787a4e53877abadc30047fd868b", + "reference": "fde12fc628162787a4e53877abadc30047fd868b", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.22 || ~2.0", + "php": ">=7.1.3", + "symfony/config": "~4.4 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", + "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + }, + "require-dev": { + "symfony/console": "~4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-11-05T10:34:29+00:00" + }, + { + "name": "symfony/notifier", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/notifier.git", + "reference": "5cfaf9164db2d5560c03fb9e1ca28d728ecd5fc8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/notifier/zipball/5cfaf9164db2d5560c03fb9e1ca28d728ecd5fc8", + "reference": "5cfaf9164db2d5560c03fb9e1ca28d728ecd5fc8", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1|^2|^3", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/discord-notifier": "<5.3", + "symfony/esendex-notifier": "<5.3", + "symfony/firebase-notifier": "<5.3", + "symfony/free-mobile-notifier": "<5.3", + "symfony/google-chat-notifier": "<5.3", + "symfony/http-kernel": "<4.4", + "symfony/infobip-notifier": "<5.3", + "symfony/linked-in-notifier": "<5.3", + "symfony/mattermost-notifier": "<5.3", + "symfony/mobyt-notifier": "<5.3", + "symfony/nexmo-notifier": "<5.3", + "symfony/ovh-cloud-notifier": "<5.3", + "symfony/rocket-chat-notifier": "<5.3", + "symfony/sendinblue-notifier": "<5.3", + "symfony/sinch-notifier": "<5.3", + "symfony/slack-notifier": "<5.3", + "symfony/sms77-notifier": "<5.3", + "symfony/smsapi-notifier": "<5.3", + "symfony/telegram-notifier": "<5.3", + "symfony/twilio-notifier": "<5.3", + "symfony/zulip-notifier": "<5.3" + }, + "require-dev": { + "symfony/event-dispatcher-contracts": "^2|^3", + "symfony/http-client-contracts": "^2|^3", + "symfony/messenger": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Notifier\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Sends notifications via one or more channels (email, SMS, ...)", + "homepage": "https://symfony.com", + "keywords": [ + "notification", + "notifier" + ], + "support": { + "source": "https://github.com/symfony/notifier/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "cc1147cb11af1b43f503ac18f31aa3bec213aba8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/cc1147cb11af1b43f503ac18f31aa3bec213aba8", + "reference": "cc1147cb11af1b43f503ac18f31aa3bec213aba8", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/password-hasher", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/password-hasher.git", + "reference": "b5ed59c4536d8386cd37bb86df2b7bd5fbbd46d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/b5ed59c4536d8386cd37bb86df2b7bd5fbbd46d4", + "reference": "b5ed59c4536d8386cd37bb86df2b7bd5fbbd46d4", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/security-core": "<5.3" + }, + "require-dev": { + "symfony/console": "^5", + "symfony/security-core": "^5.3|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PasswordHasher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Robin Chalas", + "email": "robin.chalas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides password hashing utilities", + "homepage": "https://symfony.com", + "keywords": [ + "hashing", + "password" + ], + "support": { + "source": "https://github.com/symfony/password-hasher/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.24.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "81b86b50cf841a64252b439e738e97f4a34e2783" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783", + "reference": "81b86b50cf841a64252b439e738e97f4a34e2783", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-11-23T21:10:46+00:00" + }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.24.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "c023a439b8551e320cc3c8433b198e408a623af1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/c023a439b8551e320cc3c8433b198e408a623af1", + "reference": "c023a439b8551e320cc3c8433b198e408a623af1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance and support of other locales than \"en\"" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.24.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-10-26T17:16:04+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.24.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "749045c69efb97c70d25d7463abba812e91f3a44" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44", + "reference": "749045c69efb97c70d25d7463abba812e91f3a44", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-09-14T14:02:44+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.24.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-19T12:13:01+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.24.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-11-30T18:21:41+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.24.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5", + "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-06-05T21:20:04+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.24.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", + "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-09-13T13:58:33+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.24.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", + "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-09-13T13:58:11+00:00" + }, + { + "name": "symfony/process", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "95440409896f90a5f85db07a32b517ecec17fa4c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/95440409896f90a5f85db07a32b517ecec17fa4c", + "reference": "95440409896f90a5f85db07a32b517ecec17fa4c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-30T18:16:22+00:00" + }, + { + "name": "symfony/property-access", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "95534d912f61117d3bce2d4456419ee2ee548d7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/95534d912f61117d3bce2d4456419ee2ee548d7a", + "reference": "95534d912f61117d3bce2d4456419ee2ee548d7a", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/property-info": "^5.2|^6.0" + }, + "require-dev": { + "symfony/cache": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-04T18:39:09+00:00" + }, + { + "name": "symfony/property-info", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-info.git", + "reference": "bcc2b6904cbcf16b2e5d618da16117cd8e132f9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-info/zipball/bcc2b6904cbcf16b2e5d618da16117cd8e132f9a", + "reference": "bcc2b6904cbcf16b2e5d618da16117cd8e132f9a", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpstan/phpdoc-parser": "^1.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" + }, + "suggest": { + "phpdocumentor/reflection-docblock": "To use the PHPDoc", + "psr/cache-implementation": "To cache results", + "symfony/doctrine-bridge": "To use Doctrine metadata", + "symfony/serializer": "To use Serializer metadata" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyInfo\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Extracts information about PHP class' properties using metadata of popular sources", + "homepage": "https://symfony.com", + "keywords": [ + "doctrine", + "phpdoc", + "property", + "symfony", + "type", + "validator" + ], + "support": { + "source": "https://github.com/symfony/property-info/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/proxy-manager-bridge", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/proxy-manager-bridge.git", + "reference": "efb82e176cd47426193ad047635ba5181dae089f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/efb82e176cd47426193ad047635ba5181dae089f", + "reference": "efb82e176cd47426193ad047635ba5181dae089f", + "shasum": "" + }, + "require": { + "friendsofphp/proxy-manager-lts": "^1.0.2", + "php": ">=7.2.5", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/config": "^4.4|^5.0|^6.0" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\ProxyManager\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for ProxyManager with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/proxy-manager-bridge/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/redis-messenger", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/redis-messenger.git", + "reference": "08234f89126043948b37cdbc870167c1c68689e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/redis-messenger/zipball/08234f89126043948b37cdbc870167c1c68689e1", + "reference": "08234f89126043948b37cdbc870167c1c68689e1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/messenger": "^5.1|^6.0" + }, + "require-dev": { + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" + }, + "type": "symfony-messenger-bridge", + "autoload": { + "psr-4": { + "Symfony\\Component\\Messenger\\Bridge\\Redis\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Redis extension Messenger Bridge", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/redis-messenger/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-21T17:07:16+00:00" + }, + { + "name": "symfony/routing", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "44b29c7a94e867ccde1da604792f11a469958981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/44b29c7a94e867ccde1da604792f11a469958981", + "reference": "44b29c7a94e867ccde1da604792f11a469958981", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<5.3", + "symfony/dependency-injection": "<4.4", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/runtime", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/runtime.git", + "reference": "06fdd940ebf240ed7d9c9832cd97bf3133847316" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/runtime/zipball/06fdd940ebf240ed7d9c9832cd97bf3133847316", + "reference": "06fdd940ebf240ed7d9c9832cd97bf3133847316", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/dotenv": "<5.1" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/console": "^4.4.30|^5.3.7|^6.0", + "symfony/dotenv": "^5.1|^6.0", + "symfony/http-foundation": "^4.4.30|^5.3.7|^6.0", + "symfony/http-kernel": "^4.4.30|^5.3.7|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Component\\Runtime\\Internal\\ComposerPlugin" + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Runtime\\": "", + "Symfony\\Runtime\\Symfony\\Component\\": "Internal/" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Enables decoupling PHP applications from global state", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/runtime/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-15T13:38:03+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "d6ae2f605fa8e4e0860c1a6574271af2bb4ba16c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/d6ae2f605fa8e4e0860c1a6574271af2bb4ba16c", + "reference": "d6ae2f605fa8e4e0860c1a6574271af2bb4ba16c", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher": "^5.1|^6.0", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/http-kernel": "^5.3|^6.0", + "symfony/password-hasher": "^5.3|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^5.4|^6.0", + "symfony/security-csrf": "^4.4|^5.0|^6.0", + "symfony/security-guard": "^5.3", + "symfony/security-http": "^5.4|^6.0" + }, + "conflict": { + "symfony/browser-kit": "<4.4", + "symfony/console": "<4.4", + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<5.1", + "symfony/twig-bundle": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "symfony/asset": "^4.4|^5.0|^6.0", + "symfony/browser-kit": "^4.4|^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/form": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^5.3|^6.0", + "symfony/ldap": "^5.3|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/twig-bridge": "^4.4|^5.0|^6.0", + "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "symfony/validator": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-bundle/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-18T16:06:09+00:00" + }, + { + "name": "symfony/security-core", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "11d815ccbff929899a4ec545f9f85185071abd12" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/11d815ccbff929899a4ec545f9f85185071abd12", + "reference": "11d815ccbff929899a4ec545f9f85185071abd12", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^1.1|^2|^3", + "symfony/password-hasher": "^5.3|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2|^3" + }, + "conflict": { + "symfony/event-dispatcher": "<4.4", + "symfony/http-foundation": "<5.3", + "symfony/ldap": "<4.4", + "symfony/security-guard": "<4.4", + "symfony/validator": "<5.2" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "psr/container": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/ldap": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/validator": "^5.2|^6.0" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-core/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-18T16:06:09+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "57c1c252ca756289c2b61327e08fb10be3936956" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/57c1c252ca756289c2b61327e08fb10be3936956", + "reference": "57c1c252ca756289c2b61327e08fb10be3936956", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^4.4|^5.0|^6.0" + }, + "conflict": { + "symfony/http-foundation": "<5.3" + }, + "require-dev": { + "symfony/http-foundation": "^5.3|^6.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-csrf/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "3d68d9f8e162f6655eb0a0237b9f333a82a19da9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/3d68d9f8e162f6655eb0a0237b9f333a82a19da9", + "reference": "3d68d9f8e162f6655eb0a0237b9f333a82a19da9", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15", + "symfony/security-core": "^5.0", + "symfony/security-http": "^5.3" + }, + "require-dev": { + "psr/log": "^1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Guard\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Guard", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-guard/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/security-http", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "53d572f06fc438faae3713cc97d186d941919748" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/53d572f06fc438faae3713cc97d186d941919748", + "reference": "53d572f06fc438faae3713cc97d186d941919748", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/http-kernel": "^5.3|^6.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/security-core": "^5.4|^6.0" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3", + "symfony/security-bundle": "<5.3", + "symfony/security-csrf": "<4.4" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/security-csrf": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Http\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - HTTP Integration", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-http/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-17T20:21:36+00:00" + }, + { + "name": "symfony/serializer", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer.git", + "reference": "e3ec068106e4cc7d17c45656bd8823788e7dc369" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer/zipball/e3ec068106e4cc7d17c45656bd8823788e7dc369", + "reference": "e3ec068106e4cc7d17c45656bd8823788e7dc369", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<4.4", + "symfony/property-access": "<5.4", + "symfony/property-info": "<5.3.13", + "symfony/uid": "<5.3", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12", + "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/form": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.3.13|^6.0", + "symfony/uid": "^5.3|^6.0", + "symfony/validator": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0", + "symfony/var-exporter": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/cache-implementation": "For using the metadata cache.", + "symfony/config": "For using the XML mapping loader.", + "symfony/mime": "For using a MIME type guesser within the DataUriNormalizer.", + "symfony/property-access": "For using the ObjectNormalizer.", + "symfony/property-info": "To deserialize relations.", + "symfony/var-exporter": "For using the metadata compiler.", + "symfony/yaml": "For using the default YAML mapping loader." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Serializer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/serializer/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-24T09:30:07+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", + "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-11-04T16:48:04+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", + "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/service-contracts": "^1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a way to profile code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/stopwatch/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-18T16:06:09+00:00" + }, + { + "name": "symfony/string", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", + "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "conflict": { + "symfony/translation-contracts": ">=3.0" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/translation", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "7e4d52d39e5d86f3f04bef46fa29a1091786bc73" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/7e4d52d39e5d86f3f04bef46fa29a1091786bc73", + "reference": "7e4d52d39e5d86f3f04bef46fa29a1091786bc73", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^2.3" + }, + "conflict": { + "symfony/config": "<4.4", + "symfony/console": "<5.3", + "symfony/dependency-injection": "<5.0", + "symfony/http-kernel": "<5.0", + "symfony/twig-bundle": "<5.0", + "symfony/yaml": "<4.4" + }, + "provide": { + "symfony/translation-implementation": "2.3" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-09T15:49:12+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/d28150f0f44ce854e942b671fc2620a98aae1b1e", + "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-08-17T14:20:01+00:00" + }, + { + "name": "symfony/twig-bridge", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "648c8694a9470ae4aaf64cbce1b640f5941fd7c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/648c8694a9470ae4aaf64cbce1b640f5941fd7c9", + "reference": "648c8694a9470ae4aaf64cbce1b640f5941fd7c9", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1|^2|^3", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/console": "<5.3", + "symfony/form": "<5.3", + "symfony/http-foundation": "<5.3", + "symfony/http-kernel": "<4.4", + "symfony/translation": "<5.2", + "symfony/workflow": "<5.2" + }, + "require-dev": { + "doctrine/annotations": "^1.12", + "egulias/email-validator": "^2.1.10|^3", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^4.4|^5.0|^6.0", + "symfony/console": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/form": "^5.3|^6.0", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/mime": "^5.2|^6.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/security-acl": "^2.8|^3.0", + "symfony/security-core": "^4.4|^5.0|^6.0", + "symfony/security-csrf": "^4.4|^5.0|^6.0", + "symfony/security-http": "^4.4|^5.0|^6.0", + "symfony/serializer": "^5.2|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^5.2|^6.0", + "symfony/web-link": "^4.4|^5.0|^6.0", + "symfony/workflow": "^5.2|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/cssinliner-extra": "^2.12|^3", + "twig/inky-extra": "^2.12|^3", + "twig/markdown-extra": "^2.12|^3" + }, + "suggest": { + "symfony/asset": "For using the AssetExtension", + "symfony/expression-language": "For using the ExpressionExtension", + "symfony/finder": "", + "symfony/form": "For using the FormExtension", + "symfony/http-kernel": "For using the HttpKernelExtension", + "symfony/routing": "For using the RoutingExtension", + "symfony/security-core": "For using the SecurityExtension", + "symfony/security-csrf": "For using the CsrfExtension", + "symfony/security-http": "For using the LogoutUrlExtension", + "symfony/stopwatch": "For using the StopwatchExtension", + "symfony/translation": "For using the TranslationExtension", + "symfony/var-dumper": "For using the DumpExtension", + "symfony/web-link": "For using the WebLinkExtension", + "symfony/yaml": "For using the YamlExtension" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Twig\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Twig with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/twig-bridge/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-09T08:59:58+00:00" + }, + { + "name": "symfony/twig-bundle", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "45ae3ee8155f93042a1033b166a7a3ed57b96a92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/45ae3ee8155f93042a1033b166a7a3ed57b96a92", + "reference": "45ae3ee8155f93042a1033b166a7a3ed57b96a92", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/twig-bridge": "^5.3|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "symfony/dependency-injection": "<5.3", + "symfony/framework-bundle": "<5.0", + "symfony/service-contracts": ">=3.0", + "symfony/translation": "<5.0" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "symfony/asset": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/form": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^5.0|^6.0", + "symfony/web-link": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\TwigBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of Twig into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/twig-bundle/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/validator", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "06c3d849fa19a0ece7b6eed240036772c4b5faaf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/06c3d849fa19a0ece7b6eed240036772c4b5faaf", + "reference": "06c3d849fa19a0ece7b6eed240036772c4b5faaf", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", + "symfony/translation-contracts": "^1.1|^2|^3" + }, + "conflict": { + "doctrine/annotations": "<1.13", + "doctrine/cache": "<1.11", + "doctrine/lexer": "<1.1", + "phpunit/phpunit": "<5.4.3", + "symfony/dependency-injection": "<4.4", + "symfony/expression-language": "<5.1", + "symfony/http-kernel": "<4.4", + "symfony/intl": "<4.4", + "symfony/property-info": "<5.3", + "symfony/translation": "<4.4", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.13", + "doctrine/cache": "^1.11|^2.0", + "egulias/email-validator": "^2.1.10|^3", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^5.1|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/property-info": "^5.3|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "egulias/email-validator": "Strict (RFC compliant) email validation", + "psr/cache-implementation": "For using the mapping cache.", + "symfony/config": "", + "symfony/expression-language": "For using the Expression validator and the ExpressionLanguageSyntax constraints", + "symfony/http-foundation": "", + "symfony/intl": "", + "symfony/property-access": "For accessing properties within comparison constraints", + "symfony/property-info": "To automatically add NotNull and Type constraints", + "symfony/translation": "For translating validation errors.", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Validator\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to validate values", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/validator/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T08:05:40+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "6efddb1cf6af5270b21c48c6103e81f920c220f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6efddb1cf6af5270b21c48c6103e81f920c220f0", + "reference": "6efddb1cf6af5270b21c48c6103e81f920c220f0", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-21T15:00:19+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "b199936b7365be36663532e547812d3abb10234a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b199936b7365be36663532e547812d3abb10234a", + "reference": "b199936b7365be36663532e547812d3abb10234a", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/web-link", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-link.git", + "reference": "8b9b073390359549fec5f5d797f23bbe9e2997a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-link/zipball/8b9b073390359549fec5f5d797f23bbe9e2997a5", + "reference": "8b9b073390359549fec5f5d797f23bbe9e2997a5", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/link": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/http-kernel": "<5.3" + }, + "provide": { + "psr/link-implementation": "1.0" + }, + "require-dev": { + "symfony/http-kernel": "^5.3|^6.0" + }, + "suggest": { + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\WebLink\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Manages links between resources", + "homepage": "https://symfony.com", + "keywords": [ + "dns-prefetch", + "http", + "http2", + "link", + "performance", + "prefetch", + "preload", + "prerender", + "psr13", + "push" + ], + "support": { + "source": "https://github.com/symfony/web-link/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/webapp-meta", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/webapp-meta.git", + "reference": "df062f539ed5203b8ba1e5cdd9b1745afa983d69" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/webapp-meta/zipball/df062f539ed5203b8ba1e5cdd9b1745afa983d69", + "reference": "df062f539ed5203b8ba1e5cdd9b1745afa983d69", + "shasum": "" + }, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A meta package for the web app pack", + "support": { + "issues": "https://github.com/symfony/webapp-meta/issues", + "source": "https://github.com/symfony/webapp-meta/tree/v1.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-10-20T16:02:05+00:00" + }, + { + "name": "symfony/webpack-encore-bundle", + "version": "v1.14.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/webpack-encore-bundle.git", + "reference": "1729c314574f32e49f9660a0cee870f7e603864f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/1729c314574f32e49f9660a0cee870f7e603864f", + "reference": "1729c314574f32e49f9660a0cee870f7e603864f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/asset": "^4.4 || ^5.0 || ^6.0", + "symfony/config": "^4.4 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0", + "symfony/service-contracts": "^1.0 || ^2.0 || ^3.0" + }, + "require-dev": { + "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.3 || ^6.0", + "symfony/twig-bundle": "^4.4 || ^5.0 || ^6.0", + "symfony/web-link": "^4.4 || ^5.0 || ^6.0" + }, + "type": "symfony-bundle", + "extra": { + "thanks": { + "name": "symfony/webpack-encore", + "url": "https://github.com/symfony/webpack-encore" + } + }, + "autoload": { + "psr-4": { + "Symfony\\WebpackEncoreBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Integration with your Symfony app & Webpack Encore!", + "support": { + "issues": "https://github.com/symfony/webpack-encore-bundle/issues", + "source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.14.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-14T15:06:55+00:00" + }, + { + "name": "symfony/yaml", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "e80f87d2c9495966768310fc531b487ce64237a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e80f87d2c9495966768310fc531b487ce64237a2", + "reference": "e80f87d2c9495966768310fc531b487ce64237a2", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.3" + }, + "require-dev": { + "symfony/console": "^5.3|^6.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-26T16:32:32+00:00" + }, + { + "name": "twig/extra-bundle", + "version": "v3.3.8", + "source": { + "type": "git", + "url": "https://github.com/twigphp/twig-extra-bundle.git", + "reference": "2e58256b0e9fe52f30149347c0547e4633304765" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/2e58256b0e9fe52f30149347c0547e4633304765", + "reference": "2e58256b0e9fe52f30149347c0547e4633304765", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/framework-bundle": "^4.4|^5.0|^6.0", + "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "twig/twig": "^2.7|^3.0" + }, + "require-dev": { + "league/commonmark": "^1.0|^2.0", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0", + "twig/cache-extra": "^3.0", + "twig/cssinliner-extra": "^2.12|^3.0", + "twig/html-extra": "^2.12|^3.0", + "twig/inky-extra": "^2.12|^3.0", + "twig/intl-extra": "^2.12|^3.0", + "twig/markdown-extra": "^2.12|^3.0", + "twig/string-extra": "^2.12|^3.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "psr-4": { + "Twig\\Extra\\TwigExtraBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "A Symfony bundle for extra Twig extensions", + "homepage": "https://twig.symfony.com", + "keywords": [ + "bundle", + "extra", + "twig" + ], + "support": { + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.3.8" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2022-01-04T13:58:53+00:00" + }, + { + "name": "twig/twig", + "version": "v3.3.8", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "972d8604a92b7054828b539f2febb0211dd5945c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/972d8604a92b7054828b539f2febb0211dd5945c", + "reference": "972d8604a92b7054828b539f2febb0211dd5945c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" + }, + "require-dev": { + "psr/container": "^1.0", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.3.8" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2022-02-04T06:59:48+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.10.0" + }, + "time": "2021-03-09T10:59:23+00:00" + } + ], + "packages-dev": [ + { + "name": "nikic/php-parser", + "version": "v4.13.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "210577fe3cf7badcc5814d99455df46564f3c077" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", + "reference": "210577fe3cf7badcc5814d99455df46564f3c077", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2" + }, + "time": "2021-11-30T19:35:32+00:00" + }, + { + "name": "symfony/debug-bundle", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug-bundle.git", + "reference": "6f508169752ed2c0d0d8a6641c4cca39a8f1dfcb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/6f508169752ed2c0d0d8a6641c4cca39a8f1dfcb", + "reference": "6f508169752ed2c0d0d8a6641c4cca39a8f1dfcb", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.2.5", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/twig-bridge": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "conflict": { + "symfony/config": "<4.4", + "symfony/dependency-injection": "<5.2" + }, + "require-dev": { + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/web-profiler-bundle": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/config": "For service container configuration", + "symfony/dependency-injection": "For using as a service from the container" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\DebugBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug-bundle/tree/v5.4.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/maker-bundle", + "version": "v1.38.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/maker-bundle.git", + "reference": "143024ab0e426285d3d9b7f6a3ce51e12a9d8ec5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/143024ab0e426285d3d9b7f6a3ce51e12a9d8ec5", + "reference": "143024ab0e426285d3d9b7f6a3ce51e12a9d8ec5", + "shasum": "" + }, + "require": { + "doctrine/inflector": "^1.2|^2.0", + "nikic/php-parser": "^4.11", + "php": ">=7.1.3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/deprecation-contracts": "^2.2|^3", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0" + }, + "require-dev": { + "composer/semver": "^3.0", + "doctrine/doctrine-bundle": "^1.12.3|^2.0", + "doctrine/orm": "^2.3", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4|^5.0|^6.0", + "symfony/polyfill-php80": "^1.16.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/security-core": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/twig": "^2.0|^3.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-main": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MakerBundle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.", + "homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html", + "keywords": [ + "code generator", + "generator", + "scaffold", + "scaffolding" + ], + "support": { + "issues": "https://github.com/symfony/maker-bundle/issues", + "source": "https://github.com/symfony/maker-bundle/tree/v1.38.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-24T21:06:51+00:00" + }, + { + "name": "symfony/web-profiler-bundle", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "3759b0781bb7f9c5041b6efddb89b8d7d91ee25e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/3759b0781bb7f9c5041b6efddb89b8d7d91ee25e", + "reference": "3759b0781bb7f9c5041b6efddb89b8d7d91ee25e", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^5.3|^6.0", + "symfony/http-kernel": "^5.3|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "symfony/dependency-injection": "<5.2", + "symfony/form": "<4.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<4.4" + }, + "require-dev": { + "symfony/browser-kit": "^4.4|^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\WebProfilerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a development tool that gives detailed information about the execution of any request", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T16:17:01+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": ">=7.2.5", + "ext-ctype": "*", + "ext-iconv": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.2.0" +} diff --git a/project/config/bundles.php b/project/config/bundles.php new file mode 100644 index 0000000..de3979f --- /dev/null +++ b/project/config/bundles.php @@ -0,0 +1,16 @@ + ['all' => true], + Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], + Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], + Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true], + Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], + Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], + Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true], + Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true], + Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], + Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], + Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], + Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], +]; diff --git a/project/config/packages/cache.yaml b/project/config/packages/cache.yaml new file mode 100644 index 0000000..6899b72 --- /dev/null +++ b/project/config/packages/cache.yaml @@ -0,0 +1,19 @@ +framework: + cache: + # Unique name of your app: used to compute stable namespaces for cache keys. + #prefix_seed: your_vendor_name/app_name + + # The "app" cache stores to the filesystem by default. + # The data in this cache should persist between deploys. + # Other options include: + + # Redis + #app: cache.adapter.redis + #default_redis_provider: redis://localhost + + # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) + #app: cache.adapter.apcu + + # Namespaced pools use the above "app" backend by default + #pools: + #my.dedicated.cache: null diff --git a/project/config/packages/debug.yaml b/project/config/packages/debug.yaml new file mode 100644 index 0000000..ad874af --- /dev/null +++ b/project/config/packages/debug.yaml @@ -0,0 +1,5 @@ +when@dev: + debug: + # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser. + # See the "server:dump" command to start a new server. + dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%" diff --git a/project/config/packages/doctrine.yaml b/project/config/packages/doctrine.yaml new file mode 100644 index 0000000..8fe1dd4 --- /dev/null +++ b/project/config/packages/doctrine.yaml @@ -0,0 +1,42 @@ +doctrine: + dbal: + url: '%env(resolve:DATABASE_URL)%' + + # IMPORTANT: You MUST configure your server version, + # either here or in the DATABASE_URL env var (see .env file) + #server_version: '13' + orm: + auto_generate_proxy_classes: true + naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware + auto_mapping: true + mappings: + App: + is_bundle: false + dir: '%kernel.project_dir%/src/Entity' + prefix: 'App\Entity' + alias: App + +when@test: + doctrine: + dbal: + # "TEST_TOKEN" is typically set by ParaTest + dbname_suffix: '_test%env(default::TEST_TOKEN)%' + +when@prod: + doctrine: + orm: + auto_generate_proxy_classes: false + query_cache_driver: + type: pool + pool: doctrine.system_cache_pool + result_cache_driver: + type: pool + pool: doctrine.result_cache_pool + + framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.app + doctrine.system_cache_pool: + adapter: cache.system diff --git a/project/config/packages/doctrine_migrations.yaml b/project/config/packages/doctrine_migrations.yaml new file mode 100644 index 0000000..a0a17a0 --- /dev/null +++ b/project/config/packages/doctrine_migrations.yaml @@ -0,0 +1,6 @@ +doctrine_migrations: + migrations_paths: + # namespace is arbitrary but should be different from App\Migrations + # as migrations classes should NOT be autoloaded + 'DoctrineMigrations': '%kernel.project_dir%/migrations' + enable_profiler: '%kernel.debug%' diff --git a/project/config/packages/framework.yaml b/project/config/packages/framework.yaml new file mode 100644 index 0000000..7853e9e --- /dev/null +++ b/project/config/packages/framework.yaml @@ -0,0 +1,24 @@ +# see https://symfony.com/doc/current/reference/configuration/framework.html +framework: + secret: '%env(APP_SECRET)%' + #csrf_protection: true + http_method_override: false + + # Enables session support. Note that the session will ONLY be started if you read or write from it. + # Remove or comment this section to explicitly disable session support. + session: + handler_id: null + cookie_secure: auto + cookie_samesite: lax + storage_factory_id: session.storage.factory.native + + #esi: true + #fragments: true + php_errors: + log: true + +when@test: + framework: + test: true + session: + storage_factory_id: session.storage.factory.mock_file diff --git a/project/config/packages/mailer.yaml b/project/config/packages/mailer.yaml new file mode 100644 index 0000000..56a650d --- /dev/null +++ b/project/config/packages/mailer.yaml @@ -0,0 +1,3 @@ +framework: + mailer: + dsn: '%env(MAILER_DSN)%' diff --git a/project/config/packages/messenger.yaml b/project/config/packages/messenger.yaml new file mode 100644 index 0000000..587083a --- /dev/null +++ b/project/config/packages/messenger.yaml @@ -0,0 +1,24 @@ +framework: + messenger: + failure_transport: failed + + transports: + # https://symfony.com/doc/current/messenger.html#transport-configuration + async: + dsn: '%env(MESSENGER_TRANSPORT_DSN)%' + options: + use_notify: true + check_delayed_interval: 60000 + retry_strategy: + max_retries: 3 + multiplier: 2 + failed: 'doctrine://default?queue_name=failed' + # sync: 'sync://' + + routing: + Symfony\Component\Mailer\Messenger\SendEmailMessage: async + Symfony\Component\Notifier\Message\ChatMessage: async + Symfony\Component\Notifier\Message\SmsMessage: async + + # Route your messages to the transports + # 'App\Message\YourMessage': async diff --git a/project/config/packages/monolog.yaml b/project/config/packages/monolog.yaml new file mode 100644 index 0000000..8c9efa9 --- /dev/null +++ b/project/config/packages/monolog.yaml @@ -0,0 +1,61 @@ +monolog: + channels: + - deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists + +when@dev: + monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] + # uncomment to get logging in your browser + # you may have to allow bigger header sizes in your Web server configuration + #firephp: + # type: firephp + # level: info + #chromephp: + # type: chromephp + # level: info + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine", "!console"] + +when@test: + monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + channels: ["!event"] + nested: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + +when@prod: + monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + buffer_size: 50 # How many messages should be saved? Prevent memory leaks + nested: + type: stream + path: php://stderr + level: debug + formatter: monolog.formatter.json + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine"] + deprecation: + type: stream + channels: [deprecation] + path: php://stderr diff --git a/project/config/packages/notifier.yaml b/project/config/packages/notifier.yaml new file mode 100644 index 0000000..3984a48 --- /dev/null +++ b/project/config/packages/notifier.yaml @@ -0,0 +1,16 @@ +framework: + notifier: + #chatter_transports: + # slack: '%env(SLACK_DSN)%' + # telegram: '%env(TELEGRAM_DSN)%' + #texter_transports: + # twilio: '%env(TWILIO_DSN)%' + # nexmo: '%env(NEXMO_DSN)%' + channel_policy: + # use chat/slack, chat/telegram, sms/twilio or sms/nexmo + urgent: ['email'] + high: ['email'] + medium: ['email'] + low: ['email'] + admin_recipients: + - { email: admin@example.com } diff --git a/project/config/packages/routing.yaml b/project/config/packages/routing.yaml new file mode 100644 index 0000000..4b766ce --- /dev/null +++ b/project/config/packages/routing.yaml @@ -0,0 +1,12 @@ +framework: + router: + utf8: true + + # Configure how to generate URLs in non-HTTP contexts, such as CLI commands. + # See https://symfony.com/doc/current/routing.html#generating-urls-in-commands + #default_uri: http://localhost + +when@prod: + framework: + router: + strict_requirements: null diff --git a/project/config/packages/security.yaml b/project/config/packages/security.yaml new file mode 100644 index 0000000..789a9ac --- /dev/null +++ b/project/config/packages/security.yaml @@ -0,0 +1,40 @@ +security: + enable_authenticator_manager: true + # https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords + password_hashers: + Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto' + # https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider + providers: + users_in_memory: { memory: null } + firewalls: + dev: + pattern: ^/(_(profiler|wdt)|css|images|js)/ + security: false + main: + lazy: true + provider: users_in_memory + + # activate different ways to authenticate + # https://symfony.com/doc/current/security.html#the-firewall + + # https://symfony.com/doc/current/security/impersonating_user.html + # switch_user: true + + # Easy way to control access for large sections of your site + # Note: Only the *first* access control that matches will be used + access_control: + # - { path: ^/admin, roles: ROLE_ADMIN } + # - { path: ^/profile, roles: ROLE_USER } + +when@test: + security: + password_hashers: + # By default, password hashers are resource intensive and take time. This is + # important to generate secure password hashes. In tests however, secure hashes + # are not important, waste resources and increase test times. The following + # reduces the work factor to the lowest possible values. + Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: + algorithm: auto + cost: 4 # Lowest possible value for bcrypt + time_cost: 3 # Lowest possible value for argon + memory_cost: 10 # Lowest possible value for argon diff --git a/project/config/packages/sensio_framework_extra.yaml b/project/config/packages/sensio_framework_extra.yaml new file mode 100644 index 0000000..1821ccc --- /dev/null +++ b/project/config/packages/sensio_framework_extra.yaml @@ -0,0 +1,3 @@ +sensio_framework_extra: + router: + annotations: false diff --git a/project/config/packages/translation.yaml b/project/config/packages/translation.yaml new file mode 100644 index 0000000..abb76aa --- /dev/null +++ b/project/config/packages/translation.yaml @@ -0,0 +1,13 @@ +framework: + default_locale: en + translator: + default_path: '%kernel.project_dir%/translations' + fallbacks: + - en +# providers: +# crowdin: +# dsn: '%env(CROWDIN_DSN)%' +# loco: +# dsn: '%env(LOCO_DSN)%' +# lokalise: +# dsn: '%env(LOKALISE_DSN)%' diff --git a/project/config/packages/twig.yaml b/project/config/packages/twig.yaml new file mode 100644 index 0000000..f9f4cc5 --- /dev/null +++ b/project/config/packages/twig.yaml @@ -0,0 +1,6 @@ +twig: + default_path: '%kernel.project_dir%/templates' + +when@test: + twig: + strict_variables: true diff --git a/project/config/packages/validator.yaml b/project/config/packages/validator.yaml new file mode 100644 index 0000000..bd89662 --- /dev/null +++ b/project/config/packages/validator.yaml @@ -0,0 +1,13 @@ +framework: + validation: + email_validation_mode: html5 + + # Enables validator auto-mapping support. + # For instance, basic validation constraints will be inferred from Doctrine's metadata. + auto_mapping: + App\Entity\: [] + +when@test: + framework: + validation: + not_compromised_password: false diff --git a/project/config/packages/web_profiler.yaml b/project/config/packages/web_profiler.yaml new file mode 100644 index 0000000..17893da --- /dev/null +++ b/project/config/packages/web_profiler.yaml @@ -0,0 +1,15 @@ +when@dev: + web_profiler: + toolbar: true + intercept_redirects: false + + framework: + profiler: { only_exceptions: false } + +when@test: + web_profiler: + toolbar: false + intercept_redirects: false + + framework: + profiler: { collect: false } diff --git a/project/config/packages/webpack_encore.yaml b/project/config/packages/webpack_encore.yaml new file mode 100644 index 0000000..46834f0 --- /dev/null +++ b/project/config/packages/webpack_encore.yaml @@ -0,0 +1,49 @@ +webpack_encore: + # The path where Encore is building the assets - i.e. Encore.setOutputPath() + output_path: '%kernel.project_dir%/public/build' + # If multiple builds are defined (as shown below), you can disable the default build: + # output_path: false + + # Set attributes that will be rendered on all script and link tags + script_attributes: + defer: true + # Uncomment (also under link_attributes) if using Turbo Drive + # https://turbo.hotwired.dev/handbook/drive#reloading-when-assets-change + # 'data-turbo-track': reload + # link_attributes: + # Uncomment if using Turbo Drive + # 'data-turbo-track': reload + + # If using Encore.enableIntegrityHashes() and need the crossorigin attribute (default: false, or use 'anonymous' or 'use-credentials') + # crossorigin: 'anonymous' + + # Preload all rendered script and link tags automatically via the HTTP/2 Link header + # preload: true + + # Throw an exception if the entrypoints.json file is missing or an entry is missing from the data + # strict_mode: false + + # If you have multiple builds: + # builds: + # pass "frontend" as the 3rg arg to the Twig functions + # {{ encore_entry_script_tags('entry1', null, 'frontend') }} + + # frontend: '%kernel.project_dir%/public/frontend/build' + + # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes) + # Put in config/packages/prod/webpack_encore.yaml + # cache: true + +framework: + assets: + json_manifest_path: '%kernel.project_dir%/public/build/manifest.json' + +#when@prod: +# webpack_encore: +# # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes) +# # Available in version 1.2 +# cache: true + +#when@test: +# webpack_encore: +# strict_mode: false diff --git a/project/config/preload.php b/project/config/preload.php new file mode 100644 index 0000000..5ebcdb2 --- /dev/null +++ b/project/config/preload.php @@ -0,0 +1,5 @@ +addSql('CREATE SEQUENCE exchange_rates_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); + $this->addSql('CREATE TABLE exchange_rates (id INT NOT NULL, str_currency VARCHAR(3) NOT NULL, int_rate DOUBLE PRECISION NOT NULL, PRIMARY KEY(id))'); + $this->addSql('CREATE TABLE messenger_messages (id BIGSERIAL NOT NULL, body TEXT NOT NULL, headers TEXT NOT NULL, queue_name VARCHAR(255) NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, available_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, delivered_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))'); + $this->addSql('CREATE INDEX IDX_75EA56E0FB7336F0 ON messenger_messages (queue_name)'); + $this->addSql('CREATE INDEX IDX_75EA56E0E3BD61CE ON messenger_messages (available_at)'); + $this->addSql('CREATE INDEX IDX_75EA56E016BA31DB ON messenger_messages (delivered_at)'); + $this->addSql('CREATE OR REPLACE FUNCTION notify_messenger_messages() RETURNS TRIGGER AS $$ + BEGIN + PERFORM pg_notify(\'messenger_messages\', NEW.queue_name::text); + RETURN NEW; + END; + $$ LANGUAGE plpgsql;'); + $this->addSql('DROP TRIGGER IF EXISTS notify_trigger ON messenger_messages;'); + $this->addSql('CREATE TRIGGER notify_trigger AFTER INSERT OR UPDATE ON messenger_messages FOR EACH ROW EXECUTE PROCEDURE notify_messenger_messages();'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('CREATE SCHEMA public'); + $this->addSql('DROP SEQUENCE exchange_rates_id_seq CASCADE'); + $this->addSql('DROP TABLE exchange_rates'); + $this->addSql('DROP TABLE messenger_messages'); + } +} diff --git a/project/migrations/Version20220304105042.php b/project/migrations/Version20220304105042.php new file mode 100644 index 0000000..0dddb97 --- /dev/null +++ b/project/migrations/Version20220304105042.php @@ -0,0 +1,32 @@ +addSql('ALTER TABLE exchange_rates ADD date_date DATE NOT NULL'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('CREATE SCHEMA public'); + $this->addSql('ALTER TABLE exchange_rates DROP date_date'); + } +} diff --git a/project/migrations/Version20220304162139.php b/project/migrations/Version20220304162139.php new file mode 100644 index 0000000..0cc2b6a --- /dev/null +++ b/project/migrations/Version20220304162139.php @@ -0,0 +1,32 @@ +addSql('CREATE INDEX currency ON exchange_rates (date_date, str_currency)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('CREATE SCHEMA public'); + $this->addSql('DROP INDEX currency'); + } +} diff --git a/project/package.json b/project/package.json new file mode 100644 index 0000000..90dee22 --- /dev/null +++ b/project/package.json @@ -0,0 +1,23 @@ +{ + "devDependencies": { + "@hotwired/stimulus": "^3.0.0", + "@symfony/stimulus-bridge": "^3.0.0", + "@symfony/webpack-encore": "^1.7.0", + "bootstrap": "^5.1.3", + "core-js": "^3.0.0", + "less-loader": "^10.2.0", + "regenerator-runtime": "^0.13.2", + "webpack-notifier": "^1.6.0" + }, + "license": "UNLICENSED", + "private": true, + "scripts": { + "dev-server": "encore dev-server", + "dev": "encore dev", + "watch": "encore dev --watch", + "build": "encore production --progress" + }, + "dependencies": { + "jquery": "^3.6.0" + } +} diff --git a/project/public/index.php b/project/public/index.php new file mode 100644 index 0000000..9982c21 --- /dev/null +++ b/project/public/index.php @@ -0,0 +1,9 @@ +createFormBuilder([]) + ->add("uploads",FileType::class, [ + 'data_class' => null, + 'multiple' => true, + 'attr'=>[ + 'multiple' => 'multiple', + ], +// 'constraints' => [ +// new All([ +// 'constraints' => [ +// new File([ +// 'maxSize' => '2048k', +// 'mimeTypes' => [ +// 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', +// 'application/atom+xml', +// 'application/xml', +// 'text/xml', +// 'text/xml-external-parsed-entity', +//// 'application/x-pdf', +// ], +// 'mimeTypesMessage' => 'Please upload a valid XLSX or XML document', +// ]) +// ] +// ]) +// ], + ]) + ->add("upload",SubmitType::class) + ->getForm(); + $form->handleRequest($request); + if ($form->isSubmitted() && $form->isValid()) { + $files = $form->get('uploads')->getData(); + $hash = substr(md5(rand()),0,16); + if ($files) { + $i=1; + /** @var UploadedFile $file */ + foreach ($files as $file) { + $file->move( + $this->getParameter("uploads_path")."/".$hash, + $i.".".$file->getClientOriginalExtension() + ); + $i++; + } + return $this->redirectToRoute("app_taxes_show",["hash" => $hash]); + } + } + + return $this->renderForm('taxes/index.html.twig', [ + 'controller_name' => 'TaxesController', + 'form' => $form, + 'sheet' => $a + ]); + } + + /** + * @Route("/taxes/{hash}", name="app_taxes_show") + */ + public function show(CryptoService $tax) : Response + { + if ($tax->readFiles()) { + $gen = $tax->generate(); + return $this->render("taxes/show.html.twig", [ + "taxes" => $gen->getSummaryByCountry(), + "error" => $gen->error + ]); + } + return new Response("error"); + } +} diff --git a/project/src/Entity/.gitignore b/project/src/Entity/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/project/src/Entity/ExchangeRates.php b/project/src/Entity/ExchangeRates.php new file mode 100644 index 0000000..6090715 --- /dev/null +++ b/project/src/Entity/ExchangeRates.php @@ -0,0 +1,77 @@ +id; + } + + public function getStrCurrency(): ?string + { + return $this->strCurrency; + } + + public function setStrCurrency(string $strCurrency): self + { + $this->strCurrency = $strCurrency; + + return $this; + } + + public function getIntRate(): ?float + { + return $this->intRate; + } + + public function setIntRate(float $intRate): self + { + $this->intRate = $intRate; + + return $this; + } + + public function getDateDate(): ?\DateTimeInterface + { + return $this->dateDate; + } + + public function setDateDate(\DateTimeInterface $dateDate): self + { + $this->dateDate = $dateDate; + + return $this; + } +} diff --git a/project/src/Helper/Currency.php b/project/src/Helper/Currency.php new file mode 100644 index 0000000..3b18d9e --- /dev/null +++ b/project/src/Helper/Currency.php @@ -0,0 +1,97 @@ +manager = $manager; + $this->takeRates(); + } + + public function getRate(string $currency, \DateTime $dateTime, &$err) : float + { + $dayOfWeek = $dateTime->format("N"); + $minusDay = 1; + if ($dayOfWeek == 7){ + $minusDay = 2; + } elseif ($dayOfWeek == 1) { + $minusDay = 3; + } + $dateTime->modify("-$minusDay days"); + $dateStr = $dateTime->format("Ymd"); + + if (isset($this->ratesPerDate[$currency]) && isset($this->ratesPerDate[$currency][$dateStr])) { + return $this->ratesPerDate[$currency][$dateStr]; + } + $dateCopy = clone $dateTime; + + do { + $rate = $this->takePLNOnDate($currency, $dateCopy->format("Y-m-d")); + if (!$rate) { + $dateCopy->modify("-1 day"); + } + }while($rate == 0); + + if ($rate) { + $ratesEntity = new ExchangeRates(); + $ratesEntity->setIntRate(intval($rate * 10000)); + $ratesEntity->setStrCurrency($currency); + $ratesEntity->setDateDate($dateTime); + + $this->manager->persist($ratesEntity); + $this->manager->flush(); + $this->ratesPerDate[$currency][$dateStr] = $rate; + return $rate; + } + + return 0; + } + + + private function takePLNOnDate(string $currency, string $dateStr) : float + { + if (!in_array($currency, self::$currencies)) { + return 0; + } + $url = strtr(self::$apiUrl,[ + ":code" => mb_strtolower($currency), + ":date" => str_replace(".","-",$dateStr) + ]); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $result=curl_exec($ch); + curl_close($ch); + $data = json_decode($result, true); + if (!isset($data['rates']) || !isset($data['rates'][0]) || !isset($data['rates'][0]['mid'])) { + return 0; + } + return $data['rates'][0]['mid']; + } + + private function takeRates() + { + $rates = $this->manager->getRepository(ExchangeRates::class); + $rates = $rates->findAll(); + + if ($rates) { + /** @var ExchangeRates $rate */ + foreach ($rates as $rate) { + if (!isset($this->ratesPerDate[$rate->getStrCurrency()])) { + $this->ratesPerDate[$rate->getStrCurrency()] = []; + } + $this->ratesPerDate[$rate->getStrCurrency()][$rate->getDateDate()->format("Ymd")] = $rate->getIntRate()/10000; + } + } + } +} \ No newline at end of file diff --git a/project/src/Helper/DataNeed/CryptoValues.php b/project/src/Helper/DataNeed/CryptoValues.php new file mode 100644 index 0000000..c7a0fa1 --- /dev/null +++ b/project/src/Helper/DataNeed/CryptoValues.php @@ -0,0 +1,45 @@ + ["Wartość","Values"], + "currency" => ["Currency", "Waluta"], + "date" => ["Data operacji"], + "desc" => ["Rodzaj"] + ]; + + public static function isValue(string $type, string $text) : bool + { + if (!isset(self::$values[$type])) { + return false; + } + $ret = false; + foreach (self::$values[$type] as $value) { + if (strpos($text,$value) !== false) { + $ret = true; + break; + } + } + return $ret; + } + + public static function isInOut(MainObject $mainObject) : bool + { + $arr = [ + "Wypłata środków","Blokada środków","Wpłata na rachunek" + ]; + $ret = false; + foreach ($arr as $item) { + if ($mainObject->getDesc() === $item) { + $ret = true; + break; + } + } + return $ret; + } +} \ No newline at end of file diff --git a/project/src/Helper/FIFO/Crypto.php b/project/src/Helper/FIFO/Crypto.php new file mode 100644 index 0000000..d9fc44a --- /dev/null +++ b/project/src/Helper/FIFO/Crypto.php @@ -0,0 +1,39 @@ +takeAllRealTransactions(CryptoValues::class); + if (!$all || count($all) < 1) { + return []; + } + $sum = [ + ]; + + /** @var MainObject $item */ + foreach ($all as $item) { + if (!in_array($item->getCurrency(), Currency::$currencies)) { + if ($item->getValue() == 0) { + continue; + } + if (!isset($sum[$item->getCurrency()])) { + $sum[$item->getCurrency()] = []; + if (!isset($sum[$item->getCurrency()][$item->getDateTime()->format("Y-m-d")])){ + $sum[$item->getCurrency()][$item->getDateTime()->format("Y-m-d")] = []; + } + } + $sum[$item->getCurrency()][$item->getDateTime()->format("Y-m-d")][] = $item; + } + } + + return $sum; + } +} \ No newline at end of file diff --git a/project/src/Helper/FIFO/Main.php b/project/src/Helper/FIFO/Main.php new file mode 100644 index 0000000..a61db8d --- /dev/null +++ b/project/src/Helper/FIFO/Main.php @@ -0,0 +1,54 @@ +data = $data; + } + + protected function takeAllRealTransactions(string $abstract): array + { + $tmp = []; + $keys = array_shift($this->data); + $names = []; + + foreach ($keys as $keyId => $key) { + /** @var CryptoValues $abstract */ + if ($abstract::isValue("values",$key)) { + $names[$keyId] = "setValue"; + } + if ($abstract::isValue("date",$key)) { + $names[$keyId] = "setDateTime"; + } + if ($abstract::isValue("currency",$key)) { + $names[$keyId] = "setCurrency"; + } + if ($abstract::isValue("desc",$key)) { + $names[$keyId] = "setDesc"; + } + } + foreach ($this->data as $datum) { + $obj = new MainObject(); + foreach ($names as $key => $name) { + if ($name === "setValue") { + $datum[$key] = floatval($datum[$key]); + } + if ($name === "setDateTime") { + $datum[$key] = new \DateTime($datum[$key]); + } + $obj->$name($datum[$key]); + } + $tmp[] = $obj; + } + return $tmp; + } +} \ No newline at end of file diff --git a/project/src/Helper/Sheets/ReadSheet.php b/project/src/Helper/Sheets/ReadSheet.php new file mode 100644 index 0000000..74717ae --- /dev/null +++ b/project/src/Helper/Sheets/ReadSheet.php @@ -0,0 +1,41 @@ +filePath = $file; + } + } + + public function getAll() : array + { + return $this->arr; + } + + public function takeFile() : bool + { + if (!$this->filePath) { + return false; + } + $fileType = explode(".", $this->filePath); + + $reader = IOFactory::createReader(ucfirst($fileType[1])); + $reader->setLoadAllSheets(); + $reader->setReadDataOnly(true); + $spreadsheet = $reader->load($this->filePath); + foreach ($spreadsheet->getAllSheets() as $sheetName) { + $this->arr[] = $sheetName->toArray(); + } + + return count($this->arr) > 0; + } +} diff --git a/project/src/Kernel.php b/project/src/Kernel.php new file mode 100644 index 0000000..779cd1f --- /dev/null +++ b/project/src/Kernel.php @@ -0,0 +1,11 @@ +dateTime; + } + + /** + * @param \DateTime $dateTime + */ + public function setDateTime(\DateTime $dateTime): void + { + $this->dateTime = $dateTime; + } + + /** + * @return string + */ + public function getDesc(): string + { + return $this->desc; + } + + /** + * @param string $desc + */ + public function setDesc(string $desc): void + { + $this->desc = $desc; + } + + /** + * @return float + */ + public function getValue(): float + { + return $this->value; + } + + /** + * @param float $value + */ + public function setValue(float $value): void + { + $this->value = $value; + } + + /** + * @return string + */ + public function getCurrency(): string + { + return $this->currency; + } + + /** + * @param string $currency + */ + public function setCurrency(string $currency): void + { + $this->currency = $currency; + } + +} \ No newline at end of file diff --git a/project/src/Logic/Dividends/DividendsData.php b/project/src/Logic/Dividends/DividendsData.php new file mode 100644 index 0000000..4f670c2 --- /dev/null +++ b/project/src/Logic/Dividends/DividendsData.php @@ -0,0 +1,109 @@ +isin; + } + + /** + * @param string $isin + */ + public function setIsin(string $isin): void + { + $this->isin = $isin; + } + + /** + * @return \DateTime + */ + public function getDateTime(): \DateTime + { + return $this->dateTime; + } + + /** + * @param \DateTime $dateTime + */ + public function setDateTime(\DateTime $dateTime): void + { + $this->dateTime = $dateTime; + } + + /** + * @return int + */ + public function getTax(): int + { + return $this->tax; + } + + /** + * @param int $tax + */ + public function setTax(int $tax): void + { + $this->tax = $tax; + } + + /** + * @return int + */ + public function getCount(): int + { + return $this->count; + } + + /** + * @param int $count + */ + public function setCount(int $count): void + { + $this->count = $count; + } + + /** + * @return float + */ + public function getValue(): float + { + return $this->value; + } + + /** + * @param float $value + */ + public function setValue(float $value): void + { + $this->value = $value; + } + + /** + * @return string + */ + public function getCurrency(): string + { + return $this->currency; + } + + /** + * @param string $currency + */ + public function setCurrency(string $currency): void + { + $this->currency = $currency; + } +} \ No newline at end of file diff --git a/project/src/Logic/Dividends/DividendsSummary.php b/project/src/Logic/Dividends/DividendsSummary.php new file mode 100644 index 0000000..6647b9a --- /dev/null +++ b/project/src/Logic/Dividends/DividendsSummary.php @@ -0,0 +1,109 @@ +currencyObj = new Currency($manager); + } + + public function getSummaryByCountry() : array + { + $return=[]; + $this->countFromSheets(); + + if (count($this->allData) > 0) { + $sum = 0; + foreach ($this->allData as $key => $item) { + $val = round($item, 2); + $sum += $val; + $return[$key] = [ + "country" => \Locale::getDisplayRegion("-".$key), + "value" => $val, + "currency" => $this->countryToCurrency[$key] + ]; + } + $return['sum'] = intval(ceil($sum)); + } + + return $return; + } + + private function countFromSheets() : void + { + if (!count($this->sheetData)) { + return; + } + $test=[]; + $countryToCurrency=[]; + /** @var SheetData $sheetDatum */ + foreach ($this->sheetData as $sheetDatum) { + $all = $sheetDatum->getByCountry(); + foreach ($all as $country => $item) { + /** @var DividendsData $val */ + foreach ($item as $val) { + if (!isset($test[$country])) $test[$country] = 0; + $test[$country] += $this->count($val); + if (!isset($countryToCurrency[$country])) { + $countryToCurrency[$country] = $val->getCurrency(); + } + } + } + } + + $this->allData = array_merge($this->allData,$test); + $this->countryToCurrency = array_merge($this->countryToCurrency,$countryToCurrency); + } + + private function getRate(DividendsData $data) : float + { + return $this->currencyObj->getRate($data->getCurrency(),$data->getDateTime(),$this->error); + } + + private function count(DividendsData $data) : float + { + $value = round($data->getCount()*$data->getValue(),2); + $tax = 19; + if ($data->getTax() > 0) { + $tax = 4; + } + $valueTax = round($value * $tax / 100); + $rate = $this->getRate($data); + if ($rate > 0) { + return $valueTax * $rate; + } + $this->error[]=$data; + return 0; + } + + /** + * @param SheetData $sheetData + */ + public function addSheetData(SheetData $sheetData): void + { + $this->sheetData[] = $sheetData; + } + + /** + * @param XMLReader $reader + */ + public function addXml(XMLReader $reader) + { + $this->xmlData[] = $reader; + } + +} \ No newline at end of file diff --git a/project/src/Logic/Dividends/SheetData.php b/project/src/Logic/Dividends/SheetData.php new file mode 100644 index 0000000..dbca17e --- /dev/null +++ b/project/src/Logic/Dividends/SheetData.php @@ -0,0 +1,127 @@ + name, 1 -> ISIN + private array $dataIndex; + private array $data; + + public function __construct(array $data) + { + $this->rawData = $data; + } + + public function get() : array + { + if (isset($this->data)) { + return $this->data; + } + + $needIndex = []; + foreach ($this->rawData as $index => $rawDatum) { + if ($index === 0) { + $this->dataIndex = $rawDatum; + continue; + } + $setDatas=[]; + foreach ($rawDatum as $i => $data) { + $dataType = $this->getDataType($data,$setDatas); + if ($dataType){ + $needIndex[$i] = $dataType; + } + } + unset($setDatas); + break; + } + $ret = []; + foreach ($this->rawData as $index => $datum) { + if ($index === 0) { + continue; + } + $row=[]; + foreach ($datum as $i => $d) { + if (isset($needIndex[$i])) { + $row[$needIndex[$i]] = $d; + } + } + $dividendObj = new DividendsData(); + $dividendObj->setCount($row['count']); + $dividendObj->setIsin($row['isin']); + $dividendObj->setCurrency($row['currency']); + $dividendObj->setTax($row['tax']); + $dividendObj->setValue($row['value']); + $dividendObj->setDateTime(new \DateTime(str_replace(".","-",$row['date']))); + $ret[] = $dividendObj; + } + $this->data = $ret; + return $ret; + } + + public function getByCountry() : array + { + $data = $this->get(); + if (!$data) { + return []; + } + $newArr = []; + /** @var DividendsData $datum */ + foreach ($data as $datum) { + $key = mb_substr($datum->getIsin(), 0, 2); + $newArr[$key][] = $datum; + } + + return $newArr; + } + + public function takeColumnNames() : array + { + return $this->dataIndex; + } + + private function getDataType($data,&$setDatas) : ?string + { + if (is_int($data)){ + $ret = "count"; + $count = &$setDatas['int']; + if ($count===1){ + $ret = "tax"; + } + if ($count > 1) { + $ret = null; + } + $count++; + return $ret; + } + if (is_float($data)) { + $ret = "value"; + $count = &$setDatas['float']; + if ($count > 0) { + $ret = null; + } + $count++; + return $ret; + } + if (in_array(mb_substr($data, 0, 2), ['CA', 'US', 'IE', 'GB']) && intval(mb_substr($data, 2, 1))>0) { + $count = &$setDatas['data']; + $ret = "isin"; + if ($count > 0) { + $ret = null; + } + $count++; + return $ret; + } + if (in_array($data, Currency::$currencies)) { + return "currency"; + } + if (count(explode(".", $data)) === 3) { + return "date"; + } + + return null; + } +} diff --git a/project/src/Logic/Dividends/XMLReader.php b/project/src/Logic/Dividends/XMLReader.php new file mode 100644 index 0000000..7cedc22 --- /dev/null +++ b/project/src/Logic/Dividends/XMLReader.php @@ -0,0 +1,85 @@ +filePath = $file; + } + } + + public function readFile() + { + if (!is_file($this->filePath)) { + return; + } + $a = $this->tryCashTransaction(); + $xml = simplexml_load_file($this->filePath, null, LIBXML_NOCDATA); + $json = json_encode($xml); + $arr = json_decode($json, true); + $this->findValues($arr); + } + + private function tryCashTransaction() + { + $obj = new \DOMDocument(); + $obj->load($this->filePath); + $node = $obj->getElementsByTagName("CashTransaction"); + if (count($node) < 1) { + return; + } + foreach ($node as $item) { + $values = explode(" ", $item->getAttribute('description')); + dd($values); + } + + } + + private function findValues(array $arr) + { + $obj = new DividendsData(); + $isset=false; + foreach ($arr as $key => $value) { + if (is_array($value)) { + $this->findValues($value); + } else { + $isset=true; + if ($key === "currency") { + $obj->setCurrency($value); + } + if ($key === "payDate") { + $tmp = str_split($value, 4); + $y=$tmp[0]; + $tmp = str_split($tmp[1],2); + $d = $tmp[1]; + $m = $tmp[0]; + +// $a = implode("-", array_merge(str_split($tmp[1],2),$tmp[0])); +// print_r($a); + $obj->setDateTime(new \DateTime("$y-$m-$d")); + } + if ($key === "quantity") { + $obj->setCount(intval($value)); + } + if ($key === "isin") { + $obj->setIsin($value); + } + if ($key === "grossRate") { + $obj->setValue(floatval($value)); + } + + + } + } + if ($isset) { + $this->datas[] = $obj; + } + } +} \ No newline at end of file diff --git a/project/src/Repository/.gitignore b/project/src/Repository/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/project/src/Repository/ExchangeRatesRepository.php b/project/src/Repository/ExchangeRatesRepository.php new file mode 100644 index 0000000..2b74757 --- /dev/null +++ b/project/src/Repository/ExchangeRatesRepository.php @@ -0,0 +1,76 @@ +_em->persist($entity); + if ($flush) { + $this->_em->flush(); + } + } + + /** + * @throws ORMException + * @throws OptimisticLockException + */ + public function remove(ExchangeRates $entity, bool $flush = true): void + { + $this->_em->remove($entity); + if ($flush) { + $this->_em->flush(); + } + } + + // /** + // * @return ExchangeRates[] Returns an array of ExchangeRates objects + // */ + /* + public function findByExampleField($value) + { + return $this->createQueryBuilder('e') + ->andWhere('e.exampleField = :val') + ->setParameter('val', $value) + ->orderBy('e.id', 'ASC') + ->setMaxResults(10) + ->getQuery() + ->getResult() + ; + } + */ + + /* + public function findOneBySomeField($value): ?ExchangeRates + { + return $this->createQueryBuilder('e') + ->andWhere('e.exampleField = :val') + ->setParameter('val', $value) + ->getQuery() + ->getOneOrNullResult() + ; + } + */ +} diff --git a/project/src/Services/CryptoService.php b/project/src/Services/CryptoService.php new file mode 100644 index 0000000..9aab4cf --- /dev/null +++ b/project/src/Services/CryptoService.php @@ -0,0 +1,30 @@ +manager); + + foreach ($this->allFiles as $file) { + $extension = pathinfo($file)['extension']; + $tmp = new ReadSheet($file); + $tmp->takeFile(); + $a = new Crypto($tmp->getAll()[0]); + dd($a->takeSumTransactions()); + } + + + + return $summaryObj; + } +} \ No newline at end of file diff --git a/project/src/Services/DividendsService.php b/project/src/Services/DividendsService.php new file mode 100644 index 0000000..e9c3291 --- /dev/null +++ b/project/src/Services/DividendsService.php @@ -0,0 +1,40 @@ +manager); + + foreach ($this->allFiles as $file) { + $extension = pathinfo($file)['extension']; + if (in_array($extension, ['xlsx','csv'])) { + $reader = new ReadSheet($file); + if ($reader->takeFile()) { + /** @var SheetData $item */ + foreach ($reader->getAll() as $val) { + $item = new SheetData($val); + $summaryObj->addSheetData($item); + } + } + } + if ($extension === "xml") { + $obj = new XMLReader($file); + $obj->readFile(); + $summaryObj->addXml($obj); + } + } + + + + return $summaryObj; + } +} \ No newline at end of file diff --git a/project/src/Services/MasterServices.php b/project/src/Services/MasterServices.php new file mode 100644 index 0000000..dce7d01 --- /dev/null +++ b/project/src/Services/MasterServices.php @@ -0,0 +1,40 @@ +manager = $entity; + $this->hashParam = $hash; + } + + public function setUploadsPath(string $path) + { + $this->uploadPath = $path; + } + + public function readFiles() : bool + { + $fileNames = []; + $dir=$this->uploadPath . "/" . $this->hashParam; + $handle = opendir($dir); + while (($inDir = readdir($handle)) !== false) { + if ($inDir !== "." && $inDir !== "..") { + $fileNames[] = $dir."/".$inDir; + } + } + closedir($handle); + $this->allFiles=$fileNames; + + return count($fileNames) > 0; + } +} \ No newline at end of file diff --git a/project/symfony.lock b/project/symfony.lock new file mode 100644 index 0000000..8c199e0 --- /dev/null +++ b/project/symfony.lock @@ -0,0 +1,554 @@ +{ + "doctrine/annotations": { + "version": "1.13", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "a2759dd6123694c8d901d0ec80006e044c2e6457" + }, + "files": [ + "config/routes/annotations.yaml" + ] + }, + "doctrine/cache": { + "version": "2.1.1" + }, + "doctrine/collections": { + "version": "1.6.8" + }, + "doctrine/common": { + "version": "3.2.2" + }, + "doctrine/dbal": { + "version": "3.3.2" + }, + "doctrine/deprecations": { + "version": "v0.5.3" + }, + "doctrine/doctrine-bundle": { + "version": "2.5", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "2.4", + "ref": "ddddd8249dd55bbda16fa7a45bb7499ef6f8e90e" + }, + "files": [ + "config/packages/doctrine.yaml", + "src/Entity/.gitignore", + "src/Repository/.gitignore" + ] + }, + "doctrine/doctrine-migrations-bundle": { + "version": "3.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.1", + "ref": "ee609429c9ee23e22d6fa5728211768f51ed2818" + }, + "files": [ + "config/packages/doctrine_migrations.yaml", + "migrations/.gitignore" + ] + }, + "doctrine/event-manager": { + "version": "1.1.1" + }, + "doctrine/inflector": { + "version": "2.0.4" + }, + "doctrine/instantiator": { + "version": "1.4.0" + }, + "doctrine/lexer": { + "version": "1.2.3" + }, + "doctrine/migrations": { + "version": "3.4.1" + }, + "doctrine/orm": { + "version": "2.11.1" + }, + "doctrine/persistence": { + "version": "2.3.0" + }, + "doctrine/sql-formatter": { + "version": "1.1.2" + }, + "egulias/email-validator": { + "version": "3.1.2" + }, + "ezyang/htmlpurifier": { + "version": "v4.14.0" + }, + "friendsofphp/proxy-manager-lts": { + "version": "v1.0.6" + }, + "laminas/laminas-code": { + "version": "4.5.1" + }, + "maennchen/zipstream-php": { + "version": "2.1.0" + }, + "markbaker/complex": { + "version": "3.0.1" + }, + "markbaker/matrix": { + "version": "3.0.0" + }, + "monolog/monolog": { + "version": "2.3.5" + }, + "myclabs/php-enum": { + "version": "1.8.3" + }, + "nikic/php-parser": { + "version": "v4.13.2" + }, + "phpdocumentor/reflection-common": { + "version": "2.2.0" + }, + "phpdocumentor/reflection-docblock": { + "version": "5.3.0" + }, + "phpdocumentor/type-resolver": { + "version": "1.6.0" + }, + "phpoffice/phpspreadsheet": { + "version": "1.22.0" + }, + "phpstan/phpdoc-parser": { + "version": "1.2.0" + }, + "psr/cache": { + "version": "1.0.1" + }, + "psr/container": { + "version": "1.1.2" + }, + "psr/event-dispatcher": { + "version": "1.0.0" + }, + "psr/http-client": { + "version": "1.0.1" + }, + "psr/http-factory": { + "version": "1.0.1" + }, + "psr/http-message": { + "version": "1.0.1" + }, + "psr/link": { + "version": "1.0.0" + }, + "psr/log": { + "version": "1.1.4" + }, + "psr/simple-cache": { + "version": "1.0.1" + }, + "sensio/framework-extra-bundle": { + "version": "6.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.2", + "ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b" + }, + "files": [ + "config/packages/sensio_framework_extra.yaml" + ] + }, + "symfony/amqp-messenger": { + "version": "v5.4.5" + }, + "symfony/asset": { + "version": "v5.4.3" + }, + "symfony/cache": { + "version": "v5.4.5" + }, + "symfony/cache-contracts": { + "version": "v2.5.0" + }, + "symfony/config": { + "version": "v5.4.3" + }, + "symfony/console": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "da0c8be8157600ad34f10ff0c9cc91232522e047" + }, + "files": [ + "bin/console" + ] + }, + "symfony/debug-bundle": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "5aa8aa48234c8eb6dbdd7b3cd5d791485d2cec4b" + }, + "files": [ + "config/packages/debug.yaml" + ] + }, + "symfony/dependency-injection": { + "version": "v5.4.5" + }, + "symfony/deprecation-contracts": { + "version": "v2.5.0" + }, + "symfony/doctrine-bridge": { + "version": "v5.4.5" + }, + "symfony/doctrine-messenger": { + "version": "v5.4.3" + }, + "symfony/dotenv": { + "version": "v5.4.5" + }, + "symfony/error-handler": { + "version": "v5.4.3" + }, + "symfony/event-dispatcher": { + "version": "v5.4.3" + }, + "symfony/event-dispatcher-contracts": { + "version": "v2.5.0" + }, + "symfony/expression-language": { + "version": "v5.4.3" + }, + "symfony/filesystem": { + "version": "v5.4.5" + }, + "symfony/finder": { + "version": "v5.4.3" + }, + "symfony/flex": { + "version": "1.18", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "c0eeb50665f0f77226616b6038a9b06c03752d8e" + }, + "files": [ + ".env" + ] + }, + "symfony/form": { + "version": "v5.4.5" + }, + "symfony/framework-bundle": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.4", + "ref": "3cd216a4d007b78d8554d44a5b1c0a446dab24fb" + }, + "files": [ + "config/packages/cache.yaml", + "config/packages/framework.yaml", + "config/preload.php", + "config/routes/framework.yaml", + "config/services.yaml", + "public/index.php", + "src/Controller/.gitignore", + "src/Kernel.php" + ] + }, + "symfony/http-client": { + "version": "v5.4.5" + }, + "symfony/http-client-contracts": { + "version": "v2.5.0" + }, + "symfony/http-foundation": { + "version": "v5.4.5" + }, + "symfony/http-kernel": { + "version": "v5.4.5" + }, + "symfony/intl": { + "version": "v5.4.5" + }, + "symfony/mailer": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.3", + "ref": "bbfc7e27257d3a3f12a6fb0a42540a42d9623a37" + }, + "files": [ + "config/packages/mailer.yaml" + ] + }, + "symfony/maker-bundle": { + "version": "1.38", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f" + } + }, + "symfony/messenger": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.3", + "ref": "25e3c964d3aee480b3acc3114ffb7940c89edfed" + }, + "files": [ + "config/packages/messenger.yaml" + ] + }, + "symfony/mime": { + "version": "v5.4.3" + }, + "symfony/monolog-bridge": { + "version": "v5.4.3" + }, + "symfony/monolog-bundle": { + "version": "3.7", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.7", + "ref": "213676c4ec929f046dfde5ea8e97625b81bc0578" + }, + "files": [ + "config/packages/monolog.yaml" + ] + }, + "symfony/notifier": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.0", + "ref": "c31585e252b32fe0e1f30b1f256af553f4a06eb9" + }, + "files": [ + "config/packages/notifier.yaml" + ] + }, + "symfony/options-resolver": { + "version": "v5.4.3" + }, + "symfony/password-hasher": { + "version": "v5.4.3" + }, + "symfony/polyfill-intl-grapheme": { + "version": "v1.24.0" + }, + "symfony/polyfill-intl-icu": { + "version": "v1.24.0" + }, + "symfony/polyfill-intl-idn": { + "version": "v1.24.0" + }, + "symfony/polyfill-intl-normalizer": { + "version": "v1.24.0" + }, + "symfony/polyfill-mbstring": { + "version": "v1.24.0" + }, + "symfony/polyfill-php73": { + "version": "v1.24.0" + }, + "symfony/polyfill-php80": { + "version": "v1.24.0" + }, + "symfony/polyfill-php81": { + "version": "v1.24.0" + }, + "symfony/process": { + "version": "v5.4.5" + }, + "symfony/property-access": { + "version": "v5.4.5" + }, + "symfony/property-info": { + "version": "v5.4.3" + }, + "symfony/proxy-manager-bridge": { + "version": "v5.4.3" + }, + "symfony/redis-messenger": { + "version": "v5.4.5" + }, + "symfony/routing": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "85de1d8ae45b284c3c84b668171d2615049e698f" + }, + "files": [ + "config/packages/routing.yaml", + "config/routes.yaml" + ] + }, + "symfony/runtime": { + "version": "v5.4.5" + }, + "symfony/security-bundle": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "98f1f2b0d635908c2b40f3675da2d23b1a069d30" + }, + "files": [ + "config/packages/security.yaml" + ] + }, + "symfony/security-core": { + "version": "v5.4.5" + }, + "symfony/security-csrf": { + "version": "v5.4.3" + }, + "symfony/security-guard": { + "version": "v5.4.3" + }, + "symfony/security-http": { + "version": "v5.4.5" + }, + "symfony/serializer": { + "version": "v5.4.5" + }, + "symfony/service-contracts": { + "version": "v2.5.0" + }, + "symfony/stopwatch": { + "version": "v5.4.5" + }, + "symfony/string": { + "version": "v5.4.3" + }, + "symfony/translation": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "da64f5a2b6d96f5dc24914517c0350a5f91dee43" + }, + "files": [ + "config/packages/translation.yaml", + "translations/.gitignore" + ] + }, + "symfony/translation-contracts": { + "version": "v2.5.0" + }, + "symfony/twig-bridge": { + "version": "v5.4.5" + }, + "symfony/twig-bundle": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.4", + "ref": "bb2178c57eee79e6be0b297aa96fc0c0def81387" + }, + "files": [ + "config/packages/twig.yaml", + "templates/base.html.twig" + ] + }, + "symfony/validator": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "c32cfd98f714894c4f128bb99aa2530c1227603c" + }, + "files": [ + "config/packages/validator.yaml" + ] + }, + "symfony/var-dumper": { + "version": "v5.4.5" + }, + "symfony/var-exporter": { + "version": "v5.4.3" + }, + "symfony/web-link": { + "version": "v5.4.3" + }, + "symfony/web-profiler-bundle": { + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "24bbc3d84ef2f427f82104f766014e799eefcc3e" + }, + "files": [ + "config/packages/web_profiler.yaml", + "config/routes/web_profiler.yaml" + ] + }, + "symfony/webapp-meta": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "67cae591d131c133d63b893c5324796b88c59b34" + }, + "files": [ + "config/packages/messenger.yaml" + ] + }, + "symfony/webpack-encore-bundle": { + "version": "1.14", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.10", + "ref": "2858aeed7e1d81a45365c049eb533cc8827e380b" + }, + "files": [ + "assets/app.js", + "assets/bootstrap.js", + "assets/controllers.json", + "assets/controllers/hello_controller.js", + "assets/styles/app.css", + "config/packages/webpack_encore.yaml", + "package.json", + "webpack.config.js" + ] + }, + "symfony/yaml": { + "version": "v5.4.3" + }, + "twig/extra-bundle": { + "version": "v3.3.8" + }, + "twig/twig": { + "version": "v3.3.8" + }, + "webmozart/assert": { + "version": "1.10.0" + } +} diff --git a/project/templates/base.html.twig b/project/templates/base.html.twig new file mode 100644 index 0000000..d20edb5 --- /dev/null +++ b/project/templates/base.html.twig @@ -0,0 +1,21 @@ + + + + + {% block title %}Welcome!{% endblock %} + + {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #} + {% block stylesheets %} + {{ encore_entry_link_tags('app') }} + {% endblock %} + + {% block javascripts %} + {{ encore_entry_script_tags('app') }} + {% endblock %} + + +

+ {% block body %}{% endblock %} +
+ + diff --git a/project/templates/taxes/index.html.twig b/project/templates/taxes/index.html.twig new file mode 100644 index 0000000..589136e --- /dev/null +++ b/project/templates/taxes/index.html.twig @@ -0,0 +1,23 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello TaxesController!{% endblock %} + +{% block body %} + + +
+

Hello {{ controller_name }}! ✅

+ + This friendly message is coming from: + +
+ {{ form(form) }} + + {{ dump(sheet) }} +{% endblock %} diff --git a/project/templates/taxes/show.html.twig b/project/templates/taxes/show.html.twig new file mode 100644 index 0000000..c61f388 --- /dev/null +++ b/project/templates/taxes/show.html.twig @@ -0,0 +1,35 @@ +{% extends 'base.html.twig' %} + +{% block title %}Tax summary{% endblock %} + +{% block body %} +
+
+ {% if taxes %} + + + + + + + + + + {% for tax in taxes %} + + {% if tax.country is defined %} + + + + {% else %} + + + {% endif %} + + {% endfor %} + +
L.p.CountryValue
{{ loop.index }}{{ tax.country }}{{ tax.value }}złSummary:{{ tax }}zł
+ {% endif %} +
+
+{% endblock %} \ No newline at end of file diff --git a/project/translations/.gitignore b/project/translations/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/project/uploads/.gitkeep b/project/uploads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/project/webpack.config.js b/project/webpack.config.js new file mode 100644 index 0000000..85336af --- /dev/null +++ b/project/webpack.config.js @@ -0,0 +1,76 @@ +const Encore = require('@symfony/webpack-encore'); + +// Manually configure the runtime environment if not already configured yet by the "encore" command. +// It's useful when you use tools that rely on webpack.config.js file. +if (!Encore.isRuntimeEnvironmentConfigured()) { + Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev'); +} + +Encore + // directory where compiled assets will be stored + .setOutputPath('public/build/') + // public path used by the web server to access the output path + .setPublicPath('/build') + // only needed for CDN's or sub-directory deploy + //.setManifestKeyPrefix('build/') + + /* + * ENTRY CONFIG + * + * Each entry will result in one JavaScript file (e.g. app.js) + * and one CSS file (e.g. app.css) if your JavaScript imports CSS. + */ + .addEntry('app', './assets/app.js') + + // enables the Symfony UX Stimulus bridge (used in assets/bootstrap.js) + .enableStimulusBridge('./assets/controllers.json') + + // When enabled, Webpack "splits" your files into smaller pieces for greater optimization. + .splitEntryChunks() + + // will require an extra script tag for runtime.js + // but, you probably want this, unless you're building a single-page app + .enableSingleRuntimeChunk() + + /* + * FEATURE CONFIG + * + * Enable & configure other features below. For a full + * list of features, see: + * https://symfony.com/doc/current/frontend.html#adding-more-features + */ + .cleanupOutputBeforeBuild() + .enableBuildNotifications() + .enableSourceMaps(!Encore.isProduction()) + // enables hashed filenames (e.g. app.abc123.css) + .enableVersioning(Encore.isProduction()) + + .configureBabel((config) => { + config.plugins.push('@babel/plugin-proposal-class-properties'); + }) + + // enables @babel/preset-env polyfills + .configureBabelPresetEnv((config) => { + config.useBuiltIns = 'usage'; + config.corejs = 3; + }) + + // enables Sass/SCSS support + //.enableSassLoader() + .enableLessLoader() + + // uncomment if you use TypeScript + //.enableTypeScriptLoader() + + // uncomment if you use React + //.enableReactPreset() + + // uncomment to get integrity="..." attributes on your script & link tags + // requires WebpackEncoreBundle 1.4 or higher + //.enableIntegrityHashes(Encore.isProduction()) + + // uncomment if you're having problems with a jQuery plugin + //.autoProvidejQuery() +; + +module.exports = Encore.getWebpackConfig(); diff --git a/services/config/entrypoint.sh b/services/config/entrypoint.sh new file mode 100644 index 0000000..575ca17 --- /dev/null +++ b/services/config/entrypoint.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -e + +php-fpm -D +nginx -g 'daemon off;' \ No newline at end of file diff --git a/services/config/nginx-site.conf b/services/config/nginx-site.conf new file mode 100644 index 0000000..4d4120b --- /dev/null +++ b/services/config/nginx-site.conf @@ -0,0 +1,37 @@ +server { + listen 80 default_server; + root /var/www/html/public; + index index index.php; + server_name localhost confirmation.docker; + + location / { + try_files $uri /index.php$is_args$args; + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + } + location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { + expires 5d; + } + location ~* \.gz$ { + expires 5d; + gzip_static on; + add_header Content-Encoding gzip; + gzip off; + location ~* \.css\.gz$ { types { text/css gz; } } + location ~* \.js\.gz$ { types { application/javascript gz; } } + } + + # Deny access to . files, for security + location ~ /\. { + log_not_found off; + deny all; + } +} diff --git a/services/wait_for_it/Dockerfile b/services/wait_for_it/Dockerfile new file mode 100644 index 0000000..aa3e157 --- /dev/null +++ b/services/wait_for_it/Dockerfile @@ -0,0 +1,6 @@ +FROM alpine:latest +RUN apk update && apk add bash + +COPY services/wait_for_it/wait-for-it.sh /wait +RUN chmod +x /wait + diff --git a/services/wait_for_it/sayhello.sh b/services/wait_for_it/sayhello.sh new file mode 100644 index 0000000..e4fb904 --- /dev/null +++ b/services/wait_for_it/sayhello.sh @@ -0,0 +1,9 @@ +#!/bin/sh +echo "Hello, my name is Shiny! Who am I talking to?" +echo Type your name to continue: +read name +echo -------------------------- +echo Nice to meet you $name!. +echo You have done a great job. +echo 💥 Congratulations $name and see you later 💥 +echo -------------------------- \ No newline at end of file diff --git a/services/wait_for_it/wait-for-it.sh b/services/wait_for_it/wait-for-it.sh new file mode 100755 index 0000000..d990e0d --- /dev/null +++ b/services/wait_for_it/wait-for-it.sh @@ -0,0 +1,182 @@ +#!/usr/bin/env bash +# Use this script to test if a given TCP host/port are available + +WAITFORIT_cmdname=${0##*/} + +echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } + +usage() +{ + cat << USAGE >&2 +Usage: + $WAITFORIT_cmdname host:port [-s] [-t timeout] [-- command args] + -h HOST | --host=HOST Host or IP under test + -p PORT | --port=PORT TCP port under test + Alternatively, you specify the host and port as host:port + -s | --strict Only execute subcommand if the test succeeds + -q | --quiet Don't output any status messages + -t TIMEOUT | --timeout=TIMEOUT + Timeout in seconds, zero for no timeout + -- COMMAND ARGS Execute command with args after the test finishes +USAGE + exit 1 +} + +wait_for() +{ + if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then + echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" + else + echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout" + fi + WAITFORIT_start_ts=$(date +%s) + while : + do + if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then + nc -z $WAITFORIT_HOST $WAITFORIT_PORT + WAITFORIT_result=$? + else + (echo -n > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1 + WAITFORIT_result=$? + fi + if [[ $WAITFORIT_result -eq 0 ]]; then + WAITFORIT_end_ts=$(date +%s) + echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" + break + fi + sleep 1 + done + return $WAITFORIT_result +} + +wait_for_wrapper() +{ + # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692 + if [[ $WAITFORIT_QUIET -eq 1 ]]; then + timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --quiet --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & + else + timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & + fi + WAITFORIT_PID=$! + trap "kill -INT -$WAITFORIT_PID" INT + wait $WAITFORIT_PID + WAITFORIT_RESULT=$? + if [[ $WAITFORIT_RESULT -ne 0 ]]; then + echoerr "$WAITFORIT_cmdname: timeout occurred after waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" + fi + return $WAITFORIT_RESULT +} + +# process arguments +while [[ $# -gt 0 ]] +do + case "$1" in + *:* ) + WAITFORIT_hostport=(${1//:/ }) + WAITFORIT_HOST=${WAITFORIT_hostport[0]} + WAITFORIT_PORT=${WAITFORIT_hostport[1]} + shift 1 + ;; + --child) + WAITFORIT_CHILD=1 + shift 1 + ;; + -q | --quiet) + WAITFORIT_QUIET=1 + shift 1 + ;; + -s | --strict) + WAITFORIT_STRICT=1 + shift 1 + ;; + -h) + WAITFORIT_HOST="$2" + if [[ $WAITFORIT_HOST == "" ]]; then break; fi + shift 2 + ;; + --host=*) + WAITFORIT_HOST="${1#*=}" + shift 1 + ;; + -p) + WAITFORIT_PORT="$2" + if [[ $WAITFORIT_PORT == "" ]]; then break; fi + shift 2 + ;; + --port=*) + WAITFORIT_PORT="${1#*=}" + shift 1 + ;; + -t) + WAITFORIT_TIMEOUT="$2" + if [[ $WAITFORIT_TIMEOUT == "" ]]; then break; fi + shift 2 + ;; + --timeout=*) + WAITFORIT_TIMEOUT="${1#*=}" + shift 1 + ;; + --) + shift + WAITFORIT_CLI=("$@") + break + ;; + --help) + usage + ;; + *) + echoerr "Unknown argument: $1" + usage + ;; + esac +done + +if [[ "$WAITFORIT_HOST" == "" || "$WAITFORIT_PORT" == "" ]]; then + echoerr "Error: you need to provide a host and port to test." + usage +fi + +WAITFORIT_TIMEOUT=${WAITFORIT_TIMEOUT:-15} +WAITFORIT_STRICT=${WAITFORIT_STRICT:-0} +WAITFORIT_CHILD=${WAITFORIT_CHILD:-0} +WAITFORIT_QUIET=${WAITFORIT_QUIET:-0} + +# Check to see if timeout is from busybox? +WAITFORIT_TIMEOUT_PATH=$(type -p timeout) +WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH) + +WAITFORIT_BUSYTIMEFLAG="" +if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then + WAITFORIT_ISBUSY=1 + # Check if busybox timeout uses -t flag + # (recent Alpine versions don't support -t anymore) + if timeout &>/dev/stdout | grep -q -e '-t '; then + WAITFORIT_BUSYTIMEFLAG="-t" + fi +else + WAITFORIT_ISBUSY=0 +fi + +if [[ $WAITFORIT_CHILD -gt 0 ]]; then + wait_for + WAITFORIT_RESULT=$? + exit $WAITFORIT_RESULT +else + if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then + wait_for_wrapper + WAITFORIT_RESULT=$? + else + wait_for + WAITFORIT_RESULT=$? + fi +fi + +if [[ $WAITFORIT_CLI != "" ]]; then + if [[ $WAITFORIT_RESULT -ne 0 && $WAITFORIT_STRICT -eq 1 ]]; then + echoerr "$WAITFORIT_cmdname: strict mode, refusing to execute subprocess" + exit $WAITFORIT_RESULT + fi + exec "${WAITFORIT_CLI[@]}" +else + exit $WAITFORIT_RESULT +fi diff --git a/services/www/Dockerfile b/services/www/Dockerfile new file mode 100644 index 0000000..2bf5a70 --- /dev/null +++ b/services/www/Dockerfile @@ -0,0 +1,69 @@ + +FROM php:7.4-fpm +RUN apt-get update -y \ + && apt-get install -y nginx \ + && apt-get install -y libpq-dev + + +RUN pecl install redis-5.1.1 \ + && pecl install xdebug-2.8.1 \ + && docker-php-ext-enable redis xdebug + +RUN apt-get update && apt-get -y install curl + + #&& docker-php-ext-install mysqli pdo pdo_mysql \ + #&& docker-php-ext-install pdo pdo_pgsql \ + +#COPY ./services/config/php/* $PHP_INI_DIR/conf.d/ + +COPY --from=composer /usr/bin/composer /usr/bin/composer + +RUN mkdir -p /var/www/.composer +RUN chown www-data /var/www/.composer + + +RUN apt-get install -y \ + libzip-dev \ + zip \ + libicu-dev \ + libjpeg-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + zlib1g-dev \ + libwebp-dev \ + libfreetype6-dev \ + libonig-dev \ + npm \ + && docker-php-ext-configure zip \ + && docker-php-ext-install zip intl +RUN apt-get install -y libgd3 libgd-dev && rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure gd --with-jpeg +RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql +RUN docker-php-ext-install -j$(nproc) gd +#RUN docker-php-ext-install mysqli pdo pdo_mysql \ +RUN docker-php-ext-install pdo pdo_pgsql pgsql\ + && docker-php-ext-enable zip + + + + + +COPY services/config/nginx-site.conf /etc/nginx/sites-enabled/default +COPY services/config/entrypoint.sh /etc/entrypoint.sh + +RUN chmod +x /etc/entrypoint.sh +COPY --chown=www-data:www-data ./project /var/www/html +#COPY --chown=www-data:www-data ./index.php /var/www/html + + +#WORKDIR /var/www/html/src/composer +#RUN composer install --ignore-platform-reqs --no-scripts + +#COPY --from=minimalise --chown=www-data /var/www/html/src/scripts_generated /var/www/html/src/scripts_generated +WORKDIR /var/www/html +RUN composer install +RUN npm install +RUN npm run build +RUN apt-get purge --auto-remove -y npm + +ENTRYPOINT ["/etc/entrypoint.sh"] \ No newline at end of file