From daa518cce386488bde629813fc7644c4164396a5 Mon Sep 17 00:00:00 2001 From: Johannes Date: Thu, 5 Sep 2024 10:04:35 +0200 Subject: [PATCH 1/2] jtl mollie plugin v1.9.0 --- Bootstrap.php | 67 +- Migrations/Migration20200715104300.php | 36 +- Migrations/Migration20200717130530.php | 51 +- Migrations/Migration20201120155700.php | 37 +- Migrations/Migration20201130170200.php | 39 +- Migrations/Migration20210211144800.php | 41 +- Migrations/Migration20210323152500.php | 31 +- Migrations/Migration20210409161100.php | 37 +- Migrations/Migration20210615102200.php | 31 +- Migrations/Migration20210809150000.php | 31 +- Migrations/Migration20211012113600.php | 31 +- Migrations/Migration20211206112100.php | 33 +- Migrations/Migration20240418150300.php | 34 +- adminmenu/api.php | 25 +- adminmenu/app/package.json | 6 + adminmenu/app/src/assets/img/Przelewy24.svg | 1 + adminmenu/app/src/assets/img/Voucher.svg | 59 + adminmenu/app/src/assets/img/abocloud.png | Bin 0 -> 215779 bytes adminmenu/app/src/assets/img/applepay.svg | 1 + adminmenu/app/src/assets/img/bancontact.svg | 1 + adminmenu/app/src/assets/img/banktransfer.svg | 7 + adminmenu/app/src/assets/img/belfius.svg | 1 + adminmenu/app/src/assets/img/billie.svg | 4 + adminmenu/app/src/assets/img/blik.svg | 23 + adminmenu/app/src/assets/img/creditcard.svg | 1 + adminmenu/app/src/assets/img/directdebit.svg | 1 + adminmenu/app/src/assets/img/eps.svg | 1 + adminmenu/app/src/assets/img/giftcard.svg | 1 + adminmenu/app/src/assets/img/giropay.svg | 1 + adminmenu/app/src/assets/img/ideal.svg | 1 + adminmenu/app/src/assets/img/in3.svg | 14 + adminmenu/app/src/assets/img/inghomepay.svg | 1 + adminmenu/app/src/assets/img/kbc.svg | 1 + adminmenu/app/src/assets/img/klarna.svg | 5 + adminmenu/app/src/assets/img/klarnaone.svg | 4 + .../app/src/assets/img/mollie-dashboard.png | Bin 0 -> 82390 bytes adminmenu/app/src/assets/img/mybank.svg | 10 + adminmenu/app/src/assets/img/paypal.svg | 1 + adminmenu/app/src/assets/img/paysafecard.svg | 1 + adminmenu/app/src/assets/img/riverty.svg | 5 + adminmenu/app/src/assets/img/sofort.svg | 1 + adminmenu/app/src/assets/img/trustly.svg | 11 + adminmenu/app/src/assets/img/twint.svg | 29 + adminmenu/app/src/assets/tailwind.css | 20 + adminmenu/app/src/context/MollieContext.ts | 5 + .../app/src/context/PaymentMethodContext.tsx | 42 + adminmenu/app/src/helper.tsx | 247 + adminmenu/app/src/hooks/useErrorSnack.ts | 15 + adminmenu/app/src/hooks/useMollie.ts | 192 + adminmenu/app/src/hooks/useOrder.ts | 40 + adminmenu/app/src/hooks/useOrders.ts | 69 + adminmenu/app/src/hooks/usePaymentLogs.ts | 43 + adminmenu/app/src/hooks/useQueue.ts | 42 + adminmenu/app/src/hooks/useQueues.ts | 64 + adminmenu/app/src/hooks/useShipments.ts | 58 + adminmenu/app/src/hooks/useSuccessSnack.ts | 15 + adminmenu/app/src/hooks/useWarningSnack.ts | 15 + adminmenu/app/src/index.tsx | 24 + adminmenu/app/src/react-app-env.d.ts | 1 + adminmenu/app/src/reportWebVitals.ts | 15 + adminmenu/app/src/tabs.tsx | 145 + .../AboCloudWidget/index.tsx | 23 + .../ActivePaymentMethods/index.tsx | 90 + .../MollieDashboardLink/index.tsx | 75 + .../QuickStats/index.tsx | 113 + .../CustomDashboardGridCards/index.tsx | 19 + .../src/tabs/Orders/OrderDetails/Details.tsx | 78 + .../app/src/tabs/Orders/OrderDetails/Logs.tsx | 84 + .../tabs/Orders/OrderDetails/OrderLines.tsx | 178 + .../src/tabs/Orders/OrderDetails/Payments.tsx | 111 + .../src/tabs/Orders/OrderDetails/Queue.tsx | 97 + .../src/tabs/Orders/OrderDetails/Refunds.tsx | 149 + .../tabs/Orders/OrderDetails/Shipments.tsx | 112 + .../src/tabs/Orders/OrderDetails/index.tsx | 104 + adminmenu/app/src/tabs/Orders/index.tsx | 238 + .../components/PaymentMethodGrid.tsx | 20 + .../AdditionalInformation.tsx | 17 + .../ConfigurationItems.tsx | 70 + .../PaymentMethodGridItem/index.tsx | 63 + .../app/src/tabs/PaymentMethods/index.tsx | 60 + adminmenu/app/src/tabs/Queue/index.tsx | 188 + adminmenu/app/src/types/PaymentMethod.ts | 39 + adminmenu/app/yarn.lock | 13755 ++++++++++++++++ applepay.php | 18 +- frontend/hooks/131.php | 116 +- lib/Checkout/AbstractCheckout.php | 830 +- lib/Checkout/OrderCheckout.php | 379 +- lib/Checkout/PaymentCheckout.php | 208 +- lib/Controller/HelperController.php | 41 +- lib/Controller/MollieController.php | 298 +- lib/Controller/OrdersController.php | 189 +- lib/Controller/QueueController.php | 64 +- lib/Controller/ShipmentsController.php | 70 +- lib/Customer.php | 94 +- lib/ExclusiveLock.php | 82 +- lib/Helper/UrlHelper.php | 30 +- lib/Hook/ApplePay.php | 63 +- lib/Hook/Checkbox.php | 109 +- lib/Hook/IncompletePaymentHandler.php | 65 +- lib/Hook/Queue.php | 134 +- lib/Locale.php | 55 +- lib/Model/CustomerModel.php | 26 +- lib/Model/OrderModel.php | 55 +- lib/Model/QueueModel.php | 98 +- lib/Model/ShipmentsModel.php | 44 +- lib/MollieAPI.php | 106 +- lib/Order/Address.php | 67 +- lib/Order/Amount.php | 68 +- lib/Order/OrderLine.php | 223 +- lib/Payment/Address.php | 67 +- lib/PaymentMethod.php | 313 +- lib/PluginHelper.php | 16 +- lib/Queue.php | 271 +- lib/Shipment.php | 334 +- lib/Traits/RequestData.php | 90 +- paymentmethod/ApplePay.php | 32 +- paymentmethod/Bancontact.php | 25 +- paymentmethod/Banktransfer.php | 72 +- paymentmethod/Belfius.php | 25 +- paymentmethod/Billie.php | 32 +- paymentmethod/Blik.php | 25 +- paymentmethod/CreditCard.php | 133 +- paymentmethod/EPS.php | 27 +- paymentmethod/Giropay.php | 37 +- paymentmethod/IDeal.php | 27 +- paymentmethod/In3.php | 28 +- paymentmethod/KBC.php | 25 +- paymentmethod/Klarna.php | 23 +- paymentmethod/KlarnaPayLater.php | 27 +- paymentmethod/KlarnaPayNow.php | 27 +- paymentmethod/KlarnaSliceIt.php | 27 +- paymentmethod/MyBank.php | 25 +- paymentmethod/PayPal.php | 40 +- paymentmethod/PaysafeCard.php | 27 +- paymentmethod/Przelewy24.php | 27 +- paymentmethod/Riverty.php | 27 +- paymentmethod/Sofort.php | 27 +- paymentmethod/Trustly.php | 28 +- paymentmethod/Twint.php | 27 +- paymentmethod/Universal.php | 27 +- 140 files changed, 22779 insertions(+), 142 deletions(-) create mode 100644 adminmenu/app/src/assets/img/Przelewy24.svg create mode 100644 adminmenu/app/src/assets/img/Voucher.svg create mode 100644 adminmenu/app/src/assets/img/abocloud.png create mode 100644 adminmenu/app/src/assets/img/applepay.svg create mode 100644 adminmenu/app/src/assets/img/bancontact.svg create mode 100644 adminmenu/app/src/assets/img/banktransfer.svg create mode 100644 adminmenu/app/src/assets/img/belfius.svg create mode 100644 adminmenu/app/src/assets/img/billie.svg create mode 100644 adminmenu/app/src/assets/img/blik.svg create mode 100644 adminmenu/app/src/assets/img/creditcard.svg create mode 100644 adminmenu/app/src/assets/img/directdebit.svg create mode 100644 adminmenu/app/src/assets/img/eps.svg create mode 100644 adminmenu/app/src/assets/img/giftcard.svg create mode 100644 adminmenu/app/src/assets/img/giropay.svg create mode 100644 adminmenu/app/src/assets/img/ideal.svg create mode 100644 adminmenu/app/src/assets/img/in3.svg create mode 100644 adminmenu/app/src/assets/img/inghomepay.svg create mode 100644 adminmenu/app/src/assets/img/kbc.svg create mode 100644 adminmenu/app/src/assets/img/klarna.svg create mode 100644 adminmenu/app/src/assets/img/klarnaone.svg create mode 100644 adminmenu/app/src/assets/img/mollie-dashboard.png create mode 100644 adminmenu/app/src/assets/img/mybank.svg create mode 100644 adminmenu/app/src/assets/img/paypal.svg create mode 100644 adminmenu/app/src/assets/img/paysafecard.svg create mode 100644 adminmenu/app/src/assets/img/riverty.svg create mode 100644 adminmenu/app/src/assets/img/sofort.svg create mode 100644 adminmenu/app/src/assets/img/trustly.svg create mode 100644 adminmenu/app/src/assets/img/twint.svg create mode 100644 adminmenu/app/src/assets/tailwind.css create mode 100644 adminmenu/app/src/context/MollieContext.ts create mode 100644 adminmenu/app/src/context/PaymentMethodContext.tsx create mode 100644 adminmenu/app/src/helper.tsx create mode 100644 adminmenu/app/src/hooks/useErrorSnack.ts create mode 100644 adminmenu/app/src/hooks/useMollie.ts create mode 100644 adminmenu/app/src/hooks/useOrder.ts create mode 100644 adminmenu/app/src/hooks/useOrders.ts create mode 100644 adminmenu/app/src/hooks/usePaymentLogs.ts create mode 100644 adminmenu/app/src/hooks/useQueue.ts create mode 100644 adminmenu/app/src/hooks/useQueues.ts create mode 100644 adminmenu/app/src/hooks/useShipments.ts create mode 100644 adminmenu/app/src/hooks/useSuccessSnack.ts create mode 100644 adminmenu/app/src/hooks/useWarningSnack.ts create mode 100644 adminmenu/app/src/index.tsx create mode 100644 adminmenu/app/src/react-app-env.d.ts create mode 100644 adminmenu/app/src/reportWebVitals.ts create mode 100644 adminmenu/app/src/tabs.tsx create mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/AboCloudWidget/index.tsx create mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/ActivePaymentMethods/index.tsx create mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/MollieDashboardLink/index.tsx create mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/QuickStats/index.tsx create mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/index.tsx create mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Details.tsx create mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Logs.tsx create mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/OrderLines.tsx create mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Payments.tsx create mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Queue.tsx create mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Refunds.tsx create mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Shipments.tsx create mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/index.tsx create mode 100644 adminmenu/app/src/tabs/Orders/index.tsx create mode 100644 adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGrid.tsx create mode 100644 adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/AdditionalInformation.tsx create mode 100644 adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/ConfigurationItems.tsx create mode 100644 adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/index.tsx create mode 100644 adminmenu/app/src/tabs/PaymentMethods/index.tsx create mode 100644 adminmenu/app/src/tabs/Queue/index.tsx create mode 100644 adminmenu/app/src/types/PaymentMethod.ts create mode 100644 adminmenu/app/yarn.lock diff --git a/Bootstrap.php b/Bootstrap.php index 1034a9b..f3df2ff 100644 --- a/Bootstrap.php +++ b/Bootstrap.php @@ -1,2 +1,65 @@ -listen(HOOK_SMARTY_OUTPUTFILTER, [ApplePay::class, 'execute']); + + $this->listen(HOOK_BESTELLVORGANG_PAGE, [IncompletePaymentHandler::class, 'checkForIncompletePayment']); + + $this->listen(HOOK_BESTELLABSCHLUSS_INC_BESTELLUNGINDB, [Queue::class, 'bestellungInDB']); + + $this->listen(HOOK_INDEX_NAVI_HEAD_POSTGET, [Queue::class, 'headPostGet']); + + $this->listen(HOOK_BESTELLUNGEN_XML_BESTELLSTATUS, [Queue::class, 'xmlBestellStatus']); + + $this->listen(HOOK_BESTELLUNGEN_XML_BEARBEITESTORNO, [Queue::class, 'xmlBearbeiteStorno']); + + if (PluginHelper::getSetting('useCustomerAPI') === 'C') { + $this->listen(HOOK_CHECKBOX_CLASS_GETCHECKBOXFRONTEND, [Checkbox::class, 'execute']); + } + } + + /** + * @param $oldVersion + * @param $newVersion + * @return void + */ + public function updated($oldVersion, $newVersion): void + { + parent::updated($oldVersion, $newVersion); + + if (PluginHelper::isShopVersionEqualOrGreaterThan('5.3.0')) { + \JTL\Update\DBMigrationHelper::migrateToInnoDButf8('xplugin_ws5_mollie_kunde'); // TODO: remove this code when min. shop version is 5.3 + \JTL\Update\DBMigrationHelper::migrateToInnoDButf8('xplugin_ws5_mollie_orders'); // TODO: remove this code when min. shop version is 5.3 + \JTL\Update\DBMigrationHelper::migrateToInnoDButf8('xplugin_ws5_mollie_queue'); // TODO: remove this code when min. shop version is 5.3 + \JTL\Update\DBMigrationHelper::migrateToInnoDButf8('xplugin_ws5_mollie_shipments'); // TODO: remove this code when min. shop version is 5.3 + } + } +} diff --git a/Migrations/Migration20200715104300.php b/Migrations/Migration20200715104300.php index 09e6b3e..578ba4c 100644 --- a/Migrations/Migration20200715104300.php +++ b/Migrations/Migration20200715104300.php @@ -1,2 +1,34 @@ -execute( + 'CREATE TABLE IF NOT EXISTS `xplugin_ws5_mollie_kunde` ( + `kKunde` int NOT NULL PRIMARY KEY, + `customerId` varchar(32) NOT NULL UNIQUE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;' + ); + } + + public function down() + { + $this->execute('DROP TABLE IF EXISTS `xplugin_ws5_mollie_kunde`'); + } + + public function getDescription(): string + { + return 'Customer Plugin-Tables (Shop<->Mollie)'; + } +} diff --git a/Migrations/Migration20200717130530.php b/Migrations/Migration20200717130530.php index 033e66e..663dfe4 100644 --- a/Migrations/Migration20200717130530.php +++ b/Migrations/Migration20200717130530.php @@ -1,2 +1,49 @@ -execute( + 'CREATE TABLE IF NOT EXISTS `xplugin_ws5_mollie_orders` ( + `kId` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, + `kBestellung` int(11) DEFAULT NULL, + `cOrderId` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `cTransactionId` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `cThirdId` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `cStatus` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `cHash` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `bTest` tinyint(1) NOT NULL, + `bSynced` tinyint(1) NOT NULL DEFAULT 0, + `dModified` datetime NOT NULL, + `dCreated` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;' + ); + + $this->execute( + 'ALTER TABLE `xplugin_ws5_mollie_orders` + ADD UNIQUE KEY `cOrderId` (`cOrderId`), + ADD UNIQUE KEY `kBestellung` (`kBestellung`);' + ); + } + + public function down() + { + $this->execute('DROP TABLE IF EXISTS `xplugin_ws5_mollie_orders`'); + } + + public function getDescription(): string + { + return 'Order Plugin-Tables (Shop<->Mollie)'; + } +} diff --git a/Migrations/Migration20201120155700.php b/Migrations/Migration20201120155700.php index 1f475e5..b9a3671 100644 --- a/Migrations/Migration20201120155700.php +++ b/Migrations/Migration20201120155700.php @@ -1,2 +1,35 @@ -execute('ALTER TABLE `xplugin_ws5_mollie_orders` ADD `fAmount` float NULL AFTER `cHash`, ADD `fAmountRefunded` float NULL, ADD `cCurrency` VARCHAR(3), ADD `cLocale` VARCHAR(5), ADD `cBestellNr` VARCHAR(128), ADD `cMethod` VARCHAR(32) AFTER `fAmount`;'); + } + + /** + * @inheritDoc + */ + public function down() + { + $this->execute('ALTER TABLE `xplugin_ws5_mollie_orders` DROP `fAmount`, DROP `fAmountRefunded`, DROP `cCurrency`, DROP `cLocale`, DROP `cMethod`, DROP `cBestellNr`;'); + } + + public function getDescription(): string + { + return 'Extend Order Plugin-Tables (Shop<->Mollie)'; + } +} diff --git a/Migrations/Migration20201130170200.php b/Migrations/Migration20201130170200.php index 79cd409..44d4c73 100644 --- a/Migrations/Migration20201130170200.php +++ b/Migrations/Migration20201130170200.php @@ -1,2 +1,37 @@ -execute('CREATE TABLE IF NOT EXISTS `xplugin_ws5_mollie_queue` ( + `kId` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, + `cType` VARCHAR(32) NOT NULL, + `cData` TEXT DEFAULT \'\', + `cResult` TEXT NULL DEFAULT NULL, + `dDone` DATETIME NULL DEFAULT NULL, + `dCreated` DATETIME NOT NULL, + `dModified` DATETIME NULL DEFAULT NULL + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;'); + } + + public function down() + { + $this->execute('DROP TABLE IF EXISTS `xplugin_ws5_mollie_queue`;'); + } + + public function getDescription(): string + { + return 'Queue Plugin-Table (WAWI<->Shop<->Mollie)'; + } +} diff --git a/Migrations/Migration20210211144800.php b/Migrations/Migration20210211144800.php index 3f76459..724b1a0 100644 --- a/Migrations/Migration20210211144800.php +++ b/Migrations/Migration20210211144800.php @@ -1,2 +1,39 @@ -execute('CREATE TABLE IF NOT EXISTS `xplugin_ws5_mollie_shipments` ( + `kLieferschien` int(11) NOT NULL PRIMARY KEY, + `kBestellung` int(11) NOT NULL, + `cOrderId` VARCHAR(32) NOT NULL, + `cShipmentId` VARCHAR(32) NOT NULL, + `cCarrier` VARCHAR(255) DEFAULT \'\', + `cCode` VARCHAR(255) DEFAULT \'\', + `cUrl` VARCHAR(512) DEFAULT \'\', + `dCreated` DATETIME NOT NULL, + `dModified` DATETIME NULL DEFAULT NULL + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;'); + } + + public function down() + { + $this->execute('DROP TABLE IF EXISTS `xplugin_ws5_mollie_shipments`;'); + } + + public function getDescription(): string + { + return 'Shipments-Table (WAWI<->Shop<->Mollie)'; + } +} diff --git a/Migrations/Migration20210323152500.php b/Migrations/Migration20210323152500.php index ab6cc92..dab1403 100644 --- a/Migrations/Migration20210323152500.php +++ b/Migrations/Migration20210323152500.php @@ -1,2 +1,29 @@ -execute('ALTER TABLE `xplugin_ws5_mollie_orders` ADD `dReminder` datetime NULL;'); + } + + public function down() + { + $this->execute('ALTER TABLE `xplugin_ws5_mollie_orders` DROP `dReminder`;'); + } + + public function getDescription(): string + { + return 'adds Payment Reminder Column'; + } +} diff --git a/Migrations/Migration20210409161100.php b/Migrations/Migration20210409161100.php index 86048b1..cf8b7df 100644 --- a/Migrations/Migration20210409161100.php +++ b/Migrations/Migration20210409161100.php @@ -1,2 +1,35 @@ -execute('ALTER TABLE `xplugin_ws5_mollie_shipments` CHANGE `kLieferschien` `kLieferschein` int(11) NOT NULL FIRST;'); + } + + /** + * @inheritDoc + */ + public function down() + { + $this->execute('ALTER TABLE `xplugin_ws5_mollie_shipments` CHANGE `kLieferschein` `kLieferschien` int(11) NOT NULL FIRST;'); + } + + public function getDescription(): string + { + return "Fix 'shipments'-Column Typo"; + } +} diff --git a/Migrations/Migration20210615102200.php b/Migrations/Migration20210615102200.php index acda2d7..3326b81 100644 --- a/Migrations/Migration20210615102200.php +++ b/Migrations/Migration20210615102200.php @@ -1,2 +1,29 @@ -execute('ALTER TABLE `xplugin_ws5_mollie_queue` ADD `bLock` datetime NULL DEFAULT NULL;'); + } + + public function down() + { + $this->execute('ALTER TABLE `xplugin_ws5_mollie_queue` DROP `bLock`;'); + } + + public function getDescription(): string + { + return 'Lock rows in Queue.'; + } +} diff --git a/Migrations/Migration20210809150000.php b/Migrations/Migration20210809150000.php index 73b5988..bf7809c 100644 --- a/Migrations/Migration20210809150000.php +++ b/Migrations/Migration20210809150000.php @@ -1,2 +1,29 @@ -execute('ALTER TABLE `xplugin_ws5_mollie_orders` CHANGE `cHash` `cHash` varchar(40) NOT NULL AFTER `cStatus`;'); + } + + public function down() + { + $this->execute('ALTER TABLE `xplugin_ws5_mollie_orders` CHANGE `cHash` `cHash` varchar(32) NOT NULL AFTER `cStatus`;'); + } + + public function getDescription(): string + { + return 'Extend Table orders[cHash] to 40 chars.'; + } +} diff --git a/Migrations/Migration20211012113600.php b/Migrations/Migration20211012113600.php index 31266f3..cf95d8b 100644 --- a/Migrations/Migration20211012113600.php +++ b/Migrations/Migration20211012113600.php @@ -1,2 +1,29 @@ -execute('ALTER TABLE `xplugin_ws5_mollie_queue` ADD `cError` text NULL AFTER `cResult`;'); + } + + public function down() + { + $this->execute('ALTER TABLE `xplugin_ws5_mollie_queue` DROP `cError`;'); + } + + public function getDescription(): string + { + return 'Extended Queue Table with Error-Field.'; + } +} diff --git a/Migrations/Migration20211206112100.php b/Migrations/Migration20211206112100.php index 9fab432..d116af7 100644 --- a/Migrations/Migration20211206112100.php +++ b/Migrations/Migration20211206112100.php @@ -1,2 +1,31 @@ -execute('ALTER TABLE `xplugin_ws5_mollie_orders` DROP INDEX `cOrderId`;'); + $this->execute('ALTER TABLE `xplugin_ws5_mollie_orders` DROP INDEX `kBestellung`;'); + $this->execute('ALTER TABLE `xplugin_ws5_mollie_orders` ADD UNIQUE(`kBestellung`, `cOrderId`);'); + } + + public function down() + { + // No need to change since 'xplugin_ws5_mollie_orders' is removed in Migration where it is created, and we don't support downgrading of Plugins + } + + public function getDescription(): string + { + return 'Fix UNIQUE Index on Orders-Table.'; + } +} diff --git a/Migrations/Migration20240418150300.php b/Migrations/Migration20240418150300.php index 5f16a05..57b71d2 100644 --- a/Migrations/Migration20240418150300.php +++ b/Migrations/Migration20240418150300.php @@ -1,2 +1,32 @@ -getLogService()->error($exception->getMessage()); +} diff --git a/adminmenu/app/package.json b/adminmenu/app/package.json index c759260..80ac1b6 100644 --- a/adminmenu/app/package.json +++ b/adminmenu/app/package.json @@ -46,6 +46,11 @@ "typescript": "~4.0.3", "postcss-scss": "^4.0.6" }, + "resolutions": { + "@babel/core": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0" + }, "scripts": { "start": "npm-run-all -p watch:css start-js", "build": "npm-run-all build:css build-js", @@ -73,3 +78,4 @@ ] } } + diff --git a/adminmenu/app/src/assets/img/Przelewy24.svg b/adminmenu/app/src/assets/img/Przelewy24.svg new file mode 100644 index 0000000..6f33785 --- /dev/null +++ b/adminmenu/app/src/assets/img/Przelewy24.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/Voucher.svg b/adminmenu/app/src/assets/img/Voucher.svg new file mode 100644 index 0000000..d04256e --- /dev/null +++ b/adminmenu/app/src/assets/img/Voucher.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/adminmenu/app/src/assets/img/abocloud.png b/adminmenu/app/src/assets/img/abocloud.png new file mode 100644 index 0000000000000000000000000000000000000000..49ae35d4c53396fefadd33153285038be8cca358 GIT binary patch literal 215779 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�k%j zAIB>%y~N^0KanplXW*d0oE%+cP#o(L#odAvoZ#+GkOT+SZPlaljaAq+=Zx>;Q(@afCTc%M^2 zBS{BouUqXKt~W6hFh1JpmuoW<>xnFmFukw~iS4d8 zB9-+66dSb&pZw4RnUt%MZ|K)M4d|NPc0yVFF1x?Jp&wK@PZu^-;eKe>dh-?MI3dx* z5sf0!WPv^Czn^m3ZB3NYWc6&loDWl_yop!zVq1Tjc)FGu61>NEHk&TeWUPC$_w7gg zBH^$?`jJ{0T9)Y3dlV-3XgGK6 zM~*We+4F45>N5Tt2|~ZR<1xU3frN%f+pQaCHa)ItN0NFq;TBJzmQ7_1K*XZ1G3`eJdH&F|WF7kASY2DksIPb?^ z)xW3f&b@;v{|+kBI(SZOw=!g{37Ia(L-09 zHDx48WQ1*GxM#QK((rP&7w6%0hUG2vz@V+8y;>#d_U^E+MC3JxaQ)PQd=WXKgjDy>LYd}4Vzy9*QpYOb)zSMr3Bm)6=swDlzFvhLte3?YHX5W$A? zQI_}HB2igcIo~aMnB$2-6`AXQrY+>i?G7qb z6be6j0(5;3)N-*6eE2fbIEo0jqM`)34h@2hddRy!pmppw>H6b_#OMx$p01*_>fO(F z!cw`cahaGZZ_ic}L9qhad$GchP*ir;3t2kkHj>WH$kSi%C=<6lgVY!_<{ZoAi9A_G5Ri4zF|c3j+&_Vaqm2%aa%vs-B-Y%{di484o%>3Ql?;|ev(F95AqaV@ zKz%Bpr^lcNt#(hYyK{k><(fC3vw)+tqSW<;rCz_W1d2%rPIj*-Gzm4@=gg=`F0C(p zvAm?b-2Bq#{vZ>XrC{B4-3VQD-Xi^T2EOC#)ftZsev1ATo(!AredkiN;0Yza%f&?2 zN6T`6Tsf`q%YL`u^UOEzht1~wn*$Ug!QgoF933lAVY*n}kFJX7>uW(H3}p+Zxw$zp z>skbhch6bahHWc`s>gM?uNtj>7hO;GoE4g*wjbUwgz8W48TOCEa?8#;IDS;IplrWu zMBIs&STcm;`D)?f9B0TkcvRO{%XAb12rb$M_KVTlj=Sgb3OkG3o27M!m7Mnht)tA- ztA<4_FmC2(s?AwXF}v+Sh1e;~ z=^`o^Q?ldWCuGo)OceX(=f)5@*N{3@h?o=A=%o_a@z3n%pklL+*?S#fbkPJCv05@P zF)%kgb8xES-=qaq-%N7lsQe^GWs64xRYk5ZdN_Wd31LM+x+uPwmSG+$j_g}YqcL_E z5E)s_Cil0iJBGgY-}h(pH#zRXNf6zbe|_1ifWpLNpoG1f-#R=VUhQ05w ze&(?^4zttigegDs^qFfvtH1P(CI$q8dYo2K-RtFDK3-i~Ex*?7y3*h;yZxfNFB_-7 z0%`wCenZ`N=0wLB=XH7COCfo_tMA-)D8_j^dvZlL)_BHcU0))@j zlREYty^fN^gO}(6(RkGI6H5{!T;}&S_nRP|=lj!X$s8ZMSu$;Fl9mr&yZ80&9|^%_ zW%PhU)m)r`=y9aU9tnyQ6vG#XAaWk~Bn#ZK&GmF>j!GsxKm2d{=cQ^Lc##)0V)ye& zsk06l(qRL$$W?8)yqz4sEiabk_dEIr#zO47yE~he8d2$Tv7uPv@ll!_U5XnXyN!`} zNs>V@oeBhSR=>o801HRyNi)wL{T=sJ8b95HFKB=(#lVy9w`3e#Zc|e-ZKP(s87hQ^ zz6*|D_noUovOtZW@S)EG@n)Otcmh@TujwN?AW-y&qC(g#cM8~dynNNMuSdO*^^|I< z8~w!%y{?G_$)o3n`r-K~Iz{Nh#tToILGB5s8x7Lto-PqWn=%sI;BmxHQa#>YXJz@M{ zg;sFJz6av{ZH(~e*-HEjzm$K<#|`O}@QZAEMh0U4ueN8;r7EqUrF1mn=H1!ioZkxD z?`HPW>&GECU3-~{afL>MPC!uV@`2~BFp#X(G|8ya^Dxs)$WQam7u7n(yy|Yvj>D^uCi~|U1={k z?dT-3+rDq9Y)9jaoWb#@*2@)nr|LRN8XCh1IH(fwi0B)Rr%W53H*za=tLd(d6?*mQ z-X46C#9mO-!Z(y&=K|5iA8+hR*vfi(QrK(Rgo=#VmR6QVcYoDT{&qqya&dV-pL^4w zE45H|b-tVr451RHa(jK{a&e(8^f9_(6ZYcmG1N zKLU!wDzrUpbbRBN=ewspoOp-wcWrDOaFkU6eerp|F9Z$8%4YB<(d76h1Ce8v!*H@E zMq?vb9y6YeDV*94BF=gWmGWe)@?c zn-#~TRm8~u218Timxrg|CcVa=jY@8HJlf_6UE3O9*WbWhk#}LfY2JX)Cwf(ja#EYd zAQxviG_B9`YOFEt__Cq_lOw~3X+5OB0aA|RwtllxX7L4GPHI&@ojQA&C5fFGi?H2$ zf%ZRlCJ{|Es2lo3d~v7144pzG{@=L8rLr}>Q#q(Cmi^^?ySNr`V(q?t+IzF zceW0NuJ@{3H_j?5Up`2L(F(DF0|qCG;qdPgt?;yI{d#nm^lCAa&ulLY(uk7lNbK}z zNT?r8;5GSUDs^=CfI+j(lSv_lP*TrF=)e3W?(40g)ZzO)D97;j?O_%OOWD2`9=?{E zlYs`w*V`;zhSQx7M)wnGy6%T3P-qkBv0az?fTd4!@oWwB9WXpyzmPt<&a!0s^oCSu zc12GMKMf3K=;&x$SlV$Xp@%>@8cXvtUEZCn$F(BkUe8}Ad2@oOvw*QliE+Y*8P!Kl z=coW1({JT#r#ZQ}{4wcHQq`U=V%gUd%x0rqFlx)XRa~6omyHJiV66T}z^p z5*Ze(FW>8C-^vIftynr(0|=|Tvt7^Et`<1iEJm-oIqNYQm1rM-S)2R>srri{A(gpM*j z_(Q}37^*w7tMQnPFZyy)pU%DI`R_QFD)a|Ein9hnQBP44OTo!S63l{cl%LfZk5&>T z*_0rVo7un(F!Geu)3bpGu|ro{yzg+PTQLsfS_Bl&fo zNQ{kLZ+H*uc{e(+&39){gQvR;FW>Hup3JksFLfKuyz;VhW>)(m%y=_ZMG0%JYT0Mf z^%zYOZNX;jUs8|}pl(`Kmn;shO^G;mRllabaeZV7*WIAl5x{@bS&*G^As7S%gy(mo24ddi9)i*9&MpYkjTd*RaKK!^i<^3OsSr9r-%g3 zHw@=k`l#fCDn(gQuNxADLS0SrwkGmoCbQ^AU)Uw0BFs})5+Y(GL@lIo3mK>Ez8W+O z@Kte4iybc#V9}?*CWTmI2TU1jd|j(Wix(kq_ymUmOK#elY1#ED7)s2>hQVQVGyol2 zRUNCkAbXh?yFz4yGrXDuZ{j0+SwDNEs{MS5_+dlRMXnJcK6nS7c%Tq4dO1R#>p5hW z+(xsbuD4@h2MmaFfuANH(CEf-oex9Qlvb6aM>neKs>*75axU$kt2+NyzjnB@9mTbU zfBSI2hd5tr1Oea9ZK^`^C;t}a)I$zGUnrvi34_VzoS`VdGcSD65;QaN0AY=`rO2)FTjdn_f1+xU26nx3+31I`w)s z%=>oLT(!A8uW?2?PxGfyRmQt7VHl|+WdwII)y0YzO}6j52ar4`Zh0qiS*r_(+gYB| z7_OZjr0ARUhu)nvUi$vLtQC?<$nEq0RGbah^BZ0GJ9%tGp~IQT!=?HAx*>8m|%n~sDK3NfV9Ik8_OY4JY6%(T1NXJ_!npSQW0 zkF{U2-`q@3{t5^*8FIUv{Z__|4ZPq#P3@PaO8uW>zh1cSQWoLk(G78fHdSp>pYK;D zfz2O4x81s}Bt9GpKI^agX#rCIcW8L0gGG(RC<-T~0kvh_@uhW}{<=aLt=svy-~b9` zox{%}(#^K*j==lR*oGyCC-FvjA$7+{T3jrkO*|@Slp%AeJ>)znI{kp_Nu|lz4gVcW zEhVRA{$B?8+HH_8vuxM#d_C^XW?fVdS1E`X=+8DCYyK!2)^dl>>duNq-6apCu^sPY z;}ahjI*JnE+b%EX*xEX+uVdX#Z!tV`jXHR1Y8tbhUT$`+r*^&%Vf|X0Gd;+A*>Fku zKl?IRx<}>=e9g9@(RSB#?2D_uc_}LDs||YiwI<+g`NrL_bSq!y0T@Y^vBEsq5j0$5 z^yV4Mf8lP|^}_sDpn+y_h{1huaoK4r1aEd_Wu((>OI*gf*JQbP6nDB_OeX-^+I2c# z?)q8CZ4C)ozRiHKsN6Gp@IAPV=^R7LdXXb>AXEhoaQ3CkOdH2xR*`nTqk{saor>TRNd= z?@=&?Kuw0I1F4vHR1*!PnXNL@lg;74B4sjKc?1(NH`Qd(#_S9g5;PDXR8_$$@zcnP zBTin?D+|oEb0dnI>IDKIMrg#eur-NG)uwQmyoDchc@tX#dIXkzF?J)*z&S{<6Bz%3n6Lo*TObUl~!cv&JcmU`a3RMuXBz` z?dLCI>@C)(@$=trW;yrT&gYw1NM*D87Df{%m$7dE2^!Y;hw%_fm|gt_L`J+V))S}x zBn`dd>*=gy>f>A#%BGK-UE3Y^8NuJ&fA@9GT6LsNkL|jbog9e%$Shqe0dT{p(vH32 zc#!|5*6qz@jdIGEuBYi`UirVtsjD}6+)$gz=g1FNHtmLgiDSHD1_p9?@Ik|&O^l6p zgzB_kG{I|ib>zvJn!KOPdW}0OCC*SHM^^SyuYowZTo0-`wDTGO|XKVE(DSpwfb^Jg9vyn5JHS?o(Gzn z=GNAvwZ2Z@3wh0LDCf2|ipb>sanCjQ2;js+YQT=fj%0I80HBzu+mrPaPPsH5`>sp@ zd*j&MFQd<&f2{mDVWZ}A92l98_NrCPRit%z4Nn9roD^!o>9WOgTI{I9vk>0;5e2?; z&cEw!WUA!S=7?^9m9qN0+<~6154;~Hd0?b#4d1FYw51h zye^awq_VySPNH1JS&nc<_)fiP<__0veutxeLQ@^~-Q)<+K;12?oTetBjTy%^5CLu- zOoO){*6$R>{1+%vyXm?KdAwMTx0HcRJ5O6KlTrmyVbCnUw22SX_g8s~B@deA+Psa` z>wdY>G<%bk?Kb^v!&wkL3v`Kk94)0P)X)x7uy}1=5Z9)BW##k)9z|DGKJ4ev za|1*)ucKi@#zKb$pZbngebsu`awIjpx#`wT1tFt$p9)zC`{8a!}5{+P;n9!v6Z9ZQah0MRQ*og zsD|^iq`HtI2R`@GKS2H{x1K)T2aOlO|7qKIuR}M-_m$jY5!(HWvDc)lVP`l?v!22oaevo|D8sulxYpug zDOu^p1!0}f@UO06+fdZ9*!1(CAN`@x_ZOSD50^6RcF%dX{!}g-@HD)h+qWKu67v0B z*^|X493U}A6yZrD%56G&T-^l+(%2o8J%B{gVq>mceFBQ zJH_rl0N3+*CV4FqrZjnO2IN(rlgy&S{D&-2YTf0MJgBi%am?Mc{}*vEd=L~-PRS>a0 z@4F>;_{Npn!zXhtX|wBSRh9#FvUFOmAHv41#{5%+MhVi$N+4Am3g#kIxqkx%n2AW| zh~1{M90&`~E|)(;(&6ul-rz}e8I)#JOia=E&_Y~#mQP=B3d7Hup=Evk%aFc#EqYoR zZdy8n@dx5h?xr)LdmX)Nj-CxZ=a%zB!j(b;KWe$R8H5Njfr;UJ`{vPzTmWB$|I<)E z4azaNF}?O!WYe?n~|N);7x7(cUE2(^92Xf5-~AN?pRCcJt-ftPzsE0 zRfnl4m!)c7p;^1}R>{;-duyq&K7~MxcvE4cDP`qZ=5cN>S}g6G%&LGW0;5xt(6}?z zA#0g1x3U6m{hTC8Q%D|COoiQGcdmVpKa=v|B6Kr=FOltA6b#D+WUHLcdR-e_{895@ z5e8L5>5mGiifSHjeGO~>alld%pNKTS_ME?{K~elYJsrrh7j$|-C7tr^532{x=d|!k zrj&ixXt3k7(@=OKLSOg}JV_v~Q3|nYU7;Iot?4}f4b+Hap;G!65M34)$hNTocjFQ# zQbeY*W13an)$kyK#f~GYMH)O%mV`=Kx;h+DUxM;Wlgc)0kM~nZNoi#@mUbmr<#7Nx zGQlp1d_0*M8YqThdAXVYq`RK4G+1KA$W5xME%Ww(N{DKtJ|n0ts|vJg&remXuBnyl z+57Qe#qUuEbT({9Nw_PgB@F%j%(0vVur5_iTeO9|LtsDprD{C|AgFiUEKzD> zCMTQqztF7`@a5;8jaTTFV(II2S|z#Fs7f#Wk*l>zQW|KyJ2$P)5W}>fAhvzd3kh&CR^SxD(+kX+VBeS7+XAB#wL$)zbLqR1+~| z;DHL@$AJ^5K`?W`GzCX#zRxS~qG`A|S#(|!@I_+uWVEG`zo=7Tv_BnEI6vZsDnvPo z<;~FNs`s!r_2S5HSwNb1Ii{AX9q^NsiwH(WJdRbkPg$)Gdfs7#`($u=uF;!))J-eW zBg6BibcYBxp#nIDuy_331$Q+UVl?->0J6f0jNqXK=ea=YbuOu&<_~9(iiBYyEjBVx zg?@s_60i?yqzy&cB=)~N@)@q#foHRM>^oWV_4Jj)Z?yL-AO#40 z?<*=GhzNd8tv(n};qbUN857OW)HAm`BI8l9$@R zJnvR7meXZcbPaR#X(NM_t{20+T;~}Yj0RHz_GumAAO)gcN1Ch&;4O8|b*UiGpCX}?!v&d%H38R#HIy|*ceSbPySYDoQu7)J>c|H@fwPoTk zpD^5cy&NpG*tpMYc=FwOI)YfSuI>ajGK$0x)SmEQz}R%&EfL)p3p;N2$2ko9e8BuE zJjyAiEoLdow&s$%#pR^KMxu<^kwHvL{+BInYtB1tTm)@U`y)@YK#>;wFH3Kaj8zi5 zxq(xK5&OzJp30wFj!Vi$KL7PRwzH(P)aV|s{_$enzQd)#@hTNyS9-6^bY*FW*aXh! zaw5m1zrG!RNoLZEbU_U>`i=p|$;HinCGNaEBXp0+KTe zU=5w1tsSwjfDSqg1@=#+M%~}v%2f~V^O3ad$oZ8mO6PCO7m>STFIGPcsV+?}r$+WV<< zRqS_@$|ZhXG^w)TWa)ksglIo+ZHC8?HO_N9A#Cgl46_s9F%ms=Kw>Om&=t5f7uk4cV}H)(^@-AiC3g`H#29D{BIUs zg%03xK5~1Djv^{qXVy-_ReK5rj$o>Hry*x#vr}O-&&4#S?t%XDzWt5;f^%;Vt?%Mp z6SpxKo0^#UJ)E+2!)f*&T2Tw3oclK-HJ0;m>FI=YLu^$;b8b@Z?c6HQ_k-OeY~0pl zWh^7vNv*S-36(qe>uvj+y=4AOr9ZW{_0@eWmkKm?a-o{ew}QU%8LE*3rqzm)Q-*8;aX|x|()} zQ9r8zu>i*bKpuI)nGO(D|uJ%Ro2oD3xIQ8dS+)4k1bt9E}&an51UX|;9z>OR4m zbq$P(;=)@W0`zj`fNSwh?`$<|+Ix;LM9sQgd;L+i*L6R-u)`Q#agFbr=R7s1x+%`mU+xtNeDun>ZS_z7|9TC|xO{|f z-grWn$TZvSR}f|!%7U+5&-UVQU*3H5ydaXua>E6%_+LlE6CZXYG$d|Bmg!ETrYTCv zEYPq|*Mdg|4vZa#?RtAjq(nrIqB} z;S4O@1C`&R_K!L7qIBKUPSP9(OK#F`1{o{tJ2e^EpDzR+9j;$&<{JsSg|BJ9AcNiQ zg6($~X4(o1MVw_A!alALAeaR|1OY5z_qK1Xv7GPnjAMfnIfMdmCC0ixAw<0mhrD*8 zPz>zoZc4LUPsX=^m2RsE1}(3z^_tDDl^iGlG|5(+^An1Ri7C@{iEm+{0gH9M39A+s zQL8Ix)_V#0BtU0`dUM-URJhdribYZuij7*i6XWRm;k%%=%=oR*Pit6dmq8j&2rK zXxwk^mXDW8zYq)94Z`Pmk1grggGP6XEOGUm|B;6|yodY-4$o}nzoXx)wHho(G=s-}x16QBKvoRHFm*Hb zAvjUq7*Nu10D7?dbrAY9I(`oz7`l1u@L<&M2(JXxTr3)TAZ*2<7?UK7kN$)G*5-+g z0=yP`xuzI48_`dfbwaYUf;ST!D5PIAQ}jI}+_pTz$iIauGUBGOf#51DE6@0U(l&4U z7OUtwraSDIrf`6UWVbwCnC=Pqg8_6`S!F)fzWXUu4V3{%HVmeCFZ-AdcUd!?S~U80 zmde4zD0>(29#q;lIY)AZy|pxPV3M;Yn2~R9+Rpp6!yM0B?P=TxKFLf5(tr|H(WvK( zg5czA7-`?lUiJ=9o)+4FKyq?%v6_n;2_%Wi(nZ*Db2+u0>x*sbfp{IKPUyf+kU6h`b-YdJ5`^<))$ z0?qmg(R4lwozzGA;Vt;#aY2yn^J?_|cB}dB)XzlZGKb&^+@ajQHA|l`^Wxifa zsh7D9Ni$JT;`<8=O#rO#^E?BHCAxARh^^Ht^P8%&y-2+R0l@Bl z#I3NQzD87xV349VFsiyG!Hv3eG7~TWg=&2iBF=Eu$W$R~+(BMyly3=?dB29R=fR2| z@Z1dbSTW<$9qH0ZZB_fyjl0QSB!6x}aVBH!iTKiF{)c^j zgGH>)GUixK_LS_^hXHdXrBF|9Xl_SGCZM-4()unYP0l={ZNX)#8={UBf{RpHiH!ss z84`FqE}vy;PpAgQY&|C%0R4IXF36CKeOV>L$H2kGiaI4dnJ-_W{n#Pt#95QofbYvtF zHINwDcReGSnwsi5T$y&fzr%m$+c|aK*}BXR4Eit%lSl;i-7h30#2m?4 zFK2y$m)+)LFPAE6djIirdud16#Q?F7@>vi+!>j;oysYQ8SNT9w{}BK`*W$rJ>c<;% zc{F`=42lEIflC3LCaJd_4HnY%p0mM=#NEGkTCgAZ)u}Iw8XXT)l-xEOJ>e>n*S*CY zwB;jF#S}(8xd9F3l?OmBwu`!KtIpu92S5NU)8cNHp_Xq zxVWfQ|B#=OtlLjdq;a%9?nadYMF9ZMdB0u_1L#}~p?w?R_i|*#UARIh*|;V`py(op zb9|C@F4{7PUC##3wCYp2U66A5&d;1Z>~^gmwX5tu0)GDO;L@?5AFNEtGS63WJrVX# zU(^0i;WKBv1ie{TL^tD+!HlxygYLTRCX7iY(VE=4nv(ymxbo=+@yl_G8ciQ9MN-8j zS{DD+vlpquP%GXq7M7zu^kO!zB}UKl2CRoz-(R(RLmBEzYfVr~`!}W?_d^UDZreh) ze;1}_Y%wHSb};p$D8dB`433w$G_t&X}3!{uebf^ zXYC&jfJQ5AOW<6$E;*UZ^}@33WZoV^;A|!1dd!J4UCcV5sL0H9r4~1!=~_@{EsPMD>*%OUK>YBCiDKzakk1mhIjGR`ejlYd+bCw4?%<6_X6X(D zsxa4!U^9IBH3DLb3esCfVL6 zT=$>3Gl3BI1U$$8vbi9)?L_#Tte%k@=AWpYyDJr<#kNgGeb)AlBcy0F@|a&gZo4P4 zZm7J_*K_dna|Z0a?uxd1L>q?0)1$=Gk%zuGt-AQ_b+Lg?gxwL40aKWd`&yt$dtD5Q zJql^wHZAsjlQk~sQ@dMvMfZX-t57k{QdZF!FTd;>zM{#I1>|x$KF@SHKG%qEfHHbe zL*G2d=;dZzzjIVWRTShB{rjV*x9=CCG|dX{o4x0Sh?*LgkIiVIE^*V}fgAgd zey!ikc}-o}(;qKv^+kSDO+uayZ?+@|AL1 z8RM9io9}5WFf|p?ieivP$GgH)e;&|c9hcC@1T_c?jh>M-Nfu+R-dh@P6C{kOo1_v? z1d}|F>mEA{#Ev}JY|ewZk=l#~r2(bzk74<&2^yC_Fx4j-S@|w!6>Ve)v<=t@LBGbN z=etw|G@`{4O)eZz?{)3Z^SES)I9zoVJV^&vrQtI~4se?a41$g-KRvGr!hKj-*-#>U zvpg+BL2bBY7#yO=!%*(sD*3gm}+dEnz4}6n3sIvlM`G$j_8lHIB=c zft(#u+}$QxY}KL$y_4%vIxBFF%}v^K^mt|5rx}cYeOuEVEj$p-Nj#fpOapYP5YkFY zN{AN53XV7`SW&h*xXWvE(u`SO>N%JD7%v;SAv5^IoPq@qLAyY4N}^H7&B^&xxX~FB}dy(;FWjQ-^`!a^7tOzl$ek9{c z=@zt>#*dZJJGBx4%}jN5>|l0DO8bqLcrt{N%2IOXA{#qP36Q)fV|4|mB-=Uz>USa! z4|WQWjRHhrk_?R8UNB&}wAB?qJ&?mE*ao5JLJh2Gx)Ugk0P*I+!U8@zmKJmT=FiZ6 z+x*(n*T|@%0Cg9a##1HGL+d6UuE4r-yJ8tWRBf~_mri<}-6VfmSy}j)lSFGEhXq)9 ze|)T@tOTqgKk2&#V6Rd{SPTbKfwP#|Q`qUvdkvNYi-1g(8L70Qj53m9?8YO%=U6^5 zPKk3g9aFl&u*b7+@*Xid0M!oti!*8=6e|MsYWbnNmzQqS_|7M2Y1px>fP(J`8KJU> zw0j0XGp;s5~Q=_*(p%$3Y<)L&; zMc^5nd{j_C;qGH(&Qp2stD?;jhh=iD3kipGAaCh>Ii}88FQF3QNE1PsU|LIBSSenZ z1)DF@HktOVq>t=7UHwxBwAK~+qX<|U*R5_(J$6>EpY9SPk<0-}IU=rPpV2ul;8Jgz zUB14%`EE(m|5Hg1qU$AM0!9!P5fw^7r#akLXq^xf%tbKLS_!jKs@ONd&&Yd*iIk{g zm<}^=*sCs$eG~7Mwvq}X5P`}~ht1gTPn`AEMO*`z&5L7TU_o@PYyu^fJeEdIW@O+5 zg7r|9BK7K+C*MYgjY5#BarTlRu{odH;B$FywWUMtP7(XFzaZ+9k+Y2^p zOqld*U4o~&@H$#ajPGU#lzc1q*){RGvdcwj&HYG}rV3A3h3E~qk(`Z9%Cy*Wd(=2T zX!zG%H~&R2eVX4&7l$Mfq5WM}7f74pjKfm8gpDj7IT#2zA&mu>XE}py_QdpF>Xt7a zeBObG7-wO-wBaub>4u*@g;|^Clp`! z7$nTonE0nw#k98!Z6T8x!}Rn+3Cn~wl0er)aU&5^aabIn+si4EQwk{3vmnFoqme83 z@y!)d9-V8hyjeuI0$XOFg2e*F@{T`CQ^~`R+EjR}q;)x4Ele&RPx_zH2GOF3zk7Vc z?EOs3Aw2)mb3Bxstd2BiJ)oAR`FoK-dF-l{i$0$f%)OBop9d9QX9WpLgUf>w(@pq= zF@oT6;Dc+wt1em)$j3ppV<(kVqq{aVH$DOmXl5E;uei%Npf&l^lW%;(r!?h+`9(V8 z{YH9=*yOvjRD$|1!%sFMBH>c^h~G(5E395}1WLqVB+@Aep1(psdeQ5ah%dYl_Fd&O zm&%B1Au)K%yNslrZ8D>kza5O!eVgD%XsD&CWjAGD#27d#<-o-kpw|rz4RmLQ1bER}r+(%Y7gFJip?xI!zE=u)(&9X82hB=n;zeidmY@?D9@i}5Hgv{$j+E1@(XpQxEOzWC}m=q)y#W&YVj3r0TIdHO%8i&LZ+9s4dQ}~ zxK?y=cwl);OG|Os$Vf7l9x??H01Hy;2tEK3OPh^_fx{vRm9M7^<^(_f`oxW`QCdTm zaDPZM94t-ND!se5}BHK3N-3$ zK5_#6hgDU7(C_#cn6MBAu{dP&3b>uEOkn;X^cRs50T>6qn$&JRJb zLQ)hs4|9tQjZ_RIDiqSVA-@AKIW0oIyHXEU>$KZ$3deGOhNR*S3qsL&YJc|AU5gc? z1h1})JRP>ATYZe*>tU1}o!F0Onqd?=UxnMG%@(&0Ss(6XEAB$DqiS*%^dV1K8+IvR zjgyYKe+q;sY+}S3KV*gw3l?XSmrLPR!Ym~O(0{(gIsQfBjYN*cNfK0Pj80@4&1bEm z2F_WM--s;5W3g4i_!JEXd!c0cnjCs&mHN%M>Qaanl#1Y_r1u#Lyzd-(Ek!b zL3MwRm>ptvU{F@Llf39#l|P;mkS<1qg#&U@iltSxD6~kLcx8>wt(eeERr-M$<#he6 zJ=}?2i-1Gjy4Cz(K~jHBlEzL0-;kICXbJ%+bMEx%g4H#`CArO$ zcshJHFGFEK7@*X_WvZ&Ct{jcY&BL7!I)@NTXq%$7>-s$3Q_QQ}V<8GTf(Nfuv*@D0{F+rx>0YpYPz3F*_GHp7flstUL$SIpj@ zoufDmCZ?UYN#yIQZ*1<8Q;Hu-9a2L-)>rg5VGg==?|P z>X_dId6*_8oAV}+xSZ}>&+g~iS&Bcza|`7SZ^~u!hz$Sj$!8;;9b34ReIRTz9ZXWM z+ib0Kf;Bzv;Zq)qIXu^XiI&y>k@`EYg`EzI?K;9u(@P)2w5-DS$1J3w(Wa3&_g-@A z(APFiJB@@G3In|Oi&hz=jhSD&Rrv8@8tcnUU5j_gb2+BF7z!aqmxS+Ek&`uuDk&M#UI*cjb8s7`8;&4promID<_Y%?pOZ=XAEz} zlw47(KXUza;4x zkBh^MwIrRNL?pvSaJJR1DmTqW&l|;t668*zpxJkOaIih3IX*Kv=sA@pf#hq)wiL)e z5fo6Okwi8ZRWORt$we`z5@mh&Pq{0y0ybHtLdWC5trS$H1W94DV1`n!vS}puAI9(ntazASCh$5FVWCnW+ql_#)09!wtAh(Z!)>o$jmZ-y0U zw{a8&<3D&L6e&i>5DJCpGP4^3h$rjmZ{1G+v_!gPDWMurqGmtD7{fTC6FF05B^)hf z#Ei05=DvRd&8CcqYpv$by$9KdghPpL*H$jKg|Wb1^_cPn%B^BrG4On`R08ietnT`X z%*|XdW*2K=Hk|va%cw|TRuC>STP?d79VQ}ONFLwK_XGhHX*A_?L~or+LucdxOb16s z@~$a_-5K^@)C5YEiwShQHo37zbwU@?oWWN5(ZVXJ>LrB8k^`**onzL@ebj_`~1Pn6@TqkW>*C0d@z;pMYOGFu1xT`W|MZ{V(~Eux>IgdvWRIOpz`nfo*e!=fc8#Pw_~HhRF9U(7&cak5 z=`%8Pm^?#l%%4UNBIp#Af|FUp>+qPr5zEichb^;Xup=i?{uFPIDKF~Qb)mD$Sk?jCSRg!XQJ zD!6%s3lY~?&u0`;q18)sjDu~px`?3}Vnwp-|BUgrprAe!>D;EiBT9^r9HY3|I&qyj z(Si5FOgPy|q8BDNzm5lTk7K6IO)kkv9H*|f5luP^9vmMY#HgIw^jr8{5M-U3bBL#S zC<>;MIgP6v>i-xsn`-q*Et|{7dEt3qHWeZWr545bHGV*u7AtF*>>tF)LZ0F8@r~?K z7EFVfDM=?ow4e^vauf-1WBmU3nr~xe7okuU48|;($lk$7k7h!ln@&mVx(R?}WTvD_ zu3QZpy5@#YT8#};|0I%2p#kfE7NUA+nPEo9a?~>xtP9-gsI-EX=e5caS05uCddDeV z>J>F`#{ExZ#OO>iCR+owoUCgr9U<0lvDJOeo1q0Aj-!LQi*-zgU!(sf#(#^mS`OFO zX;95?LP2kXN)FQG3D!PVJBuoeYsGliu|zR2!AGb)wsbRd%B)o;R36G}hc_eHN&)dY zrKN_n)TKl#CJ(NWbC8aiipkR|N=l=LlNp)I{iGRG;oXwp-!em>t{+Q=CfzYvUSqQ! zRXrg<>O0+hy)I2nlcg7%oUmisR9{%_70S(!MM=j8MS+t5NG?9JXyS{*v=UKji*>Jd zjo+tF!m{50&3b)HQ1py6crd9d6wvex*ST^*#hkN4DwrcA4X@-cdFM8ReA;4?3@YF- z_)Lr2y|8>?8+#PJI(b|FSf3z0B-@a{9Uj{oELNb{gH!^4k)GI5XtH9&IxU=*7ipu- zfGqDB@gFgpw?2xU#&ie6ooOM#U`nzh6KXc>K*V&nB*)hmw5v)Bu$zrL6et-7U|}xZ z?J&B&@Wm-L|44~Ta{@jUdGa3J3$#`#e}zQdV+~^-u>t= z($!o@S?8fL`fLx)1v|1*TXy#3lxBren*nwq@j$2BVL@N;5S#GJHnk}PbN>3|R`Cr; zrfiIfl1Cd5m_PPqWy^JC#7tr8m<;+4np#rYlvXB_Vx%LI>?q2#3I7M>KpMX=spPpj zMT{*)X(-&NuC^N?iXx&YGD$@Sbzr?N4y?)jW>jg3SHq4mNxg)vH2b}|)q+!*h4R3{ zuQX-JMyy>Eg zJJUK*tsr+EF^oICEDDX+Pm(&y%gcx&<0*)uK+c57GPOaWr5c97f@w%2bHI+RObIMq ztu+^frVXstpskBO;~z&$qUG6<&&5E=LsQ44`aok$y4(Q7%VCWd&)P(9+ssdLG0@T3R(qh3@@YCuXcV zL?LHAD5z~$O`4`OZf?v5rLBV0qQDG-all@A6-*A`SU>>2==H<0B_S^DQu!P}vVg%{ zslOs_eatHZPZs+COgoF#$PIHI1Edg2Vq=^Vsl;hvZ3mno`+pm|MK&=lr|o<$XaP88AZEA za>~4} z>$cBxS?U2O9Y|cz7f3#x0=(O^zX>>T7QLN^b#Hl}cjL;a<}TklGprtvV%H5)C8?qc z0}ga5l^)p%gxLeLb+aPhdKOX{o7wm#c}QEJqpW07Z68>2xo}Mo5ax2EaR6yi%A#-} zB$KU~m&2Mu+M}W4RuLc`HpO|AH11%s)PA;PP?nWF!R`K}-Sbg6HFG-T0R+$19 zwsi7M+c{ypPJz}WaY9@ukdOWkVc!{OTUDL=jXBrad!KVFD#3yv7sMzQu%L7cAU04C z#h_xaMPuxeV2toEiHYyoBE}jkV2=R{3L>Cl=TZd}scIBN`aS3Dwbq>D{TOA=buM{t z4fAM9NvtFX?;jWHC)eDE1PtgQWtC zyfpH6SyW&XwW7Vvm{BOgX1Qn&&xH~SH^oD%2@wpE>N}lV^dX%t#x$rDE|vGykpnUa zF|Ld+$Y>Q4)=cVu*YE2cX7?)rVpUAlnrlX{H?YEq1`g^2s8$Sf{?L4Z{b4caD*!2x;VYxJD8%^l5sAoEMLmc?@L7NRZc#`jZpTkM2{Q(2 zl*{2*)|;;&2->DRQuMVVMDeH?h*I5**hH;q$cSxJ?++!sYD{3o#I_=jM%l5xg*=ty zmbF7cLLfBENI_cXq=TUD64F@)*;J&sU{u< z%rV!fgiP{VyLK&@v&cze+4Yl8#zj&_EV-4cVCMnT`_8dmMQ?n(bqhNY zJVjMr7WT7ynImF)*WV>4lIj{#8jv}lL3EJES}RjnRt;X&X$9XG;kKdgz{3R8M6YQw z7NtnQqy-US7=jlxQ;=5NuAf&)5x{2#RXplp`pWt8$Q7FdSacxO3-C1;dKqnuzk{|a zQ((8VBOku9onphuO9fI&KpymVlH#iCCnQy>P6Yu?uqc5lk{E(qq+*hB$V~nvmL!FQ zcU2Kqh^j8qQ261-sz#Dr!&Z6MI51^}NPaaGPu0jB!OI;HR__<>UZyeQO-5OLW=^2z|ePN;%7wrt`6P||3<87uL? zT*doD$91!jB9POfzoL+37Rq)#4DB0RDi4EebN+!9S5B>6;b)$sMCgaALmAG zedYwod4}wRZ9)vva%u&ywf+FS-`=8NCMg~bGo@Q1m!mRzd zzIzQy*{zAlAd%b)COZt+{1gGfs&5ogxSzvy3t?phlmVmWCo3W zJ=q(Lnq@%JXWDjXatc5PX&JAS0`#o6h_Do*M8b?CtPjAoG0B8aLW72+V3JApW0)>H?x8j@;Gil9Ec?;Kth=uS5 z4xCW+y({Bek1Q@mW7YPtco2l_o}hb%dY>RYUtry!F^sUwlxl7}nz}yC(n4o87zK*W z%m9R-wH>1SFseE=y0`%p1MkO2gD{%2;56H6mAY3Jz7?VuY*36>xmUG+^|qOe+on0w z*7wq9aLG}%QUig}j+8rCxLJxrUE&qe{8@f7_ROk0cB$rybga&3X`* z=t!=##(0klQH*KfbRJQh%g4F85S5RVYx?6~>69rWJyM>KQYYjGqt2_BDV?fP0>LMgVH^g%C)GcqCQz8N(#3!XBiA2eD@sx|E6Mz# zJgGKtxfnm7RDWAxiMK$(jg<>JS3kQ^D~IM7(=iBKO%-!e>)2#DuR?1LplZ&TT$KUY zJ>0OHyp5G~_Wtw%1{t7-?hGmG*%>By5#Ew#YxQY(l@~B-84aU72E;ID4N=>g>TR^J zmP8@664^grK%0?9JTq1WDIskS%Q27I6l)KbnKfLh#{rWTwq+J?*$R4KVKMgDm;a~bZ^c!YUxtsI_7$|#iSNgoUiK2i z81b$TeG;bX0m5aMUWl)p`WYPcl4J4EM?75D+n}+$H5zbE7=|9msd!%i@{lm}gA7us z#N5`C*h*R9`P}SELyesBeJMO9fRh6V8-^6P$c3b~2%zBg6Aa+ZZ+s)pJMTQ4fByMc zziu7s*GQzR{|A6mKKohx_{TrS|2pwR+s3svqp*p7-v}UOg1c&d9*fANkiQ%Qj61aRVT{CFeKvXkyTr z4x!W`G5pLA^UxjEE0Aa!LTsdMO%5`WAvrdxnMgXDYF)#Cq)U>XEkX>$fF=g4U$++1 zNsE=0Wq=s7X@jO+gO#qw&}R%O0ZCii$z(Q+)4v7~4H&8(T@3{4*F8CoRtzmVqZG#5 zR{@J$0D$Xki5gNu(M>gTQ60_X@!w$SCUXSJmU$^IK?Vg0F~!<3K!{otoiW&9Hk!sl zB?I^LGTTrjmmH9|9&vj9e}KR}UEjXg_Y{@Lr63(9y8`7g+T;u8FZ^$HmA;AZvEQ&cjo1+e)_^>?&o-T-x%6?D3_K+ z*47}~oZ)8&rtx2AZu1v9x9BUB|`~7)2Ir?S^u#=7QD0 z_kE9?2QZROt*g$Eu(7}dfHF9-ug!&-MKRjj>O2|iv(%jz;>`#)H-%I0j~BVj-wwODeVn2}4Blq&3`VfH{l2k^vER0XC4YG8+~ zqkCnKg#snY!&zF@CT)whZT;l7Gz?f?TEZ|4T8S_7%zyHO@8LH$T#wuT^ha!a-}|Wo z0DgGhIkFzfuEHWW?|xaem;!Oeg8Z+z&pr($7o0c~t#{d!I2201r?))%Cd^>C#@ z^8QgwykSe9N|!V2(dq-m3J@?FNEJVYSV^x?%;vNUi{zq=T=)urI_s=&<1!*x)?7I)L4u({fxsPi z+>STA=5KJ=;fLdC&wQpA?F~sI2X+~@vofr+L3ktUc?%XjU?QO(1ud}EqBSk%vWTJ; zhXs9Dk}!{?2V6E*L8M#?H_gUK(Wn|E(tLA7HR4(JIYevQZP2tWVpF<^vZgo~15yX! zj|OO)1`7*Qv`vtBQy^pnOjcGf3>nMIbKJFM2>^=mwptciZTM@QQ0YRa<@i-Q45AAv zJ*Bkwl&IPnhSdzAs2kIv%sPBYb&C?Pwn@Rcm{m4(pHTMP%u3PKHE+vTRDfV(-cuq^ z5hq(Km5eRj0}00VPikpg=j&(w=MJYLaRQDERoDegZ&I;qCS#D{N@D5+^vM7ij>Vc^WNidhN8;sz_>FkU45S2v$j7!Qt6(R4LK%SS^ zbVvR9+QB6ygvNo~FneB1Z$fTV$oZdnd@W-!doOz^vZ%X?LT>Z}g{nhU83y(@4G~vH z**3(-H=_bHUX8Asn$_sT6rQ3zNa#3|R-keTv5Jx{1d{V59A^3Tf)?+U^u!2K@A80af~m%Qb=*t---bxkuS~-!l^QPt{GCGZKr?gnBIw&&Mw!P2(8Iv4f*b zF#Kr~Oduzd31-tN+DVJqbcQC1prs)paK`e=iY{0Utn+3ma4p3uJjz=V15ZEn2>ju{ ze}}`4JQ5o>tjGFwi)hqPyP~6_IEjHi4Y=b@APtOm+Nu)GFl{O`3z8ZN;SrPdIu#~H zpiD?43W$*qLhG_+C(YSmV#qQXQRg8R#ZW=tj%y!gd0#swE#fI|*B zM7U8ar>q^b0A3PzI?DLjKtbvuv{>xYi!a9M|M?XxZP|jSKK&VB22zqEbWJIiqQZ(~ z_Or^46*GEnR=q3-8OFES6uTBs*39d4F$G-o3#V$>8d0@2H8#e^AtJ;El!xMM>AES( z=aLR_3qk0SSjGSkAcU9^a|B_Es6&U^W`g8rOGxbsXP{{&XqpavUk;*^NO82?EPQKQ ztMwDMu3EQm#Sqn=ul}Re_BgrhBWkIcik?NaPo%tUQ5Pn$dcnX}u+PKgAmxmHNN8g~ zyl1v_P!Rx08E9CW8X%_zIqAu@1c%J4RN*RWxh7m?7piyZ-n-^?0AKM3P+A%po_-s3 z?-+OM2a-pOv)dq}3BYKWF)(S7d9iH(p(#SHU-gYh2xVx?s-4Lm(ryF`9VrCZnNPu{jyfEW3G8)LfR@HW7@z)#m6prNi+f>Y6` zAsMVgdK@q7wafrH+ki^A+vghS-LgG_48#d3pv}_$15Oy&rUe!6NoL(QSez|jHk(KU zVbZu@QyVdxZ6o>olx3=0mX%0)cO4sS!5H)T&SM?RPuZ0in^tfQ-TC2GYG3xkZGWN0*guX)g zynAowW&$aaU`=7V(z9zDz%V%!&FMxX1Bhj601~pEpFrh# zv=uz(j6^`MT`3fTc>78Nlh0h~xnYpreIl8@IN1CK2@``r+G^R9S|tXM2}6RPPa(A? z$)74SG$LzYQVlYrN^7WWSwzLjxvJvO^@>t#6h+XtD8Zbb_Iob0BUNlL>*VTB3V? zsYeQX98v|~S7QewhPK==>AT3UQ(7A9GuO*yEc|65q5_usR1vMD87-W&wY47k1cTUL{QeNKY|W`zeB+y`8YIi$0(A4~x{6 zC=ivDmKl2sBZ?7GLz48~Ce5|7Qi+p$i^AFb^Pgh3-5!D2Y>Eqh@O|8T(@ofM#|PmF z`|OJ*Hdt5)`0a0ggP;HOr&yk^V7G@q68F3R0}u#UzkVHN)0qGXodXgG_|=uaz|~j( z5;@c3Hv z9qbPMfD312wlfB6es`>QKKA>bjqJpw!KysLvGNk@pX zwfwGSUWb&?#8RY}S?Ax|%~ZiNq;4cJV`bi9W!_=l%W=kqCgMyCDaldOkSM~iGMDQP zgLMC}>YzNpQj80j%7H$X!pWt8k(n@zI-8U$wo>SDWAF7X=IvHa$m-Xqu3!~7aNWLD zbfH!yC51Wqef7N=cf-4K(yJLujRvteVk`3=0fe>*qaxVih?VPGkuQNj4Pg?e-np|h z@6e}WHQY3g9;N)vXi@&8R2kVfwY4PAAnTG;XwFg}L?QU$O*Y-s$F^&oOJ;Fcavn!6 zWe+keT^A`JYv)icK|X3(m?irLmaCC3z`bjzfdB)!AWKUn)C4iqUO<8ts1Zh+?Xwij zV|F*TrX!bodDXe5tDUG?fN@W)Hr4%XQkwx3JFeH?<_lDgtEg*?RxQXh6b@{O+| z84i}z(^GIDIo9OJ-#T`Z1+OHAq{fd%8|W*dqBw}l!BR!z6F@egN$HtOZGcIbA7o`{ zydF>JAA}CGsRyNM-?^VqC%-R!mREC4rGN(j zzJK1iIO_1ju;2a%;D#Hn$Bj4K;Gf%lkH_HCpZh%i@x&AGrO%({zmGBEuU_+7y#CF{ zVdIANm`*4Dx6PY3<8`lkB`(^0;fU%Feb~eB!4H2Jd+)oiu7sRj0AS7H6x(cEk6{?F zvNA9CvbZJ5sMk|J@e%yf32(!{yyty**{l9a&ZgH>0I&Y#uke~zyc|Eg;DXV;AG_zC z_>WJ28awU03&7&c2G)X0pFghv0l?jN-iddfbOOHmZGZr(wsPc67y`osoc>Zn_C4p73^@ zamMK*19RB3pM#S>^da2mKKDUMqyaB`>9IKTo8QFGHeZB?KjIMp%#Z`$KJ#06^BZ1| z8*eQ8NJKd51%H7LeDH%DnPI~vztb2To# z@Ta5C?E931@%Qh1FE(!2D8-IJ5BITjLl*s%Qo=9{k}e=roiyf<2)|3jBV*ub&-*+cbx$0dr7fX-jyALY@SXcMr0`}9Wv0i32iH9V&t5V`auu&VPv)$Ayxzq zuod{A2J#X`jBI&)7WY_K*4+WCjQJ;w4ilMg(cAN;($0icZ**7}Lj+N+GtsZ+4_jfhwe5 zA^U0vjDEg0B@VHSuPsM>WAxcNl*@L!O3%4|ytndDT_;R8_T(pF%a$$Jd*6NWtV0h)+cY@qtg~>|x4wl#4mt>5Kl7W| zcmD$v{GtMyj5ZQNXrwbpUv1lH7(XHg!d-XX0RXt|);~#FAZ7H-_{|MB;HgjCAGh6l zE1vg)7vM=xIS@?~@$ECu#FxMD1w8G*1M#DaF2=@<+h~Dd0Hv%zP}Y!{v9i337aw&b zesS5Q*#3b#;E3lvAKTsczPNbvh4`OBL*nO z)~vy6UiW%D@=?3vuDkETX`lTJK6l!wxc&Cq@Rc*Zh8O~N*l|ZJEidD?TW`f|wtxq0 z|3J)U3z$r%zP8IQxd<;k>Tu+oapVhMf=4~}@#wk^XMOFf_|f;y#p{lJAwK@auOn(y z<*qyK1OS}z#Z$3n?OHtN1;=2=O*`ZFzxyq|b^4d_gLBTpTVL}soc!r8%Ar#Rma-Z& zB5y10F#ybH)T0x5PgT@H3^W*A_E4g{c3p!I z0hU=#a>y2}g}KDmI& zgorgUqMfw3>u$o`OIv`|^*O%eVpOyFQCx--s#(;iu}0Y0ah|8%>L)X&5R@cEK+$cp z(33$8BQ#@xV}QO%jqJP9E@z-`8!WHPk%lB~j^!CfCcqy`Hq*iwkbD?>)ZD+K%W$4=VfS%Q1 zLeiF^5YRwF+;)m0L})S?u$C?7)bSS7z`?FdTz*+cQi@Du7TT?6Zo6gy$&aT-~)Km z>tByozWn9beCcHfv8`_}Es4lF^r$dF69XpG77GhA36E=(CZ&Y=d@hfXfw#Wp&G^$T zx8U6;e-K9=^#a5og?WcR|0wLV^UnC+|NPJR_xHaaZ#(fMgwSBp0x3v=S=MV35kBzY zf5$H_yA+S#Yj1q&w9jMx`VBrI^@Yd$C5}AonK!e z&NH8ei!a)Y4}b83c+KnIph3Cw6FfEH5wP^{@RKEG#VG^fS-GgLmE44aD<~ zdI4T=#Njyeo8QE_=bVEBp8O=7@`W$p-0yxDhaPeW9<%43_~a>{$B;7S-5`-U04E*) zCiH!W4}9u#c+3;_@lK$p9(n}c@wczTw@&{G&OH4qc;*q$Hx32>tXa1XAN|}Jc;HUE z=yAlrQOCR-FFo?P5T+~uAglbEma!J* z)F(BdL5;RV>5>BGpq^*QIzu5#^?=lD2+f%!yq-1G%4t9h5vj}QFu*%R>L{ZdVgi%3 zJXdZOl_-J8s@VrQg^^Ij3OMV`5~yw=k8HA^g;P#W1OYKbG=UH^X%|Qa>p7XOSz> zfod`rp$1k#>oP(J=(`>vI9yEBW%|Kc}R|F0o9dQ&?OI z6aiMW#7vT!P+`bia;1JSQg*d3%o7S>Nr#V_N59(3b;ec0Gb+Z@oHhk%nTrr_JyJj$ zqn|_DFRNuFRA|9FpNUMh9tA4C0sQqGkIEDl!!-O7}5#g zID*xSk#hl>7!aEVZ9BoFl>)yQs{$z)*kYe0;DfpBNMSz#Q&wsPVqC4?_d~z0N3}kF zuf6bq2W~Gu5fT1uyY29ZM?Mk&@PeaXDAoA@A{d7p@>Br8_19es#d^5>vP*HvMHgYG zO`CASJ5ExdrTO2S@yb`f8jpS4<8a+I*W&qtqRA8c)sUdf~N0YKYI2EL!q(RZEn z-UDS``nt6!^#3(0K zP9_uacqS7pEG}YUaS>lU?Gz9Z-u-VUWBrEp&L-i(MZ45Y;>K z1q8g|&Bp-%&iJp>F$|0$Sr``L2@ZpJ;iA%T)h~X5tA24g_CNR#?EZwk#Tl@HG7KF1 z*KY&>eE*!YRNe~M+yB5ru>Gb@6-p-j*?sSi!=86E0N|$=oG+a;WxKbcPUuobpG24TDXVPj_k(;dGeCs!o;C!u20`_5A`FRz)^_?MXJj3pWimeGgf1n0 zpU}SVtzoYQ^+Fd*56aZY;1LdiA#zRxC?k-x&P|($jqBE8yZda5?Y7+(_qo?bEY79~ zoPePR@&L+~ECC34q{Bmun6witE-ql*nnkQzvxtRhi)jp)QoxJ|3z4wUG?;~m280M! z;Hps+P!+H(fW(5*=0k|A4cM~0jOFE16Jle=AF_lvFzKR?^nK? zwiB#bTtpMZaUupnmK286YKsv^4F~-BZHj5A0F%4h9+l4KB>DF!&j)F5%{Cv$OsIvZ zvgl9I_kys3e_7!%5DA#J4Hg$>XjnaFY0+a?IzZ|R?B+Jyr^F0=?CPpn!^Ic^b=U-K zf~dxzR++5#8>JOc-b+Qrn(ngDK2Uk}`aQ+QFJVyw_xe zb))#ItBnVpvPUG01Mxcqi;%^GR{@}f{+I+^<4m>JgKH`8!;*L6DXn{ee7lB3@L ziBAMkL`n*()c6cJVW0i?$IpNEGhBZ8W!P)q{d{cz6!gN2O>L#qwpBo#grBlq7uv>3 zxaQYaBc+7j{r0zb-eJ$EB3KwjX|BKSIuFrGbWBG8D@eWR_rJ#cG(4h z6gPz!T!B92;HTo>|LuLa{E|z`*(-X@joaJ{&^_`3Q~(d!v=acSHE@7jH~{+{@I>{* z05K%8vOS-$Hx?Eaan+SqU_PHC#wfd|7fx9~a027<%Ps`~eCwOvz)ybsBj;D!`$20d zuDk9!q(S0r7J+l4Y(_LQuKv|k0Dvnlz6h^4@=&LF{URd#{KzA*hz{mZ@uM~;#sSpcq=a?vX}umnNXvB!yuqt3eRlbfYmJ6peL1EDs@t}zZryJ z(LbY$sVp)N9{L=BwTcf&qnvn&PS_5rOx8jr)bfAr{0eL9ZUSNL;sQ3TU57?%8@O$- zIGJI~bPJYNR?zjm?3uMBSCK{{!fZOj;%thxk<=Rn2InbKFR2+MEr<*eL(bT;yo`C* zuUeTo45mQJ%OW(wCqNF2evoOZkpy5jQS@(S$Z##rz#yF=G0K5Xc42csqsdbstXsPl zM1-Z46?h1==CRe@LbY~@$WrwtbBfCP$r%LKxx>Tb~%rXm~T1@Gsi00;$X_t0w|unGFTmH z(4{Dd(TIxG3z@Rf&s$2w%RfjA9|D6TK=$lJZlIy}>$Nbf z?0-E!-(Lh(pmmz02FrTyp>#c@VQ|_4KnNL`0v@*8ZrFW~M;Ab^9AU~nGo$M|0KjB2 zac?aIJF`HjGMx%&+OlQKNJi{>2Fg@LsjNv&g#aCi3UZd21^~dZE$y9Vtn^%swr#Mo zvW#v>XiWzg&64EnGZDry^*O6qBtmLMSI z;Kht-7~~2Bl$ixo-AHI{2Aix|*Nmp3-B^W@{j7}upVz=(nXUyZ+Eni(+I+nWg36tC+5`Z&@aI2A-w#OIVw5;(txCp47fNTt4m&&u!;pM607_2Ygis?u(b|(t z0gbptUOVi#698bRO}pSTU;0nqqZlJ5lL@Bg?Zl}3CiE1Vv8R;&Y`g8Su&{t@ulY6Z zxcxTV=RVsi$Ts5@aN*C!mHD0%oU2yqjmtpgTKg0dE zf1vJVc6t8Q6<6TSJMYA%op%9IkaU5|13ZmDAUtT3c;|;c=Lo#Vxo`AQ$^Svdqi4xKC=OKB?2y)r#S>7Ng_HfEi>uCv!y71@EM17Xk* zT+ZWWR1-^fZ?4oiWN7gpP!;HC9;+ID1(La7GMO!Ub#AGqkHy;=MM2=8&T?JwUkNyp z{V+so+K&A*Ih!Dgpqo-3)gz3&BTK(z*o<;-&#VQAYP_j`@PZQ~trm%88KZ0K&siMW zfq}vD&=6xGq3Mi09`iUnVEgTH(dG;Br7wIQecz)S2K0kO5WaWb`8faF?_&Li4cK$9 zz0nQwxpnK;0|5T}cmIuEbI3%%#%;F2Fbuf;wp%c18ZY=MM%-)XIdDCYT4a_EO0egpvEz3=*0{OQ(PCFiYwTUuVh zKc4tD0Kn4^dyePA`yu(hB=wjwfPD{mGS;qJhfjavW4QkMYvo)468=UA==(vuGbZ)O z8Qa`vTL8c{zy1~ap+jQEkR^5Tkll92{kGo$=brg>Tz<(#E<-i1blto}*(%>jTF6*= zlN{9e-Vs$bGa7oPv96TQWCseFt#c{s>6#h6)^~Xg5mPy7wCa^+)#4_q()t)27zmi4 zN|#oVH3phS$8$#@G=$iQ4x6?U*x^6(% z4@koxyjZyiF-9ydE@J({Ypcza>Ss(2$3*p0yeB!#Jx6d z#Jx9ez=kyon8bjnH4%Zhjw84#a{?IP(yxr-VM`&X46Ms83+xVKVo4EM7fRQ6+Fnj> zUzBu+048mNg-MIZZX$mA@BH+<}%V94q!5 z53b3MQkb`qVG2E$|V_tNsr`M$GoC8wSjW9!$VH{^eaDBE0t1uf*HmdK|ug{(1P(1sCAG|MJgxe>w@5UVIU*zy4aB`L(a(utN^Qt~=Zx*Ie^!q*Tp3 z$fe@k4AWcRej?VcTZdCW^JyIMtY_jIUpoUo`O%N?;ge6sllI;VcWRrZ^DGyD!O$Ll z{ptoObn7(#&nz_qea;w|allg!#z9YeI&Qe`S{(Vzr{YVWI~ALM{!@JO^#8)qhd&EH zIR9MiwDW^;%q#vHDNA4ekc;kNX#O`d)~sKLi)A9TR_rjLD@AerC#^+uLCiy{l0@nXt z_|Ee3P`SzkH!MS?xEXp@LxSgyb0*{jjVuKBez8$7&5wUj^&jVEYIgy z>3ei3>0x2gN|=d(K$y;^XeSLaC+Bt7-<TI4mfjQ`^bljvzC-*Y3B^VBg^h! z+Owdv*bXUU=m#{Wn3xr(n3oR#EGW2mIK>#i!(7#ioc86#1;wqN$1c%^>VE#c88drR zDGDMs!)G7zvgNH7Bl)E~`m^E2gp#hXsea}xkDOFp1Kawj>ivfZovYHKO-+ z#eZ!pIr7jn=!U`Uu^(vEv@NKSpW_YJ#fN1-ho%Y{N-rdRsa>iKZ4AJJ@>9Gw)m5!}t-Xc?!vw%|ufaqW*5J{StnsP!e z3jnd!N{{&3wQjiOHs+jRsfN16$$I)nH3GF^F)p+RQZJY6Gd$j$8VJ z;$&8H-@$-}%)QuC$~d?d6D^ExGrRTI9XI(km=R zH*Xs96A8Uzf~c^g8S_9sRnLpw@}OaVc#6V36e`azv%v}0IZ`Gm0yf@Lo?QV46^tKL z3Fi!rLO_iZ!=`6CbRa7ZResg82bNcs@yU;W3{QN@LD+fc2MaA!L0$2S%kYyQ{Se2# z{FP{%rT`MoIOQ{+#4fw;ipTH052O@QirM;pz-_nQhI7t36TiIj3Z%r?X_sAbz<~#2 zn|t58@D)ihZKQyuyY9r<-~2lIzQfTkItJTpvjIfF%{SeIZ=7)kCX*?Sdg0NSPN%r> z#vAd)&wUQhe(v+IahrR4D#|>LD57v4l1qhH1jL(1i(|F__kHsT*-=pXZmN_IDz%{?T3g18X9Ncu%AFyHL zz45rc_Q4*H+f(*gD_9NqUv>GVxcuVHIPx!Eq>-RJihkXF*IoF*dEdoVSNsAwXYBgW zhv7*F9*hkeHv*8ZlVKPzpU*L*gj;XD4d7r2C#qUBpeQljTeDe}L!-Ww z>oJ@6Qfeaf=w>3UTepD4#hJIZOVO_I+k6Q|TxnXtjUSVA?jAO{CTWkmwC*Za)K9URuGOTb7VXPT}mjUUZDAeW-j15DKmr z&EK*DPV#eQ%Ck^ljQ};Cif^jOd$3vqn7)%jXe<7<*7~ePvle-!Yj3)Rjd)FnYMjj_ zEa4P?RUY^1D1s>Q?2Kv(13*2q6MdGL-f?0e02g4K8^#V?zta2|$qD017~`0(VRb!PO);3e!CyACRxQ5oe z3^Kc57-Y7B*EyKn8eXj0M0KXKIsyb6-|ZmHWT3z}_oZ0DpLnVU5R~7IH^^ky3LC`` z#~3h~OyLJNq4IRpQyqqcu9Gpb5+<#HDa5O_f?>a>^F3AT06grq>Q#xIgVR!bBu-7E z6EeMsml=JMaob4^=xjPei~&PGNEqFoMR{9h&Zv%YSJJ#lohPHjvKTEXVlYqLYLvxz z1fK~5A}lUUv2NWO#6}EZLjc#kTj>b_z>1N0BAdx0%scJ5`{7(5#whx7sboDnrlXrn02Q z!wmuIw{nRP*tNpgbFXJg+r3H=o9Yi{Efgw@L7}Xn6a_&yP^C*H-wW-y${|)D#z29E z#e@TZkVQ!n2(WM%iUKkZE(C`408K!$zxEp{6jf>c?yALslKvoTJ1hOicK$_(EvC~c z`hJRT-eKPL$SLW2$crrP5v>)I{QoLKp&kdVkrk`V)%-PUK~ReZF*Xhm#jBNz>JpI? zV*u;GA$A}q$X#P5?%q)8y(VphwDUd8D5#+!f{Y9XzNZhJ?VHyB{zO6YX5nFr^L% zn>3BIQsy3^kvS20&@tS$o4$5bks3XS2vKNY?=b*oOrZwUPFZEn$Z2qJ(CcZGGU%(K zi_ZM8kgjfke{XUgpnPcHyP$OdmXZ^~dFYjN(`(-Y09O^_{(D_R>DH(`E-RpfMb{+i zm#vTxB_(CE{R^MiH>CrdP5Z8jnwF0!I5Js<$Z_BRYhKDoAT-hjth&m(71($yi(zge znrP8NsY9|hG*fb>i>*D+{w3WbFYwj$E9at*T-{jVuNudcGv-~7mBPuG4{oFGAz?O~V5RFY&mCBS7r5|+ zfH;}X$lRk30|GIoZG(UaLnciVu&$ZuX9xic*s{Egm@_gl<~d1c6Bu@~r`||btv1KW zIg*r;_|7c)&=jPfj0{UZsVyV&^i5_xSEH60Vl=}bTpbjhwC3U1BHW5?uBH_A8T(o zN$XqS07RR)V37%eMI4yOds3loJxsxmNY6QGHLnStvW9^PkQWn%s7D!R8%hPu+eKF- zleWdA>#;JQBc#({{`O=m_G4VF>3!;sL%41^ZaKI+Q=h%lW@1+g~`C3dzlO7u%zNWsu=n0K6s7?1H6Rq$QLw zpZ7W)*yO?}VS8ovq(ra+Ma0;Ez{taZZr-8M7IX>$Z6hgx!Y-9l3ITjQ3pA8yZ9oW& zkOT?yaUSSd>6Rz$U<;$}p)?$(1sf zi)DXQ#|ZVcbt6p=iSUGCWO8BD+Q?kCNu1JY~2M>sby;GqP>s5+ZZK1d49vD(X@EcN-wZI*@08w7?lJm@-!isUWdG zo`Zx+kn5KlHRe*+teYU7kcHg206f5pc}f|knLhilbk<}Lz|v1`!+L7$Z?DW5AxF$+ z6Qne_XDmPpp4I}?dr}e0ij0WmbU$OrqV!~;mQpa|%`6==+1hCVlt#0{i_rDjZj_f! zzA#1QbSU=T&!soTX3TA%4b?sxk6N3o0SLckt@>)cQfR|g0BahR9jwDP$ck zR;XepV3t%@fatRj4TK5b3^^msJ1{fa$po=&JlgG7t60$ut;vvnS$fna6x*x?a=HSu zi2$Ug510=fhCzT%B`&M@bhPDV@2g*U0k}n|GfAfpvujw3It8tD12l@P!eiYoO+iy7 zl)O3;P^*WnY7$mSP#tz*E`RrM9Lj*B(RFiC?x@0?MordTu{sCg6eXl-l%Phv+P#r+ z(DxNu1^`m2TZ&E;Y^YFq7~cU-rKn8F5v(2$1|YI3yta*qSt>~_cv`m_GAz%`#n77u zR$!1ufI&lOQ1388&sWf+MKvdH;aHDGP+^YDj9`aoL35mWyeDQntVK$#kF3dy4%t1T ztf0h3DY3ex*4rCmna99Yh)YVjiuxx5FM7C5w2{z31`A~wPo_q)qB&@^?;c_#p-DjL zrcifIl?9J@+78TeRBc|i@nN?6sR4EVwv{L!Ybm*0hdj5(k$nhH(vT!kz@%vqL&Uu6 zq@tW8)G7whAy5G@c9w~Tntcp1nL-Z=y|SFG0*lI7-*fV`P7$-JK-mm-#d(fB38Nun za$ni=)iM(555v6PYOm^!7k@tE4=9*6`WnPi14OVVtX^gggolc8E?-&suMBguMN)Nr zpejei>Q_D4P`VCFCrRN80dV4h7anC|AY|kKPx7-ER;fWy$BP+2Le4=`W}+M9ESI6stcvuuZHvW)DVj+XU_cqfSq6te z(v3M~b$TGc28^VKHHFwX{GveG`dq+{8MQhp4Yo5jl!vovX-!Ehe*_AMQLA1wJ>t`E zbT3zBvI!D0riXQVa<5z=*Rr_z(HicB? zEU<@keWWv)C&)z!pz!E8PC-iRBAmmJFsEKUMe=zVHp8Iy7W^!F3J8%E{EgRdVpwK* z$U5zu3&CYuk4{$;slo74y=}B`dexY)R@l{xt38y@DF2`o7ZTO=ex!z|$c!@;S^ZL| zmQY1QR^M6WM`R8ja;>8hWtHU`!f$ni3#0d1dV{%6Kh&>UpQ)0r+Qhs_k5+$5?{ATJ zjY=lVf@^+F4rwbhCZN0*0-W)$>m&pwXf^BtmE)Cr{>##%7nO17RT0yl$&$V6Xse*3<{H>QF8P z)(lXPD27}u7ek2v;vgp{-otL%K4ypwfJOTlz>vW-fGJ=$onm2ehS)@O^A1DbyNB*^ z1p~2a|6~v4OQNcBAH_>rFskyJ8Ig5%1s9og2hac8nj1}5l7f~oUgTByVyvg?{Wf4@ zuS|@_3jD0fHAZs6+rL{y4eDE{K^-p&juh<`O_7@PaOrI~0(jLtvojyK2#ST946U;> zK^B2v%l~IN>wpMErCrKH&bbWy}YFtpW&T2x0+-Swp%^ths2Z+_r;<>hmZ}KE$&sQf5LvdS-0( zNA>6gB*bb`D^%f^2vlX+$im>EzS`ECS03IKU!WlMFr*=T&sLYUF_#3ED^fiwSoC=T z74H3SrH*y|4oGTVvS(8xY-%o)rwo;jm0*n=4V}b7C@{&G&*x<@7_+oZs}m)WxB`km zA_qAQ8X1wrl*o(LI#oJ=ATnnsuf`^LbOB(bEHn&c^+*iyV&vGu5>)_LJEXGd5f}iY z5s(H2^hpY31F{#y+oA}fLvpgw-P!BIGMiqq@Vy#MT?+?-C;fPA5D5mR%3cQBFWo?! z9U!u8;6&(`GSCkh86DatYA09&71UTEO6h#dGDHy2D1*_9q`O5JSHm>bxKKjL*BJ3v z3+-ydR+|ZbFSEZ7)%(mKi8mYy5OMd6QG)~TpNFD0xqw`U5 zQ{s?4V_p9*zE%0&*vtyU)XOtqLBrN zZnxGkSRtH(gRYl+GKC;>`nA`XEe)ZMRKvBJ&KYKCoQt(m*nkXFah3fpo?7ATq^IA( z->+!~16=AEfQ!=191u|o7Uhm5tjmRDqgN9MIR-g+1{HvG!4iYxIZfNa5y%r-W<73~ zD=)rOy^F%PlmI)Uo7Q8u1eHYiE*Z@wnU5B)gO@OXp{pyab8lM2Lb9Hqp}S25R7?Icqnp1qc`|xdIOc(5yo# zT4YNBo*f$x1yBB@L}0(d7=k!`*-boP<8;U(iTcKDVSiMh0NU9`zQ47F7aV9iX7^tW zg6i$Jy*I#A_Qs2DA*np|7C@w4uNAGKI6avHa$p~-#JWJ6!9waZ05)Sl<_SpaAkeL> zpzAs%4?B+*$HfdzwJ%ZHWZj@CFE<8^OAb${on_K1aRi#Er=&`OUqcOstVc(iJSgD@ zVjv}ieh}v_WdyWnV}odOWDt-!p-+RJa%l!z(rIRg1RSWIjCv1-XOj$2n4Z*F9KgYy zI+JrVqghd%IYV|Yf*dI2lWm6xnzSGyOxhNN2AmTzC!|5nXOWh2X)TN)Xvae?hMT#} z3!*WfJ6{4`4DXD)iWhBIlgR@?d0v5Mv1P#{1H_hMu6SK(DIbENzNi~{X%38~bxscd5$od$RsWN` zzwB9{fI$&FCrG|8X#wPr&=0)~FEUg~ggBWZ#ztvZ!j*RYI{fd$o&33k;gWmK#dOP4 zKznq@du(S+0O~zx8y}Gvh}^aUvB>5y2q4T!0fXhHU9s8DmwhSj2n5XsQsLFk4=yD_ zz&OFXAEd}K+}kUo6m=G;26ZInXjy1 z2mw)BBO9HA(KHQ6!|n_!1*8EAdSrN9rhpuE4B3Q$CW@9y2`gQPz8^%Ud(q_r=t2e1 zN#;60KtTv5pF;O!kq0txQ23Qrv6Jr?mx6d3#%8wJ&L|*eG!zhnbbAP}wtW?V-}ebA z3qWY~XlPPB#lKd5ixe+P89 ziw=*_!9W&LvqLt>+$}a_R7ng&!YTSdc9gZ9abQO{+dvedUn)Wl8KRVlv^Wo?^+-Jf zU#trHkTbe|K%bKX6D#T(8wN<2KQp5C#$?V&gM5C-a+pRx$e|)235NxegO}R2)rgW9 zbMx4sd&jm$X4r|99{ROOk*XwfaSt_Q3@vagyKHk3EF_;RfRKU?e~EhTdX`}%i2B4? zTSdVjRhXkfQd>p4GXnImnxKP-bewXbT`lW{a|=i4UXcxKfrQo}=?B(c_^hBw zw?~XEO6b=2f7QipV3HZod)z)>)v9ZG4n`r2RiHX>Krt#*t}&{WDR1$$v+5ZEN)Y21 zN=VxQxV3ANff;~<%23iaO})8CaZTwGDO*ZswGCm?=X^0)M zVOk*|LKHjINGCQ0d$#OoE4E4kr4THQ#)eo#gCH7-vEc<{1q37BsIsgoOk(Anv-kSu zeBWVXJkJm)gp*9YZx=m_As?D zjy@7LL?>b(;j#49>O08SRSwH7uw#{C8RHn4Aooi!SQ$Oa2MkxpQ+5w70oBNG5A z`7F@RkEONkc7MSg9*xjEg9e-viP{(C zQi^NuB3xQ}BI{b#%YeGc>Z41{4s9L|%q&(!3FRM@-wLA&Hq&^-RlTXwkorVQI%Fw(#ijy2u_c09Svnx0= z;}_Hi!PL;{m|%>DBT2a)T;DhIYzB1!e-EfXt#mQN_a& zW_=FI&hV&-E=HI!48}|nhbx_wOM7Nq2syxc;C0;795%Cjb$lbyvDdz7ABK;t+c9il z8m%M{z!7vrjs2+Q(H)bxxz-KRy%rsxXU~!Wg(@4zz>0T3kmL zbe>iZWDSe#*8!jxNO7*;z8Svx<{NzPJKx}C-{2nF;P=1(eVoSwia}7aW9Chp%&wyV zlKE9RxX$o0&;CML=;&7AT(D%R@o!(jr#BR6tKd%2G5Q`g9@S%r$c5hBHb~FvtM49q zo$hr{`Cx(Y)X?I&%Pd`0=4F|U$omb%O-$dL93g}IZV`~HaZ4x-177Yo+;2OEc~tGZ z-S9iU_dQH@&MX&OAHJh9vn_qw;;kRj5; zZQyl(!Tz%0@i_4I_P}|n)q&`fpZ`Fg(PuijYR{HCGk!QvUx05(_)<_V@r1nDUV{7? zBs78&az%U3>N{C_xz?i|+6LPNw9GiM$Jb!UbUTPBY5vIIL49^kW*bU*CJsUJX)|lYPd-rsmfns(U{I;YGMnQ}>x)#I)%oNaUm@J10kM^nZ zB?bT(ks5_KOoz&|a&~b{B30+@@djXF-=lT4%*=`_@HXF6h!+b2HQ^b{5RBZltBhbi zxu2B=K>j5fWj=3%>7A&mKip8_+aqci2mpB8N@#& zY@~g)*a8LgK>|Zj(ZVI(CSLS#5hMgfGPPGf62nKn!sjc6!)PtGtr&nTI!mSwP#fcO zmIru<&VL;sI0Q{&p9l=Mfln{5`1JCM&9?NhnzP>f7}y6(&64S=e6(HGLuS`fi9epH z6*t#9#X`lrbA@F73?Tn}ukz38(=_IKnQOyc$1{+=4vMav9fU$4bzWJ1`>mTfIaSDuOU~=&8;fC{! z?tww0;_ZC8*3ulO88*gMNVoz)%a0j7KC1447q}^?PbUJ#y5C* z?0_5g+YM%019gtKw>SLY%a@Grh*~EtHBw5ahZPRK@Hjr>z8iKbHV(f8T0S2GXson& zDwQJX5d&GOT&0n>9k<(t`)$Kt|NajnTZ_tF6@H4wT}jYxkv=V&RFVPe3@yxj#a!7o zbjUUo(&Z}v?5TTO9+k_{Pa#U;%4Kj%S?jrwEg-0^mCUlwu?y0Y_gygs*IxDl7(H9L zo1e39gr4g$tV&hWrpLXi98B?YTLK_Bfe^0AG12G#NmGY%7GC`St!@Ly1E6eG_ zV}p!fn2VaJ7%+o}&dGY(RVyI_ZY+M!KsvD|9VmC$0_=#s?Av}1JBT;mX*-x1?Jx4- zf-6V7sG;qwzdyi<8*}qxkKGshA8e4I$a2(L?_|?4uj5=e&m)-FR*}FdSRB|Kz{cR( zr~V;8VyoB}Tq_sqUTFbQs*%@-WIefjPxo#>*YZw!XpQ09FH6P{8!A(I`6%_Vt|3S1 z=as395cr8n)_3wbj{SbaH{baV;J`d12x-886+YE5_UIiz&BtvagZ^^c#h60eE=4XP zanePDY22g!IgqKMqK~A>Aewl7MYk)%#~Z!+DnGOSIRu(|GvD`DkNmEM3r2n2vI5T# zzi4lXQOC{`^0=&y1+21)B~82$H?&}OW>KU`8a7zC3)h5kUzUft**Rv}L6Z+*Wqp9@ zj`Ii~{z0u=0st^>q0(B*axhFTE~M}XV7cMb>nrws$J@&tpFe-Wm*d1^%>*ke<5R-j z84D5%6S~x*%xLtCXz%?vPpnPBbc$W1blR6R-=g z!Lw#96q~NSc@lU4P-?H4l*|RNZ%zbyhov!;!qxap=R;ax%4=f=n%CLQkGNN+4PQ*| z-V{Cuu)n;%u&k!GlRm1oz;AhJIPf^i*Z)OcT;;ZAeruxKLXu3*+a z!rJM^dh!)jG}XD4Hr4NufVP3Z_`U`A)R@i6s$kM&;~rzt+SAg3vsT570%8IPlh%aN znJ)yJe~QZ`d3yc%KKwA=tdn}x#*6P&2qJ(~oFW^@(X+1vxZEdQ3gQK{lDWe%vHZj~ zEQ@q?J{CM8?irauu_njk#N+XZdH`*GMXc%O(Y)pYwiP~UfN9wdxxWU0ecNF#tWdZ< zXBG^++{P+#4HONEZq1OndhV53a2&H_0)iyYvjVCUFr(s{1_piRZFiIREPVO$2E)Sr zzOl4))Rnl#%f;unvEjSle1q5fJ**#d;_dCgahzB)Vh;BGhVOp&8{F?Vm_;|+bxvfH zH^dlyDaI?#mYSj^Immnur?qGc7cHAsVOV7#iViJ6Oau;Z*>?TQmoFC?SoDVsP*m4S z$vhQcsxv@Zx)d>~_f!B30QUR7<8TknVTl3@C|K(R_k4*_Ci?h*A^HceC(vk&REz>F zHEOdF&|1tD^$Q^Bt_>~P0=0LV%O(8a9@V3A?&1HJRm6$1T$U7<#$IM>DR?apG zYKO`3B1Og{kCrCkIRkY^F{l``+Hwpx_*ig@S^=8Vc~0V2;PE&anCOL#WO|g~fn$0_ z_-{7~eyx|4=|5V)GAPDqA{|b*ikLhSD4=LFS3&z^F!Fsv=IjP$gBdX6(a~vd&2+u2 z2;3l(i0*cv^hb z8{JXI5zJ{(1KT!?JuC+yaOXR^b^<#$z@`)gPYtt#4G0nhS_P&!Yzv07iH;Ji$*(QH z@Kx%{tZq)2%I}Hp7h=EUvDf*CGhw(yZj&)z8cI1@CPC1v#-8QGwQ;=aS6QCo+l%I# zv@E&yqK|>p%Qc)Z%;~@>0YWRLQqk6db7;-%VyTHrh0z@9Tujkr$5~k`b=-qz3g8nQ zvfI#FC+3PqYv&4~HHN`9LslWBkl)AF&U`5)-hRretYsB2Oxj9h9Tf}L83UC@TP5F{ z1%V(0S>vYYBhHvJSP?kp0=`VZUU9$OVozvAvAmz|;cU&lV;>>l_w5$#!jA(6%dWTk z9?%5)4%`%2S^QZwAV{#-M%20pc2Y7+d}3@nO`wCkIPrX*3xM5~gTY~p9oy@OCToua zDv2J;PNDO}i!2Gfpe+1S8V%wZi@@NylJdR{gKr}P$TBp9X*62ox{4?Sk{qQ~^fbcU zU|9{CKz{}Y7uP{CUK4hB_uFoF1b%yk*f)4pJ=SB=J40KXQZ zNv2Ya&Q(k*ww?sISj1@Ips8QN{5;7{D2%NUMI7FN&1W)BvtWEDvlreT51g~C326q` zUT_Umq$v-swy^I30!hdBCWAX^q!nNi8|S>1+q*Td)uMkMwJ*|~3=Uf>;v_7J2HlQ{ z+a5u286fE_97K(GW7Csu-xHM!B&;>z^8tT-$so);G`VLURo+@2KNlkSnIg8lF+Sa+ znI!=M1aa!n;!Ks|D8!d9nk-iePSM;pw)Fox&9iVYCZxVAT35;8BFH9yb;t!+NC#Sf zeP*o)*4h~0I!}YWyx?}bC0CN~+g;j&_MUs3E6|@`uk{agL3XWPM|xZm=g#%B6s)l( zjrpb&@3fppKWSZbSg&hs+UA)NZ1j;|tqqNh=7XB&=JG9>39j}9%i!nB9tq&&CoT8W za&CMQizm5-zg?}nMX&NDxjWvD19Oc4^GfgIJutilXvdSrFx>C=sA`HR40b%6yvEoR zZU^j6z*G?<0%^LR_$$zbcCa;ASe+>$`37m;7S`C}j$UiC+C45SE|7xj+1A>oooYD) zwWHkMD${WYH4&^#$wY9_#D@KzywVkXA2^ba7QdC+%&NF}@XF zK(P&BBq!h3gp+DC?GfeIBQ2VlXdc#pNtw`(qN6JJh_Vu#@ZqxMLEqKUbeI@7zuhn#5_Ix`F1Sq8H^g8 z{3J{i3GddZ*ssVNM&@K2z~Hd37F3jNY@olVToJ4}ma7c&4)cLyTR6^zZFn>fnoQf| zxtS~0+$<6wG9XZUYL0zdSYLu(XN%~U^+1u)a{Ht@18P?0*8)L>+6tWJbehq83^EtX z9_voo7wM@6$H*c?N%uqhPP*lKNe^Cg25{inS#ITLZ+i~|!&nG>=@$o(sk}O0@?$SJ z);4hLE1Jmg-fOX*1{98JHFq&~4?rVrNiMhn!_wLI9-k0k`JA$RIJPVfBocA@dK=i0 zFm3-DVj~Eo6@_ZN=BA}-7%31gfpI%BllntWRB;dBt7b$G~mhXoj9CFw^(U=T6qe zh<*wSk(wEl8XjpY!OwNC%Mu)P^M0J^1zQoEHxg9KdWHgZQZQf%?n1`Y-K^gi0Zz;Y zj$`83PK^78-N@4w+veIUkDzHV&Wk~bJKGZ}uFT95v=1{VMpyiQvTI~d(VyIxmzO&> zbpv*!!k0e&q|cg%ZZa%D!l1k;(h9z3;svrwXx)u{XJAkjVOgjkCAYItP>wpvdO*T; zuvwFh!BiW^S~MkI&@Yj)W*`-z=5rwe2Py*kN!t|D>gGOy1pQsBp@Xc*+voSds9-=X zn{|}Ztmxj1nQ^}{0*S?XHq%T3A!;)2nFd#87tb|W(=jc4uw&Icjx+pOkK@2`vN;aQ z<)DDa!2>5`xh=rKW*RMi$*S2@qGf z5^npBI}e2O{-?J%6qkuQr`|~jP|%)EsrC2jgVx{VvSkTjEu%BXf1ni|iuA zkG=}qoD6|-f+{LwJkU|vrwL7KyDBBtjBU}$XT5^5tHpR(L&O8;TzGo}USIFk8M&>~ z#YG2Md1~(|&LU`6pR#BgHRr_1!c(IA02BlkaN=`SN#t{%pcs^tv4PYFeM8&*Bn*#D}FhNE$)kXx%bawjFW>c#yyxL5Rr^kOEZiYq7$&+=SX{ z@drY88n%UrE$$b2yvl;u(*K7P1}aF?Q8f_6p`_+>MQYJl4x>MN&51X<70$V`<#U*d z5UE0BQftTz#EM~LEOGE^*89F;pBvuJBLv?nVYqUqxt=d|X8D6~)gaGbE8pMeCF4p2>WC>YOlj4{Yr_85oC6m_o1R8BkT3=SKQ)tL! zdNGKkk!<5j_n!Qk=Q^>U5z92B)xcngMqkVV4El2kp?F{ht)bDNMN1xm{+zo@O!W2U zewx$mtMT@|Ln#=!1DDm#an;nt_soC| zjPo!ycDmtyf5F-p&F)`9UXO~m7@U^`vFrZsII-aKjFe)F$ot9;Bi*5dUJ3UA4R9@m1EvC~(lnomwuz zlTjd97GC)1BExVAig<09>_P9Zm3uW&=Qq;HPSUE{ev^v@HMrb#mV(p0m_V8-pHF|X zy0%xbdJ)_<7a~<{GX9`~qpE>h2pu=1#Si^?uuCOLZ|7a-C(Pi$aXQ9kxa~@-+%QHE z@AS$xk|-^n!I%`6rOaxL6?taQl&6^@`C1Z$n4eqmsi*1;8VAJZ2+#%vqwcIqcbcpC z<8>c!u_PHaNtv2~E04TfU7F;g6L^uH+{@KsJmZnk@Q9hQvY5R65ipaR-}GbWJ0Y&5_gNGNzA zVj@v7HL~^0qRe!}*wOl$fD!~PC1(^AJ!fg{jzQOgIIpEeMU!4@!On@>EiAjO0?%cw zIyfw4nZQbCir*WIPn0~RjQ4WC$Ym#lw_mjM#yl?( zs_^uc+9+XGL|X(RtI~zsQzI;2S_Qn6k2A(7Z9B##O&&zh`D6oyo5oy$iIV^!Q*SyE zONf|b-{cd{?hUzsvL5uwXci%>2+KSV-%rp4Rwrv7{G{dPXL}~5efJp zG%H5pNOu6&HNixt8tM1tl?x0oLb_`K2(6tHPGCWT85^Is5Qx|qXoF@d<)&0mg0@&@ z)!Z!0rK(_21xTLfq+3Dloaz4++p#MHGJu`P7G@S~G7M+%oPyd6*!Lax`<+ELX5PRk z$&C9TG#&4R<;3&QPy>)zQ9*@{IBf1HwUpKa*P0-;Av1)lLn?UG}k)J$4e>x?5cZU>V2OXMRJpBBkl}z@q1P4HxUiF^y z9z8gk|KU#Ewi9B=k(*NaG5*22h?%69jLnis7a_V$ekh( zmQ8ug08?}i^324#2oP(x7mVO}QpOP0eprEzo_qS1TXPZTa!9JpUB@ls~b9%ZufXH}?pkZKV3_)1H zLc2Zz*ft_{e^-o9t$l5aNjNbh$r;Dv?PJB{LizG0=p_#pFeCkPoHN>DL$qmm{%aRv z9hWaQEa$p$ZDa)VHeN$zYNTZ`t^M6y78b~1Qa&qd;atd|Og%tneP0UhTiQWRJGB@R zhOn$q*@Yq2k~tT6@CEg`_x7KP%JwuBD|c7NRob%xvxJ0dJE@CMDii6H| z+4HTNJpU)&_3oAV3hGlgZ695$PMStx&;dnBq_oik+wHrml_cO{c(s|3pR|UJqK(!pz4kv$kJMG zBt2X&L)Eaa!zvyVOs~w9@9yi2ipDAe;IJb=l-V5HhT9fq!MRSjhhJNJV1B~5M@xH7 z(@74S^Gm?Oz^{<=eu+Gff-EEHMn4T;DwicKnU}jPn2Bg8y?Pj<7`bRt-?{BK+;0co zjw6FD(^{3x$BR}-Pl*XQ*V4)esGqDFvdT;X`1h4fYMIiS)EHv8{JhbDxK&@^_IcDC zN}G)O{8RB1+G~?ZbtP93KrBm0Fu$ZS3N16a5E0CgDchU^E*#G^mm063ja+BR>T7a? zh7fLoqY*i-BE+f!y@$NZKx)#_mHRWEjmRQkwSbI5d2jC0m zJTcCZU`xUF;Wi1YigcX)RmU<5Q#^(2tkfXN}Xg>2MD4Qz&bevKzMt5 zOB1^yiQjE}Zgi}W%#9xt2p=ROkoYrHx|D?MlmL}ay`t%tuZ-SJ;l)V@dMA<7eD6Ts zE62de6h4dZ&IOn)Oc)-=0kf!Dl>(c-rT9+8I0%s`@>NVXkhjxnPyk_hG$fe`3S#pV zSK;}SBXy?x?R&1Wb;5ZJeY`+X14u#km;!iQeIsAR6$S&gP;0Jm*V#2@pC%oT5` zTbJ#B|5CHtfIQ7A_{pAHB7#C1##J82Scy@GaxKwOfkiF6|_OSG~Wq0Kw1{pi8V$B>t4Ws z*OwO@^N5CbCJlrq$aRhcmJxtpcpb}C>nY!tBI!ZvNS*=u=F%d@JxoBo2=WIoRw)JQ z@+zwm+R5ra3dAHFx@31A2~A>5*8Fd0C3KU zeNN0d;M*2e1g!+pJ_bJB@7Tt`dCm~X8O>iBR}a{61D4Y1W;B@Ewt)=7lo>wv{Fwks zu*%deW)}wnkS{C)+(-{P_@Ru~LFCy$77OySCW+qj5DwrZ5F2bPWW#W~-Jq!VwLH7x z$!gF6qN7Z*7po2AhTzBsE7hR|E{VB|mK+$iu$g59w0x!lCmB#^&IVjw2i~G6&25jW zq2U&~;r7@u*Be(zE{Mc9Ni%7_^?~SySQZ9J6%(Q5fhVx;;Hb~r%IcHMlUnSiHFGd% z_alH%Kvb_+!`XUG0xIHwRAj8jn*`_?0L~R_tvh7ka&wI+h^u6R0XE>)t5jNo`(zvL zupW0oijeZx%W$hScd_1gQt|p~W3cgkV?(!Z`8=ncX~!SE|E-rMZgh{3OVR>6vgZe5 zp-8U|Dh#xQE}q57v%MBeqq8J(_~S|6_C8J{_N{ZdZvzUQ9{d8*R85kq0k$#l@_NI| zzF`{%UlRc14k*;N5$Tv4EB>Oz$YtkI$*f#ZWfPQzELh+w#gIzY?RLXCPnO7!IFCr5 z7j0Xz%V(uX0rXj7e?*nVuvC)oLFu#wg0p7BVlzPBvIb0~fsQjLuZfH3C_QyCMo4N>xRyAN#p9^mGMX=GD9 z9~x6`8zYfuYvDK#Y&OIWSvxLCdaKGQM)6#OBCng)2XumSNODO}QV+DS;xhf!b@Q}G9nM?YAT|jkl zJq-%%OBWOmMdnGTmVyKjs_+)3P@@Sq%#E-28;;`sP zG%T5p)Eq@^BzY&0Ry>Afp{^9?s+YkvkQSnI+ARPD$^^+ee-ISlf626UYgohuq#)<~ zqPY~GD?Z`IzE29Ol8_g;F=R6|p;Rk>vkeQtos4i?j|*snFu8k*o3zp8Z*?A;?$$tp zc(?G+w_VAnt+Dy1^Vc&XO4eGY=|!q^oUQn-r$&9QC|NHd%8JY3%XfiS#Vq zkuXaEh@i+-ATBJJ-8#mm<O2u^2onQW;$u+}b21qC$LIyGh z#5!5JYHG(reg^5=HO*0e(=`{ibLJ*(DFB?W8QQ2z7*Y_c01VKJNwC{m%Mefi-%9R4 z-=CNV_cssyg>-eE6uqiKIcy39=Fuu5n}j?p8fk1wxgoGPSBmNUUz%E;1iQ4}Dq_Qr zi0dZZ(8AFg%`mPR1KnkFKMw2ZRQ%;Sjo?XvsE9?&2jAX(&i*Y(#lYKwZdQhN8G^oHrG?1Y8 z^QCuVs7uoWfmeRA$-SZhT;3-lNFf~t9IyLwSnrp zK~gc6$!Z-1@IIh>wAcE1L9S7SiWgq6%VNcxnM!<_YTPyIZaI5GL_FM}yKk7lp!DVo zb-e($KuEt|qXZqEK;rUDYlEVA6@UwuUi?1i1V+>ae{$Jq>b@J zPNNYCiCt?=x#nwK6y5+uD2rT9rS{7#8aOR4enEx_SjcJctd1=*K2%_8*oHa7k|8-c z3|V42j3=JKv2H<2dukL7B`>gfku#QH4GP-wYlt|?TMKk(xGeHUkMl$?el!`Oq<|;+ za)LNZE4VNbyZjoTv9N0FgVF6{VBc>rrHh%-N9=fed&_d7`)$MRrmpC<367rmP~laD z)MDeidqH~>L6Q`v zV5cj1wa=x3P6sTk25&)a?mGs;x)MQ|TbPY);gkuK_R_FSJe%bNeDHMfz!TLw&w~J< zuNEQPRR}X+sE$JHp>b!`Q$vDD{h`c(jg|mMSP(wFzF<2dAZ$8)sG~D%N2vR8183%+ zXG-WSAefpmaxR9EfczTAP2u5X!j9nA(#o?)PN74jN!Ksbrx%*=;;YW}(Ozq(jdc+g z5)g03G%$-a%Q4hf!>jUJR(K?%b7w4w`hQxkgOriQ|K(-%yYSLQ_;5Z68WmM5!Nq+^ ziv!nxm?*{hy=T!#VJ`llwP*kt(lm1FXsOfskWn+fyMV?qEAh zTs5S;vz7HvqP)YP1y6AaUIITY2`uO~!Xo+hc;I+Eux%S|w;M7Jjd5m_VsS1;6o{JV zz~gvePP&{t_B7iqh<;$$txc=gN}a+t1)s-#0i$Op0^v^Pb?qUL6Z=G zu0&yLja=aJUiRWN*T5%ukTWC|MrS(IuhpH)*4r4pSJgMd_~o)^k-XjUL{FiU!zYYD5MJ zth(R*1BTtlYhYGK1Dmy8!R)#=XBMqzw{O0Kw`1b%IB*^lkK?S*qxLJ8Gf{_QbAw@{ zH4F`)S=*Cf7|Tka9xrt7W?w=8Pg-=*9G>r=AJMb58srD&*qN@jZH9d? zwng(agUuPy^k8tQ0NGXcCLI^pkq~z-r?=huXeXbq0zw+O{I;I2IPi2&d;0nQK>`QV z;!Q23bU-c+oA=*qDKvTJ^!>&>Wl~mwHD!V6gp{%aZmvUB3MKGsC2LN}HNAGTrH(ue znG}?K9+#g{6C}DAzP!BP)5{&(P8jP5Vd;G}YP~Z+m*+Hf`imSXB8e$h?FOxB7{{W4 zVHVx<6Bvfw20p#M0&x8B^IKFS^}buR+n)dBk~rxv4-gd{OT?AWmbJc9k|P@V#X1GJ z-}fE+7 z&={%~#twMTiP+(xFO08E^~gJ1^6xe44TGVtl~s%PU@AZn*EasEA0@ zltERt*yRk4*Owjka;s)J9t%F_$s$fG(X?}MWle|xDRtxv5#ZX`3vua(7wGYcGJEQ^ zb}D!nC2$KY1Dk8nR9g-Otu5nC;NXyDh45Q_uq);&huK9E#%S~1 zTDNZcf0ni}=8H71F$~~#+jyouV-Q5I*1l?}wY&=H_N!GuTLRz)8fyLDk0y`zdo87X zj>5Fbe$)Cu+A2s|>zbm}>-Z%g2(DRt_*rsu zOpePkHGbZfkb$z|YuC?P^7$N$BmiSW?zbC0y}sh*e#6dEmse0Oxlpp`GE0I3tz~jK z<6q(>&AO(=h@ojd1NZw4=h`BJ1EI`p+lJSdSDdF~&d;2NA$^>#rxq{heBIjo$D)N= zsY*;K9$S+|B7u~T*U-*=42+kTm|w;k6u(Py(ajJ*?B#yP3rMT?keRZ0EdY;s;&B|Y z2hC#689bnvv3sy~0nu70Ee2vtTru^n+L_5T|jYUd^kY?_mp&Qd@;9LgbBKqa&H^Od4WQKi{89Q zuLp-?fZ{_h8rC*hbVR1p65fh~ne_XKc{=@ZmQjQJJ!eJ%)W9R7P2)Kf@LhrJsZ-o= z0CL*_?js9Tg-e3akV3*OEMqrB5Gvp}&I4PzC1yWs>!b5Rm;QFD`-njo5~yKE=5GH!pEes9lMRK_NyJn3u8uT-jQp%U5VZmWJqD?&eoCD8Z>-7G->G+TQP~MI2Quc zlV%x!f<_0w)r z2D%ScTZ_(Y+SmdhumI>P0dw(DOR#DiEXFRP||`&le=@#fqMNv-xfQRR=E4ktc1*yt$YHODAGV z!4x{}>}edg+lJddaK3?=6#{BvMtq)$S&srJT|;{kGGlDmHnnoD0OI=2(`6LOKjMlJ ziRl-}dUvbT+$2T<00W4uA6r>ZV+eS14Qo9=x;OVkKg3AzWIeiko{5){wXXgXi|5mV4u zpU;L}zh^*cv5p25;-UL~!^{0O0`Cy+X>+G#lxrZ(+Ylwj+gjIi3bcTV%~})ZQeB-G z#25pMrJGd`qpS#2t-MxsP$8I0g~C?y7jpz~z08(t?tNUj)3xYU`{5q3d!}P(BkSN4 z*S{|Fbu&sOtZv5fp)tslq?~et6#Yhhy+noq`)1hV6tefVTl%yzxFy~W)8)2jbg7|I zo}9VSj?iq+63QeV&p?5&3`7;a z5GGYv0tFc4`fx*Lj+?{OXTj1Nlw(%?hAd6G)P+yNUjmnFxI!`tAOS?hKn1FeWxqI^7F0Z02h^I@QwJf<{bpIt6P&SXT*R8&1<)jkH=!y)z1C`JNWivjP&%K8 ztb|q&tTXwMq1Xg!I{?lLOljJ%S~s{C6y8FyB9rJ56sNp?D9(E&^1qi7;brn zS6c@xO#p({8=ZC6E!qL$4k>#}wvEjZ7F-p+GRLA~643)ri=VQAc*a)Am<)P$L>&Uw z^%w&19`a25*?8|>hh*Qj00Ig$T=D*9fLry?sWtYrzQp=FfUTBB3$CT~I`6(hrk!iT zCgA(PqKzN|=7&fmL5%LBj4+q-x)h9Sm{Yu%X`?EjHDt+-0f`K?le-$$NDI-;Z;}&62|GF0T8KLnd;_?rfr$><72~sZ5z1XUNCGcAi??s zp+%1fs%(CxF66QRMI--=z!rRJvl3Hq@L-w%fM-nyG5qBS^Ar41=OG&*B}0&CDZmo< z7D^UTS!#%4V(v24OB8t$TBR~+)A}yU#UL$RhQu!Xl?%$}kJxh&uPg&;+j!Dwl4i`4 zVK_&ox(Zj(Lnf7ll^ChJV$ITOgq76N>k+uqf5(c4eomMjcrlgRMY%c%=8|H(>Tbw7 zFb0F4$oz^CSB#9t@A*z=r^yls2=chsYP-XiWdpAyF8){^=F4-&eTFf;*dlvHW`P7^ zjWHKZFvnT+Bsy%u=y~f3I3p`TCN1OxteBm*vDDV13q6t@G|hU}brmlkHoaeSOO0B^ znIM`iOPWMf0{IlgwQ~-wMa{WZtx(n_o$-lcHT8?7=!2`$MvHUz^CFNYhTPA1dw3Hb z??V*r-G@i+f&QCI-(HX37OvEbka!oN-k)Ga0?uJw{2ouAt(zohFizakY-d+Ga>F?n z9*+m$3u_MSQ7tLXDWmom^p%+5uo2!VL-JGr7n=7PNK%dD!IV&6GXtKLCTgi^_teJ- z_VZ!bw#nf59Xne`tBYoIrG$DH`=v&$|^rmx9GO zIUl4Ua(>D&-6u<3OD>_iNP)d;m@)@*KcO@g)%GvpgEUnLHYu=A*)0MFtGf)GAi?-v zrn&{vneNeOMW6393xuU&GBs+%y@z-f7Hn)8;VIeg{9cu3Edfcckc)f0QrCejuS*pm z2@0~&)QSc)%hflX7K5HcXPP@2Ptur50QbNd!;>kQL?PCvMbZITJiwMhLJKHOj^Fh9 zS4Cr@f>}AAC6q(3t+n!yl(4AHiGyVAu*UmpnL7G-phIZvKIU{=AaaY92}Pn&iW;;} zBs*u7nuRb)j(y@bEaF{Qs@r(joV2J0T8`?W;L^@*FjpMR8-MRwDBdVdRq!BU478KU z1Y9XR@r}1HZ_&1P-vQg=$gP<{r{{UX5a8f`-*LO`czu1rm$x?@XFNcSiNqd6L$UWL z!q-{qX3Gynn`hZ0uJ-=}$s2&#G5LA#7zbhsZbS zN9$a3*N*nKOeUHLZnp~_m z0ia~6rlGMUuXO#NBk>%wo?YYZzr-IZAeRAvPv9a~o4ia-i4w@6mZh(_0Jj0OoKgYN z1g~jgERH5C8H?%!IVL}bPi(7dg+vX7O+*>9*Sc^`r62&zv|9_qA_Ks-Eys|2xv)|4 zt1$-lwP5VsGlpT?_Vn*>=LxenJl-AzBpo1J&!`MchF}w5jA8J)o|b%?%K{yqk2d(JDKIB;X}yKAniAO?rXLCR47{4 z9(=`~XU_yff(5m_Rj`s#uEng^? zpboXVGlpPdmd0!qB1zZ*7I;v5s&$2TBU6T?v3aq01^ivD9ggbmR`5Y)=F7n+^{F6F z#20vEfQa!ROiW{ln+*DqWX^16czBcq#b9%h#(6g|VPwPmSB#sKD16 zzBLbl#-f$5{4IiBSy{~t=K^q?fDKFs{co!>o}F>p+#iaBSfc?9es<%89KgUzh6a7! z#RR2&SOQ|cN+v*-K%bK{ZD}pTm&XIQmlxbHFz1OyV4ze_Lj*UOMbOrEyW>0G{SH2V zegKEe?UALk$RLv$f;zP!;?Qy{C77Pp8=jzDrZRV6t=oC?X~^NRp}97DZIIs zB4j?x#A2U7&}E%DHhZ4?<>QtTLvw0!|1zBZdJR#$xs5rWBwmqvbbIfq(APUpHK=r0m1s^PWn2vb zfh$H#3KE=wj}gBV>5&WW8-tydO$CB9@=y8@U+%Zu3{l&C-{5n{d4?6?QVP0eciEkq zSZ+X0K^1<*bId9zag0VN2>z5iOF|o?xmNuu(~2fp?#(@1IbO=#E@Y#J>w3-ym)}0L zJWI`8lZxPC&%qgOyw(XQhbMD~C36v)iivtg_^Yg@VGC3KWO0g-ccCzzIFA#Rr!Rei z(WZ^DSzk!Bpq6jB(j+x!1}M5*Bk3Y37led`gmKT&O=8NqlF>Or>sOggaSzvcuZ%UB zgI`{1^^ zwTEnpfQxM|cQ#Co85&_xCi=_U8v*4BOx3!lwm>kU)~vU&;q~Pc_U#4tW8(AM1IKyb zWJ`d8tivvIY;_0QC$*p;ryl%S2* z=eckKsOCKuppDL7_d&qd_Ykdu$m3X;cmx4{!=3Za? z@Vi%8z*#vhp_C_zAA?)t?SvK*d^1M7xwCp;(by%sjGVsW-Fk+TW7}%~o$n2lWj6V@ zg&BS{nI%gnjPCd`$lD~4dDryjbYUwi`)KPIbR6xsE3h#5%*c44OFFhvf^%O+S}Sa7 zPs*K81Cx@h@6`_NfH6R;3fu&9?Zj4#Kt&WP_c&VGQ%0&A8#=);wpiqlJrR($*rf^+ z>2HAm1LVIYz%bPy2s1a#v0Q2k|#yKGyz|;HXsU3 zVX4>(U!L{MC*2m2Hi;xgnRL7;qpe}?UVNA4Ukt;R(J`*QgifeTi8aX1h_pSPTFS+J zV3l!D_TjK+ExLEKuNkbEDP*4CclS%J^oU0ZB3!OQ8>sZnwhnphl24^10sxF{XouLpu?)7NQ=qITg|X@+J5}w@y4^@mOrx^3itai0%{M3| zDy$L-Pnoe`br>Oc5wehuXlfa7tcfpgU&5W>jLM-Ibj^jRD!5_oqRY6~zHczb;0%ja zw_`ffdaIU4o!jfV?BXcswk&wEB&4=3Qq+G(Xd_a(q)^V`s`YElOP0t zjsQls3^o_{#&W%7EL>0kuUvagV78gcQs7T#JkJ!@{yD>?@9*{X%ZwVZ&>XtO>!Zut zdnpMo?`maaJr!^&7U22S<)u8No8fY^f*034DIlb07@zTBs%pB5ejRgafC{ARi_bR& zq`$jM@c5YfBGg|PVZC0+__uUrXMBpMu-|Vt49W{-XkBCBR?(rwGu6`Bwv8tJ;0w#Z z_@wv4?!YOO!jOeyY`E{YsK?WS`2plJW&PE8fy>%JkjvnDt(TOG00*MaIDc++j?)jt zy$=Pt_^e!1B~NIX;o3-=%U-=d@2QwkCnotXyV*OUt0Nt6(BvkjVHQ;wZ5y!D;h3@A z3_u&h;8TlURtKaeL`IeQ`!bV=nJoIGJ)^ppPY!Zr!I@3qgR@o@LJ81{XzrQ9I*`&s zk%gDUcs#XPnW~Zh71)qKNUN;no;_Jg0_kz4WD12Cd+yZ|3w=K1m#a2Y`=|m@0l;V_ z5V~F}ETzL!8d#-EI#ilAP;8iX>-ox%Kmv;XFFsP~cRDXMuAm;nz<%4XZ#MvjeH-|- zU;92wLSN%E@*r`nX>wmq6P)L|L;KxUs7L4zPylYFwbdF5^vVApW8GBCz*+~nuHF!g zRe_gyV*#)Q97n_*jJ8j}U~m&K#=_lmbPxj=!*Jhsm;pC)+*gz|e|wxb=GkIxxJE6X z^AaOQh8FARs3uK2e@59?X+F~MEPu}wB!dLt&p`_L|jq(ve%Sj z1Ug(nlW}#osi?Z&wGH(Nv#j=>`2Dx7Nqy?qaWy%UyirWF0rwJCmhoPSiHg`IDOfts zt=0*E{kB8(UF05ruB)P9hXObO(Akn1W>q#{JDsVIl-OfQ79j)SZEV=~4g1=#Ca{eS zW9(5P01=mUoM*=8$wieZ$|l($`Vb5ORA?)Ak-S6D!f7E;ou8a$f)72b&wr(&T|v(A znLV}C%MO-_OOeG+G_zLyZPFki01@9-!J0AjpcAKwd5seEoK~iGrKyU7GC#v3;ELp| zuTNi>g&sEY`vEG*7#RXFa=ihX9SY(g~vOMUav8}x_rl68|whXMA~_0tzpLsVv23>^_}*f6E%&r zKs10^WbpAN+It2ES|GkutI+wY^t9E+bX||64Fe1#gN=L8qrMd(MJ)!V^9k|Q{9Yfc zL+9bLV#z{u4!(5>(7#esAD1`E!VHvOq<^#cygElpfjb8<7WvLLA`YQR?~E((1x&`K zxhH=}yUt~e`xz}u!nSSg#E$obX2=XEH|AiOLjlWXz&4`b6O6o0iY~|Sm?w_Mf#WzZ zPXQ&5o+{iwDcah{RMPn@l~RFGKCeDC&(D{|obrHz+9F`rXXM-+C5A@#~A@l=E`E7)b=dX8)f=P6G%rM zWWd5gVhGx|q5Nrm&J0mL*J0B1c&R_c651jk%*B+z1ZaLA<@3zQbfHsEbgx#LdC=sC zaz<_C5G3ul&{jCqbah^f_M6Zx9q|?Q}Tb9uFLE zM`!>f3AuAh;1>cg68?LU1SI>^W;Y?w`MO9=YZvP)cb8l?{QW6F^XXRC{p#}v4`y>` zlsPbH`F`7Rzum&M@WCD7Wj38_g;pZK>qX0#FE^U)uW2KOik`H$IwSAvdJzU*fl$eO z#7N-pgx|MccA*PxYFZkv{5{vKsD`}3YwWoWA6%aQO*oL>dG9qZ%6tYrPcZ7;`|TjV zfA3qa6!h=L8|Acr>~Hzo@w(Dmdfjz3sbTTXjstN z$T~e$AnS6_D(&h1v**;_wui%vR`H6j!3thGXz3%{%qhDWUdBBv3ubu318Y)?#{$^d zanMSc~7S3cGJUYO|Jn@=mvSOPQzQ$l9Bep+J*98Z@5xhrh*j5|oa zkQ#W`#Axon00g-wtO$qbSMdTs1P?Au&Tr+OzU#R_z#-F{e&AYxl-tg!C;$Og@`-^`8KlM-j5&X0N#2;?& zmX`Tm%7Y33t((olDrb0bY-JK9C(HY#Ms0FWH9^z(Ov#sb186@R|Kw{46!_|(X*UG_ zDE^nq8?6ZB_1kFfT`{t>Agr91G5=rg%jJNvrMQ`ei$DQG980(f{W7cWk~h#L>1B;- z`giDW`yOSV_ZzJy#;o%w7S&UG!&*-nr~-5x&RVO$0rz6qfMW%~^6rL-F)PIrDvX!A zQN*%8(@mMC>Sqd1AO^-gk#BzA%Pi?Mw@aH1e~uFn47}PMz#ATq6X0vn+=3<+TUets zZB5uYxB!*0kV1x_Ic96YcrmN0`ln5){s|F7uq?A=a>f~un3}R0D77`}8npK`Hu~CI z$a6menIB%5AYCFbHHqRom%X5Mz@B#uP;5mIvR#OZ?kcF{sQxX2A7w=+nr=j<=gMKS z_?MBWGML2-|JtAWH}I$bi$8;}*VpUo^;>uSn}7D-#b5dUU&FufhkgpF@BzUifa0Zk z=c3))^*iVa=`%lSu@3olDG%i$DmLgBuGMe*?s5fWx6z~vPkmT4Ci3XyQpne$nBLR9 zc@M9Tp#a55EOk1fWItup*v5Od`!xJqi*8lTK*5qjkP;Vq7W*4*Ifwe7EXr|3*4Um3 z-ok1Y1g)`vh};t+l<>oGtaTahT#jYT6mo=BW(yghH2ZzIH=j3!9#$5hkUuw-T&=3W zo}`^j)`-nYL^(oexkvESwpnzFniW-=CXPY>ipRtt9|>a%hRg!)EI(-}79#%mf zaer3SLkP)e2fU!PP)9?^@cfK?^r*CPD0s=cq@`&mtQtgQ1|q=<)axmTNleYO6CR4n z))*+@A6s?x4QuW>vN}JxEk;Yw)s+yIpt%;#H8JJ-5CCz@6rvcHR~Jk}bX>dbY~B?n zuz&AA|GBT=;Oq7E`fYOkhkyP*!QcI3KaM~AkN-i4KVxt=rcL3|iZaa*(T#IBXu zl}~z#AFSay&gr2nZWif&8mjftTK`)$luB97&-v3z8|u3$JFanH`G}UjYh=y~6Usu1 zXYtOur(zc@g#Es4>;vTNNf9bvJa56*$eu4MoMcWHgQ^L-5SfTXtD#@1F)l_x#|^Njx0Iem9w7`phCVymhhBaJlQ47#v8Gu*^hX>4i3YNE} zRo*$$1vI*KA@h#ou$(M;yq4oU51jMN%8&vZ4$DY(xPoB_L@Xj|_x%=yKrGx+zxb>F zH~#pa{uz9|zFuFi-#*u$__;rcf9&`FB>v9d`FErqlDzHP)OK1KB#wf6)6Mx#U2X!L zFR{R2)9x!Kp{bydTOeJS&zCi(3dW!Pk}{?DUEj^oTt?gFM$Xs*8mPfn z@@tPEV3=W(TSN2zz<1vPgJ$1d3}GeCSp93C+XC`XfT3>w@M$T5VJS;j4=$PVO{sE$hVf`I8MxS z5-1_pSZRiU0)EtLmBCEIaNlp(_nn6_p8qF)?q@OAd`}c#udmnF>$mJW=ZQc0pZ*8< zm;T5fgKAe4K=}Bw#xnt=0M4&n%Jxa@Su=xM)(|K|13`!QBwA_gcxZk%1MQx!1O?1w zsE>Gajdl*onh`y&BHwC|Mekd^E^BZz*257(Q|0NSw^9Wt@@{xu-eT8vH|Lrx?n$uH zt5&+);nTy~W2TJzvPf8gB1m=!5P^c9Aqgt-BTJyFUu?d6KofG?hgxWz6i8Bu^}40TMPysYEKd9i{Ed7X}L^kFZlG>gyYbCCyl9NQkHe zXj&sk7!^%#&Gg~5G6;YWbr_UGtwKjlvnPV-3+e4XVSx$A)T{UTyZ>@$K7gr}jiBF= z4L+W09jG}}2c=nR7bv$zqRuJ|G&bZ<02usV9a_7L>4H8DP>P9SAr|{ir;pC7#{i&8 zi4k+K0=Yo}q>A6jtO&k8U>S5NGh9`AtOM}h{pFv><2>H2<=5-$_4WF#zdk>{;OGC> z{|W!-@B2ppgu5~W{Jg~$vCcp#2VMIGf@ex2MSu08MdR|F53c40mgWm6%c|r_#%Cpu z2djD--MG(Bp;rHtWf6gVAYar#lSw192HMzNwGgC+ah&S2Q;k=u=1mA)tE@G@S{HIo z*CFRDdQFmW0ndvfuFO1#v-e8%tuZN&iCTJ~V|8M_r2hl0zQT3w<&u_s-SZ7?SDFB< zP^A{z*(j-rvo%9FhrpV-7{e^8&uPnsMXo<5a?TU;R88!a)&uVvd{!`Qf=qK<*Kq?5 zpDef|4IRkzjpyBwB|rp~xuPJ@S-_eC3YD%{>lK!lOKFD7sj^GI@NL_$ZLCLNc1al zSzW$=RpMe8?eo??n!l1KuIh&Pd|&66iv>5gx4?}AB1(t@i24fRqX=ull8d5ch)tI9 zH8yv1*7C_9`vz*f3EB?$;ax^DAAw`tS%OiN-d!eX!}NGGzUvl&ZJI!vl^^CLM+TFxo-wbA6y^2UoA z@sp-sjg?3ePiwyT-#~xLk?oY$16Yv4QfBu>;ToX8GWb%0{IU^R{zQwGgrErjecuTZ zSny&DTv8AzaIvEQ`J6GwY`g`!8Vs!2-!>X`$oc{50hjd`0yDA>%*&yI5 z$gj}=c+${u;ZgcI#`SNYEU$5o_x1tfo8J}#S8{-EWCj`b%sXr2l6v36?IZ^$E4D^2 zJ7d-d5OPJbk)l)zvms=pzXt}r-ppml7l2esS9}(&jQ9gc9ru?Twv9nC zKI0#&6$lV@1gH(}rlLp(9a&j&80$j_B(Pq@wv9*)W$lPT05Qzjj467!Z|1n&cHHkb z?3-cREPr;e^Y!}8zkbh;|1SKcpZ<67um02@`we~0PyU|Yi~sSbe-{7pKlf9A!}t25 zfAA0C|N7aV!+-Oy|6BO8|H>c#n=rbs*N?oULen~s5pT)g%UoTYof@(MJ_saIgvGzc zd8tkNJ1zZLgOh?Yo;2CyW24F=r*$I119`UjyMGsP){z`_dI zw$vwO@^cH(%ZD;>QtNjrxXyb@wtVz2%L1&YFCs78ZjJ;WtxKun`gh2s zCsMe)_a4BMo87X{(w-G7p=d`wXoU%T40ZDIL?SjUd%$BGv?K^6vGp#6j2bXSvzw79 zD{cR>P47yQCs! zRc5%3MiG}R5F0CE-EKE*+g{xh1wI&@3B*CzB4;OxJef0?1laa4Tb;Ri_0*3@zQ1ni z25`{kkOZ(`nDcCiQN1@BD1&2hzu>?&4Eq*VkUhs4L5+?l)8N9d@i<2H z&Q&u<(Kbu-!h(gjz_lOd#BN!8S>A;ASkoonP<-bRf+FFUa2a(r6U21Cx0<6zBVUfH zdOjRA6N7?P5X;8!zf{R!=^tPpFqTu8^0AB})=)Xs5|zeSNT#{oT=U^0oj`8x8U~VR z7g2{H9bd{q)V$Nwiul4(dqa@Gt|!i**QjK#sJ23agoybS^L;ouIYsYTk#Lp?x8JAt zWnh)n5E>=<&TNn!SR9}XfH@bMZ2LkFQ1SWV*$}V7WmoYCc4x`-_)U!i0EqOmxz+PZ zxRc_}om>K4y0PLmK)8Lq9oOf7{3m0~i4XffJ`=z6ir@I%?#}O_tElyjaOPJb*a4MZ z)F?DEHN@|{DI>EsV1k0M(~x62Q6<|bku4!Fm52k)Hc@}pwltf+pwU!+N-nezf}SX< zdY^<;g0ec$P>nSEXmArcEc$L}RCA4|LMU}7e`SF*o7tw!-ssMb(Kn~BB~(6yUjC&e z1MY>@#UFUL zN8@#GdLv%(Td#}nA9}}~c=WxG#LHj*TD@>QVfc5t4uG!Hlz4B&mZvivGg~H8&Zp^=w{3xvHNV?P_tdjD z$(;6;(P0ZL>PrJ46b&-JYoX0369Njw6bdOYQR)&fkUbi5Av4(aG@2?F@(|e=FUakD zhh%;kY8FV_2L&&Jt7d|%dT?Yqtg|0A<6`n%x^Pk(U9Z$e(>Xo0%NmgpN`@AVFO=ZJ z!Ed${X`gnrbt|I)f znTo$k^3@BqHp5LKu|X1;9o+_L-Ax|W|1ONI@RXdbdsWV6eiL&za-Ol7LaTJ?iT%BO zJ^f=o5nuU~&%oDz@AL4ffBea~81(#>6iWj{_@v+8D8>hFOB;i`-peJFMQ)a$Jc$&cjDo9-HlK9pbw7}tWSOB zm*bm$=xtAz{pfoifnRvmKgYNH@b}@K>vufpyFc!aekh*)v7d-*XJ>e~huw=G|9jtv zbqsvYv!00;|MGwKzC8;6=rjKYKKy;&KiYZeD}NJT@a%tx=l%G<*}VI4k9`k(<7fX( zJmG)*gF)zC{L8<9zy1whgBShhpL?6f@O$wJCggwFRZ}P*Kd_}W$vQIUjU|5rHo4(9 z?dR`7hYB6uydpFPm(!NZB<3L8p%jqgJ07IPZOa8~Y#MfP&-mo9Ic#2+$T0#UbEL?o z9p|197pO5Oh6q}lz~~|PskktP1W}2W2tZ7`tl_wjGhzZ}`kU2>nx&o112YBM%7fJb z$x`oUs$eVQnbIh88>lB-5P)v=rb6*nD|*uMKh53vlXjjFyT3FFaaAQHdoN+&z>u94ax){o2LX+yO(})sFZU(-Ak_16V4^U#r)-)K?D@rPzOKeV+ zU=EScnYD=1u&mKlDfO z86Wj=c=%oS;Lm-<7j548C%^v_@xx#F5AeQ! z?JwcwuYWB7;GuWkWqte8pMYO^)ywh4|KwSC?Hk{Kd+)vn|NfW$^V>Dfd+)jjXD284 zw2%BVZ}r^_d*(%u%g-MBh)3byJ@eVP=Z-t@-7osL__3e=IlSvbACABD;U9_Te9>3n z)Bpbeg>U@+?*;&z?soY8zxxc_apfw$=6Txo$Y~YwyM)UC$0DA@BFqoEy}!3!OySAr7AAe5Ld6)qIO=f67E02Z zNi1e8JL09)u5a1{k3>*Fv~5t_SXYc1>&XHkqGl`i1rc|a3~dFuEWtPhV zmLx;vut+Yxjl;@gl6lTqG$jRPMYy5(oY{mNM-JMh_G|1|)BfB5|8;HA%g4&LP<55wm?>zR1QcYPZG;QxEU_v2Td{ak#~hyIBG z2#>z^k@&lx^67ZN&%78P`L~{q!&m_T&;G&Zr+D||5eZZR{Wj6@Kk*9U-&Ed+>iStJpCKC(E=}f%`5SQr+q5ka^rU%ruw$L z`#C@Q0zBtOUx4*{ejLC0>Q~~AJpHNLx%z9Lhlk#I7oPfzFUPZg@cHriGrsHF@RQH@ zfARM|?XTls{KO0Knm7J79{Y$#;gR<|6#wjB{~$i^AAfD!`;Y$RbMPULdq2GHO>g=g zkLkawOT>K!DJf_$&8(P9L1GqWFGoLl8GFp|#e9D2FTmF)KT&8Xr9t}WgpBm=LVg5t zb?@5+O6Q5;gaQ|ZBPsVvj@_8)rO9!y@xhQx3}=rjR0f8Mmz=hC&1a%TUsb(sLuse` z`&(<4ux_S63srQT=IDqt-<#ms02w~zGb>XT^FVk5T(VqsE?ZA65rt#9IGf15a5N)Q z7Ea-UqpKf=|1-94NNu`Jni94;voe4EY4^LTe;pR?xIe5IV`2;ofm}WGQKv^o6v?7> z55HR)`pJU6bO#D`EJq8-pNgDJr3T^X-v#`b3_mtM#3MN@9B}CicFPXCUB_;>V7Dwd zJvqVY=?RwIf*v?V&B?@p5_DP?GcXe1;zk#OEnjqj#jS?ffH!ggKDG!w2q}OSbE2@G|$!0T$^C;v?vt|S7j}Sbxa)g2i&}Qj+-}bVqI?|gj-$T|5HC1 zzu(xO%cOPGOUA>Nv zc;7#SpML2tZomNm{O0RkgRgq-x8mB_8J_%yo(KT=l~=t2FMG|a@G(#P5Pa2BKMNoB z_$T1%=_!8k<-dV%_}=H;t_yPMCCQjU5>gqw-z6?IF!Z@K|69uM?kDAhit^LZ>#!wS zQho%*Mu??;FNMvEjbZZ)f8XK^YCG#QrbTU#P`kJCk16I2gIr{m6gJ6QSZinMG(S4b z!cUU@PMsLjv)67UatRXxec|SuSk-83nA4RZ^R3iLDC0k(`@(jYu}Fq3Z0lXkW8k?%tBQb`pB^oWnNrs`!Cy=z(=ucFZv*)@fP3)~Q%W)||L~UA)$H-TY0)b-3{PL@&up9&_&_0RaE>3%=x* zZ9nwRyEcE{*k4Ru^oIN1f*bpD+xrlGg@-N)CX?|lT8-tn`)`pcJoPhjo6F?bTV0icU+5M=k5Xge^l?t2j{*p`j()@k zCfpaXT(+j@M%Du)|Du`Lc@OjGSZ5lBBK*fp@sL`NYR@n@YWo1;8Rx(y1@7j#!R#%VA)y9a;{d#!wrWVaxA1QWC`@ zA{Q1Vd?iFOO{)7a5V;3p_Dwr{AB;#EBK}z!-|g!idcEm^`vCx7^vz$7Uw!o}E_|=5 z_%|>44{vjOzni%#-j;X2b3ELCej`46=__B3kNCpR!n;27;dtVE zJ`PWQ|389H`j9_?Kla}5gZKQafBtqv!_igQylglHjtKWjMqCgt2FA(9a01x&*Jn|{{kX#CToMNK}-;hZAAO0|8@BpMRvW>q)G?ffk{2r|{ zJ9B0zCZ421bMAZi10XiCy~Cp$rnSq$TvEEV1(ifQb-pqhLd%ZgSc?#0o2wkL zAPY3%_!HZEZeQ=H>&O1n&jK(fz_0lBZ~k5G&42ytWv_h|e(lw-#D_lq{qX2}A9*1} z@+nXHC;-5Ve%_)JmfrEW$G!)C`lY{!SNzuN@EtGwVSL96e;B|1+E?R?Kk2XFkG=Q% z;yFM1g8$~@cxSyl!EC6G?Zf1YQo;iyozwGWWZ(iTkI0uu&=v|K zTbucezFkc3lT@a8{*|f?HK9yB&kmvur4Z%KHPYr*n16taSr|KPY^3R>n@T?eXlPxN zU69Gw=s7DwI01AdGjGydE8hY_kj_rEOtxWM_T+m4F_3WNh(Um(qUeEWs0mN7Cj1Pz z@Dm`vMe$4Vd8<{PGTZ^%BtP-FdP>SnPdumj5v*gFoq8SSfHr|HWZuf2qBCeUN(p;(d%rgZ!RV{+NAreA%ueX+a!B&e4x-d ze52>T=8U@wvT#RCJV#{_BD`M&7RuNKOKb73OGA_H^U^|FK^u~pBg#B*#MBCaAfA#w zTv5RTpn#{c-mELvx

ockt|R!yUtt+t)kh`nUh_XYl-=cp;wlXZ}}w?hdYF+-JtXn(sX#|-SPsXRlvFLo#5S~A4c zK)^wYY}$@R7e;l=1SOKfJ@0MdJZLJYjp@SQngvcWRrLnw6$zmn?U-9?Le%>lKh(Bm zq%85nQ#bgf0TQ?P{Pty4N`Z@2HCOj+KK`7}O!fMdul^D|`*Z#lKK~Ow8GqyB{~~Vg z_qcL;im4O-@cGXz@A5Xs<&Jq{PORm9;}(5*>tnj;Kk@dyoA<7l-2bgV@&kC6hdc~l z_9>r^@BPxR*?jl?Fa8NU<*UCm{(kO{{RlqsgFgbF{NW#oPyX0e0L014JcwQTn!d(4k179BCwOX)!}o*+g1xzPsjHCrA4AWKqLFc2zi zqsdMkgJDMGSUcj7Gvmw~HVl+NdOPGY{}kd=5a0KbLNv1z-vVPhyl{hXlF` zWt=xpJK)0Pvh*=j)C@>0WW~6(w`t-!G8r6?1$C40@3gnX!qoPu z&T*8&%8a%-+zGK9yv#z$ha9|64FrLD{fMZ@*s6yuk*+^mfL&%RQ-qxlDCwp>EwXe! zg!QnyPsL?^14WOv)g~lR6r#+LQU~=wx3BH>_22tEy!s8ljUWH{ZNi=}{in~y5B$_m z;AOAbs?a~@S*RF3qd*l80;bXt_3-E#O^>}>f@}~#_r3VX@e9BC z>v7-Dz3ioU`m>&a7yQhNFYU`;{o1d@8}EBdx&K%2InR0q{?&i@_ixvje)Q*m7Ek|% zXW)DO{g3?@zZ(Fa^7sBOUiF68UwZ#nJ@;GjydVG9_~;M#AiVp#JPL1k%Ukfm|Mau? zSO4MPZSMQ!SNta4=QIBjKJ4-DhY$Dz?}bO)^H99*O>e-ze#uYcN8LPg`^qbs;f7}# zW2BJa^uh#*LLPEj2Kq2?5d< z%-^xiHG$9oTT-gx4N}?iE;EgZ&&DSbW!WP|x5Cw`t zGA=2P{a&trW*-ojb{Q*g;f%vO)|UmRCkvLv${#nE#+54j1bKP6&%^XV5BAUdFbjiL z&0GvtX);wlN?X{`hP79;vT1dLv;rKohQ72Y!nDb$pz660obmexGLwu~2AczO3`px) zJ(2CU?kSF&&v^m@&TSO!An?)*pAp|+O*)p|i=B<2X_h0Mhut(7{N2`!Rm-L-4r5{+ zGol#|YgXgb34GHJeJ8%uiMu<$@SDH|2h0`AN}V69816y00dz1JF5Cg zgk>uvZ9S7Ht)`?LV4+CBaetNQ876te*p8|HCb?Gp-y;&jDboD9s<5(o7lll<-&_0+ zPyA=BmW)0HdV&%A$-D^7N8BV$z4RxuVpz4`nekA>3*RlyCxkpKxKa3oS?&Z40&P~| zX_0?Z?I)54Iu{K97X2&2Z={tji3cf^R`YuGO8|hy)Yb*9aH1Vu5iJGUoQZmB%%%F` zP1+p*F9i*xy1o3HIj~fDP;-DpX&xpyoxf+^XzNrI!*Fz=U`fmzWQ^`8{zhQ-AOX>3 zLPL8#0Yr-;Ohi|R-w`v=4D|S6Q=Jj60%;IA(pYF5Cmz(IvMqwv) zYi95pK!)C^L6Gh9<}6n~O1@A97BG@4077}D)en*eg;qg=5^lN{{f%yAp*Us#R3aQ5 zNLsde9XaQNTtOif0R)a+v9&a``9HO~1Lr zbuXX;&@Pr5lOi(|EJvCSb=KiA)w4P#;|@r%0S8(DjAk0>TOAC^1R@fQ+`~-DhGR@9 zw@BSI%tB~6u#Bn3ot~L7076G-N&t1_RwVgIy=*{B9N`AC#I%S8n7@KHV6Lkj&IyRn zHf8h5IxLyT0`b${nNCQQBzTMYVodaAHn!db)7uyCd%G~Fx3AmR?dzTG(nz+GreUBk z-#GS1oT9Km(dztn@mZM?HC}?oY(NF+j|6vc5iJEI09iGMAVWj06FPAL5#LYXuyxvY z!dFIN!kAMp7sOhj=f*(F#b2-|>z&36eN`1_(dql{&!<~`AaD1AH=6rdoP7$DR` zVKg-j@l;-OPK?!^3$=NLLHCk1sGX$#kd+#>pQhL%x%#9w0amJitrlvt1HB(!_b!ojr zrZIDYngeOkG=M;$4Bb>?<^8qBg~HWk8d62;C+Mx=q?_Xz*NPtYx3AmR?dzTMddQu3 z2Pq`cx~NJ{p`j8>4Fa3uMX05ZgoD>8<;x)45RviZG9!!kWLG@0%g8gZ}Ic&h(xV@WV&sy%YB zOd3S9fln5hD-`Qkp%65+ngiM!RK22LfGOQDeS(p?fti>H$YN5Q8u~{x=WxfdwTU== zTg4`|Z^M3rOo+ty=*aOk*9=%q1D{kNd@BHfbW{9C?_^$F;Ck4OzT0Gh^l?p3aoXJB z5gk@Hf_opH4wV%t=@1DbP9IbAF*q`(b0RlTmk#L*P6W{14r2_fT-G`u4S(=|cn{pZ zZeO>rci!tUk9;@#rO=gQJ9B=%y-@^Ss^0y?ju}WRW>;9g|5gh93CyRBn&y=9t5Z8Y z=TkEP%>+L{VbqoH)qa*S6xpdr(+C>B8E+Y9LYkxR0|RWCEaO$N^!XV7m2 zrq#$P;=6;Wx=5Ctfi-@P!_kAUmLXN=%nO%r{fbk45qgi;7BH*8G8GtQ6GU~zKw`;! zsp__55N-o6(r`iv|2f6A{|W0%9ZqJ{tem8;#Bs+%%+>5qI^I!2_gexcJ99olN87>c zM#avA8bq?)(DP^F_1`IgU&Kh#vEdDst1QtK}r##RcRd z+ZZPp@<=2|fW>VBsp>o1d@S4~5Hk_5J8>2**E&H$gMoq2hV%?)odEvudp-`=&aUA8 zo0;YA_I3NZeZ6yB*RNc~`@Y9}CO0;@t;rS&NcnjT5|STQAGizSl_N(*0hT%DCV%vx z4POC~=Aa<$BfznVAt$g#Ig~_-F+-D+;?)&3)E}l67Xi9tmMbRY;fCX;oiyu)kAHgkrOU~&mj5#y}4synv=-R!gl(;E^1(~SIDfS`BLzdpBoTJp1 zh@+jDTZXi#X$9h579ke|D51{>Vk`t)%wU#wsp>zF8X_W7Zr~Og2f)#|FmJ}ht~Y$b zAA1tM=?B02!e+aD-M(&Lzq{9;e&R=1R8#PaWFE5pU(kgB2vadIf+5y~J88;QbpNoo zRs<2kf$20hGY*DUK*UYhc}4Ws=2PPpr16=Lr%JziA?>gMkLG}+=m)}|i}2(Y689~x zm=6%T6m!8b(-q2e<{+3(kNJyu-jBTiZ@PaQ^M3ofecir(_pW=c--W0CsXy;TmDHxt?D(|C_&c*u zJL7XsmtZs6jC92c0!{O=Li#j?qxdxX-P@ApP|dXa>Fu?>B(xQzlC`J#XJ8wJ^Ms>@ z3ZEm545>0WanZ~^*roZ)v4kD;wl;Az-8Jg%XtehKsUZx9u0_T9&Ma-n=J(6>E_wte zat@83WYtK8dZNA-2?Ep9ZoYTR3`XSO%9)jbj9ycsWfzVC!mK_A?394cdfV9{c*yzy zRZ9@Sf;hCO0Hifbd{HKzPL=CgN?pXpsmo9#XJJt!&tkYNpnYt*_Ctpi$cQ*rXRJCE z>pCFP;*ba|I~Kg|I-N!cNVW^gki;_QWnO3ptVcPMVW?NWtWG(GK(SGOl|vw~%@#~w zF$dFR&p0=hsWPioYG{F6V*?Llm2L0txqc_U`qMujPyOn@h1=Kd>-P1|aee7u`CQz2 z{rZN9gp^vzL&#DE9H;>U3J)O^NpTJ@ng**}+R?f-JPwvEv$uwbymH3V-G*sG-bIO< z^p8ERKP#8e?f*h(+ad$rF3xjPtsi61?IZO%X8i11bI_$_I=90pecV!Vi(^P)48?^6 z)A?lKvs{~vPJFYDQXUPJN!H+rF)#?h0}`+T5G=i;FO~$bY7~}4Eec?|?OV$`j%Lrm zjct~xSz=Stn5~WSwNIo!6B0b_;PC|4p&16 zd%&@d(156>YM+A@&kh-LEAW~R5}J*gV9}OPJ)*&HP(Vd6Kv3ePoSgtzgoX8AV$~=M zOb^e|^z|_D0xHdud z0AQP|L=YeEjnsK{nW@mj0c|E|2wyK%G}pA&?70RK zX7F_~Q<$q>_;N;8fx(2d_W@w0N_81fV%1cq+wZ-Su0?vmba3BK4rqE zGiqfjB#Ba!5r*O&S4~gOy6DtQklD8eNSCNXAZ5*tJ^Dk!g)t>VZ!-{8ARcGFhmjiy zVhFa5&R>GiRB%E)0%OdH^{`?+99)A?#z=QsM{4c8)RVzfERrvrlL);$gVTDe`vRgdEA|NmNrQcLjC5h)l@Kna|#1E|^C8n_`NrMWL zBM_K%0%IhaNKXW(Cnwk~3zpupcoX2^FB%IXQk(!I_a_kQf}$45W$!|<^m^bt5&c4+ANWtGl_QoPefenV+k6^Fx$!+O9NBLwUbS!*qF zD#8{)Q!Sjykufzhw>G0!OY8QpcP!$G=iu~3D4A2hfxYX&G?8)%zrWS3WR{SyvGcj& z^ZiyY(}J52xh<{coTh-Aq~$Ka7wtw3O*9|#33!qvYKrZ7^TW%KdZyvewuu%D401w> zIlBnn)4|-PO7mpSitIOeL3iFPFZ$(|TW+GTO=vhW&~c^C64fh#h168hWGLAN8CI2& z5gic`oa}bkElXr0)M(3*P;1!j7PQvGcOX?KhEBm8h6?ButX}_NItRZj7=*qI5(mS+ zJFEvYD~y40Sh22yQx54Z`a$F@@HEU~nFd>LSe9mGpBsPLJ38;}tsGk06jH|pO6D^b zHj8VpT|;*)MXdxJ1P4W{QcXAXr$}u>{+<9~LH1&+MG%p&O|JfLjDh{S;>P(N=MK&e z!~7N=IKPPp&iB|4vvc((XsxDKwfBrUad1G!JR40EOBY-@-QmjF74%4T-EbI+2X5TN z{Wosnu&%b}1XcvBH=OKFaC&lrW!XVm3*fr0D{kDlfy3bt0M^#fv|8N>+R4cYx^%Ch z;o0FtqMUbcoz+InUaKCC?)(+JW<0Zbw%MwSgicIQ!Epof-}!@l!+&kf$vKf zq}FxC{;;>YF+SHOsASB(lB6>-O3Cz+s0BdqJ}kXs*Nx$H7s@Pc{Nw>l#yO^GI15v~ zaB+Fd*SF&HnR`LPk(&ppXhT93)GVq3Fpb_W6tSfr!3 zh7qYLotSP=98(*M6SILiCJy^U5HwSf!9 zXIETnVh3kHa2Nw`zVANVxOo%%bv3pp4ccnGb!T`yILpLoKY>Pcj_tQDg4PvF6I?qz z#kFg9Kw8IszsJq}0qY#jsF_#_W@?$k*1}f838w?H>Aoxh5Xgu-0IrwKI8(1uW5&59 z@p5@9K|4#Imn%z%Clioz59KJdj8jh_BFH)+nOc0;1WRjJnqar0O`Xu=fq)Mjs6MDZ;670ICE16WF;ArX##SxY%VNBkHwJ2FnTpt zL`7T*g%Cg{3jJzcJ3`|uT{@qN$iV|_9sN@Hg72a7g_J)kc;Jl{=>i26m-LlkFOSE!=uL_)A14(^g& z&_*In0O--sx zjRu(mu#+ClKI(N-s~}|BW~W!R%9CS`D1O9=n#$D86KE6YZkv(JxCm|prAfdD+R_Bt zoZ$i>Xgfut3h}KZGkWil|9q@u{6)77qXyOutOq}d?Se6FWiNiY3+rT0X z=lcT=t2H9A8~vXrROtesH=LdB%p3$s2coH1=NjwKV2Q6d&s1xQSics5n}-A^z2o|| ztGMHiYfuGl2(XTUb(*PZ%xR2k`doNwS>r_=RT`Uf81PifGXmFs7y~BwDk8?QNJ>!P z|KAXm&^S<^~jrAbR$ zPg9|I?GiCH^jPO{%e9NQ`1}$kA`ZKhPj2rC?N~d0Heqr&Un7?$m{5@xA!1=_!F(?3 zPeQTU=gRyyn%X!zTENui>uvJ|K)4Yh81Ovy!*XV>P(Ql^>uL_y(<|jpN#-d+os-15 zktU|aBuPJVeq*RS*%e%<83H>ObB5-Gw3yE6yH2~gZWdgRejZQjWqX555`b$nm)mNG zGd6w;aLqlZ)NJYHd-KA3kA$wvuZ!qKT2@vx4T6h_rO01iG)EMFgCm_Gd9X#LlnTHx z9_vPEsaz%YMqZXy2<6nl{ktqjZ+K!+MP6=p$q6VE# z?8h{_KBXLmB`<2y&=w1^Y2uj;U9B&zCn5?8W1GMxK``lgyJ7G&w)dmbZ`UN8C_iVgEkD;&FdM<8N9K?qshL#bEKUu_HkJynjDr8B8nUEUc?cyU=zT$x zfx}oakI$XYXLdYJz$NT>E6t}|Li#0_Jyd2d^NCc@&bEB{ae-wC>DXoMZ#uuZnvXy0 zzyw<>yJFkYMzYof8r!$|vxTW~>NFNGk5 zfbXEGSf-ltIuCM6nhJFf*jBUw^pekn5yqgLSi%siqVf30J1<|}LeDhSU=D3SRlm5p zUj$Yw8;T*mZ-=YGo7;0ZeGVi*b)#|w-1usCC{;($)jWbQ5zyvji{}0Y;lp5yD312n zchf$YdRQ3(sop^IND$4WAtCu|f|HQ?5%QhoC07J2X5I&#z-+`~4i3UG(Vj_^oEypB zZ?^jhg$|Q`*FpQccU@go=qG(BFmwX2I^|<9zXHJ-5+rc0VG_G(UV5n6m)>!@0ORD; zoIGLvAg!q}Y-dDWl1MiJy0%h$WCjC8#EqbQM#5%*qd{=($|>%+<4&9|%`^$VM|BQx zQl}2kFJ?@J_EIb5Yg7QVp>y5rYe)x+dRpQyP1K?Wc1XQvApiy-6L4@}iF*F}Kt4(S z6mD9mG-A`gWUic(lG)XrU!8yW|ETC7BjO%y;^2gUV5SBl0k-|4yQ>0b9`gpNou-s# z`+i~zg_TDa#!{Wg3Ka?VRh4|@*dgKwr;KuQZn zkIgLOnj+;Hoo?b=UBhQ*aQK>wt5I9LH~Xe)nu}%5ivYnkSy4F_CpoZ>+>9t{L)cF^JVT{_VN3*0wjl|$G(QM+m-Jr0br8Q51E)33IyVoiJw? z(H3E#aL2l9SI*Exus<9iGO#QLCYHWnar^zEFb7GU*exB)(lHOy_o6NQ^xvDL1f|f} z-@6mjVqCv^id}E$FezquXzQ30`~5z`T@3^w=TOD%`BK{E$&hlEw!2<@&Un}|y2ddGN3rrwRt;Pp-N4zXZR9QBK&co+H36nyRb_8**&C zd-%@@a|~_G5{}s%n_4CmRs6qq(ZZ`W`dy(Bhm^dV_ifkUvMc5)G+nNK*7_vJ56t4M zc(I*Zv`!9n)Zh5sRlB5H(I<9aj~)+j6r;9t$%r(b`ydz+%!nZpmsksJN5N zS&-*#)97ZSr3Mo5{0x3}IGA6_92y{f4m$AzqJqw%eMpciF1#$$)uPt0#HN}$p^@#1 zD6bHO=$|?NM5vuJIC{ZC^JT}jI9@76eJ$y2%U4CbrXLt{q6zc>09Y0yyxW8AYAiZ< z5YTWTRk0rSX2%}Gq901=hX}&9EzSt5Hz`*%&~Xr^gkp@di2M;sMm@78IMmItMOq>O z+DvtR6Bc?Qt~Z+^f43}I6>RwL+|Z+JLtCnpO;ra3i=6Ac13X*kRQ-7BtLxdIj7 zzWW~l4#Vdmple96wufy`@0N}$SI@B9HFuh{)v-Pu%yDji!2LIGxRc_Ph@rY6AB|w0KxNI2;s^O}qvuf@I>tE4OR?Vfq zPlwUa!@-%V(;|{2b0`KIwri&UnBA6|6Vtx76!>QL+31~9AhCPKSb>9@6C(4~sA4!T z5NVJFXuShqS!iEx?~7jh34$~bh9;@qN$k-X)@2me%9;~+lXg?1D|;OOD~LUXkjjF|UHiB-8J5Nb+)IY9%Dwz%3l=AooPt$;R+X=r=DUojN8xxa}UhXaOA_vJ7rMcUQD7FjtA zxrYHBC4L}byWBXp5d;$?hGQJnycH;vhCyPjf{VL>Gm^i!6d`8Uex_H zq%ila;D=yBF4aqw*%14*@Icfr#oHX18|jogT`w7PYTPuKsD?y{oI@VGOD|U!*H2d;QC8A(1)!qe+tYvyNHYt(c7kHRt~ji# zw`!Ww)G*e#cVngzkwzv*?PwQ>ERZpA80Xd-_d_w$sjpJ=vmp~>KU@e{Ov4-RRnr{y zhSn_~f=#QL@Mv;ifjh3rvMgw=8M9kgM8F(K1CKchC2yZq(m$cmG0)e2&Parpf-xYi zV`+3I7Muw%+llj%28`^32iSvvogie_d!+B@HO6XVaO9fNW_IR6yD5UEz!+v$Z%xb$ z5VQh$FA(&c`DvyaKv)l}h5XNnp}@4bI@>4QbP6*S0YEqB;VwPGP(=h5%&bWSrZdr5 zv;|aq0L`6|W-z^queS%Uo`^)U;9-#M84h$CkEf(gbf0j6DB7;2cMF}NWaE8L+mxO5 zm`q<%Ly`>1qOGab9%Y9`0)asXpjPQJq@^*zxPaEgoL_o3Ti2Xc64fi70d$r-o+rdM zmLouA^W%1QAyG4%H62$}73)YX4yk?o_=&m=FxhK&jL2Sr(k`PR-#|dX}AT4h$8hk)Z#F z3eW|u@6g9YUv}ty2UW|zK%BlT9fEE)x2Cvu?Fz1(o}fW7)`@c*Y~QHje1E|H+)OL` z!yboqM9AJct$-I`2s<*s6@tB4FuyO@1#c-50r#mA^u-aN2}0w!B}ia@whG@19lLN*Vh^o>rrtoP!i;9rnPP^> zGEv;R4hIM3Ka|=V?jbG1A<(c{Xz;uR&9Y}m>kvUCjvK2*FPX26Jx?*KsX}#NjON+| zOXI$U%I2f6+wEZK{?qxFJ_%N0CmA2F*2KWPpI6RV2%M4}NSLo77bB)VH3($5t4FS- zIgEF&T`gZr6X;$bOShy!1Tjd>l5*}qpyy1sTSNkR+Ol+<>=x+I5-rDZ&^&K{Pe++9 zD_Y-rCck1LL;4snlz1=-MQvXgO*Ref6hsJdYWoKSip5I}wAQd&c32iGKhRpkqLU|q zL_TfU1P#!hamb3S>S&(?(%sm+qE!U5H>U1bcBX?%KA;-}nNb3U-VEtBh?-<6$jpLW z%%RXlVx9y*XJ|W!_o(eSKkTvJAACd0Mz!LZ43Jt7JFIg!L)4khJZ0RLY0FWoI~NUY zz)pNKXo4UAR}TdbU__*;1fxEtnF^^Sm@$l z=%S-*q+J=VWf4hdO6I&!suGEW#a?J=dSV_d1om(kHonkOnHo%0u;>oGPxRUBOpq{% zSZp=aa$MLz(4=G61Vbitx5KrwtEQO{Pi)n?d&pZF>{G_?I~cyXKcIVtxcz>`jhp9K z9WaieSan9m$f@vdX=?}7+OkwJv(L#iEjC&^3ZFol@Q=J|5aA|R-+ zbLnoT!HB>2Aj~bmws=+L2??B{$ew0Ropr2O#~Qgunsnc%M^IIr#zWFv zXB*EFWo1bdq~p{9ClG)0p5`jl-5@P={uBDK&KrQb&-)EdCn zKuN^FbHs6v?=!IrrINrQ+4&CSg0gKpxU9`K#GW3vYu|0 z#^_Kay+fKI2y>3~JmRfk=?kQ(|8xh(WifyRHD{@?6_}bE$~4_f9FyU@v^Ay`c#GDm z;_Kp7&PVK??bhNSwpWvrDuDvgLolmyX5we@L_T^2$QF+rAgQfj8%8?PbY(O;$4ckT zZGs{L?4k`#)lDuYRjEINIX6<@hG@B%)SOY1DO4uLzsbZ&l-Z{Z(+g0+_H%A?%mt+Q z7&p0!NXrNe%3{$;dIMzYt0c1kiUSI^dC3#m2TeM~tdk*5kv1q`COjABV4A&kwGiR` zVeihv_7KfAIRRQp6{tD3wf6Ho6^C_V4oeVrfu3v5XPt97UNex2*&e2rj>c03untSk z6awa)(CL02+{?(hG~WOXCo+@WGVvBW#-$SnyngC2))o7MX)!IOboyJ_+Pa`PEy_uB zLf4MIKN$1u-A$+7w`PgisBL1nFCE0IKU+7?`aH7~m}%DLxi9;cS#}8qL|p5=ny(do z2`Cc}k0dlrt{s8^#1S!ls*-#FhKZ81Ukwqt)5;LHmxZR` z!tT#)LWX#BN-M#t*gJk#cN}8sS5TwCFeqe7Sht(OGZ}`XBB`^7jPURM{($}dkcUX= zAlSfg5ss;5q?1DAl+Cd=VZFd*%pA#u4q8-9Va+3 z)txiwu=O_U$M6HTuGY4|5>EBj%wdMoY_sf)faQU>d49m*FmQg@qbWS?wSfo=r}V=% zJj3A}*d+7F7nhTU20Q-Du?CxNisieyk-=s^eQuqzhm{4>BxpTO$Pbd2VwFV)fI|JqTS~Jt+ z6a>+PNWLGY30z$YJI*ZEq0Vu7 zmTy;E6J5u5WMJE>io8GAGr~g7eZf8}HI^uj-}ah0Es@uan>TUpp@d2azk&n!ddFN9 zpeAlsRon9hMm%W}khE0uxtu!<1_lHc15m+&y~#|hKvzN6#d@eS)ZQGU@}+eYPAi!P zoIn#1Ztfl%{ysX$HcvY})iQdD-#h2TVN4I@)`*l~#F+qS!`HA0+WvsE-HP3n#WP9L zF_<&rAjOICI)+6*nb)>e3+@YK5f`3P%cp8U8{|6SVVSE{>nDW2K?!9vfyPX~mHe}E zrqSpbJB@o-eQ$OzB4~4y;mZxC)$u)@z6WN{C<_MKig+(c7%5I}!vf^&XFWqnJA!9F z*u^=b2BAT`)Nv>qv0FM$mK{!dM{nW|8P0sTp=p1!U4V5AoS&b&9f;&*JBF#rFkAXH zdOQ3eeEhjPHrkJDP0He$)z2y@iu*oz+uQ`eX6`|Rc|5s-SY$=dNr4IlUlfD-aw<|x$U<$E~X$VjzNkiBT?^T4F zfeCxK5CjEU=GPfkA=(=c%($zpq~A+s-!4qPZiU7|1L(DHbSTx!q{G7*#KFVZ_6JW< z-FoJjQ1&!|WloLnS<)ub@z7E*W}d3|nLan!eE`6aROuh@NhaSB5sYDW{lnhOi^IX< zbWi9(wf~&qWZBUQzbt1uboxlg#$cQXy04zgputQDV_3-FesBIo2T$x~0Ks3>Bs4mZ z2^=PX6%X{ASeA~nlN~6etm^@D9S&41eYDl_@tQu)*s-|p)D%porA#bFaIHW%U?{Gth7e$mpqpQNy-ZG`|eBa9(SKA8c0fqrBw7rKsc!mgDo||s#y3C`(L7ud;Z*?=B-4BffTcJ4$0A80SQRFr^AOZ` ztErldh)q~-;2K+62sCp16`G}2aU2DIln5w4jhX;RkQ01flMtn+G4gO0_+i8{L!M#{ z>gIqu6&BxujPghjk;I?^8GlOyme#Rr4YF~x>DcW$<}_!%n>Y6n8yuydW9>C0j>G~%IclaY z80(73Bv3jd`(vo;HkuN#%A^gDr5PqtCy1dfat5G<$dI>}Jr%#HZqAHQM5`B3G#{;h zbFG7s*WF5HNxznAjm`bFVMqn)cn4!GncITqxk-=pG0`yGuR_WiS;#DRDh~)+pNhkRVU*oTz;C#QgG|8%flv*G`OV~myueE{sn?Nsq z;Q~74nXb7oxUgU=>E(`UlH=XbS#P`2LNi~ikz|RzY_KA5>tQX~0D(mXC%YvaaI5FP z`UYJ~jvl7Tk5v{xooTP@YP9I)IrfJ`q=%0*@&48}?YtX4P{P&{zH_jSL9-O>Ru zK5~B8L!sz>!O|Lr=a8XEV7J@3kDLRw0uBNo(A?mgM!1Ir0Su_kq>wqVt)oN!2<3RF z88sf0^oBJryr#<88BR}j=2zu((bHH$pjeJTuxkpo+bdVTsHQ3q;Jx)wNoBG1Dt32o zV53s=Cz@AFX=0{@4)eC{t)X`}H$c4tACshZrNEK0rwtF6*GU~!^VJ)r9Fic>rfNeoYxp% zqDxcVD|&Y?Wdb`O0Hw65{&eI#Ed-}6;@|)g>S;xx?4@(4N&j=W6QrhXcrvuhUb;Uw zG%aVR7~N_vaLh|1)TF2ShnW-mLu|L0w2M!NdLMz{AW)n2+$V!!^ z8cMgUg{CDE;okOeAa@cPb8IyRGZXa)%vtH=WWmYRs~GFVy0^5>mN1IX&4|m^I2_dh zx0rL>=b~;MN_@xXgy+L({PuhRB=!Jgrir7R!5RrOCC@V%+>B-?Hrv?E7CPN3+kmd> zDO%|jEts=~nM|7b226ONC1^OSa*zT=n<;5B`s32!`^K~HD2eC&bxa#ALQC_@g|g?- z4}^KHKn3rnfab;x{nK2Ac6=~7ZFLZCI}?8<%@&*vwvigD)EXl9335-a4rmYSG>w?1 zLpe=g3aXXMm|*mbU`oZoU(rtJ%+6aI)RLCN!1XNSoK;fvg>Bq}zRO~^=Clw#wNH(y zA)LAoV@1~%PQylRE3i@*js(yI^`Uv4%*~MNtwQEHv3JQ{!@TOiYZ{OUFN7(kw3TMj zT|;qb1LuboH}`u$cVR9w6a2(Fye14Z!Zw#>iBQcjGl!-lee41p_N)z#> z0xnK#AbBU4wK5nFc$`}vq-f7Q#k;F|8Imm29%c9pR9$n^izy%vE2ZM;Q!+83YCvE; z42w4D9ZNU0Az^L zHkxClX+af***jx%Vzg_`QZiq=0)b#Xtbm6-9@Z86bzt2eJhTi@xwtx^Ti9}t_<#D= z9;wS8Y4G5FL&TgPtku<$ii^8iXdh!T2#^sg*(*%+G2 zYDIzs@)-6Dxo-&)d}aU&y-F>#?|sgR6xy$1CX97ptSb)t71Oor3cIc0l;X#-ZEGwd`A9MX8JSpvo7QWI{puNWg1ex+pVBVUG zg@LHzK0E-ZNr~%(g=~2r1~-~-5_8mX(}p|THFpFX!=*{2-5jpfu-JWsbU)_w4Q@o% zmO9`5mZk0V^bE_5n>at;N75@1 z*Ercg{RauKN1p`q^z@MSCnekotBry^SqXCTeA9#7 zYO53>O-&O#V{6YU#3Mp8BMDa0=G2WGgRnAIY8D*i$q}G2No7n=< zVYzG;FP3()>?|XrM=x3Ak(>RT&dr&x$dEsC3KU^=TI=*CO>{6-V~%YK(2)^(o>6uJ znPiW1zD^wW2dsSomWJ;3d=a265|Vyu57LID!Q{6dP0GnT5)K#%F$P0BZPE#9K_S)W z+_b1O_NKd9!nEF`jRXcx-qChbz&7`c1gg@zH9`jm1I5clmdk`&rjw3AVJ+uggKjtZ*ZN%GkG~k zXjUhk;2=+uFSP>vvqoL+-vCcU`}VlitvDmgGS;k}GE? z*dHeDKilJho9DRy#!cL~ac&7~f)M1{2=yrEfYOcR_XNY{0_2C>+o;MoDM`r!B#>Hh zmYrDA7f1XIQc4wWF_G}wAhFTdgYZ7Nx40nUzgH5x2``u?W?m{xIA8#!coJvXnigaj zqh`fEvU&qP8o(kY^StuB@u0ipN`OINASqNd&u0OFK7PT#8O&&+8NI4!%brawKxjzf z9vf@qxc61CdLu2yVqNibU1$uov^j3u!7G`)(;x!}W>UzABJX=j8DLh})F8UoyYDp( zq1B~uj-!CcU|7T&G3hz`TiRaR($FAqui3n`c)Cl&l`E&Xe*G%WPIduwT0>}thv!NO z0ZiRAIA)rW)#}ISFm-wppmm#PdVN_2&<>e{D++;lfi_?;g0g9lN9oAQz&;~mn3>^Z zcJ!uLx`6>z#fk~l71ei+&i}r-K!6Gd-26OK2iSYo$p{OC_JEox3;Az;mTf+#n|KE# zLgTr;jXtEX9oa$w=o}cUJ5_qw@6`c`!ZRsu!h?KpTS)=|`!-H(RHxMw8%>qtPqiPo zXq@i4#kQ~__iIU^EM-F?iO5v5ZB9QxG6lVxgsV{Z9V-1-OJRBS%9&+<8x#96AvgEX z!wQPjb2t(8J~VE$2(J-)Z*>A`+1F!$unyNzOl(xzew-WtkdV^sq1*NGkq6@kkUj*m zy+?^?xxotI^@Bx%lj5goWJnAtSq92=hHH*!+=XTX-z`jk+#RG%^Yo>$yD-?LTUd?q zu&ZeZ+S1WnQ?srsC{9(0>g41US5zVAdz|n09zV@dJMi@R8E`_PR&OC9a1_Dt04v_K zG+@_&D`%&;>#nw>N`nM*{CD0Z!5IbE>qcDQ zaaa$yx!;4C(@3C`aZx3m%!>O)As((+4n%IJ*f((+Dx<7gy!hPLKISrSRhTBMnL5T= zbWPEe77lfM6&X{^r4uM_6`GcKe#FNjg3t~|!l|hq;%Een=iR?d^5PDmalU+ylfLAD zZI99qC-wy~A}VzvFt`X7WFs~wFd;ZFHF=B1vQnab#OR1kSfr#A?&e7Q*`l{T-_N=w z^I((8`KGT?RG!t+PtEx%OBT+t8}&BlfZx?+-jMo=5RL&xZSg|4j>^5}UZSkHxkX08c(OTBnB?s+%XIU2PPIgvKe0nBaKh!c6O$9>` zeI~7Hz8>LjEAS{Ng$`@y^z0M@3*oGDTQ!EYMoDPn$P-12m^RbYb-W(>U*qrYWU=hL9vr~+r*o}#0cY-Tp z;(Wiy&GS808SdpOXxbv3bG0i4(I}hIh%UWPO@f{-0#7pLk`~i^6?VulstTDb8ITl0 zwHb+10uD1(j&_;DjKgEnJIO;w(?KAbVU9#A)T<{VZTkcVV_N0MNbxzKQ>@%J$|hFN zPXV|ehUH-I4zfs&tQ@Igw>!hq7x!84yb-Kp9wri-quuw|5h4gF_%^VzLw`@ z&-qSp^;{FdZr8D#G;|rbe)THuyml2=PEOEuKv%`;8m%sZ-VjbiCWbYfwvMxtj_b<~ zIS;e7A49oPpn1B>FCu-Hi314B%)sZ1CQlzY4G3O#!G z!7maa^|MdO)YQl`05uC|QBxP;R&ZJYcj67;JA)XhM+&j?fth)*5!Z9fksZol!Hz5n4DJrqi2KW^spDXU-AMe#=czMlYMLhgOHgBTHyo zXBjEA;p5zKU$_o?_{WISx3K;z>24qxu?{2cFyHU9%uUW3aDtFOblQ zqQK|T%@{hoJ`79{9`3#0#a2)Wro}baO|TR5C$mU7kC$LHF?3Y`_V0O#oP zHKT)fb)@DV+U!Ih6G8NFFkqQqJ@KEP<;`n0zd49hdtcKAl@81`sy@!CmDX;BQwyECFBvm$C)vFGmX^` z+!nodO1LfwHun+eOTz*K7H6kB>~;$txN#Hb`xTg8?TU_jpk2$=k3Yo3}Bp_SHF+meR z*-(zgn@$`&pMbk=$NEKxodQvmDNHOAm?PG#i9kFL`N__5?we}_$LA&pQ3DtaXlO1S zAf1a`iWhh4Xbspc9U`aD#T4XC8kU{ayii!m=)MTXv?NN#GG?TVk!F!4r>6@bD^8b= z>sL>3V7~BI6s(K^yY>+P4wIwnQPE}kx?YQG~hx@Ky!JFQ4AMU$x z!?X)NK1)zy{b6_@^YQZx8V*Pa%I4k~<0W)QD|1pZde?FtG0N#@)h)1y8~lA1{R3dX zN0Xf~LI)1iJg^Vp_~(qd6~bqUUwH=1H%3?#N2f(2IoAyzMG*jtpS|M4!9A|te=(rI z{bKiMIwKZLMW;cVn*zoP5f>r=!hv9r@xQ>+bm$A>tqR#_2&U)1_qpf!WvI4T!Y?{S z8W>)^pqanFFE}|7OdS6Iy1sTxj@(uPcknQ^gzDvW>XE8nUU{$E+C#1s*4kl#yT!$@7hUniCHdv&r9``Q zePH3)nsC4Z=i|WJ+leul@{M^@ojFq=U!ysU7$l)MOOk2dtsFua^#%Y|ilzM2nKwot za~=ndkw;YbhU>oB?iow3wZ2O0HT(|s;0Y+23LuGyJrAKG2WRG~z%PWv*q>|r(GAQt zjzVnUllB5-U#*@kH1|$hBZp1Ci{?-F;kM=HqFXrzjPA(+CYK{X@H|BPfHu9`i-Kub zS>skpBscyJc_nP2CtJpU7bJa>*OO4;Z{?4Xj6gIiR3}B|(hRMa=&zEW4Skuynes z{W*-5X@X28^bn6FL-46^H6D7ON#d+|;)aI_o~-@@@;XQ+WLVJ5Fpe}B8HzqK{B4cE zZ=4*H2V2ng!K#Ko|NN6O6Kv-!uElv6j!qBbw{LHFKMrzE!ZT7r*AzMmbB;~)6#+dKaF>nHyG<4^qf`4a)dah$NmZg0;gi9%le8+5(g zHMQ3yf6_1oBVPB}rjR5ryFu6M^ul!&@lq_Mo%gWw{9zc9AJ(& zjQu3KF*K^PHAI#bqg_psM8JabziowLsT*zO`a=fSa*9@Hx;#ju>1ejKbpA4DXz|N@ zS$5*9*Iu<51hOd$m6QX*pl*b~WI1MQ`5ZDlEmNP%anSNM>zLLcPJ=n>m~^`?IvzS` zNM1nluGIYno1rC0kY3qjA)@B9O!DTGysG5Tg?^EJWWWu;GA0PPCxO+Mo zeH00uIwNXl$U%e$?s>EH8y(#SKhun7Bu|0`krPGwT*TO@9y0*|tyKwR#Y2qJk=>&6 zU_PLn=IVZwgVzRxQD?^+e;xNCg)xznpBdh&k`tEZ1~6E-Z2$5T1Fln@v=XKF~+DT(yp9 zS&N*8rssg0foX$&5&_K{_dOXgNyW;hQ2fr@dEndQ!LE}+|I^v~V0!XVa=j}BN1n?} z66HDQWx%%RPa3Sz06Pbc@g48)2mbTNf!mqZGV7QT`22k0=SRcG=QGJ!Ub2na8)=Zs zgAng!_;<{dRC}EZW*cSOT z3e9e%%et0I51}3e##;MyRAd@+I-p1iub~c&Vx{ksY0KVi(FA?}>)}fVTkL*?FgD{S zm=GCdu|PE(qR2E@^J0+0(z%fn5V^e@$Ll%yA|)dNb6yC)GV_x_R~vbA*5vqAfFbZ|rT-3^6BkVB0!_1a+@+kmMBy z5Jp`-gVB?ggn9#e%~Y7zte#!_^c)?{fo21babTPcqrc&CcFJ~gA!sxyHw3@R+pc}D zu)ZPrXtHi*Z0`=>1_*w#?E2*=<-WH^ux*wWbrdILNMLV6w&1Idyx0-rw~ zuQZ~(BMecbduxV12Eqb={rto=Cq{90a|KE)v|h32K)#62wg`KOt`<6k8Ghv~EVZ`_ zM!fv4mYS;8U&dTllNnm!p;A8XHEvgnS4)MK@5?#hW{foliBJI=aZ9Br!52$)l@g^V z;S;dPveu<+Jwb;XFwuC*qtIY1vKBGTirBE$KM5p4o)Zg{($aJ4XDJ)A z)rjW4MY>xiq`XHH@U{dMk%VH0tM#(64KC$IfGD3WUi0epSmn{JDCEl{x5aCsuf8}s z{6pFBZOjI79t8ZqfP-xuT7msvwWYSG#hwm@NhfXTSk0{T5uh@QFYAYFVsqhoUdhMN zx-)sRUr_Q{QsUqm<=R?}Hp-xv6xp_pdd9%(-`kwO>T%y*U-KsZ$T0?f`~Dr{7z|_2 zSxtEq5SGjs7O}6mPa1;J$)H2BZdiaQ5zG#XT5EWFJP^!sGF=dKI7aW~q%2U8a}@!g zzc_yd5=u@JNQkVyMT733E}?%Gb!}CQ6;UxLr)sv8|9?r-=mgc8gpwacx3>jSD(fXQ zQv=`DYzaU!!+4w+=RoT}@Z-miY_*K60Fd#Bc&X=IhPyB%V5;$Kb&nEF8Ls@o%a9DH z6RZGOF%feF!Npf7aFs7DgBzfu+tlsL#(GetOm_CB=0LUm2>`tE(Rq1a$}T|VH3q%A z_3SzRGysu_7dpMI%5he_#PW7Tx@@|^e0zB2W~D?RjFP8zWtj`tU&I%Mkd%|kKQK6~ z!syjXbSlT6pHqjn{NoHcR7ek@7P<^e!Fx`x0m-PB2chT(Jp^Oq1zI0G+twQ1&J&-(+-xNAryCEEvdsUt%;TajUIoH3aAWxPIMHmt z-SK%naXoo7?seZdj)Q?&cg(gxH0wBz17@t=xbGVt6Jq{U8QQV}fYMu7%FydC@ZSd8G&d z^JR~*&jl6!I?|RNiROExr*-sTS|n@GYn0_m8dPEh5KOs|$UJku-`8EGRpO7xRF_=V zYf>agz!SQ~x^J1lhQ-gpaxPyaFCB)28;c9v$|$JvNg-a&PsT)pdsyd4(4lW^?TxIi z&3WeEmd=M433DeIPG9{TYL$$i_l#tzOqWr|_7b_F9)%Qb-ZyHlR+*uk9?jPViZT^g z(c82UFDG8s8(J-`ecs;;wh_?Htav7-PNqe~%kjdL0W6ljwCNOawu~%*=qtJ!PF)4w zSCK6>f@1Tx&ZzE8TVvbAsd5LpKTxMO<{LT*cjZukqNN(3lX+l_sEOYeNkk4Ab^(J- zVQHJFQZ5ryP&ClOcuaJXcO}CJmciBv7}%t63s_Xcy$u{%t|y;BBzE%stOJjJ;y5~v z-Y`nr3mhf7MNW(Zc6zAX{Ha&HMHgkZyxVC4vJ zh`#njZ$QOnbHkF9M~~{BdFtRcaf_F*00M<(tC`IWI0IFVsAYmfm{bL+EMQt2HqbBA_A8KA0HpM@2fni0Lz$sMsfn~BJZxQbBrEX%0t7% zjR3+id{FM7bO^)9Y)Xus z0!8y*Td)?~%*q>E9w6T3ouf{4+;_RibnI|Ci+&>*CBW^1VQ2H6Gf+9WZmvXnD9Jb!jjm>%# z(VFh~`1pWF9%q~+KekD4wSNk5=S+EON z$zwjJWFe4gW3Q0DC3%|bsCLJxXG%X)_qCKg1h%f4y#PXifelzf@~#mjSXz*B+gY~8 zZ?+6F5|FfEm}a=aHpXUpZ3Bw-1>~qN`qtuBIYiL691U_^&m;20hM_{VSTq$qFn>kqv^tQ@yy#B3`sjM7qn%hKFu(^lw3m#Q8I zQ7@E`hHoLVGH5b5x>f_*PO9}Xh252ZNg~E^l9=KWQg_1pTI0NT>#Ti$Kk+zEe0)Cf z^Z9{m`b*Tt^VBOTnn=Z5;h{)Ckpe_PBnfnS;5mIMvqHtm1DVOCP`5u3P`0Uz?O&Q4 zcE9o>^~?ZtkW#DMxuL;J;3F#{78!E$DMG-kA7 zjKI+ipI0xme!JuOdExoI@x1Ts5Qzkbkw&1QWg02WD{?ZO$H-p2;g}uwaGWuCU`xvW z?!h`Tm!3*}0vHx}KTka0-(hCBZ?<>6U6nIhqp!w)DXCI&OSX?*IPi> zY`YHUyBlbL+ESVq7FdzNQ(pjj+zrDl`JLq1Sc19RCvJss*&jE_ZIp{$@dH*VJf#hL z?%kGqs64bBuK>h`pi+k!8=TE;f2Glz0x-Ep42wn8b|Z@A&@?O~+gryOXDamEv8f|e zj$IL3yxzN>PXxwXO=>y<9rJ)1TGdh_VBu)p@b)mA;JJ1CD)_YLG`q|8h7Hfd@Ncsn2X{{1_~(Uk0)sQOtjqrOa)Nda~E4(583L`?}o`HaFI{6+>Qv_Hufcg!Dz% zZ@?r2$1@g>p-6+nr68|}3B@GiDY?OPpvs+I05Uo;v$ul<;F!4Ywdmv?$neuU zzUPGS7rg*LJPwul>97#xV)fc}-Dn5Lp_4qvP}j*9|2K2ksP9X3YYHqUEaRB10guzr z$B8)|*X4N}bg&y@GN#jh14!a#V{)ox2^&4+#FsuXlRI){wB;R!;}|roP27Z>e{oDw zb~<>(>S-Ob5Aq_cq1D;-z9JgfV3Fj*P;CE~pHya2PAxQsZF01C1i|w)6UYse(P|L8 zK;B7SBDVe?mYjOIyjfl>V9Yd{6Z~*gHO?}sfXZxM)^$CXF+~G<-@P?rjFw}@zHO|Y z1@(JNCul26L#$^hJVA59NVF}PXu5_~NM4@lc@9ipe&=+`mulU2h5cF*7o`s@_v`2# zkMqR0cZYpG@w{%t?I?Sid-Ob6qJ114?{5#hza1>?ZXIR^zMuaWA3uLGg*6?44!4ev z&l`XI^^q8OMfPZDl>+5{ZZJF^1RuYBf5-Q4Z`_kh1QE`|mu4QX{_lVP8_(y3qZ=$H zL3deL={u#24JzY?WgF%`5XLzqIg!yzj0K>2A2`oJxs?8|y}*si=%1AiO158toBHv! z{z`5LfQDJ_pA~gpjqgwZ)i+QzdWRnea9`D!2OL#)wSE%Z1aMDOUROfe6CuO05+gsW zmYEeTNaG(^se)1}SfTY2THQI8AgfQsq7&(JI?RZv5cVlx#KUnTD`P1axiL7ST&(3i zssvR>!8#%u6?ut)L2+M`At)uZ#;da~uKPl_)vw(O`o{_%8V?<*>jR6>V}|YGnz@uk zV06Qrj?d2z{Pl6+nFp`1ANn#9)CrCj4J}(uN0umh0L=rV3B;z-xNqQ-gsagFLvm8l z9vxq;IiayTdWVmJD;r&1ZIV;s&X9bLE#xJnJgrhdl!sIE{zWSFf&KNB5Yl>Se_I*v z;O2p~P_!zAfQUt*L=LtroAHsCkjFgn3{kwg&*0?ox;tUc4 za-bCUG9&SNg=&fG3;}y#hYY>@N&%8(p1Q3WL8A6rY%-;>S!9SC3!rU40^8o+Yvnb@ z2Ebawaj+x)c|LHyJ@D;$;g26b@Z-l{nA6dF$8ik2ohQD3|HeIH!4%xlnGS0FgSQj^ z>$i7;xXDP#gyFg-{^wtR;y?fS6VEvzP8gj1FzflO;kWPK@W220J05Q*jSjjZ(Jy}GelO%$e~lo;@S=b>}&%a1+oHGr*o$5OUI_{d8YN`&8h=6eYt{xF8bfMIJR&ngeC9wy8($PVHwf$oisyYSW-LWmqr||HUAx+^B_D zJ*k;jZdlCOMw^D~o*4IyYSPjTqjj`#R0)(02oVZK8jthnI7Y{uHyRobc2dY!F(m-Y z3-ec*tH%$PEoM~!(i1}?I1`YOagvu3n{gFp@|MP2iUq<_9KDtx(opfCGOrby?X?L? z$;G7NcY`-WbB8sq0b5PS>YSGA7)UTyC7V{M4d$~wn_A_%+p2M21j=BUl4}F0qJaYw z(18hr{8~CRCtn+R`s2$aK!%&%Nv8W?20ZT@KYo7T5A+dJgo`F8Ok#8VDSQ=3T*iEz*In4k(IthzsFm3Vqd}1OHHgMdIkLQiR z1pM{z7umN3gI**M@-&Knwr#zyKU!tQ3c?zu2b!tUg9dW620M>Rhs{kO14&Bslru%c zG$N0cLJL$R(@R28bE5PfQx<$d6$#~R2{m5>Edc@LM`Fr|o-`?JE^})luu8Zx8ogwrY zd5m%HmkcBUy;bCp0HIZ6g{04V)~8Icb3Zs=$g8Mr-)s62gjbd-?}pi0m+Hri*N{X=R%_Wp6k zN7%5fvy#Wf0kbvsid@m5rkv)V)Q{xyF=aNGzw3OHG;QtGSJh%b?zH8egbd93aFKe1 zIQQ$=+VoccNeyM|y9g@f1_}+?-@dLC3sN|eG1^lB2=H&83xFXx&E~8UXl6s6BRjsEY0Qz<77Z4NyMkH1{WaWIZEKW3aZ~wAS<2SC3i-K2lZ#fggYUg`b~K z+;?&}rdOG$Z|Ry{&~1W;Re^?b1pop-&xi|PUDYK7N*u%7A_oa*tN5QvYa9(7Z*Tlu>DUG1vms-eHLOHOj$7ww)IwJ zpe;IPOHVJ;JB!4ODvNHQ%#8jedax@`J?y@pw|{@-ZdDW^6`F$I*4Q2%Fr59wx5t6! zKYqt`O{TE2!{{=4jRx9)NIrojK&;1?4nyEPfdBK)cYJ&A_~XX|fBg7?&*u{!B-}X~ z-rm?Z0PdKioy8JJMDohsXqDPfj@>rp&)7XK0@-ylAP_IteSg)O?;TGj(+ zyWqCvhImn9IJH6$622tu7=h|K#jL(qhVC^VoWEOOFA-@Ok`P0?l+FvY`xy zb}L-CPfikf9O;!_xW`1F0tW-fIFh&$TZxktKkH@BW8nSm4WCcP^XDfl?#(jGD%r32 zK(ipJDkS&ieWOw4NBjlRQ5dQ0b|duy8g#t^1*^9zyY@(+J8%=Q>$*^sk zeG@i$Vpt%c$ty!-Ze+1ny+Q2+U@(HpNt^rj6 zQpn`hDFBdc_o(M!g$VHeIM7?ed35~o;|D%IFPx7D&c_?Q;c)oPRMPZ``Mf!tW;jMK z=jHKu;5^TYjJ4j-0_f3j;)I#uy1}CqXZFD`5zZ~k`c`yOwqt=>9>3N z5iOI=R=_H9!g?wmePa3GNn$dk169y~qa zL@hZx*T+ zR+47GoC_@%Qyq&?C@iq9;Ojc&QgIEG&*q-km|;aJS`t(+kNf#Z2Ot}C*41hzk^%+1PJ0ALAQmJrue=9joR8A&lS zMz(q$FPmH$dCt`+$Cx^6EzsepUa|p<-m-*h8F)q>_*wy=?K5AOSw=#HeKD5IwAR-(u;ikCJP>UGRKBFW zzak@3J^JS={atB@{F6G4fIJG!29iW(17oX{&@FZL!0iNSklye#4moZ{U{?EXpR+`S z-Sn(DU1Kzy$AQOjWJGJ=?Qvj?1J}jlfmI3$@Y)vwpP!#;V2zv(cf7y9)!L7-4!mRV z+HiQ_o`cQHJhFVcWqD>R5W80=utQ~;o;pOSOSX~4qLo9_Stnj);Iy4yc57|q`` zXid^4m(=f78j*Z0C&{rZ6;;j(KRcpXTMm&6~Pt{e@jl> zHm1TpR8Z1bf*ybZhgtqvn5Ock@%4)NzzY9ZL-8@vvSuM2S@)ibZaUlKPRH|VJU`qo zbXfM)&;H(HFm&Djh(76&DcsExx|zk9t4D)KsWZuR%KLp@ zH-X>e!9?ZJXQ?Pch+V6q$6`z&Oe(*_)5GamE@-go5E<4nn(-_Sbhs(J%6Vpn&yxr# zqEH$gcih2a$*=pSTpRm!u+=k#J~p|kGPP|r0kQqLCg0v4csx!tocI_G|Cx97GY~M_ z@kT_jDkU23&NDbvJ>p3^Ytqpw}neoBxU6euTbTbIEq?G>8U^i7Kbg)Eo)g9YYl+2@ubtPMbMbJZ}4L zOrU=@2FWT0`gidycFAR};T{lvwi)DZ>{vBSg6-r@%%4 zUsTfTPki~OX(ePWv@x=EQdV{}qcV3V&jUlvuBd?AmuINW+rcv(Lc1(L;uIEAhX?rt zW2DDCM6Oi@P2K8Cc25+8#GAyP)Il4;U z^!%OjeBC$Z%@av!Pa8%D9*+a(dEgvCiz{2v4*2&s{P^(~?rWCZ7&5G#Tj-utM)x%I z9wqYz!{a#7j64)pFyurv8Y_}u`?{tf`zcV)Z6gILEGq_ioir#`OzI3Pk5uI?NhZz6 z)D95#NTy{}^luOZN;##h(=%;g`%_yzKhp6iW0U(mT;%Qqw4UdH#FD0$l1)=-XqX_!mohcbGxdJEA)yIz;th96#{#f$T74qv}>YDVe`2a0bPHB z{cjxkZ-ctDdKd}HiXtd@kw|jc34JCVtv%|V{6Pi*tRfLqPr>e%8M(UWM7y~!hUEs# z9Y^8qi!BPUT`do;xzq4%%;Q2q`v%+)P70d#+}eH$Kgaf_p~mB+@F|2Y#T@ICU#^!( zZkw)pI|s8o3}##A%~R1XCJ}S2^wJcfYS!?)0uMKwj|W=oczb`~niH@abIQOOTm;6K zQI+`zY8i7e3*=Z$R-~XRFc8q#W7}kT?O2HPR~;uVMyxPwAj6nZzrPG`X~bNaSFi>d z!r+GG=8g(wwe(}}dEgn4S+b}hwN^47Mn~dmcl9)23F^S(7R9Ry= zBeqy#kpRpBs#{dbqzJrWHCOUbtG9v&>a@KAj`-zA&Sj*I@&psyZ-KbU%Q0)k2U>eE z0f#4`$g)jF%Q9`|0r*USK(@P5dbbD`k8JLg^TK0*M@DPdKZXtLN>o=g!Z~si7%rf( z47Q@6iwl!cp^Qef1{|%Sj{_0FaU86Yfk8c|7+FcN#4>z(_S&+ka~%Rm*`FjiM*?v( z=eIScMq6t@hS?)Q6=5k4pJ8*je9u;TIgt0r=Ztii?Rf#=I1Zlsz>cVrljIyY`A?ts z#O-X!Ub-`ws&J^}Iu@P*iX>UOB$nJR{Vs4#*P_n+$+-l8HXYvSMB%;>k*$`M6YbeR z+FAp;vYY{PaDcPsymq%$&pM#`A6S&)(3@rw{CW&*pV)qOqniIt>t7F^2JuUQgV z&WnYp6XArg*Ia;;g|}q0Rct^rn4hlLo%@^y|@Sx{;ptqUZ3o~*bIoq=m8n; z>?l^A7BYe`C$2dO5GD_`V#NZ-qs>hY!OkIHlleMjeD)b&YRj|dea?f@Sl+1sJ<2sq z`9d{d5y3ASDi^5kjFGu{7&1>B=w>)twz=&c$8q312oOdyG#l{q!2LMcQraDl^9}Fs zZ#Ylpmc!Y|hN5X0;{e`*eLp^*1SMurb~_=uahjM1uEaE zHAH6{_ckXYIW$WcqKMTxEi}r=_yP-(O%nv)2*jz_+BRm}^hh@XG_`5ojiJF7!ObV0 z&x-XG+)G(&HL5msw;tw@Bk!s1+CMNizaDPAF= z2G1VERdT&+rwsiQ8;Zylc&udm2^sSO}IO-uKKy@E9c& zK(M$O)y%Ym=V5JXiEI$rZ>=>WSn}3WtkYSba~JG|QtON44e`A>+1KR0CN5`$kdZ=; zPZ5p@FVdkRIOMk5fb5iL#QrssUrZy>&(;dT7nS~iUopsihBE8N! zGB{SCyG)F2sIUNoa?vlCy%uz!J(W zf>LPE6b6oMik9a@l#Lbo%x^|bM!7xPxLy}3at=g*qhQ+p2vq1MkAU2OS-t6zQ49j9 zxD{?j8H}pKO*s%CWn1VhZ%PslI~?l37cCwyNxRDpG=r%yF012?NN)ZP;i|U@A=Dz+1mFTOsla<{mOR{qDVG3u4yMKgPiA4r?7pXTI55z>{GuufCb#aUOVkdk{=r1P=ue z9os=ff#y7!lfDJJLX6B0kD$DG19a57ydnY)UYM$<;qf?uC;Lz+a+b>pMGP&&;slf0 zUyG|z^l}07h0tp+a!uE|8Zz7-X(&SyjpaBHC6tas?D|Fy!K*jC|IyZdNsH?4CQuWb zE=ba{d4=K?8ouXU-58Z_%8Qi3C#S~qJQr4Agvg-U@4fMObIH30B0kVM@b-8V2%*aI_+Me*uHCG5Me#ST^j7Z7m@S+T(zDT&eT7j7+7mkm-fliu*IvY_1mBP^glg zAO&6%T!t@4BSZt}EUTr;G*XUdv6o>>;po#9D%%+Cn?$@mwEkJc$VGWU2mIdG*NXX{ zhGX4H#&#*N%Q5do8ewz&;WbhFLFwK%9awLl0bRf zDq2ve2rs}OzoC*ryvhxyvekx&oP!t8A->5r=2(lhPx?Z!0xBsVw@*Cp3q6=?$3cU1 z&xxNOKk;Ib0;_CCurFn?wVt)q03yR|&b+ExAgl3*6vnJgN$uqMZ=Zax0K!Ct_jYFR zDh>KOfbbQP?h1dw!+PB^&zBK6gg_qu*F(yc2Y2aYO|)eYd+TTiTZ$tXf*n~?{y0xO zjt8qXBIpqsVDh+tBCz$NV?-|*RH)x9OPq2~ni*O@@b-A%`Mfdj&y2R&3fo5VPQZvu zi-|S^pTTHCWKI4ems&MmK^pb~2M|c|WYRapeN)kvcc}d@kdeOkbVO&wfgWhqmP?nw zs)-u+mF#uA7!!4$jNE%YD?<`7m3%Kyo=v&r?Q57N)2^M9Ie*F0mrbcLNnT>hSJ6Q74ZxbZcKCi1FZxex0b|d$89rBj4(yMV83RJFGUd~9MB0kg$ zi$EG_>{zjsgi5IeU%=p{jXi)c&G>E{_UN#7d5+B+PpORUpsw6Y`jqy&B7y-cF3;yh z5I&tzZ8nZVfz*g>(Tyk`f`(S6ET@E=jLm^h0SiQC2`p1%{482l9BH7L+Pes0CQNWwC&@!M30HI{>iWjA~u? zckjKvUe$a8NA>nH%y%Nm2B2l0oy~b>p?pP8$~45D3qmQg3WKEr1|XPNNHnJr-DrS7$p?-#{qqXBuGa;~|hF7C*zhGb0Ab^a7I1C54fsvcjUf zI@lsWUuN-_*UIu_iY_uL5sqj{ew{#zfH$TIR0Y%lSeHI(o2#d(Jnk_%#&KX=lb&Z9$?_AEVQ)wRs*%Dq=VY(=o(yy- zjnX#-)iCo+0s(R6MORAh)yY`@EcG8e}A!;3c0wf?i0j7h|n$goReiu z%sMW4MG|Nnb!G=a0eLq%COUy|?h!HaoAHpOzyPe_n*46-ydI)+E}P+Tp7{Lu#652m z7@**1#LTktm;2>TzyT;yWG|qsqC=Z3s#Fn@Wkm9OBIj`(7d`J;KwrFq#2mQpn~lUa zUB|g@FEYRifdp~3_MY~!ob5e+D|ZIw<=nK+Lz)=4YZ=k>y6^21xPi#XoeqS%-7y1< zaQb!%Z;o;La$GzkuY1Hy(dG&Y*tTx~=%h}jCRfuaVP{LbBtRw^#54i~eAR#J3-R*o`#XiP;>*W3qyDn_ zYJR?4$Mjrj_+I!1TH9T@X$xQhl$ZbRgCcC;>4SHs7PtwQ_=?hnmbiZ?t% zWErI@K-QEORHP?2{5Gd*QCek-GqQzp{vNjehDh28a%>x6E$6!UnxUM#3{mgT6{#L9 zy`ONVJX&%L0-n7jRQC>60)d-YGpo|A4rCvNsJic#tJqT6uloZrC+1E52y4qNSDgZ2 znG4mhRVfmTq@!7$v49I|mbE{9MZO%ckvZc$e5)!BlKch82ooT*)}e#B95UXs6kLN9 z_dz{bN(O6-#Kzdq;7f2`=>TOZt|yR*jeVZap$JEBJm0VmD$2%J&|Pyrkou!Ff-n&q zmG>0@nbUD!7k)J>f3xkk_XI4OSw@YxMr>#oJnX5Wj;}h{Gb%LGs9bwFZvqGz9aSMm zc)I0?)GM*=+eogw|?epIQfz>F|50B^}VDzWC+n<7_<3zasn$iQNx z);$jE(6P$Rut;*-GgQBX2z=fbQwyml?&KROYpUpmzOy3u$oWdyll}7=GEn8f93 zFZBxA`WxviM3ycO2{%zsGB^?Nm>D(jx|kX%ASayPWtH$Qz1 z(rLVIt~y@%Z?5%s*I5qTGQLt|e19Vlm4e;whgGU|hm`9Yg8+n>y}Kd*;`_fm&wqzk zUlC9!Ba$0>H>hi__F8rAtuH|G6+CGhTS{_70h`xxr{?&2!K$&(&(?cnNORN9N<4Xc zRh5faraMaD^R6CXkP>Lk>-mA4_w-sVxDR`yQfGT+d2mAE1SljAiR`2NXaWdBF{Agn zef`CLUAS#dRw$VZlJ@Nj7EGhkc;99`&j9s2%xU&gGU*u@m1YBAd7cNG3QgEt&o-S| z%)QKxd)MKum-o=EZDdxVx9phd4cC3;@;0y+|27x4KsVAWZLMJ(2afEq(E5_0-UbAs zrE7X`1)41UWm-9uR{Kx=GFUA`&xdvARA$8*2bdj?$lP#43rF*1P$SeZhf203HzInV zqa!j@ylLVE(iEOeWfS}QKvfLN_e#H96>hI*!`chtWl&Dl_zM(jXJC1>k@BDWb9 \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/bancontact.svg b/adminmenu/app/src/assets/img/bancontact.svg new file mode 100644 index 0000000..935deab --- /dev/null +++ b/adminmenu/app/src/assets/img/bancontact.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/banktransfer.svg b/adminmenu/app/src/assets/img/banktransfer.svg new file mode 100644 index 0000000..1cb6476 --- /dev/null +++ b/adminmenu/app/src/assets/img/banktransfer.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/adminmenu/app/src/assets/img/belfius.svg b/adminmenu/app/src/assets/img/belfius.svg new file mode 100644 index 0000000..eb9eafa --- /dev/null +++ b/adminmenu/app/src/assets/img/belfius.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/billie.svg b/adminmenu/app/src/assets/img/billie.svg new file mode 100644 index 0000000..1dbe69e --- /dev/null +++ b/adminmenu/app/src/assets/img/billie.svg @@ -0,0 +1,4 @@ + + + + diff --git a/adminmenu/app/src/assets/img/blik.svg b/adminmenu/app/src/assets/img/blik.svg new file mode 100644 index 0000000..a0b1bf3 --- /dev/null +++ b/adminmenu/app/src/assets/img/blik.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/adminmenu/app/src/assets/img/creditcard.svg b/adminmenu/app/src/assets/img/creditcard.svg new file mode 100644 index 0000000..a22e26c --- /dev/null +++ b/adminmenu/app/src/assets/img/creditcard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/directdebit.svg b/adminmenu/app/src/assets/img/directdebit.svg new file mode 100644 index 0000000..8a88323 --- /dev/null +++ b/adminmenu/app/src/assets/img/directdebit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/eps.svg b/adminmenu/app/src/assets/img/eps.svg new file mode 100644 index 0000000..d56e47c --- /dev/null +++ b/adminmenu/app/src/assets/img/eps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/giftcard.svg b/adminmenu/app/src/assets/img/giftcard.svg new file mode 100644 index 0000000..7f70179 --- /dev/null +++ b/adminmenu/app/src/assets/img/giftcard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/giropay.svg b/adminmenu/app/src/assets/img/giropay.svg new file mode 100644 index 0000000..9113803 --- /dev/null +++ b/adminmenu/app/src/assets/img/giropay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/ideal.svg b/adminmenu/app/src/assets/img/ideal.svg new file mode 100644 index 0000000..d62792c --- /dev/null +++ b/adminmenu/app/src/assets/img/ideal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/in3.svg b/adminmenu/app/src/assets/img/in3.svg new file mode 100644 index 0000000..418f0e6 --- /dev/null +++ b/adminmenu/app/src/assets/img/in3.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/adminmenu/app/src/assets/img/inghomepay.svg b/adminmenu/app/src/assets/img/inghomepay.svg new file mode 100644 index 0000000..2dc26a7 --- /dev/null +++ b/adminmenu/app/src/assets/img/inghomepay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/kbc.svg b/adminmenu/app/src/assets/img/kbc.svg new file mode 100644 index 0000000..7f75295 --- /dev/null +++ b/adminmenu/app/src/assets/img/kbc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/klarna.svg b/adminmenu/app/src/assets/img/klarna.svg new file mode 100644 index 0000000..00c8b5a --- /dev/null +++ b/adminmenu/app/src/assets/img/klarna.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/adminmenu/app/src/assets/img/klarnaone.svg b/adminmenu/app/src/assets/img/klarnaone.svg new file mode 100644 index 0000000..da0aa1a --- /dev/null +++ b/adminmenu/app/src/assets/img/klarnaone.svg @@ -0,0 +1,4 @@ + + + + diff --git a/adminmenu/app/src/assets/img/mollie-dashboard.png b/adminmenu/app/src/assets/img/mollie-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..150bc6fdd64b7dd6094ce998fb31b6d21352acfd GIT binary patch literal 82390 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 C0}!(S literal 0 HcmV?d00001 diff --git a/adminmenu/app/src/assets/img/mybank.svg b/adminmenu/app/src/assets/img/mybank.svg new file mode 100644 index 0000000..d885cd9 --- /dev/null +++ b/adminmenu/app/src/assets/img/mybank.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/adminmenu/app/src/assets/img/paypal.svg b/adminmenu/app/src/assets/img/paypal.svg new file mode 100644 index 0000000..4b71ec3 --- /dev/null +++ b/adminmenu/app/src/assets/img/paypal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/paysafecard.svg b/adminmenu/app/src/assets/img/paysafecard.svg new file mode 100644 index 0000000..73d5a20 --- /dev/null +++ b/adminmenu/app/src/assets/img/paysafecard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/riverty.svg b/adminmenu/app/src/assets/img/riverty.svg new file mode 100644 index 0000000..2179fbc --- /dev/null +++ b/adminmenu/app/src/assets/img/riverty.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/adminmenu/app/src/assets/img/sofort.svg b/adminmenu/app/src/assets/img/sofort.svg new file mode 100644 index 0000000..972d0c1 --- /dev/null +++ b/adminmenu/app/src/assets/img/sofort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/trustly.svg b/adminmenu/app/src/assets/img/trustly.svg new file mode 100644 index 0000000..d80cef5 --- /dev/null +++ b/adminmenu/app/src/assets/img/trustly.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/adminmenu/app/src/assets/img/twint.svg b/adminmenu/app/src/assets/img/twint.svg new file mode 100644 index 0000000..7968781 --- /dev/null +++ b/adminmenu/app/src/assets/img/twint.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/adminmenu/app/src/assets/tailwind.css b/adminmenu/app/src/assets/tailwind.css new file mode 100644 index 0000000..2759d8e --- /dev/null +++ b/adminmenu/app/src/assets/tailwind.css @@ -0,0 +1,20 @@ +@import 'tailwindcss/base'; + +@import 'tailwindcss/components'; + +@import 'tailwindcss/utilities'; + +/* ---------------- Global CSS ------------------- */ +.backend-wrapper > .backend-main > .backend-navbar#topbar { + box-shadow: none !important; +} + +form .form-group .text-sm-right { + text-align: left !important; +} + + +/* TODO: remove after React Backend Library update to v2.0.0*/ +#root { + color: #435a6b; +} \ No newline at end of file diff --git a/adminmenu/app/src/context/MollieContext.ts b/adminmenu/app/src/context/MollieContext.ts new file mode 100644 index 0000000..bd13aaf --- /dev/null +++ b/adminmenu/app/src/context/MollieContext.ts @@ -0,0 +1,5 @@ +import React from 'react' +import { UseMollieReturn } from '../hooks/useMollie' + +const MollieContext = React.createContext({} as UseMollieReturn) +export default MollieContext diff --git a/adminmenu/app/src/context/PaymentMethodContext.tsx b/adminmenu/app/src/context/PaymentMethodContext.tsx new file mode 100644 index 0000000..973df9f --- /dev/null +++ b/adminmenu/app/src/context/PaymentMethodContext.tsx @@ -0,0 +1,42 @@ +import React, {createContext, useCallback, useContext, useEffect, useState, ReactNode} from 'react' +import {MergedPaymentMethodsMappedByMollieId} from "../types/PaymentMethod"; +import useApi from "@webstollen/react-jtl-plugin/lib/hooks/useAPI"; + +type PaymentMethodContextType = { paymentMethods?: MergedPaymentMethodsMappedByMollieId, reFetchPaymentMethods: () => void } + +const PaymentMethodContext = createContext({ + paymentMethods: undefined, + reFetchPaymentMethods: () => { + throw new Error('paymentMethods not yet loaded') + } +}) + +function PaymentMethodProvider({children}: {children: ReactNode}) { + const api = useApi() + const [paymentMethods, setPaymentMethods] = useState() + + const fetchPaymentMethods = useCallback(() => { + api + .run('mollie', 'methods') + .then((res) => { + setPaymentMethods(res.data.data) + }) + .catch(console.error) + }, [api]) + + useEffect(() => { + fetchPaymentMethods(); + }, [fetchPaymentMethods]); + + return {children} +} + +function usePaymentMethods() { + const context = useContext(PaymentMethodContext) + if (context === undefined) { + throw new Error('usePaymentMethods must be used within the correct context provider') + } + return context +} + +export {PaymentMethodProvider, usePaymentMethods} \ No newline at end of file diff --git a/adminmenu/app/src/helper.tsx b/adminmenu/app/src/helper.tsx new file mode 100644 index 0000000..93348be --- /dev/null +++ b/adminmenu/app/src/helper.tsx @@ -0,0 +1,247 @@ +import {jtlStatus2text, Label, usePluginInfo} from "@webstollen/react-jtl-plugin/lib"; +import React from "react"; +import creditcardImg from './assets/img/creditcard.svg'; +import applypayImg from './assets/img/applepay.svg'; +import bancontactImg from './assets/img/bancontact.svg'; +import belfiusImg from './assets/img/belfius.svg'; +import billieImg from './assets/img/billie.svg'; +import directdebitImg from './assets/img/directdebit.svg'; +import banktransferImg from './assets/img/banktransfer.svg'; +import epsImg from './assets/img/eps.svg'; +import giftcardImg from './assets/img/giftcard.svg'; +import giropayImg from './assets/img/giropay.svg'; +import idealImg from './assets/img/ideal.svg'; +import in3Img from './assets/img/in3.svg'; +import inghomepayImg from './assets/img/inghomepay.svg'; +import kbcImg from './assets/img/kbc.svg'; +import klarnaImg from './assets/img/klarna.svg'; +import mybankImg from './assets/img/mybank.svg'; +import paypalImg from './assets/img/paypal.svg'; +import paysafecardImg from './assets/img/paysafecard.svg'; +import przelewy24Img from './assets/img/Przelewy24.svg'; +import sofortImg from './assets/img/sofort.svg'; +import voucherImg from './assets/img/Voucher.svg' +import blikImg from './assets/img/blik.svg' +import twintImg from './assets/img/twint.svg' +import klarnaOneImg from './assets/img/klarnaone.svg'; +import trustlyImg from './assets/img/trustly.svg'; +import rivertyImg from './assets/img/riverty.svg'; + +import {MergedPaymentMethodObject} from "./types/PaymentMethod"; + +export const showMethodInfo = (method: MergedPaymentMethodObject) => { + + const listShipping = (linkedShippingMethods: Record[]) => { + return linkedShippingMethods.length ? "Versandarten:\n" + linkedShippingMethods.map((shipping: Record) => ' - ' + shipping.cName).join('\n') + "\n\n" : ''; + } + + return alert(`${method.mollie.description}\n\n` + + `${method.duringCheckout ? `!! Zahlung vor Bestellabschluss !!\n\n` : ''}` + + `Status: ${method.mollie.status}\n` + + (method.api ? `API: ${method.api}\n` : '') + + `${method.components ? `Components: ${method.components}\n` : ''}` + + `${method.dueDays ? `Gültigkeit: ${method.dueDays} Tage\n` : ''}` + + `${method.mollie.minimumAmount ? `Minimum: ${method.mollie.minimumAmount.value} ${method.mollie.minimumAmount.currency}\n` : ''}` + + `${method.mollie.maximumAmount ? `Maximum: ${method.mollie.maximumAmount.value} ${method.mollie.maximumAmount.currency}\n` : ''}` + + `${method.linkedShippingMethods ? listShipping(method.linkedShippingMethods) : ''}`); +} + +export type MollieOrder = { + bSynced: string + bTest: string + cBestellNr: string + cCurrency: string + cHash: string + cLocale: string + cMethod: string + cOrderId: string + cStatus: string + cThirdId: string + cTransactionId: string + dCreated: string + dModified: string + dReminder: string | null + fAmount: number + fAmountRefunded: number + kBestellung: number + kId: number + + cJTLStatus: string + cAbgeholt: string + cVersandartName: string + cZahlungsartName: string + fGesamtsumme: number + fGuthaben: number + + // cIP: string + // cKommentar: string + // cLogistiker: string + // dBezahltDatum: string | null + // kSprache: number + // kVersandart: number + // kZahlungsart: number + // kWaehrung: number + // kWarenkorb: number +}; + +export type OrderLineType = + "physical" + | "discount" + | "digital" + | "shipping_fee" + | "store_credit" + | "gift_card" + | "surcharge"; + +export const mollieOrderLineTypeLabel = (type: OrderLineType) => { + switch (type) { + case "physical": + case "digital": + return + case "discount": + case "store_credit": + case "gift_card": + return + default: + return + } + +} + +export type ColorType = "green" | "black" | "gray" | "orange" | "red" | "blue" | "white" | undefined; + +export const molliePaymentStatusLabel = (status: string) => { + let color: ColorType = undefined; + switch (status) { + case 'paid': + case 'authorized': + case 'completed': + color = 'green'; + break; + case 'created': + case 'pending': + color = 'gray'; + break; + case 'open': + case 'shipping': + case 'refunded': + color = 'blue'; + break; + case 'canceled': + color = 'orange'; + break; + case 'expired': + case 'failed': + color = 'red'; + break; + } + return +} + +export const jtlStatus2label = (status: string | number) => { + const nStatus = typeof status === 'string' ? parseInt(status) : status; + let color: ColorType = undefined; + switch (nStatus) { + case -1: + color = 'red'; + break; + case 1: + case 2: + color = 'orange'; + break; + case 3: + color = 'blue' + break; + case 4: + case 5: + color = 'green'; + break; + + } + return ; +} + +export const PaymentMethod2img = ({mollieMethodId, style}: { mollieMethodId: string, style?: React.CSSProperties }) => { + + const pInfo = usePluginInfo(); + + if (pInfo.endpoint) { + const prefix = pInfo.endpoint.substring(0, pInfo.endpoint.lastIndexOf('/')) + '/app/build'; + const images = { + applepay: applypayImg, + bancontact: bancontactImg, + banktransfer: banktransferImg, + belfius: belfiusImg, + billie: billieImg, + creditcard: creditcardImg, + directdebit: directdebitImg, + eps: epsImg, + giftcard: giftcardImg, + giropay: giropayImg, + ideal: idealImg, + in3: in3Img, + inghomepay: inghomepayImg, + kbc: kbcImg, + klarna: klarnaImg, + mybank: mybankImg, + paypal: paypalImg, + paysafecard: paysafecardImg, + Przelewy24: przelewy24Img, + przelewy24: przelewy24Img, + sofort: sofortImg, + voucher: voucherImg, + twint: twintImg, + blik: blikImg, + klarnaOne: klarnaOneImg, + trustly: trustlyImg, + riverty: rivertyImg + } + switch (mollieMethodId) { + case 'applepay': + case 'bancontact': + case 'banktransfer': + case 'belfius': + case 'billie': + case 'creditcard': + case 'directdebit': + case 'eps': + case 'giftcard': + case 'giropay': + case 'ideal': + case 'in3': + case 'inghomepay': + case 'kbc': + case 'mybank': + case 'paypal': + case 'paysafecard': + case 'Przelewy24': + case 'przelewy24': + case 'sofort': + case 'twint': + case 'blik': + case 'voucher': + case 'trustly': + case 'riverty': + return {mollieMethodId} + case 'klarnasliceit': + case 'klarnapaylater': + case 'klarnapaynow': + return {mollieMethodId} + case 'klarna': + return {mollieMethodId} + } + } + return

{mollieMethodId}
; +} + +export function removeItemOnce(arr: T[], value: T) { + const index = arr.indexOf(value); + if (index > -1) { + arr.splice(index, 1); + } + return arr; +} + +export type ApiError = { + message: string +} \ No newline at end of file diff --git a/adminmenu/app/src/hooks/useErrorSnack.ts b/adminmenu/app/src/hooks/useErrorSnack.ts new file mode 100644 index 0000000..a9d5ffa --- /dev/null +++ b/adminmenu/app/src/hooks/useErrorSnack.ts @@ -0,0 +1,15 @@ +import { useSnackbar } from 'react-simple-snackbar' + +const useErrorSnack = () => + useSnackbar({ + position: 'top-right', + style: { + backgroundColor: '#FF0000', + color: 'white', + fontSize: '20px', + textAlign: 'center', + padding: '10px', + }, + }) + +export default useErrorSnack diff --git a/adminmenu/app/src/hooks/useMollie.ts b/adminmenu/app/src/hooks/useMollie.ts new file mode 100644 index 0000000..fcbc234 --- /dev/null +++ b/adminmenu/app/src/hooks/useMollie.ts @@ -0,0 +1,192 @@ +import { useCallback, useEffect, useState } from 'react' +import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' + +export type UseMollieReturn = { + loading: boolean + data: null | Record + error: null | string + load: () => void + refundAmount: (amount: number) => Promise + cancelOrderLine: (orderLineId: string, quantity: number) => Promise + refundOrderLine: (orderLineId: string, quantity: number) => Promise + cancelOrder: () => Promise + refundOrder: () => Promise + cancelRefund: (id: string) => Promise +} + +const PluginAPI = useApi + +const useMollie = (id: string, autoload = false): UseMollieReturn => { + const [state, setState] = useState>({ + loading: false, + error: null, + data: null, + }) + + const load = useCallback(() => { + const api = PluginAPI() + setState((p) => ({ ...p, loading: true, error: null })) + + if (id.substring(0, 4) === 'ord_') { + api + .run('mollie', 'getOrder', { + id: id, + }) + .then((res) => setState((p) => ({ ...p, data: res.data.data }))) + .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) + .finally(() => setState((p) => ({ ...p, loading: false }))) + } else if (id.substring(0, 3) === 'tr_') { + api + .run('mollie', 'getPayment', { + id: id, + }) + .then((res) => setState((p) => ({ ...p, data: res.data.data }))) + .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) + .finally(() => setState((p) => ({ ...p, loading: false }))) + } + }, [id, setState]) + + const refundAmount = useCallback( + async (amount: number) => { + const api = PluginAPI() + + if (amount <= 0) { + throw new Error('Betrag kann nicht kleiner oder gleich Null sein.') + } + setState((p) => ({ ...p, loading: true })) + + api + .run('Mollie', 'refundAmount', { + amount: amount, + id: id, + }) + .then(async (r) => { + await load() + }) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, + [id, load, setState] + ) + + const cancelOrderLine = useCallback( + async (lineId: string, quantity: number) => { + const api = PluginAPI() + if (quantity <= 0) { + throw new Error('Anzahl kann nicht kleiner oder gleich Null sein.') + } + setState((p) => ({ ...p, loading: true })) + api + .run('mollie', 'cancelOrderLine', { + id: id, + lineId: lineId, + quantity: quantity, + }) + .then(async (r) => { + if (!r.data?.error?.message) { + await load() + } else { + alert(r.data?.error?.message) + } + }) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, + [id, load, setState] + ) + + const cancelOrder = useCallback(async () => { + const api = PluginAPI() + setState((p) => ({ ...p, loading: true })) + api + .run('mollie', 'cancelOrder', { + id: id, + }) + .then(async (r) => { + if (!r.data?.error?.message) { + await load() + } else { + alert(r.data?.error?.message) + } + }) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, [id, load, setState]) + + const refundOrder = useCallback(async () => { + const api = PluginAPI() + setState((p) => ({ ...p, loading: true })) + api + .run('mollie', 'refundOrder', { + id: id, + }) + .then(async (r) => { + if (!r.data?.error?.message) { + await load() + } else { + alert(r.data?.error?.message) + } + }) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, [id, load, setState]) + + const refundOrderLine = useCallback( + async (lineId: string, quantity: number) => { + const api = PluginAPI() + if (quantity <= 0) { + throw new Error('Anzahl kann nicht kleiner oder gleich Null sein.') + } + setState((p) => ({ ...p, loading: true })) + + api + .run('mollie', 'refundOrderLine', { + id: id, + lineId: lineId, + quantity: quantity, + }) + .then(async (r) => { + await load() + }) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, + [id, load, setState] + ) + + const cancelRefund = useCallback( + async (refundId: string) => { + const api = PluginAPI() + if (refundId.trim()) { + setState((p) => ({ ...p, loading: true })) + + api + .run('mollie', 'cancelRefund', { + id: id, + refundId: refundId, + }) + .then(async (r) => { + await load() + }) + .finally(() => setState((p) => ({ ...p, loading: false }))) + } + }, + [id, load, setState] + ) + + useEffect(() => { + if (autoload) { + load() + } + }, [autoload, load]) + + return { + loading: state.loading, + data: state.data, + error: state.error, + load: load, + refundAmount: refundAmount, + cancelOrderLine: cancelOrderLine, + refundOrderLine: refundOrderLine, + cancelOrder: cancelOrder, + refundOrder: refundOrder, + cancelRefund: cancelRefund, + } +} + +export default useMollie diff --git a/adminmenu/app/src/hooks/useOrder.ts b/adminmenu/app/src/hooks/useOrder.ts new file mode 100644 index 0000000..9243dcd --- /dev/null +++ b/adminmenu/app/src/hooks/useOrder.ts @@ -0,0 +1,40 @@ +import { useCallback, useState } from 'react' +import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' + +export type UseOrderReturn = { + loading: boolean + data: null | Record + error: null | string + load: () => void +} + +const PluginAPI = useApi + +const useOrder = (id: string): UseOrderReturn => { + const [state, setState] = useState>({ + loading: false, + error: null, + data: null, + }) + + const load = useCallback(() => { + const api = PluginAPI() + setState((p) => ({ ...p, loading: true, error: null })) + api + .run('orders', 'get', { + id: id, + }) + .then((res) => setState((p) => ({ ...p, data: res.data.data }))) + .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, [id, setState]) + + return { + loading: state.loading, + data: state.data, + error: state.error, + load: load, + } +} + +export default useOrder diff --git a/adminmenu/app/src/hooks/useOrders.ts b/adminmenu/app/src/hooks/useOrders.ts new file mode 100644 index 0000000..fb685fb --- /dev/null +++ b/adminmenu/app/src/hooks/useOrders.ts @@ -0,0 +1,69 @@ +import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' +import { useCallback, useState } from 'react' + +const PluginAPI = useApi + +export type UseOrdersReturn = { + loading: boolean + data: null | { + maxItems: number + items: Array> + } + error: null | string + load: (perPage: number, page: number, query?: string) => Promise +} + +const useOrders = (): UseOrdersReturn => { + const [state, setState] = useState>({ + loading: false, + error: null, + data: null, + }) + + const load = useCallback(async (page: number, perPage: number, query?: string) => { + const api = PluginAPI() + setState((p) => ({ ...p, loading: true, error: null })) + + const offset = perPage * page + let params: Record = { ':limit': perPage, ':offset': offset } + let sqlQuery = + 'SELECT o.*, b.cStatus as cJTLStatus, b.cAbgeholt, b.cVersandartName, b.cZahlungsartName, b.fGuthaben, b.fGesamtsumme ' + + 'FROM xplugin_ws5_mollie_orders o ' + + 'JOIN tbestellung b ON b.kbestellung = o.kBestellung ' + + 'ORDER BY b.dErstellt DESC;' + + if (query && query.trim() !== '') { + sqlQuery = + 'SELECT o.*, b.cStatus as cJTLStatus, b.cAbgeholt, b.cVersandartName, b.cZahlungsartName, b.fGuthaben, b.fGesamtsumme ' + + 'FROM xplugin_ws5_mollie_orders o ' + + 'JOIN tbestellung b ON b.kbestellung = o.kBestellung ' + + 'WHERE b.cBestellNr LIKE :query1 ' + + 'OR o.cOrderId LIKE :query2 ' + + 'OR o.cStatus LIKE :query3 ' + + 'OR o.cMethod LIKE :query4 ' + + 'OR o.cTransactionId LIKE :query5 ' + + 'ORDER BY b.dErstellt DESC;' + params[':query1'] = params[':query2'] = params[':query3'] = params[':query4'] = params[':query5'] = `%${query}%` + } + + api + .run('orders', 'all', { + query: sqlQuery, + params: params, + }) + .then((res) => { + setState((p) => ({ ...p, data: res.data.data })) + }) + .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, []) + + return { + loading: state.loading, + error: state.error, + data: state.data, + load: load, + } +} + +export default useOrders diff --git a/adminmenu/app/src/hooks/usePaymentLogs.ts b/adminmenu/app/src/hooks/usePaymentLogs.ts new file mode 100644 index 0000000..d8c5583 --- /dev/null +++ b/adminmenu/app/src/hooks/usePaymentLogs.ts @@ -0,0 +1,43 @@ +import { useCallback, useState } from 'react' +import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' + +const PluginAPI = useApi + +export type UseQueueReturn = { + loading: boolean + data: null | Array> + error: null | string + load: () => Promise +} + +const usePaymentLogs = (kBestellung: number, id: string): UseQueueReturn => { + const [state, setState] = useState>({ + loading: false, + error: null, + data: null, + }) + + const load = useCallback(async () => { + const api = PluginAPI() + setState((p) => ({ ...p, loading: true, error: null })) + api + .run('Orders', 'zalog', { + kBestellung: kBestellung, + id: id, + }) + .then((res) => { + setState((p) => ({ ...p, data: res.data.data })) + }) + .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, [id, setState, kBestellung]) + + return { + loading: state.loading, + data: state.data, + error: state.error, + load: load, + } +} + +export default usePaymentLogs diff --git a/adminmenu/app/src/hooks/useQueue.ts b/adminmenu/app/src/hooks/useQueue.ts new file mode 100644 index 0000000..d2cc095 --- /dev/null +++ b/adminmenu/app/src/hooks/useQueue.ts @@ -0,0 +1,42 @@ +import { useCallback, useState } from 'react' +import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' + +const PluginAPI = useApi + +export type UseQueueReturn = { + loading: boolean + data: null | Array> + error: null | string + load: () => Promise +} + +const useQueue = (id: string): UseQueueReturn => { + const [state, setState] = useState>({ + loading: false, + error: null, + data: null, + }) + + const load = useCallback(async () => { + const api = PluginAPI() + setState((p) => ({ ...p, loading: true, error: null })) + api + .run('Orders', 'getQueue', { + id: id, + }) + .then((res) => { + setState((p) => ({ ...p, data: res.data.data })) + }) + .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, [id, setState]) + + return { + loading: state.loading, + data: state.data, + error: state.error, + load: load, + } +} + +export default useQueue diff --git a/adminmenu/app/src/hooks/useQueues.ts b/adminmenu/app/src/hooks/useQueues.ts new file mode 100644 index 0000000..c60a58c --- /dev/null +++ b/adminmenu/app/src/hooks/useQueues.ts @@ -0,0 +1,64 @@ +import { useCallback, useState } from 'react' +import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' + +export type UseQueuesReturn = { + loading: boolean + data: null | { + maxItems: number + items: Array> + } + error: null | string + load: (page: number, itemsPerPage: number, query?: string) => Promise +} + +const PluginAPI = useApi + +const useQueues = (): UseQueuesReturn => { + const [state, setState] = useState>({ + loading: false, + error: null, + data: null, + }) + + const load = useCallback( + async (page: number, perPage: number, query?: string) => { + const api = PluginAPI() + setState((p) => ({ ...p, loading: true, error: null })) + + const offset = perPage * page + let params: Record = { ':limit': perPage, ':offset': offset } + let sqlQuery = 'SELECT * FROM xplugin_ws5_mollie_queue ORDER BY dCreated DESC' + + if (query && query.trim() !== '') { + sqlQuery = + 'SELECT * FROM xplugin_ws5_mollie_queue ' + + 'WHERE cType LIKE :query1 ' + + 'OR cResult LIKE :query2 ' + + 'OR cError LIKE :query3 ' + + 'ORDER BY dCreated DESC' + params[':query1'] = params[':query2'] = params[':query3'] = `%${query}%` + } + + api + .run('queue', 'all', { + query: sqlQuery, + params: params, + }) + .then((res) => { + setState((p) => ({ ...p, data: res.data.data })) + }) + .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, + [setState] + ) + + return { + loading: state.loading, + data: state.data, + error: state.error, + load: load, + } +} + +export default useQueues diff --git a/adminmenu/app/src/hooks/useShipments.ts b/adminmenu/app/src/hooks/useShipments.ts new file mode 100644 index 0000000..5cf87e2 --- /dev/null +++ b/adminmenu/app/src/hooks/useShipments.ts @@ -0,0 +1,58 @@ +import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' +import { useCallback, useState } from 'react' + +const PluginAPI = useApi + +export type UseShipmentsReturn = { + loading: boolean + data: null | Array> + error: null | string + load: () => Promise + sync: (mollieId: string, kLieferschein: number) => Promise> +} + +const useShipments = (kBestellung: number): UseShipmentsReturn => { + const [state, setState] = useState>({ + loading: false, + error: null, + data: null, + }) + + const sync = useCallback( + async (mollieId: string, kLieferschein: number) => { + const api = PluginAPI() + return await api.run('shipments', 'sync', { + kLieferschein: kLieferschein, + orderId: mollieId, + kBestellung: kBestellung, + }) + }, + [kBestellung] + ) + + const load = useCallback(async () => { + const api = PluginAPI() + console.debug('(useShipments->load)') + setState((p) => ({ ...p, loading: true, error: null })) + + api + .run('orders', 'shipments', { + kBestellung: kBestellung, + }) + .then((res) => { + setState((p) => ({ ...p, data: res.data.data })) + }) + .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) + .finally(() => setState((p) => ({ ...p, loading: false }))) + }, [kBestellung]) + + return { + loading: state.loading, + error: state.error, + data: state.data, + load: load, + sync: sync, + } +} + +export default useShipments diff --git a/adminmenu/app/src/hooks/useSuccessSnack.ts b/adminmenu/app/src/hooks/useSuccessSnack.ts new file mode 100644 index 0000000..4fd5810 --- /dev/null +++ b/adminmenu/app/src/hooks/useSuccessSnack.ts @@ -0,0 +1,15 @@ +import { useSnackbar } from 'react-simple-snackbar' + +const useSuccessSnack = () => + useSnackbar({ + position: 'top-right', + style: { + backgroundColor: 'green', + color: 'white', + fontSize: '20px', + textAlign: 'center', + padding: '10px', + }, + }) + +export default useSuccessSnack diff --git a/adminmenu/app/src/hooks/useWarningSnack.ts b/adminmenu/app/src/hooks/useWarningSnack.ts new file mode 100644 index 0000000..03b4336 --- /dev/null +++ b/adminmenu/app/src/hooks/useWarningSnack.ts @@ -0,0 +1,15 @@ +import { useSnackbar } from 'react-simple-snackbar' + +const useWarningSnack = () => + useSnackbar({ + position: 'top-right', + style: { + backgroundColor: '#FF8800', + color: 'black', + fontSize: '20px', + textAlign: 'center', + padding: '10px', + }, + }) + +export default useWarningSnack diff --git a/adminmenu/app/src/index.tsx b/adminmenu/app/src/index.tsx new file mode 100644 index 0000000..f224f4c --- /dev/null +++ b/adminmenu/app/src/index.tsx @@ -0,0 +1,24 @@ +import React from 'react' +import ReactDOM from 'react-dom' +import './assets/main.css' +import { App } from '@webstollen/react-jtl-plugin/lib' +import reportWebVitals from './reportWebVitals' +import SnackbarProvider from 'react-simple-snackbar' +import createTabs from "./tabs"; +import {PaymentMethodProvider} from "./context/PaymentMethodContext"; + +ReactDOM.render( + + + + + + + , + document.getElementById('root') +) + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals() diff --git a/adminmenu/app/src/react-app-env.d.ts b/adminmenu/app/src/react-app-env.d.ts new file mode 100644 index 0000000..6431bc5 --- /dev/null +++ b/adminmenu/app/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/adminmenu/app/src/reportWebVitals.ts b/adminmenu/app/src/reportWebVitals.ts new file mode 100644 index 0000000..59d81aa --- /dev/null +++ b/adminmenu/app/src/reportWebVitals.ts @@ -0,0 +1,15 @@ +import { ReportHandler } from 'web-vitals'; + +const reportWebVitals = (onPerfEntry?: ReportHandler) => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +} + +export default reportWebVitals; diff --git a/adminmenu/app/src/tabs.tsx b/adminmenu/app/src/tabs.tsx new file mode 100644 index 0000000..c4bf736 --- /dev/null +++ b/adminmenu/app/src/tabs.tsx @@ -0,0 +1,145 @@ +import React from 'react'; +import {CreateTabs, hasUrlParameter} from '@webstollen/react-jtl-plugin/lib' +import DashboardPage from "@webstollen/react-jtl-plugin/lib/components/DashboardPage"; +import AdLink from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/AdLink"; +import SetupAssistent from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/SetupAssistent"; +import Support from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/Support"; +import ShopInfo from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/ShopInfo"; +import DashbarStatus from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashbarStatus"; +import AdImage from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/AdImage"; +import PageWrapper from "@webstollen/react-jtl-plugin/lib/components/PageWrapper"; +import Card from "@webstollen/react-jtl-plugin/lib/components/Card"; +import Orders from "./tabs/Orders"; +import Queue from "./tabs/Queue"; +import {DEBUG_URL_PARAM} from "@webstollen/react-jtl-plugin/lib/constants"; +import TextInput from "@webstollen/react-jtl-plugin/lib/components/Settings/TextInput"; +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import {faCheckCircle} from "@fortawesome/pro-regular-svg-icons"; +import Button from "@webstollen/react-jtl-plugin/lib/components/Button"; +import CustomDashboardGridCards from "./tabs/Dashboard/CustomDashboardGridCards"; +import PaymentMethods from './tabs/PaymentMethods'; + + +/** + * 'Dashboard' and 'Einstellungen' Tab will be added automatically if not specified here. If you want to customize the 'Dashboard' or 'Einstellungen' Tab, + * just add them to the return array below as show with the 'Dashboard' tab. + * The prop "settingsMap" and "pluginInfo" can be used to conditionally render tabs. + */ +const createTabs: CreateTabs = (settingsMap, pluginInfo) => { + + const setupAssistentSlides = [ + { + id: 0, content: +
+

Einrichtungsassistent

+

+ Richte Mollie und das Shop Plugin in wenigen Schritten ein. +

+
+ }, + { + id: 1, content: +
+

Hast Du noch keinen Account bei Mollie?

+ +
+ }, + { + id: 2, content: +
+

API-Keys

+

Die Keys findest du in deinem Mollie + Konto.

+
Live Key: +
+
+
Test Key: +
+
+
Profil ID: +
+
+
+ }, + { + id: 3, content: +
+

Als nächsten Schritt müssen noch die

+ Versandarten mit Zahlungsarten verknüpft werden. +
+ }, + { + id: 4, content: +
+

Fertig!

+ +

Die grundlegende Einrichtung von Mollie Plugin ist fertig.

+

Bitte prüfe noch im Tab "Zahlungsarten", ob du noch etwas an bestimmten Zahlungsarten anpassen willst.

+
+ } + ] + + return [ + { + title: 'Dashboard', + isDashboard: true, + component: + + + + + + + + + + }, + { + title: 'Zahlungsarten', + isDashboard: false, + component: + + + + }, + { + title: 'Bestellungen', + isDashboard: false, + component: + + + + + + }, + ...(hasUrlParameter(DEBUG_URL_PARAM) + ? [ + { + title: 'Warteschlange', + isDashboard: false, + component: + + + + + + }, + ] + : []), + ] +} + +export default createTabs + diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/AboCloudWidget/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/AboCloudWidget/index.tsx new file mode 100644 index 0000000..b3e8e3f --- /dev/null +++ b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/AboCloudWidget/index.tsx @@ -0,0 +1,23 @@ +import React from "react"; +import DashboardGridCard from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashboardGridCard"; +import {usePluginInfo} from "@webstollen/react-jtl-plugin/lib"; +import abocloudImg from '../../../../assets/img/abocloud.png'; + +const MollieDashboardLink = () => { + const pluginInfo = usePluginInfo(); + const prefix = pluginInfo.endpoint.substring(0, pluginInfo.endpoint.lastIndexOf('/')) + '/app/build'; + + return ( + +
{/* This div only exists to prevent shadow from affecting other DashboardGridCards due to position:relative */} + + {'abocloud'}/ + +
+
+ ) +} + +export default MollieDashboardLink; + + diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/ActivePaymentMethods/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/ActivePaymentMethods/index.tsx new file mode 100644 index 0000000..e1128b9 --- /dev/null +++ b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/ActivePaymentMethods/index.tsx @@ -0,0 +1,90 @@ +import React from "react"; +import DashboardGridCard from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashboardGridCard"; +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import {faSync} from "@fortawesome/pro-regular-svg-icons"; +import {Loading} from "@webstollen/react-jtl-plugin/lib"; +import {faCheckCircle, faCircleInfo, faXmarkCircle} from "@fortawesome/pro-solid-svg-icons"; +import {MergedPaymentMethodObject} from "../../../../types/PaymentMethod"; +import {PaymentMethod2img} from "../../../../helper"; +import {usePaymentMethods} from "../../../../context/PaymentMethodContext"; + +const ActivePaymentMethods = () => { + const {paymentMethods, reFetchPaymentMethods} = usePaymentMethods() + + // Split into active and inactive payment methods + let activeMethods: Array = [] + let inactiveAndInvalidMethods: Array = [] + + paymentMethods && + Object.values(paymentMethods).forEach((paymentMethod) => { + if ( + paymentMethod.mollie.status === 'activated' && + paymentMethod.linkedShippingMethods.length && + paymentMethod.paymentMethod?.nActive === "1" && + (!paymentMethod.duringCheckout || paymentMethod.allowDuringCheckout) + ) { + activeMethods.push(paymentMethod) + } else { + inactiveAndInvalidMethods.push(paymentMethod) + } + }) + + return ( + +
{/* This div only exists to prevent shadow from affecting other DashboardGridCards due to position:relative */} + +
+ +
+
+ {!!paymentMethods && + <> +
+

Aktive Zahlungsarten:

+ {activeMethods + ?
{activeMethods?.map((mergedPaymentMethodObject) => + + + )} +
+ :
+ +

Momentan ist noch kein Mollie Zahlungsart aktiv. Erfülle bei den gewünschten Zahlungsarten unten die roten markierten Bedingungen um die Zahlungsart zu aktivieren.

+
+ } +
+
+

Inaktive Zahlungsarten:

+
+ {inactiveAndInvalidMethods?.map( + (mergedPaymentMethodObject) => + + )} +
+
+ + } +
+
+
+
+ ) +} + +export default ActivePaymentMethods; + + diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/MollieDashboardLink/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/MollieDashboardLink/index.tsx new file mode 100644 index 0000000..a19ffad --- /dev/null +++ b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/MollieDashboardLink/index.tsx @@ -0,0 +1,75 @@ +import React from "react"; +import Button from "@webstollen/react-jtl-plugin/lib/components/Button"; +import DashboardGridCard from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashboardGridCard"; +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import {faExternalLink} from "@fortawesome/pro-regular-svg-icons"; +import {Loading} from "@webstollen/react-jtl-plugin/lib"; +import {usePluginSettings} from "@webstollen/react-jtl-plugin/lib/context/SettingsContext"; + +const MollieDashboardLink = () => { + const {settingsMap } = usePluginSettings() + + return ( + +
{/* This div only exists to prevent shadow from affecting other DashboardGridCards due to position:relative */} + +
+ {settingsMap?.apiKey?.value ? ( + <> +
+ Plugin Icon +
+ Integriere alle wichtigen +
+ Zahlungsarten in kürzester Zeit. +
+
+
+ +
+ + ) : ( + <> +
+ Plugin Icon +
+ Integriere alle wichtigen +
+ Zahlungsarten in kürzester Zeit. +
+
+ + + + )} +
+
+
+
+ ) +} + +export default MollieDashboardLink; + + diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/QuickStats/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/QuickStats/index.tsx new file mode 100644 index 0000000..b3b4bed --- /dev/null +++ b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/QuickStats/index.tsx @@ -0,0 +1,113 @@ +import React, {useCallback, useEffect, useState} from "react"; +import DashboardGridCard from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashboardGridCard"; +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import {faSync} from "@fortawesome/pro-regular-svg-icons"; +import {formatAmount, Loading} from "@webstollen/react-jtl-plugin/lib"; +import useApi from "@webstollen/react-jtl-plugin/lib/hooks/useAPI"; + +const QuickStats = () => { + const api = useApi() + + const [isLoading, setIsLoading] = useState(false) + const [statistics, setStatistics] = useState>>({}) + + const loadStatistics = useCallback(() => { + setIsLoading(true) + api + .run('mollie', 'statistics') + .then((res) => setStatistics(res.data.data)) + .catch(console.error) + .finally(() => setIsLoading(false)) + }, [api]) + + useEffect(() => { + loadStatistics() + }, [loadStatistics]) + + return ( + +
{/* This div only exists to prevent shadow from affecting other DashboardGridCards due to position:relative */} + +
+ +
+
+
+ Mollie Umsätze: +
+ {statistics.day && ( +
+
{formatAmount(statistics.day.amount, 2, '€')}
+
last 24h
+
+ )} + {statistics.week && ( +
+
{formatAmount(statistics.week.amount, 2, '€')}
+
last week
+
+ )} + {statistics.month && ( +
+
{formatAmount(statistics.month.amount, 2, '€')}
+
last month
+
+ )} + {statistics.year && ( +
+
{formatAmount(statistics.year.amount, 2, '€')}
+
last year
+
+ )} +
+
+
+ Mollie Transaktionen: +
+ {statistics.day && ( +
+
{statistics.day.transactions}
+
last 24h
+
+ )} + {statistics.week && ( +
+
{statistics.week.transactions}
+
last week
+
+ )} + {statistics.month && ( +
+
{statistics.month.transactions}
+
last month
+
+ )} + {statistics.year && ( +
+
{statistics.year.transactions}
+
last year
+
+ )} +
+
+
+
+
+
+ ) +} + +export default QuickStats; + + diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/index.tsx new file mode 100644 index 0000000..bacf5a0 --- /dev/null +++ b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/index.tsx @@ -0,0 +1,19 @@ +import React from "react"; +import QuickStats from "./QuickStats"; +import ActivePaymentMethods from "./ActivePaymentMethods"; +import AboCloudWidget from "./AboCloudWidget"; + +const CustomDashboardGridCards = () => { + return ( + <> + + + + + ) +} + + +export default CustomDashboardGridCards; + + diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Details.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Details.tsx new file mode 100644 index 0000000..92715f8 --- /dev/null +++ b/adminmenu/app/src/tabs/Orders/OrderDetails/Details.tsx @@ -0,0 +1,78 @@ +import React, { useContext } from 'react' +import moment from 'moment' +import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' +import { formatAmount, Loading } from '@webstollen/react-jtl-plugin/lib' +import { molliePaymentStatusLabel } from '../../../helper' +import { UseMollieReturn } from '../../../hooks/useMollie' +import MollieContext from '../../../context/MollieContext' + +const Details = () => { + const mollie = useContext(MollieContext) + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {mollie.data?.billingAddress ? ( + <> + + + + ) : null} + + + + +
Mollie ID: + + {mollie.data?.id} + + Mode:{mollie.data?.mode}Status:{molliePaymentStatusLabel(mollie.data?.status)}
Betrag:{formatAmount(mollie.data?.amount.value, 2, mollie.data?.amount.currency)}Captured: + {mollie.data?.amountCaptured + ? formatAmount(mollie.data?.amountCaptured.value, 2, mollie.data?.amountCaptured.currency) + : '-'} + Refunded: + {mollie.data?.amountRefunded + ? formatAmount(mollie.data?.amountRefunded.value, 2, mollie.data?.amountRefunded.currency) + : '-'} +
Method:{mollie.data?.method}Locale:{mollie.data?.locale}Erstellt:{moment(mollie.data?.createdAt).format('Do MMM YYYY, HH:mm:ss')} Uhr
Kunde: + {mollie.data?.billingAddress.title} {mollie.data?.billingAddress.givenName}{' '} + {mollie.data?.billingAddress.familyName} + Zahlungslink: + {mollie.data?._links.checkout?.href ? ( + + {mollie.data?._links.checkout.href} + + ) : ( + '-' + )} +
+
+ ) +} + +export default Details diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Logs.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Logs.tsx new file mode 100644 index 0000000..8c10ed8 --- /dev/null +++ b/adminmenu/app/src/tabs/Orders/OrderDetails/Logs.tsx @@ -0,0 +1,84 @@ +import React, { useEffect, useState } from 'react' +import { Label, Loading } from '@webstollen/react-jtl-plugin/lib' +import { faChevronDoubleDown, faChevronDoubleLeft, faSync } from '@fortawesome/pro-regular-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import usePaymentLogs from '../../../hooks/usePaymentLogs' +import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' +import { parseInt } from 'lodash' +import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' + +export type LogsProps = { + mollieId: string + kBestellung: number +} + +const Logs = ({ kBestellung, mollieId }: LogsProps) => { + const [showLogs, setShowLogs] = useState(false) + const { load, loading, data, error } = usePaymentLogs(kBestellung, mollieId) + + useEffect(() => { + load() + }, [load]) + + const reload = (e: React.MouseEvent) => { + load() + e.stopPropagation() + } + + return ( +
+

setShowLogs((prev) => !prev)}> + Logs {data ? <>({data?.length ?? 0}) : null} + + {showLogs && ( + + )} +

+ {showLogs && + (error ? ( + {error} + ) : ( + + + {data?.map((row) => ( + + + {parseInt(row.nLevel) === 1 ? ( + + ) : parseInt(row.nLevel) === 2 ? ( + + ) : parseInt(row.nLevel) === 3 ? ( + + ) : ( + row.nLevel + )} + + {row.cLog} + + {new Date(row.dDatum).toLocaleDateString('de-DE')} {new Date(row.dDatum).toLocaleTimeString('de-DE')} + + + ))} + + + ))} +
+ ) +} + +const header: Array = [ + { + title: 'Level', + column: 'level', + }, + { + title: 'Log', + column: 'log', + }, + { + title: 'Erstellt', + column: 'created', + }, +] + +export default Logs diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/OrderLines.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/OrderLines.tsx new file mode 100644 index 0000000..b42ce93 --- /dev/null +++ b/adminmenu/app/src/tabs/Orders/OrderDetails/OrderLines.tsx @@ -0,0 +1,178 @@ +import React, { useContext } from 'react' +import { formatAmount, Loading } from '@webstollen/react-jtl-plugin/lib' +import { mollieOrderLineTypeLabel, molliePaymentStatusLabel, OrderLineType } from '../../../helper' +import Button from '@webstollen/react-jtl-plugin/lib/components/Button' +import { UseMollieReturn } from '../../../hooks/useMollie' +import useErrorSnack from '../../../hooks/useErrorSnack' +import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' +import MollieContext from '../../../context/MollieContext' + +type Variation = { + name: string + value: string + kEigenschaft: number + kEigenschaftWert: number +} + +const OrderLines = () => { + const mollie = useContext(MollieContext) + const [showError] = useErrorSnack() + const handleCancelOrderLine = (lineId: string, max: number) => { + const quantity = + max > 1 + ? parseFloat( + window.prompt(`Wieviele von max. ${max} möchten Sie abbrechen?`, `${max}`)?.replace(',', '.') ?? '0' + ) + : 1 + if (quantity <= max) { + if (window.confirm(`Möchten Sie wirklich diese Position ${quantity}x unwiderruflich abbrechen?`)) { + mollie.cancelOrderLine(lineId, quantity).catch((e) => showError(`${e}`)) + } + } else { + alert(`Sie können maximal ${max} abbrechen.`) + } + } + + const handleCancelOrder = () => { + if (window.confirm('Diese Bestellung bei Mollie wirklich abbrechen?')) { + mollie.cancelOrder().catch((e) => showError(`${e}`)) + } + } + + const handleRefundOrder = () => { + if (window.confirm('Diese Bestellung bei Mollie wirklich zurück erstatten?')) { + mollie.refundOrder().catch((e) => showError(`${e}`)) + } + } + + const handleRefundOrderLine = (lineId: string, max: number) => { + const quantity = + max > 1 + ? parseFloat( + window.prompt(`Wieviele von max. ${max} möchten Sie abbrechen?`, `${max}`)?.replace(',', '.') ?? '0' + ) + : 1 + if (quantity <= max) { + if (window.confirm(`Möchten Sie wirklich diese Position ${quantity}x unwiderruflich abbrechen?`)) { + mollie.refundOrderLine(lineId, quantity).catch((e) => showError(`${e}`)) + } + } else { + alert(`Sie können maximal ${max} abbrechen.`) + } + } + + return ( + +
+
+

Positionen

+ {mollie.data?.isCancelable && ( + + )} + {['paid', 'completed'].includes(mollie.data?.status) && ( + + )} +
+ + {mollie.data?.lines.map((row: Record) => ( + + {row.id ?? '-'} + {row.status ? molliePaymentStatusLabel(row.status) : '-'} + + {row.sku ?? '-'} +
+ {row.type ? mollieOrderLineTypeLabel(row.type as OrderLineType) : '-'} + + + {row.name ?? '-'} + {row.metadata?.properties?.length + ? row.metadata?.properties.map((prop: Variation) => ( + <> +
+ {JSON.stringify(prop.name)}: {JSON.stringify(prop.value)} + + )) + : null} + + + {row.quantity} + {row.quantityCanceled > 0 ? ( + + [ {row.quantityCanceled} ] + + ) : null} + {row.quantityRefunded > 0 ? ( + + [ {row.quantityRefunded} ] + + ) : null} + + {parseFloat(row.vatRate)}% + {formatAmount(row.vatAmount.value, 2, row.vatAmount.currency)} + + {formatAmount(row.totalAmount.value, 2, row.totalAmount.currency)} + + + {row?.cancelableQuantity > 0 && ( + + )} + {row?.refundableQuantity > 0 && ( + + )} + + + ))} +
+
+
+ ) +} + +const header: Array = [ + { + title: 'ID', + column: 'id', + }, + { + title: 'Status', + column: 'status', + }, + { + title: 'SKU', + column: 'sku', + }, + { + title: 'Name', + column: 'name', + }, + { + title: 'Anzahl', + column: 'quantity', + }, + { + title: 'MwSt.', + column: 'vatRate', + }, + { + title: 'Steuer.', + column: 'tax', + }, + { + title: 'Brutto', + column: 'brutto', + }, + { + title: '', + column: '_actions', + }, +] + +export default OrderLines diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Payments.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Payments.tsx new file mode 100644 index 0000000..3d745d3 --- /dev/null +++ b/adminmenu/app/src/tabs/Orders/OrderDetails/Payments.tsx @@ -0,0 +1,111 @@ +import React, { useContext, useState } from 'react' +import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' +import { formatAmount } from '@webstollen/react-jtl-plugin/lib' +import { molliePaymentStatusLabel, PaymentMethod2img } from '../../../helper' +import { faChevronDoubleDown, faChevronDoubleLeft, faEdit } from '@fortawesome/pro-regular-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { UseMollieReturn } from '../../../hooks/useMollie' +import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' +import MollieContext from '../../../context/MollieContext' + +const Payments = () => { + const mollie = useContext(MollieContext) + const [showPayments, setShowPayments] = useState(false) + const payments = mollie.data?._embedded?.payments || [] + + return payments.length ? ( +
+

setShowPayments((prev) => !prev)}> + Zahlungen ({payments.length}) + +

+ {showPayments && ( + + {payments.map((row: Record) => ( + + {row.id} + {molliePaymentStatusLabel(row.status)} + + + + {formatAmount(row.amount.value, 2, row.amount.currency)} + + {row.settlementAmount?.value + ? formatAmount(row.settlementAmount.value, 2, row.settlementAmount.currency) + : '-'} + + + {row.amountRefunded?.value + ? formatAmount(row.amountRefunded.value, 2, row.amountRefunded.currency) + : '-'} + + + {row.amountRemaining?.value + ? formatAmount(row.amountRemaining.value, 2, row.amountRemaining.currency) + : '-'} + + +
{JSON.stringify(row.details, null, 2)}
+ + + {new Date(row.createdAt).toLocaleDateString('de-DE')} {new Date(row.createdAt).toLocaleTimeString('de-DE')} + + + {row._links.changePaymentState && ( + + + + )} + + + ))} +
+ )} +
+ ) : null +} + +const header: Array = [ + { + title: 'ID', + column: 'id', + }, + { + title: 'Status', + column: 'status', + }, + { + title: 'Methode', + column: 'method', + }, + { + title: 'Betrag', + column: 'amount', + }, + { + title: 'Settlement', + column: 'settlement', + }, + { + title: 'Refunded', + column: 'refunded', + }, + { + title: 'Remaining', + column: 'remaining', + }, + { + title: 'Details', + column: 'details', + }, + { + title: 'Erstellt', + column: 'created', + }, + { + title: '', + column: '_actions', + }, +] + +export default Payments diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Queue.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Queue.tsx new file mode 100644 index 0000000..71d30ee --- /dev/null +++ b/adminmenu/app/src/tabs/Orders/OrderDetails/Queue.tsx @@ -0,0 +1,97 @@ +import React, { useEffect, useState } from 'react' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faChevronDoubleDown, faChevronDoubleLeft, faSync } from '@fortawesome/pro-regular-svg-icons' +import useQueue from '../../../hooks/useQueue' +import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' +import { Loading } from '@webstollen/react-jtl-plugin/lib' +import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' + +type QueueProps = { + id: string +} + +const Queue = ({ id }: QueueProps) => { + const [showLogs, setShowLogs] = useState(false) + + const { load, loading, data, error } = useQueue(id) + + useEffect(() => { + load() + }, [load]) + + const reload = (e: React.MouseEvent) => { + load() + e.stopPropagation() + } + + return ( +
+

setShowLogs((prev) => !prev)}> + Queue {data?.length ? <>({data?.length}) : null}{' '} + + {showLogs && ( + + )} +

+ {showLogs && + (error ? ( + {error} + ) : ( + + + {data?.map((row) => ( + + {row.kId} + {row.cType} + +
{row.cResult ?? 'n/a'}
+ + +
{row.cError ?? 'n/a'}
+ + {!row.dDone ? 'PENDING' : 'DONE'} + + {new Date(row.dCreated).toLocaleDateString('de-DE')} {new Date(row.dCreated).toLocaleTimeString('de-DE')} + + {/*TODO: REDO*/} + + ))} +
+
+ ))} +
+ ) +} + +const header: Array = [ + { + title: 'ID', + column: 'id', + }, + { + title: 'Typ', + column: 'typ', + }, + { + title: 'Result', + column: 'result', + }, + { + title: 'Fehler?', + column: 'error', + }, + { + title: 'Status', + column: 'status', + }, + { + title: 'Erstellt', + column: 'created', + }, + { + title: '', + column: '_actions', + }, +] + +export default Queue diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Refunds.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Refunds.tsx new file mode 100644 index 0000000..b52c78d --- /dev/null +++ b/adminmenu/app/src/tabs/Orders/OrderDetails/Refunds.tsx @@ -0,0 +1,149 @@ +import React, { useCallback, useContext, useState } from 'react' +import { formatAmount, Loading } from '@webstollen/react-jtl-plugin/lib' +import { molliePaymentStatusLabel } from '../../../helper' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faChevronDoubleDown, faChevronDoubleLeft } from '@fortawesome/pro-regular-svg-icons' +import Button from '@webstollen/react-jtl-plugin/lib/components/Button' +import { UseMollieReturn } from '../../../hooks/useMollie' +import useErrorSnack from '../../../hooks/useErrorSnack' +import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' +import MollieContext from '../../../context/MollieContext' + +const Refunds = () => { + const { data, refundOrder, refundAmount, cancelRefund, loading } = useContext(MollieContext) + const [showRefunds, setShowRefunds] = useState(false) + const [amountToRefund, setAmountToRefund] = useState(0.0) + const [showError] = useErrorSnack() + + const handleRefundAmount = useCallback( + (amount: number) => { + if ( + window.confirm( + `Möchten Sie wirklich '${amount.toFixed(2)} ${data?.amount.currency}' dieser Zahlung zurück erstatten?` + ) + ) { + refundAmount(amount) + .then(() => setAmountToRefund(0)) + .catch(showError) + } else { + setAmountToRefund(0) + } + }, + [setAmountToRefund, showError, data?.amount.currency, refundAmount] + ) + + const handleCancel = (id: string) => { + if (window.confirm('Diese Erstattung wirklich abbrechen?')) { + cancelRefund(id).catch(showError) + } + } + + const handleRefundOrder = () => { + if (window.confirm('Diese Bestellung bei Mollie wirklich zurück erstatten?')) { + refundOrder().catch(showError) + } + } + + return ( +
+

setShowRefunds((prev) => !prev)}> + Refunds ({data?._embedded?.refunds?.length ?? 0}) + +

+ {showRefunds && ( + +
+ {data?.id?.substring(0, 3) === 'tr_' && parseFloat(data?.amountRemaining?.value) > 0 && ( +
+
Refund Amount:
+
+ setAmountToRefund(parseFloat(e.target.value.replace(',', '.')))} + type="number" + /> +
+ {parseFloat(data?.amountRemaining.value) > 0 && ( +
+ + + +
+ )} +
+ )} + {data?._embedded?.refunds?.length ? ( + + {data?._embedded?.refunds?.length && + data?._embedded?.refunds.map((row: Record) => ( + + +
{row.id}
+ + {molliePaymentStatusLabel(row.status)} + {row.description} + {formatAmount(row.amount.value, 2, row.amount.currency)} + + {new Date(row.createdAt).toLocaleDateString('de-DE')} {new Date(row.createdAt).toLocaleTimeString('de-DE')} + + + {row.status === 'pending' ? ( + + ) : null} + + + ))} +
+ ) : null} +
+
+ )} +
+ ) +} + +const header: Array = [ + { + title: 'ID', + column: 'id', + }, + { + title: 'Status', + column: 'status', + }, + { + title: 'Beschreibung', + column: 'description', + }, + { + title: 'Betrag', + column: 'amount', + }, + { + title: 'Erstellt', + column: 'created', + }, + { + title: '', + column: '_actions', + }, +] + +export default Refunds diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Shipments.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Shipments.tsx new file mode 100644 index 0000000..2f29544 --- /dev/null +++ b/adminmenu/app/src/tabs/Orders/OrderDetails/Shipments.tsx @@ -0,0 +1,112 @@ +import React, { useContext, useEffect, useState } from 'react' +import Button from '@webstollen/react-jtl-plugin/lib/components/Button' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faChevronDoubleDown, faChevronDoubleLeft, faShippingFast, faSync } from '@fortawesome/pro-regular-svg-icons' +import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' +import { UseMollieReturn } from '../../../hooks/useMollie' +import useShipments from '../../../hooks/useShipments' +import useErrorSnack from '../../../hooks/useErrorSnack' +import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' +import MollieContext from '../../../context/MollieContext' + +export type ShipmentsProps = { + kBestellung: number +} + +const Shipments = ({ kBestellung }: ShipmentsProps) => { + const mollie = useContext(MollieContext) + const [showShipments, setShowShipments] = useState(false) + const [showError] = useErrorSnack() + const { load, data, loading, sync } = useShipments(kBestellung) + + useEffect(() => { + load() + }, [load]) + + const syncShipping = (kLieferschein: number) => { + sync(mollie.data?.id, kLieferschein) + .then(async (resp) => { + if (resp.data.error) { + showError(resp.data.error.message) + } else { + await load() + } + }) + .catch(showError) + } + + return ( +
+

setShowShipments((prev) => !prev)}> + Lieferungen ({mollie.data?._embedded?.shipments?.length}) + +

+ + {showShipments && ( + + {data?.map((row) => ( + + + {row.shipment ? ( + + {row.cLieferscheinNr} + + ) : ( + row.cLieferscheinNr + )} + + {row.shipment?.cShipmentId ? row.shipment?.cShipmentId : '-'} + {row.shipment?.cCarrier ? row.shipment.cCarrier : 'n/a'} + + {row.shipment?.cCode ? ( + + {row.shipment?.cCode} + + ) : ( + 'n/a' + )} + + + {mollie.data?.status !== 'completed' && row.shipment === null && ( + + )} + {row.cUrl && ( + + )} + + + ))} + + )} +
+ ) +} + +const header: Array = [ + { + title: 'Lieferschein', + column: 'cLieferschein', + }, + { + title: 'Shipment ID', + column: 'id', + }, + { + title: 'Carrier', + column: 'carrier', + }, + { + title: 'Code', + column: 'code', + }, + { + title: '', + column: '_actions', + }, +] + +export default Shipments diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/index.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/index.tsx new file mode 100644 index 0000000..da249ef --- /dev/null +++ b/adminmenu/app/src/tabs/Orders/OrderDetails/index.tsx @@ -0,0 +1,104 @@ +import React, { useEffect } from 'react' +import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' +import { faExclamation } from '@fortawesome/pro-solid-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { Loading } from '@webstollen/react-jtl-plugin/lib' +import Details from './Details' +import useMollie from '../../../hooks/useMollie' +import { faSync, faTimes } from '@fortawesome/pro-regular-svg-icons' +import useOrder from '../../../hooks/useOrder' +import OrderLines from './OrderLines' +import Payments from './Payments' +import Shipments from './Shipments' +import Refunds from './Refunds' +import Queue from './Queue' +import Logs from './Logs' +import MollieContext from '../../../context/MollieContext' + +export type OrderDetailsProps = { + id: string + onClose?: (event: React.MouseEvent) => void +} +const OrderDetails = (props: OrderDetailsProps) => { + const mollie = useMollie(props.id, true) + const { loading: orderLoading, load: orderLoad, error: orderError, data: orderData } = useOrder(props.id) + + const reload = () => { + orderLoad() + mollie.load() + } + + useEffect(() => { + orderLoad() + }, [orderLoad]) + + if (mollie.error !== null || orderError !== null) { + return ( +
+
+
+ Bestellung: {orderData?.cBestellNr} (
{props.id}
) +
+
+ +
+
+ +
+
+ {orderError != null && ( + + Fehler beim laden der Bestellung "{props.id}": {orderError} + + )} + {mollie.error != null && ( + + Fehler beim Laden von Mollie "{props.id}": {mollie.error} + + )} +
+ ) + } + + return ( +
+ +
+
+ Bestellung: {orderData?.cBestellNr} ( +
{props.id}
) +
+
+ +
+
+ +
+
+
+ + +
+ {mollie && mollie?.data?.resource === 'payment' ? ( + <> + ) : ( + <> + + + {orderData && } + + )} + + {mollie?.data && orderData?.kBestellung && ( + + )} + + + +
+
+
+ ) +} + +export default OrderDetails diff --git a/adminmenu/app/src/tabs/Orders/index.tsx b/adminmenu/app/src/tabs/Orders/index.tsx new file mode 100644 index 0000000..6436140 --- /dev/null +++ b/adminmenu/app/src/tabs/Orders/index.tsx @@ -0,0 +1,238 @@ +import React, { useCallback, useEffect, useState } from 'react' +import { formatAmount, Label, usePluginInfo } from '@webstollen/react-jtl-plugin/lib' +import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' +import OrderDetails from './OrderDetails' +import useErrorSnack from '../../hooks/useErrorSnack' +import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' +import useOrders from '../../hooks/useOrders' +import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' +import { jtlStatus2label, molliePaymentStatusLabel, PaymentMethod2img } from '../../helper' +import Button from '@webstollen/react-jtl-plugin/lib/components/Button' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faBolt, faEnvelopeOpenDollar, faSync, faUnlock } from '@fortawesome/pro-regular-svg-icons' +import useSuccessSnack from '../../hooks/useSuccessSnack' +import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' +import Modal from "@webstollen/react-jtl-plugin/lib/components/Modal"; + + +const Orders = () => { + const [showSuccess] = useSuccessSnack() + const [loading, setLoading] = useState(false) + const api = useApi() + const pluginInfo = usePluginInfo() + const [showError] = useErrorSnack() + + const [openOrderId, setOpenOrderId] = useState(null) + const modalProps = Modal.useModal() + + const { loading: ordersLoading, load: loadOrders, error: ordersError, data: ordersData } = useOrders() + const [ordersState, setOrderState] = useState({ + page: 0, + perPage: 10, + query: '', + }) + + useEffect(() => { + loadOrders(ordersState.page, ordersState.perPage, ordersState.query) + }, [loadOrders, ordersState.perPage, ordersState.page, ordersState.query]) + + const reWebhook = (id: string) => { + setLoading(true) + fetch(pluginInfo.shopURL + `?mollie=1&id=${id}&admin=1`, { + mode: 'no-cors', + method: 'GET', + }) + .then(() => fetch(pluginInfo.shopURL, { mode: 'no-cors' }).then(reload)) + .catch((e) => showError(`${e}`)) + .finally(() => setLoading(false)) + } + + const sendReminder = (id: number) => { + setLoading(true) + api + .run('orders', 'reminder', { id: id }) + .then(async () => { + showSuccess('E-Mail versendet.') + await reload() + }) + .catch(showError) + .finally(() => setLoading(false)) + } + + const makeFetchable = (id: string) => { + setLoading(true) + api + .run('orders', 'fetchable', { + id: id, + }) + .then(reload) + .catch((e) => showError(`${e}`)) + .finally(() => setLoading(false)) + } + + const reload = useCallback( + async () => await loadOrders(ordersState.page, ordersState.perPage, ordersState.query), + [ordersState.page, ordersState.perPage, loadOrders, ordersState.query] + ) + const handleTableChange = async (page: number, perPage: number) => { + if (page === ordersState.page && perPage === ordersState.perPage) { + await reload() + } else { + setOrderState((p) => ({ ...p, page: page, perPage: perPage })) + } + } + + const handleSearch = useCallback( + (query: string) => { + if (query !== ordersState.query) { + setOrderState((p) => ({ ...p, query: query, page: 0 })) + } + }, + [setOrderState, ordersState.query] + ) + + const OrderTable = ordersError ? ( + + {ordersError}{' '} + loadOrders(ordersState.page, ordersState.perPage, ordersState.query)}> + Erneut versuchen! + + + ) : ( + + {ordersData?.items && ordersData?.items.length > 0 + ? ordersData?.items.map((row: Record) => ( + + + { + setOpenOrderId(row.cOrderId) + modalProps.setIsOpen(true) + }} + > + {row.cBestellNr} + + {!parseInt(row.bSynced) ? ( + + * + + ) : null} + + + {parseInt(row.bTest) ? ( + + ) : null} +
{row.cOrderId}
+ + + {molliePaymentStatusLabel(row.fAmountRefunded === row.fAmount ? 'refunded' : row.cStatus)} + + {jtlStatus2label(row.cJTLStatus)} + + + + {formatAmount(row.fAmount)} + {row.cCurrency} + + {new Date(row.dCreated).toLocaleDateString('de-DE')} {new Date(row.dCreated).toLocaleTimeString('de-DE')} + + + {!parseInt(row.bSynced) && ( + + )} + + {!['paid', 'authorized', 'completed', 'pending'].includes(row.cStatus) && + parseInt(row.cJTLStatus) > 0 ? ( + + ) : null} + + + + + )) + : null} +
+ ) + + return ( +
+ + {openOrderId && } + +
{OrderTable}
+
+ ) +} + +export default Orders + +const header: Array = [ + { + title: 'BestellNr', + column: 'cBestellNr', + }, + { + title: 'Mollie ID', + column: 'cOrderId', + }, + { + title: 'Mollie Status', + column: 'cStatus', + }, + { + title: 'JTL Status', + column: 'cJTLStatus', + }, + { + title: 'Methode', + column: 'cMethod', + }, + { + title: 'Betrag', + column: 'fAmount', + }, + { + title: 'Währung', + column: 'cCurrency', + }, + { + title: 'Erstellt', + column: 'dCreated', + }, + { + title: '', + column: '_actions', + }, +] diff --git a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGrid.tsx b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGrid.tsx new file mode 100644 index 0000000..9fc39a3 --- /dev/null +++ b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGrid.tsx @@ -0,0 +1,20 @@ +import {MergedPaymentMethodObject} from "../../../types/PaymentMethod"; +import React from "react"; +import {usePluginInfo} from "@webstollen/react-jtl-plugin/lib"; +import PaymentMethodGridItem from "./PaymentMethodGridItem"; + +const PaymentMethodGrid = ({paymentMethods}: {paymentMethods: Array}) => { + const pluginInfo = usePluginInfo(); + + return ( +
+ {paymentMethods?.map((mergedPaymentMethodObject: MergedPaymentMethodObject) => { + return ( + + ) + })} +
+ ) +} + +export default PaymentMethodGrid \ No newline at end of file diff --git a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/AdditionalInformation.tsx b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/AdditionalInformation.tsx new file mode 100644 index 0000000..c766dc1 --- /dev/null +++ b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/AdditionalInformation.tsx @@ -0,0 +1,17 @@ +import React from "react"; +import {MergedPaymentMethodObject} from "../../../../types/PaymentMethod"; + +const AdditionalInformation = ({mergedPaymentMethodObject}: {mergedPaymentMethodObject: MergedPaymentMethodObject}) => { + + return ( + <> +

Informationen

+

Mollie-API{mergedPaymentMethodObject?.api ? (mergedPaymentMethodObject.api === "payment" ? "Payment-API" : "Order-API") : "Keine"}

+

Fälligkeit in Tagen{mergedPaymentMethodObject.dueDays} Tagen

+

Minimum{mergedPaymentMethodObject?.mollie?.minimumAmount ? (mergedPaymentMethodObject?.mollie?.minimumAmount?.value + " " + mergedPaymentMethodObject?.mollie?.minimumAmount?.currency): "Unbekannt"}

+

Maximum{mergedPaymentMethodObject?.mollie?.maximumAmount ? (mergedPaymentMethodObject?.mollie?.maximumAmount?.value + " " + mergedPaymentMethodObject?.mollie?.maximumAmount?.currency): "Unbekannt"}

+ + ) +} + +export default AdditionalInformation \ No newline at end of file diff --git a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/ConfigurationItems.tsx b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/ConfigurationItems.tsx new file mode 100644 index 0000000..5b0b2aa --- /dev/null +++ b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/ConfigurationItems.tsx @@ -0,0 +1,70 @@ +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import {faCheckCircle, faGear, faLink, faXmarkCircle} from "@fortawesome/pro-solid-svg-icons"; +import React from "react"; +import PluginInfo from "@webstollen/react-jtl-plugin/lib/types/PluginInfo"; +import {MergedPaymentMethodObject} from "../../../../types/PaymentMethod"; + +const ConfigurationItems = ({mergedPaymentMethodObject, pluginInfo}: {mergedPaymentMethodObject: MergedPaymentMethodObject, pluginInfo: PluginInfo}) => { + + const mollieProfileSettingsPageUrl = "https://my.mollie.com/dashboard/settings/profiles/" + + const shippingPageUrl = + pluginInfo.shopVersionEqualOrGreaterThan520 + ? pluginInfo.adminURL + "/shippingmethods" + : pluginInfo.adminURL + "/versandarten.php" + + + const paymentSettingsPageUrl = pluginInfo.shopVersionEqualOrGreaterThan520 + ? pluginInfo.adminURL + "/paymentmethods?kZahlungsart=" + mergedPaymentMethodObject.paymentMethod.kZahlungsart + "&token=" + pluginInfo.token + : pluginInfo.adminURL + "/zahlungsarten.php?kZahlungsart=" + mergedPaymentMethodObject.paymentMethod.kZahlungsart + "&token=" + pluginInfo.token + + return ( + <> +

Konfiguration

+

Bei Mollie aktiv + {mergedPaymentMethodObject.mollie.status === "activated" + ? + : + + + + } +

+

Im Shop aktiv {mergedPaymentMethodObject.paymentMethod.nActive === "1" ? + : + } + +

+

Versandart verknüpft {mergedPaymentMethodObject.linkedShippingMethods.length > 0 + ? + : + + + } + +

+ {mergedPaymentMethodObject?.allowDuringCheckout + ?

Zahlung vor Bestellabschluss {mergedPaymentMethodObject.paymentMethod.nWaehrendBestellung === "1" + ? + : <> + + + + } + +

+ :

Zahlung nach Bestellabschluss {mergedPaymentMethodObject.paymentMethod.nWaehrendBestellung === "0" + ? + : <> + + + + } + +

+ } + + ) +} + +export default ConfigurationItems \ No newline at end of file diff --git a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/index.tsx b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/index.tsx new file mode 100644 index 0000000..d0414c2 --- /dev/null +++ b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/index.tsx @@ -0,0 +1,63 @@ +import {MergedPaymentMethodObject} from "../../../../types/PaymentMethod"; +import {PaymentMethod2img} from "../../../../helper"; +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import {faCheckCircle, faChevronDown, faChevronUp, faXmarkCircle, faCircleInfo} from "@fortawesome/pro-solid-svg-icons"; +import React, {useState} from "react"; +import PluginInfo from "@webstollen/react-jtl-plugin/lib/types/PluginInfo"; +import ConfigurationItems from "./ConfigurationItems"; +import AdditionalInformation from "./AdditionalInformation"; +import Alert from "@webstollen/react-jtl-plugin/lib/components/Alert"; + +const PaymentMethodGridItem = ({mergedPaymentMethodObject, pluginInfo}: {mergedPaymentMethodObject: MergedPaymentMethodObject, pluginInfo: PluginInfo}) => { + const [isOpen, setIsOpen] = useState(false) + + return ( +
+
setIsOpen(prevState => !prevState)} className="flex items-center cursor-pointer"> + + {mergedPaymentMethodObject.paymentMethod.cName === 'Klarna' ? 'One Klarna' : mergedPaymentMethodObject.paymentMethod.cName} + + +
+
+ { mergedPaymentMethodObject?.paymentMethod?.cName === 'Giropay' ? + // TODO remove with Giropay within the next Update + <> + Diese Zahlungsart ist bei Mollie nicht länger verfügbar. Sie wird im Checkout nicht weiter angezeigt und mit dem nächsten Update gelöscht. +
+ + : + <> + +
+ + + } +
+
+ ) +} + + +const StatusIcon = ({mergedPaymentMethodObject}: {mergedPaymentMethodObject: MergedPaymentMethodObject}) => { + + const paymentDuringCheckoutAllowed = ["Creditcard", "Banktransfer"] + + let icon; + if (mergedPaymentMethodObject.paymentMethod.nActive !== "1" || mergedPaymentMethodObject.mollie?.status !== "activated" || (mergedPaymentMethodObject?.linkedShippingMethods?.length ?? 0) === 0) { + icon = + } else if (mergedPaymentMethodObject.paymentMethod.nWaehrendBestellung !== "1" && !paymentDuringCheckoutAllowed.includes(mergedPaymentMethodObject?.paymentMethod?.cName ?? "")) { + icon = + } else { + icon = + if (mergedPaymentMethodObject.paymentMethod.cName === "Giropay") { + icon = + } + } + + return ( + {icon} + ) +} + +export default PaymentMethodGridItem \ No newline at end of file diff --git a/adminmenu/app/src/tabs/PaymentMethods/index.tsx b/adminmenu/app/src/tabs/PaymentMethods/index.tsx new file mode 100644 index 0000000..aa546fb --- /dev/null +++ b/adminmenu/app/src/tabs/PaymentMethods/index.tsx @@ -0,0 +1,60 @@ +import React from "react"; +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import {faCircleInfo} from "@fortawesome/pro-solid-svg-icons"; +import {Loading} from "@webstollen/react-jtl-plugin/lib"; +import {MergedPaymentMethodObject} from "../../types/PaymentMethod"; +import PaymentMethodGrid from "./components/PaymentMethodGrid"; +import {usePaymentMethods} from "../../context/PaymentMethodContext"; + + +const PaymentMethods = () => { + const {paymentMethods} = usePaymentMethods() + + // Split into active and inactive payment methods + let activeMethods: Array = [] + let inactiveAndInvalidMethods: Array = [] + + paymentMethods && + Object.values(paymentMethods).forEach((paymentMethod) => { + if ( + paymentMethod.mollie.status === 'activated' && + paymentMethod.linkedShippingMethods.length && + paymentMethod.paymentMethod?.nActive === "1" && + (!paymentMethod.duringCheckout || paymentMethod.allowDuringCheckout) + ) { + activeMethods.push(paymentMethod) + } else { + inactiveAndInvalidMethods.push(paymentMethod) + } + }) + + return ( +
+ + {!paymentMethods + ?
+ : <> +
+

Aktive Zahlungsarten:

+ { activeMethods && activeMethods.length > 0 + ? + :
+ +

Momentan ist noch kein Mollie Zahlungsart aktiv. Erfülle bei den gewünschten Zahlungsarten unten die roten markierten Bedingungen um die Zahlungsart zu aktivieren.

+
+ } +
+
+

Inaktive Zahlungsarten:

+ +
+ + } + +
+ ); +} + +export default PaymentMethods; + + diff --git a/adminmenu/app/src/tabs/Queue/index.tsx b/adminmenu/app/src/tabs/Queue/index.tsx new file mode 100644 index 0000000..9e11c59 --- /dev/null +++ b/adminmenu/app/src/tabs/Queue/index.tsx @@ -0,0 +1,188 @@ +import React, { useCallback, useEffect, useState } from 'react' +import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' +import useQueues from '../../hooks/useQueues' +import useErrorSnack from '../../hooks/useErrorSnack' +import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' +import Button from '@webstollen/react-jtl-plugin/lib/components/Button' +import { faBolt, faLock, faTrash } from '@fortawesome/pro-regular-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' +import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' + +const Queue = () => { + const [loading, setLoading] = useState(false) + const api = useApi() + const [showError] = useErrorSnack() + const { data, load, error, loading: queueLoading } = useQueues() + const [queuesState, setQueuesState] = useState({ + page: 0, + perPage: 10, + query: '', + }) + + const reload = useCallback( + async () => await load(queuesState.page, queuesState.perPage, queuesState.query), + [load, queuesState.page, queuesState.perPage, queuesState.query] + ) + + useEffect(() => { + load(queuesState.page, queuesState.perPage, queuesState.query) + }, [load, queuesState.page, queuesState.perPage, queuesState.query]) + + const deleteQueue = (id: number) => { + setLoading(true) + api + .run('queue', 'delete', { id: id }) + .then(reload) + .catch(showError) + .finally(() => setLoading(false)) + } + + const unlockQueue = (id: number) => { + setLoading(true) + api + .run('queue', 'unlock', { id: id }) + .then(reload) + .catch(showError) + .finally(() => setLoading(false)) + } + + const runQueue = (id: number) => { + setLoading(true) + api + .run('queue', 'run', { id: id }) + .then(reload) + .catch(showError) + .finally(() => setLoading(false)) + } + + const header: Array = [ + { + title: 'ID', + column: 'kID', + }, + { + title: 'Type', + column: 'cType', + }, + { + title: 'Result?', + column: 'cResult', + }, + { + title: 'Error?', + column: 'cError', + }, + { + title: 'Erledigt', + column: 'dDone', + }, + { + title: 'Erstellt', + column: 'dCreated', + }, + { + title: '', + column: '_actions', + }, + ] + + const handleTableChange = async (page: number, perPage: number) => { + if (page === queuesState.page && perPage === queuesState.perPage) { + await load(queuesState.page, queuesState.perPage) + } else { + setQueuesState((p) => ({ ...p, page: page, perPage: perPage })) + } + } + + const handleSearch = useCallback( + (query: string) => { + if (query !== queuesState.query) { + setQueuesState((p) => ({ ...p, query: query, page: 0 })) + } + }, + [setQueuesState, queuesState.query] + ) + + const table = error ? ( + + {error}{' '} + + Erneut versuchen! + + + ) : ( + + {data?.items?.map((row) => ( + + {row.kId} + + {row.cType} + + +
{row.cResult}
+ + +
{row.cError}
+ + {row.dDone ? <>{new Date(row.dDone).toLocaleDateString('de-DE')} {new Date(row.dDone).toLocaleTimeString('de-DE')} : '-'} + {row.dCreated ? <>{new Date(row.dCreated).toLocaleDateString('de-DE')} {new Date(row.dCreated).toLocaleTimeString('de-DE')} : '-'} + +
+ {row.bLock ? ( +
+ + {new Date(row.bLock).toLocaleDateString('de-DE')} {new Date(row.bLock).toLocaleTimeString('de-DE')} +
+ ) : ( + + )} + +
+ + + ))} +
+ ) + + return ( +
+
{table}
+
+ ) +} + +export default Queue diff --git a/adminmenu/app/src/types/PaymentMethod.ts b/adminmenu/app/src/types/PaymentMethod.ts new file mode 100644 index 0000000..3abf438 --- /dev/null +++ b/adminmenu/app/src/types/PaymentMethod.ts @@ -0,0 +1,39 @@ +export type PaymentMethod = { + kZahlungsart: number + cName?: string + cModulId?: string + cKundengruppen?: string + cZusatzschrittTemplate: string + cPluginTemplate?: string + cBild: string + nSort: "0" | "1" + nMailSenden: number + nActive: "0" | "1" + cAnbieter: string + cTSCode: string + nWaehrendBestellung: "0" | "1" + nCURL: "0" | "1" + nSOAP: "0" | "1" + nSOCKETS: "0" | "1" + nNutzbar: "0" | "1" + shipping: Array> + requirements: string +} + +/** + * Merged object of info from shop and Mollie about payment method + */ + export type MergedPaymentMethodObject = { + log?: number + linkToSettingsPage: string + mollie: Record + duringCheckout?: boolean + allowDuringCheckout?: boolean + paymentMethod: PaymentMethod + linkedShippingMethods: Array> + api?: 'order' | 'payment' + components?: string + dueDays?: number +} + +export type MergedPaymentMethodsMappedByMollieId = Record diff --git a/adminmenu/app/yarn.lock b/adminmenu/app/yarn.lock new file mode 100644 index 0000000..b669e73 --- /dev/null +++ b/adminmenu/app/yarn.lock @@ -0,0 +1,13755 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adobe/css-tools@^4.0.1": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63" + integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.5.5": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.2.tgz#e41928bd33475305c586f6acbbb7e3ade7a6f7f5" + integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== + +"@babel/core@7.12.3", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.5", "@babel/core@^7.8.4", "@babel/core@^7.9.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" + integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-module-transforms" "^7.25.2" + "@babel/helpers" "^7.25.0" + "@babel/parser" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.2" + "@babel/types" "^7.25.2" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e" + integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== + dependencies: + "@babel/types" "^7.25.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" + integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" + integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz#a109bf9c3d58dfed83aaf42e85633c89f43a6253" + integrity sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/traverse" "^7.25.0" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9" + integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-member-expression-to-functions@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" + integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== + dependencies: + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.8" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" + integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.2" + +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + +"@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e" + integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-wrap-function" "^7.25.0" + "@babel/traverse" "^7.25.0" + +"@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9" + integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + +"@babel/helper-wrap-function@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81" + integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ== + dependencies: + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/helpers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a" + integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== + dependencies: + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3", "@babel/parser@^7.7.0": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065" + integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== + dependencies: + "@babel/types" "^7.25.2" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz#dca427b45a6c0f5c095a1c639dfe2476a3daba7f" + integrity sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.3" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz#cd0c583e01369ef51676bdb3d7b603e17d2b3f73" + integrity sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73" + integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" + integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb" + integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-proposal-class-properties@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-decorators@^7.16.4": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz#7e2dcfeda4a42596b57c4c9de1f5176bbfc532e3" + integrity sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-decorators" "^7.24.7" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-optional-chaining@^7.16.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz#e4f8a0a8778ccec669611cd5aed1ed8e6e3a6fcf" + integrity sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz#d1759e84dd4b437cf9fae69b4c06c41d7625bfb7" + integrity sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-assertions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778" + integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" + integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" + integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" + integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-async-generator-functions@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz#b785cf35d73437f6276b1e30439a57a50747bddf" + integrity sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-remap-async-to-generator" "^7.25.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-transform-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" + integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" + +"@babel/plugin-transform-block-scoped-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" + integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-block-scoping@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac" + integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-class-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" + integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-class-static-block@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" + integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz#63122366527d88e0ef61b612554fe3f8c793991e" + integrity sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/traverse" "^7.25.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" + integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/template" "^7.24.7" + +"@babel/plugin-transform-destructuring@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz#c828e814dbe42a2718a838c2a2e16a408e055550" + integrity sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-dotall-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" + integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-keys@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" + integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz#809af7e3339466b49c034c683964ee8afb3e2604" + integrity sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-dynamic-import@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" + integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" + integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-export-namespace-from@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" + integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-flow-strip-types@^7.16.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz#b3aa251db44959b7a7c82abcd6b4225dec7d2258" + integrity sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-syntax-flow" "^7.24.7" + +"@babel/plugin-transform-for-of@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" + integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-function-name@^7.25.1": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz#b85e773097526c1a4fc4ba27322748643f26fc37" + integrity sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA== + dependencies: + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.1" + +"@babel/plugin-transform-json-strings@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" + integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz#deb1ad14fc5490b9a65ed830e025bca849d8b5f3" + integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" + integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" + integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-amd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" + integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c" + integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== + dependencies: + "@babel/helper-module-transforms" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-simple-access" "^7.24.7" + +"@babel/plugin-transform-modules-systemjs@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33" + integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw== + dependencies: + "@babel/helper-module-transforms" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-transform-modules-umd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" + integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" + integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-new-target@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" + integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" + integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" + integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" + integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== + dependencies: + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.7" + +"@babel/plugin-transform-object-super@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" + integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + +"@babel/plugin-transform-optional-catch-binding@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" + integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" + integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" + integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-methods@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" + integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-property-in-object@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" + integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" + integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-react-constant-elements@^7.9.0": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz#71a665ed16ce618067d05f4a98130207349d82ae" + integrity sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz#9caff79836803bc666bcfe210aeb6626230c293b" + integrity sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-react-jsx-development@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz#eaee12f15a93f6496d852509a850085e6361470b" + integrity sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.24.7" + +"@babel/plugin-transform-react-jsx@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz#e37e8ebfa77e9f0b16ba07fadcb6adb47412227a" + integrity sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/types" "^7.25.2" + +"@babel/plugin-transform-react-pure-annotations@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz#bdd9d140d1c318b4f28b29a00fb94f97ecab1595" + integrity sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-regenerator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" + integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" + integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-runtime@^7.16.0", "@babel/plugin-transform-runtime@^7.16.4": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz#00a5bfaf8c43cf5c8703a8a6e82b59d9c58f38ca" + integrity sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.1" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" + integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" + integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-sticky-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" + integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-template-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" + integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-typeof-symbol@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz#383dab37fb073f5bfe6e60c654caac309f92ba1c" + integrity sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-typescript@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add" + integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-typescript" "^7.24.7" + +"@babel/plugin-transform-unicode-escapes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" + integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-property-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" + integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" + integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" + integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/preset-env@^7.16.0", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.8.4", "@babel/preset-env@^7.9.5": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.3.tgz#0bf4769d84ac51d1073ab4a86f00f30a3a83c67c" + integrity sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-option" "^7.24.8" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.3" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.0" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.0" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.7" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.7" + "@babel/plugin-transform-async-generator-functions" "^7.25.0" + "@babel/plugin-transform-async-to-generator" "^7.24.7" + "@babel/plugin-transform-block-scoped-functions" "^7.24.7" + "@babel/plugin-transform-block-scoping" "^7.25.0" + "@babel/plugin-transform-class-properties" "^7.24.7" + "@babel/plugin-transform-class-static-block" "^7.24.7" + "@babel/plugin-transform-classes" "^7.25.0" + "@babel/plugin-transform-computed-properties" "^7.24.7" + "@babel/plugin-transform-destructuring" "^7.24.8" + "@babel/plugin-transform-dotall-regex" "^7.24.7" + "@babel/plugin-transform-duplicate-keys" "^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.0" + "@babel/plugin-transform-dynamic-import" "^7.24.7" + "@babel/plugin-transform-exponentiation-operator" "^7.24.7" + "@babel/plugin-transform-export-namespace-from" "^7.24.7" + "@babel/plugin-transform-for-of" "^7.24.7" + "@babel/plugin-transform-function-name" "^7.25.1" + "@babel/plugin-transform-json-strings" "^7.24.7" + "@babel/plugin-transform-literals" "^7.25.2" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" + "@babel/plugin-transform-member-expression-literals" "^7.24.7" + "@babel/plugin-transform-modules-amd" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.8" + "@babel/plugin-transform-modules-systemjs" "^7.25.0" + "@babel/plugin-transform-modules-umd" "^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" + "@babel/plugin-transform-new-target" "^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" + "@babel/plugin-transform-numeric-separator" "^7.24.7" + "@babel/plugin-transform-object-rest-spread" "^7.24.7" + "@babel/plugin-transform-object-super" "^7.24.7" + "@babel/plugin-transform-optional-catch-binding" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.8" + "@babel/plugin-transform-parameters" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.24.7" + "@babel/plugin-transform-private-property-in-object" "^7.24.7" + "@babel/plugin-transform-property-literals" "^7.24.7" + "@babel/plugin-transform-regenerator" "^7.24.7" + "@babel/plugin-transform-reserved-words" "^7.24.7" + "@babel/plugin-transform-shorthand-properties" "^7.24.7" + "@babel/plugin-transform-spread" "^7.24.7" + "@babel/plugin-transform-sticky-regex" "^7.24.7" + "@babel/plugin-transform-template-literals" "^7.24.7" + "@babel/plugin-transform-typeof-symbol" "^7.24.8" + "@babel/plugin-transform-unicode-escapes" "^7.24.7" + "@babel/plugin-transform-unicode-property-regex" "^7.24.7" + "@babel/plugin-transform-unicode-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.37.1" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.16.0", "@babel/preset-react@^7.9.4": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.7.tgz#480aeb389b2a798880bf1f889199e3641cbb22dc" + integrity sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-transform-react-display-name" "^7.24.7" + "@babel/plugin-transform-react-jsx" "^7.24.7" + "@babel/plugin-transform-react-jsx-development" "^7.24.7" + "@babel/plugin-transform-react-pure-annotations" "^7.24.7" + +"@babel/preset-typescript@^7.16.0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" + integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-typescript" "^7.24.7" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime-corejs3@^7.10.2": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.25.0.tgz#0a318b66dfc765ad10562d829fea372ed7e1eb7d" + integrity sha512-BOehWE7MgQ8W8Qn0CQnMtg2tHPHPulcS/5AVpFvs2KCK1ET+0WqZqPvnpRpFN81gYoFopdIEJX9Sgjw3ZBccPg== + dependencies: + core-js-pure "^3.30.2" + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.16.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" + integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.24.7", "@babel/template@^7.25.0", "@babel/template@^7.3.3": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3", "@babel/traverse@^7.7.0": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.3.tgz#f1b901951c83eda2f3e29450ce92743783373490" + integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.3" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.2" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125" + integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + +"@csstools/normalize.css@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" + integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@fortawesome/fontawesome-common-types@6.6.0": + version "6.6.0" + resolved "https://npm.fontawesome.com/@fortawesome/fontawesome-common-types/-/6.6.0/fontawesome-common-types-6.6.0.tgz#31ab07ca6a06358c5de4d295d4711b675006163f" + integrity sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw== + +"@fortawesome/fontawesome-pro@^6.2.1": + version "6.6.0" + resolved "https://npm.fontawesome.com/@fortawesome/fontawesome-pro/-/6.6.0/fontawesome-pro-6.6.0.tgz#be3e1f5745b94077b361204bd3d1bae2ab127334" + integrity sha512-I1Fp+yiUYrK0q0UMoO0o9ZEGa0CWhqr0UibM/gcrKl40uYUkVmSemQJPV8+uOJgo4dnOHnTOqIL0r6kcH2hZlQ== + +"@fortawesome/fontawesome-svg-core@^6.2.1": + version "6.6.0" + resolved "https://npm.fontawesome.com/@fortawesome/fontawesome-svg-core/-/6.6.0/fontawesome-svg-core-6.6.0.tgz#2a24c32ef92136e98eae2ff334a27145188295ff" + integrity sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg== + dependencies: + "@fortawesome/fontawesome-common-types" "6.6.0" + +"@fortawesome/free-brands-svg-icons@^6.2.1": + version "6.6.0" + resolved "https://npm.fontawesome.com/@fortawesome/free-brands-svg-icons/-/6.6.0/free-brands-svg-icons-6.6.0.tgz#2797f2cc66d21e7e47fa64e680b8835e8d30e825" + integrity sha512-1MPD8lMNW/earme4OQi1IFHtmHUwAKgghXlNwWi9GO7QkTfD+IIaYpIai4m2YJEzqfEji3jFHX1DZI5pbY/biQ== + dependencies: + "@fortawesome/fontawesome-common-types" "6.6.0" + +"@fortawesome/pro-light-svg-icons@^6.2.1": + version "6.6.0" + resolved "https://npm.fontawesome.com/@fortawesome/pro-light-svg-icons/-/6.6.0/pro-light-svg-icons-6.6.0.tgz#ac749aba5533a84fbfb9ce4d3067915ec34c367e" + integrity sha512-Seq2iIAcOO48VbOSBH1sS7Yr4PqXQ9ZQwua5YrJ5Gg+ESZagKrWIYT4iYg4HOFfZcZ7KdchedJ1go2MXuDahlA== + dependencies: + "@fortawesome/fontawesome-common-types" "6.6.0" + +"@fortawesome/pro-regular-svg-icons@^6.2.1": + version "6.6.0" + resolved "https://npm.fontawesome.com/@fortawesome/pro-regular-svg-icons/-/6.6.0/pro-regular-svg-icons-6.6.0.tgz#b16ca3be86eb73834263f8664d1a3b7f64627a68" + integrity sha512-T6ifZKYhLrEOWD2sOdqyJBblSSg5WqhtlmcVWhWViKTt2ZDqw9WstW/lG2jQK9hv5S5tqJwruab6XUPQEZqs5A== + dependencies: + "@fortawesome/fontawesome-common-types" "6.6.0" + +"@fortawesome/pro-solid-svg-icons@^6.2.1": + version "6.6.0" + resolved "https://npm.fontawesome.com/@fortawesome/pro-solid-svg-icons/-/6.6.0/pro-solid-svg-icons-6.6.0.tgz#e4f99d9b674288c3d1ccbec27b37e008bd190ca1" + integrity sha512-IwYuyO+i681arIxOjPUoqRwoHeTqeg6i2s5rY2WbZ1R7PnwavOd1+aPHCJlfU2k8l5LZ+u3hAKlVqu+emQFlZg== + dependencies: + "@fortawesome/fontawesome-common-types" "6.6.0" + +"@fortawesome/react-fontawesome@^0.2.0": + version "0.2.2" + resolved "https://npm.fontawesome.com/@fortawesome/react-fontawesome/-/0.2.2/react-fontawesome-0.2.2.tgz#68b058f9132b46c8599875f6a636dad231af78d4" + integrity sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g== + dependencies: + prop-types "^15.8.1" + +"@fullhuman/postcss-purgecss@^2.1.2": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-2.3.0.tgz#50a954757ec78696615d3e118e3fee2d9291882e" + integrity sha512-qnKm5dIOyPGJ70kPZ5jiz0I9foVOic0j+cOzNDoo8KoCf6HjicIZ99UfO2OmE7vCYSKAAepEwJtNzpiiZAh9xw== + dependencies: + postcss "7.0.32" + purgecss "^2.3.0" + +"@gar/promisify@^1.0.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^15.1.0": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.0", "@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.0", "@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.0", "@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.0", "@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@pmmmwh/react-refresh-webpack-plugin@0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.2.tgz#1f9741e0bde9790a0e13272082ed7272a083620d" + integrity sha512-Loc4UDGutcZ+Bd56hBInkm6JyjyCwWy4t2wcDXzN8EDPANgVRj0VP8Nxn0Zq2pc+WKauZwEivQgbDGg4xZO20A== + dependencies: + ansi-html "^0.0.7" + error-stack-parser "^2.0.6" + html-entities "^1.2.1" + native-url "^0.2.6" + schema-utils "^2.6.5" + source-map "^0.7.3" + +"@restart/hooks@^0.4.5": + version "0.4.16" + resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.16.tgz#95ae8ac1cc7e2bd4fed5e39800ff85604c6d59fb" + integrity sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w== + dependencies: + dequal "^2.0.3" + +"@rollup/plugin-node-resolve@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" + integrity sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q== + dependencies: + "@rollup/pluginutils" "^3.0.8" + "@types/resolve" "0.0.8" + builtin-modules "^3.1.0" + is-module "^1.0.0" + resolve "^1.14.2" + +"@rollup/plugin-replace@^2.3.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" + integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^1.7.0": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@surma/rollup-plugin-off-main-thread@^1.1.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58" + integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A== + dependencies: + ejs "^2.6.1" + magic-string "^0.25.0" + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== + +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + +"@svgr/core@^5.4.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== + dependencies: + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" + +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== + dependencies: + "@babel/types" "^7.12.6" + +"@svgr/plugin-jsx@^5.4.0", "@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== + dependencies: + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^5.4.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== + dependencies: + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" + svgo "^1.2.2" + +"@svgr/webpack@5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.4.0.tgz#b68bc86e29cf007292b96ced65f80971175632e0" + integrity sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg== + dependencies: + "@babel/core" "^7.9.0" + "@babel/plugin-transform-react-constant-elements" "^7.9.0" + "@babel/preset-env" "^7.9.5" + "@babel/preset-react" "^7.9.4" + "@svgr/core" "^5.4.0" + "@svgr/plugin-jsx" "^5.4.0" + "@svgr/plugin-svgo" "^5.4.0" + loader-utils "^2.0.0" + +"@testing-library/dom@^7.28.1": + version "7.31.2" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" + integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + chalk "^4.1.0" + dom-accessibility-api "^0.5.6" + lz-string "^1.4.4" + pretty-format "^26.6.2" + +"@testing-library/jest-dom@^5.11.4": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz#5e97c8f9a15ccf4656da00fecab505728de81e0c" + integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== + dependencies: + "@adobe/css-tools" "^4.0.1" + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.5.6" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/react@^11.1.0": + version "11.2.7" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-11.2.7.tgz#b29e2e95c6765c815786c0bc1d5aed9cb2bf7818" + integrity sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^7.28.1" + +"@testing-library/user-event@^12.1.10": + version "12.8.3" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-12.8.3.tgz#1aa3ed4b9f79340a1e1836bc7f57c501e838704a" + integrity sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ== + dependencies: + "@babel/runtime" "^7.12.5" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/aria-query@^4.2.0": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" + integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== + dependencies: + "@babel/types" "^7.20.7" + +"@types/classnames@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.3.1.tgz#3c2467aa0f1a93f1f021e3b9bcf938bd5dfdc0dd" + integrity sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A== + dependencies: + classnames "*" + +"@types/eslint@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" + integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/html-minifier-terser@^5.0.0": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" + integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@*": + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/jest@^26.0.15": + version "26.0.24" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/lodash@^4.14.191": + version "4.17.7" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612" + integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/node@*": + version "22.1.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b" + integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw== + dependencies: + undici-types "~6.13.0" + +"@types/node@^12.0.0": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/prettier@^2.0.0": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/q@^1.5.1": + version "1.5.8" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== + +"@types/react-dom@^16.9.8": + version "16.9.24" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.24.tgz#4d193d7d011267fca842e8a10a2d738f92ec5c30" + integrity sha512-Gcmq2JTDheyWn/1eteqyzzWKSqDjYU6KYsIvH7thb7CR5OYInAWOX+7WnKf6PaU/cbdOc4szJItcDEJO7UGmfA== + dependencies: + "@types/react" "^16" + +"@types/react-timeago@^4.1.3": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/react-timeago/-/react-timeago-4.1.7.tgz#0c589e329180ce2cbfba1fd54904613152d841b7" + integrity sha512-ogD4Ror/hDG+pQggCX+TgPgJ8W2jeeUxsgNU485Qpm0Ma+E2TND2EJuKwK5+sxlkDXDEgsHradO0zWBkTgLzNg== + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.4.4": + version "4.4.10" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" + integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@>=16.9.11": + version "18.3.3" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" + integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/react@^16", "@types/react@^16.9.53": + version "16.14.60" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.60.tgz#f7ab62a329b82826f12d02bc8031d4ef4b5e0d81" + integrity sha512-wIFmnczGsTcgwCBeIYOuy2mdXEiKZ5znU/jNOnMZPQyCcIxauMGWlX0TNG4lZ7NxRKj7YUIZRneJQSSdB2jKgg== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "^0.16" + csstype "^3.0.2" + +"@types/resolve@0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" + integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== + dependencies: + "@types/node" "*" + +"@types/scheduler@^0.16": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + +"@types/source-list-map@*": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.6.tgz#164e169dd061795b50b83c19e4d3be09f8d3a454" + integrity sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g== + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/tapable@^1", "@types/tapable@^1.0.5": + version "1.0.12" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.12.tgz#bc2cab12e87978eee89fb21576b670350d6d86ab" + integrity sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q== + +"@types/testing-library__jest-dom@^5.9.1": + version "5.14.9" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz#0fb1e6a0278d87b6737db55af5967570b67cb466" + integrity sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw== + dependencies: + "@types/jest" "*" + +"@types/uglify-js@*": + version "3.17.5" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.5.tgz#905ce03a3cbbf2e31cbefcbc68d15497ee2e17df" + integrity sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ== + dependencies: + source-map "^0.6.1" + +"@types/webpack-sources@*": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.3.tgz#b667bd13e9fa15a9c26603dce502c7985418c3d8" + integrity sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4.41.8": + version "4.41.39" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.39.tgz#ab6feaeef8e074d0b584bbe4a4e2dc604b58eed7" + integrity sha512-otxUJvoi6FbBq/64gGH34eblpKLgdi+gf08GaAh8Bx6So0ZZic028Ev/SUxD22gbthMKCkeeiXEat1kHLDJfYg== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^15.0.0": + version "15.0.19" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.19.tgz#328fb89e46109ecbdb70c295d96ff2f46dfd01b9" + integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^17.0.8": + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^4.5.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== + dependencies: + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/experimental-utils@^3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" + integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/typescript-estree" "3.10.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.5.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== + dependencies: + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" + integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" + integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== + dependencies: + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/visitor-keys" "3.10.1" + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" + integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== + dependencies: + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webstollen/react-jtl-plugin@^3.0.12": + version "3.0.14" + resolved "https://gitlab.webstollen.de/api/v4/projects/444/packages/npm/@webstollen/react-jtl-plugin/-/@webstollen/react-jtl-plugin-3.0.14.tgz#d23345bb18868b025ec21076786702ec49a5e1bf" + integrity sha1-0jNFuxiGiwJewhB2eGcC7Eml4b8= + dependencies: + axios "^0.21.0" + html-entities "^1.3.1" + jquery "^3.5.1" + lodash "^4.17.20" + moment "^2.29.1" + react-modal "^3.16.1" + react-responsive-carousel "^3.2.23" + react-widgets "^5.8.4" + tailwindcss "^1.9.4" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-node@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0, acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.2.4, acorn@^8.8.2: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +address@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +address@^1.0.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +adjust-sourcemap-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" + integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html@0.0.7, ansi-html@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +aria-query@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +aria-query@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.findlastindex@^1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz#6aadc2f995af29cb887eb866d981dc85ab6f7dc7" + integrity sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-array-method-boxes-properly "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + is-string "^1.0.7" + +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1.js@^4.10.1: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assert@^1.1.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.1.tgz#038ab248e4ff078e7bc2485ba6e6388466c78f76" + integrity sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A== + dependencies: + object.assign "^4.1.4" + util "^0.10.4" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" + integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== + +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^8.6.5: + version "8.6.5" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.6.5.tgz#343f3d193ed568b3208e00117a1b96eb691d4ee9" + integrity sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig== + dependencies: + browserslist "^3.2.8" + caniuse-lite "^1.0.30000864" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.23" + postcss-value-parser "^3.2.3" + +autoprefixer@^9.4.5, autoprefixer@^9.6.1: + version "9.8.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" + integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + picocolors "^0.2.1" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.1.tgz#bb5f8b8a20739f6ae1caeaf7eea2c7913df8048e" + integrity sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA== + +axe-core@^4.9.1: + version "4.10.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" + integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== + +axios@^0.21.0: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +axobject-query@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" + +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-extract-comments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" + integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== + dependencies: + babylon "^6.18.0" + +babel-jest@^26.6.0, babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-loader@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-plugin-istanbul@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +babel-plugin-named-asset-import@^0.3.7: + version "0.3.8" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" + integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" + integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + core-js-compat "^3.38.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w== + +babel-plugin-transform-object-rest-spread@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + integrity sha512-ocgA9VJvyxwt+qJB0ncxV8kb/CjfTcECUY4tQ5VT7nP6Aohzobm8CDFaQ5FHdvZQzLmf0sgDxB8iRXZXxwZcyA== + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-react-remove-prop-types@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +babel-preset-react-app@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz#ed6005a20a24f2c88521809fa9aea99903751584" + integrity sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg== + dependencies: + "@babel/core" "^7.16.0" + "@babel/plugin-proposal-class-properties" "^7.16.0" + "@babel/plugin-proposal-decorators" "^7.16.4" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" + "@babel/plugin-proposal-numeric-separator" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-private-methods" "^7.16.0" + "@babel/plugin-transform-flow-strip-types" "^7.16.0" + "@babel/plugin-transform-react-display-name" "^7.16.0" + "@babel/plugin-transform-runtime" "^7.16.4" + "@babel/preset-env" "^7.16.4" + "@babel/preset-react" "^7.16.0" + "@babel/preset-typescript" "^7.16.0" + "@babel/runtime" "^7.16.3" + babel-plugin-macros "^3.1.0" + babel-plugin-transform-react-remove-prop-types "^0.4.24" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.0.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +bfj@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.1.0.tgz#c5177d522103f9040e1b12980fe8c38cf41d3f8b" + integrity sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw== + dependencies: + bluebird "^3.7.2" + check-types "^11.2.3" + hoopy "^0.1.4" + jsonpath "^1.1.1" + tryer "^1.0.1" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ== + dependencies: + inherits "~2.0.0" + +bluebird@^3.5.5, bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.3.tgz#7afe4c01ec7ee59a89a558a4b75bd85ae62d4208" + integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== + dependencies: + bn.js "^5.2.1" + browserify-rsa "^4.1.0" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.5" + hash-base "~3.0" + inherits "^2.0.4" + parse-asn1 "^5.1.7" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@4.14.2: + version "4.14.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce" + integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw== + dependencies: + caniuse-lite "^1.0.30001125" + electron-to-chromium "^1.3.564" + escalade "^3.0.2" + node-releases "^1.1.61" + +browserslist@^3.2.8: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.23.1, browserslist@^4.23.3, browserslist@^4.6.2, browserslist@^4.6.4: + version "4.23.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== + dependencies: + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2, bytes@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^15.0.5: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + dependencies: + "@npmcli/fs" "^1.0.0" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ== + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw== + +camelcase@^6.0.0, camelcase@^6.1.0, camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001646: + version "1.0.30001650" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz#dd1eba0938e39536d184c3c99b2569a13788bc16" + integrity sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" + integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +"chalk@^3.0.0 || ^4.0.0", chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +check-types@^11.2.3: + version "11.2.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.3.tgz#1ffdf68faae4e941fce252840b1787b8edc93b71" + integrity sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg== + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.3.0, chokidar@^3.4.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@*, classnames@^2.2.5, classnames@^2.3.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +clean-css@^4.2.3: + version "4.2.4" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0, color@^3.1.2: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +common-tags@^1.8.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +component-emitter@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg== + dependencies: + arity-n "^1.0.4" + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +confusing-browser-globals@^1.0.10: + version "1.0.11" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg== + +convert-source-map@^1.4.0, convert-source-map@^1.6.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +core-js-compat@^3.37.1, core-js-compat@^3.38.0: + version "3.38.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.0.tgz#d93393b1aa346b6ee683377b0c31172ccfe607aa" + integrity sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A== + dependencies: + browserslist "^4.23.3" + +core-js-pure@^3.30.2: + version "3.38.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.38.0.tgz#bc802cd152e33d5b0ec733b656c71cb847cac701" + integrity sha512-8balb/HAXo06aHP58mZMtXgD8vcnXz9tUDePgqBgJgKdmTlMt+jw3ujqniuBDQXMvTzxnMpxHFeuSM3g1jWQuQ== + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.6.5: + version "3.38.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.38.0.tgz#8acb7c050bf2ccbb35f938c0d040132f6110f636" + integrity sha512-XPpwqEodRljce9KswjZShh95qJ1URisBeKCjUdq27YdenkslVe7OO0ZJhlYXAChW7OhXaRLl8AAba7IBfoIHug== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cosmiconfig@^8.3.5: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + integrity sha512-eZ+m1WNhSZutOa/uRblAc9Ut5MQfukFrFMtPSm3bZCA888NmMd5AWXWdgRZ80zd+pTk1P2JrGjg9pUPTvl2PWQ== + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg== + +css-blank-pseudo@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + dependencies: + postcss "^7.0.5" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-has-pseudo@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^5.0.0-rc.4" + +css-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" + integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== + dependencies: + camelcase "^6.0.0" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^2.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.3" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.1" + semver "^7.3.2" + +css-prefers-color-scheme@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + dependencies: + postcss "^7.0.5" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-unit-converter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21" + integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssdb@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.3" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng== + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3" + integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== + +d@1, d@^1.0.1, d@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +date-arithmetic@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/date-arithmetic/-/date-arithmetic-4.1.0.tgz#e5d6434e9deb71f79760a37b729e4a515e730ddf" + integrity sha512-QWxYLR5P/6GStZcdem+V1xoto6DMadYWpMXU82ES3/RfR3Wdwr3D0+be7mgOJ+Ov0G9D5Dmb9T17sNLQYj9XOg== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + +debug@^3.2.5, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decimal.js@^10.2.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-equal@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" + integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== + dependencies: + is-arguments "^1.1.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + object-is "^1.1.5" + object-keys "^1.1.1" + regexp.prototype.flags "^1.5.1" + +deep-equal@^2.0.5: + version "2.2.3" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" + integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.5" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.2" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.13" + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dependency-graph@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" + integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +des.js@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detective@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" + integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== + dependencies: + acorn-node "^1.8.2" + defined "^1.0.0" + minimist "^1.2.6" + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== + dependencies: + buffer-indexof "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.5.6: + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1, dom-helpers@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.564, electron-to-chromium@^1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz#03bfdf422bdd2c05ee2657efedde21264a1a566b" + integrity sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA== + +elliptic@^6.5.3, elliptic@^6.5.5: + version "6.5.6" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.6.tgz#ee5f7c3a00b98a2144ac84d67d01f04d438fa53e" + integrity sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.5: + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + dependencies: + ansi-colors "^4.1.1" + strip-ansi "^6.0.1" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.1.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + +es-abstract@^1.17.2, es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-iterator-helpers@^1.0.19: + version "1.0.19" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8" + integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + iterator.prototype "^1.1.2" + safe-array-concat "^1.1.2" + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14: + version "0.10.64" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" + +es6-iterator@2.0.3, es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + +escalade@^3.0.2, escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-react-app@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz#ccff9fc8e36b322902844cbd79197982be355a0e" + integrity sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A== + dependencies: + confusing-browser-globals "^1.0.10" + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== + dependencies: + debug "^3.2.7" + +eslint-plugin-flowtype@^5.2.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz#7764cc63940f215bf3f0bd2d9a1293b2b9b2b4bb" + integrity sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw== + dependencies: + lodash "^4.17.15" + string-natural-compare "^3.0.1" + +eslint-plugin-import@^2.22.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-jest@^24.1.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz#206ac0833841e59e375170b15f8d0955219c4889" + integrity sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA== + dependencies: + "@typescript-eslint/experimental-utils" "^4.0.1" + +eslint-plugin-jsx-a11y@^6.3.1: + version "6.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz#67ab8ff460d4d3d6a0b4a570e9c1670a0a8245c8" + integrity sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g== + dependencies: + aria-query "~5.1.3" + array-includes "^3.1.8" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "^4.9.1" + axobject-query "~3.1.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + es-iterator-helpers "^1.0.19" + hasown "^2.0.2" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + safe-regex-test "^1.0.3" + string.prototype.includes "^2.0.0" + +eslint-plugin-react-hooks@^4.2.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" + integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== + +eslint-plugin-react@^7.21.5: + version "7.35.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz#00b1e4559896710e58af6358898f2ff917ea4c41" + integrity sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.2" + array.prototype.tosorted "^1.1.4" + doctrine "^2.1.0" + es-iterator-helpers "^1.0.19" + estraverse "^5.3.0" + hasown "^2.0.2" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.8" + object.fromentries "^2.0.8" + object.values "^1.2.0" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.11" + string.prototype.repeat "^1.0.0" + +eslint-plugin-testing-library@^3.9.2: + version "3.10.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.2.tgz#609ec2b0369da7cf2e6d9edff5da153cc31d87bd" + integrity sha512-WAmOCt7EbF1XM8XfbCKAEzAPnShkNSwcIsAD2jHdsMUT9mZJPjLCG7pMzbcC8kK366NOuGip8HKLDC+Xk4yIdA== + dependencies: + "@typescript-eslint/experimental-utils" "^3.10.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-webpack-plugin@^2.1.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.7.0.tgz#0525793a4f8c652c1c6d863995ce1e0f2dcbd143" + integrity sha512-bNaVVUvU4srexGhVcayn/F4pJAz19CWBkKoMx7aSQ4wtTbZQCnG5O9LHCE42mM+JSKOUp7n6vd5CIwzj7lOVGA== + dependencies: + "@types/eslint" "^7.29.0" + arrify "^2.0.1" + jest-worker "^27.5.1" + micromatch "^4.0.5" + normalize-path "^3.0.0" + schema-utils "^3.1.1" + +eslint@^7.11.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +eventsource@^1.0.7: + version "1.1.2" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.2.tgz#bc75ae1c60209e7cb1541231980460343eaea7c2" + integrity sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exenv@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^26.6.0, expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +expect@^29.0.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +express@^4.17.1: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1, fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ== + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.1.tgz#a6f29dfb3f5933a1c350b2dbaa20ac5be0539baa" + integrity sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" + integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0, follow-redirects@^1.14.0: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +fork-ts-checker-webpack-plugin@4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" + integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== + dependencies: + "@babel/code-frame" "^7.5.5" + chalk "^2.4.1" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^11.0.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.0.0, fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.1.2, fsevents@^2.1.3, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +fstream@^1.0.0, fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== + +get-stdin@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" + integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~7.1.1: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^13.0.0: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globule@^1.0.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.4.tgz#7c11c43056055a75a6e68294453c17f2796170fb" + integrity sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg== + dependencies: + glob "~7.1.1" + lodash "^4.17.21" + minimatch "~3.0.2" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== + +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +harmony-reflect@^1.4.6: + version "1.6.2" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" + integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash-base@~3.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.1.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^1.2.1, html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-tags@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +html-webpack-plugin@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c" + integrity sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + "@types/tapable" "^1.0.5" + "@types/webpack" "^4.41.8" + html-minifier-terser "^5.0.1" + loader-utils "^1.2.3" + lodash "^4.17.15" + pretty-error "^2.1.1" + tapable "^1.1.3" + util.promisify "1.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== + dependencies: + harmony-reflect "^1.4.6" + +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0, ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +immer@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" + integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== + dependencies: + resolve-from "^3.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +in-publish@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" + integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ== + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg== + dependencies: + repeating "^2.0.0" + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.4, internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== + +ip@^1.1.0, ip@^1.1.5: + version "1.1.9" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" + integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== + dependencies: + hasown "^2.0.0" + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.0.0, is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" + integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== + dependencies: + hasown "^2.0.2" + +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-map@^2.0.2, is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-set@^2.0.2, is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-circus@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-26.6.0.tgz#7d9647b2e7f921181869faae1f90a2629fd70705" + integrity sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.0" + "@jest/test-result" "^26.6.0" + "@jest/types" "^26.6.0" + "@types/babel__traverse" "^7.0.4" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^26.6.0" + is-generator-fn "^2.0.0" + jest-each "^26.6.0" + jest-matcher-utils "^26.6.0" + jest-message-util "^26.6.0" + jest-runner "^26.6.0" + jest-runtime "^26.6.0" + jest-snapshot "^26.6.0" + jest-util "^26.6.0" + pretty-format "^26.6.0" + stack-utils "^2.0.2" + throat "^5.0.0" + +jest-cli@^26.6.0: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.0, jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.0, jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^26.6.0, jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.0.tgz#070fe7159af87b03e50f52ea5e17ee95bbee40e1" + integrity sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ== + dependencies: + "@jest/types" "^26.6.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.0" + read-pkg-up "^7.0.1" + resolve "^1.17.0" + slash "^3.0.0" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.0, jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.0, jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.0, jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.6.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watch-typeahead@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz#45221b86bb6710b7e97baaa1640ae24a07785e63" + integrity sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + jest-regex-util "^26.0.0" + jest-watcher "^26.3.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + +jest-watcher@^26.3.0, jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^26.5.0, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.0.tgz#546b25a1d8c888569dbbe93cae131748086a4a25" + integrity sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA== + dependencies: + "@jest/core" "^26.6.0" + import-local "^3.0.2" + jest-cli "^26.6.0" + +jiti@^1.20.0: + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== + +jquery@^3.5.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" + integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== + +js-base64@^2.1.8: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsdom@^16.4.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^1.0.1, json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonpath@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" + integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== + dependencies: + esprima "1.2.2" + static-eval "2.0.2" + underscore "1.12.1" + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +language-subtag-registry@^0.3.20: + version "0.3.23" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7" + integrity sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ== + +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== + dependencies: + language-subtag-registry "^0.3.20" + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lilconfig@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loglevel@^1.6.8: + version "1.9.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" + integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ== + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.4.4: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA== + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +"mime-db@>= 1.43.0 < 2": + version "1.53.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" + integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-css-extract-plugin@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" + integrity sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +mini-css-extract-plugin@^1.3.6: + version "1.6.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz#83172b4fd812f8fc4a09d6f6d16f924f53990ca8" + integrity sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@~3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" + integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +moment@^2.29.1: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +nan@^2.12.1, nan@^2.13.2: + version "2.20.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" + integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +native-url@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" + integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== + dependencies: + querystring "^0.2.0" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-emoji@^1.8.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== + dependencies: + lodash "^4.17.21" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-gyp@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-releases@^1.1.61: + version "1.1.77" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" + integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== + +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +node-sass@^4.14.1: + version "4.14.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" + integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash "^4.17.15" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.13.2" + node-gyp "^3.8.0" + npmlog "^4.0.0" + request "^2.88.0" + sass-graph "2.2.5" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize.css@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" + integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== + +npm-run-all@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + +nwsapi@^2.2.0: + version "2.2.12" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.12.tgz#fb6af5c0ec35b27b4581eb3bbad34ec9e5c696f8" + integrity sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.4, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.0, object.entries@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +object.fromentries@^2.0.7, object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.8" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz#2f1fe0606ec1a7658154ccd4f728504f69667923" + integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== + dependencies: + array.prototype.reduce "^1.0.6" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + gopd "^1.0.1" + safe-array-concat "^1.1.2" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^7.0.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimize-css-assets-webpack-plugin@5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" + integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== + dependencies: + cssnano "^4.1.10" + last-call-webpack-plugin "^3.0.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +osenv@0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.7.tgz#73cdaaa822125f9647165625eb45f8a051d2df06" + integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== + dependencies: + asn1.js "^4.10.1" + browserify-aes "^1.2.0" + evp_bytestokey "^1.0.3" + hash-base "~3.0" + pbkdf2 "^3.1.2" + safe-buffer "^5.2.1" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6, path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3, pbkdf2@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +portfinder@^1.0.26: + version "1.0.32" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== + dependencies: + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-attribute-case-insensitive@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" + integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^6.0.2" + +postcss-browser-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz#1248d2d935fb72053c8e1f61a84a57292d9f65e9" + integrity sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig== + dependencies: + postcss "^7" + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-cli@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-10.1.0.tgz#f6658c4998a1c35bd66cd71009132b2d12e04f80" + integrity sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA== + dependencies: + chokidar "^3.3.0" + dependency-graph "^0.11.0" + fs-extra "^11.0.0" + get-stdin "^9.0.0" + globby "^13.0.0" + picocolors "^1.0.0" + postcss-load-config "^4.0.0" + postcss-reporter "^7.0.0" + pretty-hrtime "^1.0.3" + read-cache "^1.0.0" + slash "^5.0.0" + yargs "^17.0.0" + +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-gray@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-color-hex-alpha@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + dependencies: + postcss "^7.0.14" + postcss-values-parser "^2.0.1" + +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-media@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + dependencies: + postcss "^7.0.14" + +postcss-custom-properties@^8.0.11: + version "8.0.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^2.0.1" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-double-position-gradients@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-flexbugs-fixes@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== + dependencies: + postcss "^7.0.26" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" + integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== + dependencies: + postcss "^7.0.2" + +postcss-functions@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e" + integrity sha512-N5yWXWKA+uhpLQ9ZhBRl2bIAdM6oVJYpDojuI1nF2SzXBimJcdjFwiAouBVbO5VuOF3qA6BSFWFc3wXbbj72XQ== + dependencies: + glob "^7.1.2" + object-assign "^4.1.1" + postcss "^6.0.9" + postcss-value-parser "^3.3.0" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-initial@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz#9d32069a10531fe2ecafa0b6ac750ee0bc7efc53" + integrity sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg== + dependencies: + postcss "^7.0.2" + +postcss-js@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz#a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9" + integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w== + dependencies: + camelcase-css "^2.0.1" + postcss "^7.0.18" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-load-config@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-loader@^7.0.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== + dependencies: + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + dependencies: + postcss "^7.0.2" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-nested@^4.1.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.3.tgz#c6f255b0a720549776d220d00c4b70cd244136f6" + integrity sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw== + dependencies: + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + +postcss-nesting@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-8.0.1.tgz#90e80a7763d7fdf2da6f2f0f82be832ce4f66776" + integrity sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ== + dependencies: + "@csstools/normalize.css" "^10.1.0" + browserslist "^4.6.2" + postcss "^7.0.17" + postcss-browser-comments "^3.0.0" + sanitize.css "^10.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" + integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + dependencies: + autoprefixer "^9.6.1" + browserslist "^4.6.4" + caniuse-lite "^1.0.30000981" + css-blank-pseudo "^0.1.4" + css-has-pseudo "^0.10.0" + css-prefers-color-scheme "^3.1.1" + cssdb "^4.4.0" + postcss "^7.0.17" + postcss-attribute-case-insensitive "^4.0.1" + postcss-color-functional-notation "^2.0.1" + postcss-color-gray "^5.0.0" + postcss-color-hex-alpha "^5.0.3" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.8" + postcss-custom-properties "^8.0.11" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-double-position-gradients "^1.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + dependencies: + postcss "^7.0.2" + +postcss-reporter@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-7.1.0.tgz#5ec476d224e2fe25a054e3c66d9b2901d4fab422" + integrity sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA== + dependencies: + picocolors "^1.0.0" + thenby "^1.3.4" + +postcss-safe-parser@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-5.0.2.tgz#459dd27df6bc2ba64608824ba39e45dacf5e852d" + integrity sha512-jDUfCPJbKOABhwpUKcqCVbbXiloe/QXMcbJ6Iipf3sDIihEzTqRCeMBfRaOHxhBuTYqtASrI1KJWxzztZU4qUQ== + dependencies: + postcss "^8.1.0" + +postcss-scss@^4.0.6: + version "4.0.9" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685" + integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-not@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" + integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz#5be94b277b8955904476a2400260002ce6c56e38" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@7.0.32: + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@7.0.36: + version "7.0.36" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" + integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^6.0.23, postcss@^6.0.9: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.11, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^8.1.0, postcss@^8.4.21: + version "8.4.41" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" + integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== + +prettier@^2.1.2: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-bytes@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-error@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-format@^26.0.0, pretty-format@^26.6.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-hrtime@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + +prompts@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types-extra@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" + integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew== + dependencies: + react-is "^16.3.2" + warning "^4.0.0" + +prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.28, psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +purgecss@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-2.3.0.tgz#5327587abf5795e6541517af8b190a6fb5488bb3" + integrity sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ== + dependencies: + commander "^5.0.0" + glob "^7.0.0" + postcss "7.0.32" + postcss-selector-parser "^6.0.2" + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@^6.12.3: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-app-polyfill@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz#a0bea50f078b8a082970a9d853dc34b6dcc6a3cf" + integrity sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA== + dependencies: + core-js "^3.6.5" + object-assign "^4.1.1" + promise "^8.1.0" + raf "^3.4.1" + regenerator-runtime "^0.13.7" + whatwg-fetch "^3.4.1" + +react-dev-utils@^11.0.0: + version "11.0.4" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" + integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A== + dependencies: + "@babel/code-frame" "7.10.4" + address "1.1.2" + browserslist "4.14.2" + chalk "2.4.2" + cross-spawn "7.0.3" + detect-port-alt "1.1.6" + escape-string-regexp "2.0.0" + filesize "6.1.0" + find-up "4.1.0" + fork-ts-checker-webpack-plugin "4.1.6" + global-modules "2.0.0" + globby "11.0.1" + gzip-size "5.1.1" + immer "8.0.1" + is-root "2.1.0" + loader-utils "2.0.0" + open "^7.0.2" + pkg-up "3.1.0" + prompts "2.4.0" + react-error-overlay "^6.0.9" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + strip-ansi "6.0.0" + text-table "0.2.0" + +react-dom@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-easy-swipe@^0.0.21: + version "0.0.21" + resolved "https://registry.yarnpkg.com/react-easy-swipe/-/react-easy-swipe-0.0.21.tgz#ce9384d576f7a8529dc2ca377c1bf03920bac8eb" + integrity sha512-OeR2jAxdoqUMHIn/nS9fgreI5hSpgGoL5ezdal4+oO7YSSgJR8ga+PkYGJrSrJ9MKlPcQjMQXnketrD7WNmNsg== + dependencies: + prop-types "^15.5.8" + +react-error-overlay@^6.0.9: + version "6.0.11" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + +react-is@^16.13.1, react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-modal@^3.16.1: + version "3.16.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b" + integrity sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg== + dependencies: + exenv "^1.2.0" + prop-types "^15.7.2" + react-lifecycles-compat "^3.0.0" + warning "^4.0.3" + +react-refresh@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" + integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== + +react-responsive-carousel@^3.2.23: + version "3.2.23" + resolved "https://registry.yarnpkg.com/react-responsive-carousel/-/react-responsive-carousel-3.2.23.tgz#4c0016ff54603e604bb5c1f9e7ef2d1eda133f1d" + integrity sha512-pqJLsBaKHWJhw/ItODgbVoziR2z4lpcJg+YwmRlSk4rKH32VE633mAtZZ9kDXjy4wFO+pgUZmDKPsPe1fPmHCg== + dependencies: + classnames "^2.2.5" + prop-types "^15.5.8" + react-easy-swipe "^0.0.21" + +react-router-dom@^5.2.0: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.3.4, react-router@^5.2.0: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-scripts@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-4.0.0.tgz#36f3d84ffff708ac0618fd61e71eaaea11c26417" + integrity sha512-icJ/ctwV5XwITUOupBP9TUVGdWOqqZ0H08tbJ1kVC5VpNWYzEZ3e/x8axhV15ZXRsixLo27snwQE7B6Zd9J2Tg== + dependencies: + "@babel/core" "7.12.3" + "@pmmmwh/react-refresh-webpack-plugin" "0.4.2" + "@svgr/webpack" "5.4.0" + "@typescript-eslint/eslint-plugin" "^4.5.0" + "@typescript-eslint/parser" "^4.5.0" + babel-eslint "^10.1.0" + babel-jest "^26.6.0" + babel-loader "8.1.0" + babel-plugin-named-asset-import "^0.3.7" + babel-preset-react-app "^10.0.0" + bfj "^7.0.2" + camelcase "^6.1.0" + case-sensitive-paths-webpack-plugin "2.3.0" + css-loader "4.3.0" + dotenv "8.2.0" + dotenv-expand "5.1.0" + eslint "^7.11.0" + eslint-config-react-app "^6.0.0" + eslint-plugin-flowtype "^5.2.0" + eslint-plugin-import "^2.22.1" + eslint-plugin-jest "^24.1.0" + eslint-plugin-jsx-a11y "^6.3.1" + eslint-plugin-react "^7.21.5" + eslint-plugin-react-hooks "^4.2.0" + eslint-plugin-testing-library "^3.9.2" + eslint-webpack-plugin "^2.1.0" + file-loader "6.1.1" + fs-extra "^9.0.1" + html-webpack-plugin "4.5.0" + identity-obj-proxy "3.0.0" + jest "26.6.0" + jest-circus "26.6.0" + jest-resolve "26.6.0" + jest-watch-typeahead "0.6.1" + mini-css-extract-plugin "0.11.3" + optimize-css-assets-webpack-plugin "5.0.4" + pnp-webpack-plugin "1.6.4" + postcss-flexbugs-fixes "4.2.1" + postcss-loader "3.0.0" + postcss-normalize "8.0.1" + postcss-preset-env "6.7.0" + postcss-safe-parser "5.0.2" + react-app-polyfill "^2.0.0" + react-dev-utils "^11.0.0" + react-refresh "^0.8.3" + resolve "1.18.1" + resolve-url-loader "^3.1.2" + sass-loader "8.0.2" + semver "7.3.2" + style-loader "1.3.0" + terser-webpack-plugin "4.2.3" + ts-pnp "1.2.0" + url-loader "4.1.1" + webpack "4.44.2" + webpack-dev-server "3.11.0" + webpack-manifest-plugin "2.2.0" + workbox-webpack-plugin "5.1.4" + optionalDependencies: + fsevents "^2.1.3" + +react-simple-snackbar@^1.1.11: + version "1.1.11" + resolved "https://registry.yarnpkg.com/react-simple-snackbar/-/react-simple-snackbar-1.1.11.tgz#e1470f49d04f8e1e941e62f459cca27d1b2167a1" + integrity sha512-l+RMkIoqnOXBQaQbirk4yGaEH5Jeynup/AQBGaq7hCPIIraOQi2RFVthZIM4Ms6sFtdSYxQ8emN4/jI30l7gXw== + dependencies: + "@babel/runtime" "^7.13.10" + react-transition-group "^4.4.1" + +react-timeago@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/react-timeago/-/react-timeago-6.2.1.tgz#f19716811156617ceb9c9f9a44315d85197c7fba" + integrity sha512-b9EObWO8wy4qwfOzj+g/RQZRrPvtMv1Pz12FCdAWKWCXbDGt0rZLyiyTGEr0Lh1O8w5xa48CtRpl3LI+CtGCyw== + +react-transition-group@^4.4.1, react-transition-group@^4.4.2: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react-widgets@^5.8.4: + version "5.8.4" + resolved "https://registry.yarnpkg.com/react-widgets/-/react-widgets-5.8.4.tgz#1c57c93cef7fabb88cd48c92a2a418f56553620d" + integrity sha512-WcA/K+eVKAW+vyeQKdRqo2gmnLqHbNSDDKQ84j/wyhbautCRrGbjWAmKb4+tI3OzUgCAAEJDZ75azAY2WoKWYQ== + dependencies: + "@restart/hooks" "^0.4.5" + "@types/classnames" "^2.3.1" + "@types/react-transition-group" "^4.4.4" + classnames "^2.3.1" + date-arithmetic "^4.0.1" + dom-helpers "^5.2.1" + prop-types-extra "^1.1.1" + react-transition-group "^4.4.2" + tiny-warning "^1.0.3" + uncontrollable "^7.2.1" + +react@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.8, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g== + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +reduce-css-calc@^2.1.6: + version "2.1.8" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" + integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg== + dependencies: + css-unit-converter "^1.1.1" + postcss-value-parser "^3.3.0" + +reflect.getprototypeof@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" + integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.7: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@^2.2.11: + version "2.3.0" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.3.0.tgz#4bb61461b1a19b8b913f3960364bb57887f920ee" + integrity sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg== + +regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== + dependencies: + is-finite "^1.0.0" + +request@^2.87.0, request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve-url-loader@^3.1.2: + version "3.1.5" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.5.tgz#1dce0847d4a2ef43c51f63c9fd30bf6dfbf26716" + integrity sha512-mgFMCmrV/tA4738EsFmPFE5/MaqSgUMe8LK971kVEKA/RrNVb7+VqFsg/qmKyythf34eyq476qIobP/gfFBGSQ== + dependencies: + adjust-sourcemap-loader "3.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "^1.2.3" + postcss "7.0.36" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve@1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + dependencies: + is-core-module "^2.0.0" + path-parse "^1.0.6" + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.5: + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha512-W6V2fix7nCLUYX1v6eGPrBOZlc03/faqzP4sUxMAJMBMOPYhfV/RyLegTufn5gJKaOITyi+gvf0LXDZ9NzkHnQ== + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha512-eEjL8FdkdsxApd0yWVZgBGzfCQiT8yqSc2H1p4jpZpQdtz7ohETiDMoje5PlM8I9WgkqkreVxFUKYOiJdVWDXw== + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== + +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup-plugin-babel@^4.3.3: + version "4.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb" + integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + rollup-pluginutils "^2.8.1" + +rollup-plugin-terser@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413" + integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w== + dependencies: + "@babel/code-frame" "^7.5.5" + jest-worker "^24.9.0" + rollup-pluginutils "^2.8.2" + serialize-javascript "^4.0.0" + terser "^4.6.2" + +rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@^1.31.1: + version "1.32.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" + integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== + dependencies: + "@types/estree" "*" + "@types/node" "*" + acorn "^7.1.0" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== + dependencies: + aproba "^1.1.1" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sanitize.css@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-10.0.0.tgz#b5cb2547e96d8629a60947544665243b1dc3657a" + integrity sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg== + +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^13.3.2" + +sass-loader@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== + dependencies: + clone-deep "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.6.1" + semver "^6.3.0" + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.7.0, schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0, schema-utils@^3.1.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + integrity sha512-dYE8LhncfBUar6POCxMTm0Ln+erjeczqEvCJib5/7XNkdw1FkUGgwMPY360FY0FgPWQxHWCx29Jl3oejyGLM9Q== + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^1.10.7: + version "1.10.14" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" + integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== + dependencies: + node-forge "^0.10.0" + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1, set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shell-quote@^1.6.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +slash@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" + integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.4.0" + websocket-driver "0.6.5" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A== + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.18" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326" + integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.2, stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + +static-eval@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" + integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== + dependencies: + escodegen "^1.8.1" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stdout-stream@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + dependencies: + readable-stream "^2.0.1" + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.includes@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz#8986d57aee66d5460c144620a6d873778ad7289f" + integrity sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.matchall@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" + integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + regexp.prototype.flags "^1.5.2" + set-function-name "^2.0.2" + side-channel "^1.0.6" + +string.prototype.padend@^3.0.0: + version "3.1.6" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz#ba79cf8992609a91c872daa47c6bb144ee7f62a5" + integrity sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" + integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== + dependencies: + babel-extract-comments "^1.0.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA== + dependencies: + get-stdin "^4.0.1" + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +style-loader@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" + integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.7.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^1.0.0, svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.9: + version "6.8.2" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" + integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tailwindcss@^1.9.4, tailwindcss@^1.9.6: + version "1.9.6" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.9.6.tgz#0c5089911d24e1e98e592a31bfdb3d8f34ecf1a0" + integrity sha512-nY8WYM/RLPqGsPEGEV2z63riyQPcHYZUJpAwdyBzVpxQHOHqHE+F/fvbCeXhdF1+TA5l72vSkZrtYCB9hRcwkQ== + dependencies: + "@fullhuman/postcss-purgecss" "^2.1.2" + autoprefixer "^9.4.5" + browserslist "^4.12.0" + bytes "^3.0.0" + chalk "^3.0.0 || ^4.0.0" + color "^3.1.2" + detective "^5.2.0" + fs-extra "^8.0.0" + html-tags "^3.1.0" + lodash "^4.17.20" + node-emoji "^1.8.1" + normalize.css "^8.0.1" + object-hash "^2.0.3" + postcss "^7.0.11" + postcss-functions "^3.0.0" + postcss-js "^2.0.0" + postcss-nested "^4.1.1" + postcss-selector-parser "^6.0.0" + postcss-value-parser "^4.1.0" + pretty-hrtime "^1.0.3" + reduce-css-calc "^2.1.6" + resolve "^1.14.2" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" + integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== + dependencies: + block-stream "*" + fstream "^1.0.12" + inherits "2" + +tar@^6.0.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== + +tempy@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" + integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== + dependencies: + temp-dir "^1.0.0" + type-fest "^0.3.1" + unique-string "^1.0.0" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.5.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.3.4" + webpack-sources "^1.4.3" + +terser-webpack-plugin@^1.4.3: + version "1.4.6" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz#87fcb6593fd1c977cd09e56143ecd31404600755" + integrity sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2, terser@^4.6.2, terser@^4.6.3: + version "4.8.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" + integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.3.4: + version "5.31.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.3.tgz#b24b7beb46062f4653f049eea4f0cd165d0f0c38" + integrity sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@0.2.0, text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenby@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/thenby/-/thenby-1.3.4.tgz#81581f6e1bb324c6dedeae9bfc28e59b1a2201cc" + integrity sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ== + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== + +tiny-invariant@^1.0.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tough-cookie@^4.0.0: + version "4.1.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw== + +"true-case-path@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== + dependencies: + glob "^7.1.2" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-pnp@1.2.0, ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tsutils@^3.17.1, tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^2.7.2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486" + integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typescript@~4.0.3: + version "4.0.8" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.8.tgz#5739105541db80a971fdbd0d56511d1a6f17d37f" + integrity sha512-oz1765PN+imfz1MlZzSZPtC/tqcwsCyIYA8L47EkRnRW97ztRk83SzMiWLrnChC0vqoYxSU1fcFUDA5gV/ZiPg== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +uncontrollable@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738" + integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ== + dependencies: + "@babel/runtime" "^7.6.3" + "@types/react" ">=16.9.11" + invariant "^2.2.4" + react-lifecycles-compat "^3.0.4" + +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + +undici-types@~6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5" + integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg== + dependencies: + crypto-random-string "^1.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1, upath@^1.1.2, upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-loader@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url-parse@^1.4.3, url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" + integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== + dependencies: + punycode "^1.4.1" + qs "^6.12.3" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@^0.10.4: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.4.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" + integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== + +v8-to-istanbul@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +warning@^4.0.0, warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-vitals@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.4.tgz#ec3df43c834a207fd7cdefd732b2987896e08511" + integrity sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" + integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.20" + sockjs-client "1.4.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-manifest-plugin@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz#19ca69b435b0baec7e29fbe90fb4015de2de4f16" + integrity sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ== + dependencies: + fs-extra "^7.0.0" + lodash ">=3.5 <5" + object.entries "^1.1.0" + tapable "^1.0.0" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@4.44.2: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +websocket-driver@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + integrity sha512-oBx6ZM1Gs5q2jwZuSN/Qxyy/fbgomV8+vqsmipaPKB/74hjHlKuM07jNmRhn4qa2AdUwsgxrltq+gaPsHgcl0Q== + dependencies: + websocket-extensions ">=0.1.1" + +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@^3.4.1: + version "3.6.20" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-builtin-type@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.4.tgz#592796260602fc3514a1b5ee7fa29319b72380c3" + integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w== + dependencies: + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.2" + which-typed-array "^1.1.15" + +which-collection@^1.0.1, which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@1, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +word-wrap@^1.2.5, word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +workbox-background-sync@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz#5ae0bbd455f4e9c319e8d827c055bb86c894fd12" + integrity sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA== + dependencies: + workbox-core "^5.1.4" + +workbox-broadcast-update@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz#0eeb89170ddca7f6914fa3523fb14462891f2cfc" + integrity sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA== + dependencies: + workbox-core "^5.1.4" + +workbox-build@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-5.1.4.tgz#23d17ed5c32060c363030c8823b39d0eabf4c8c7" + integrity sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow== + dependencies: + "@babel/core" "^7.8.4" + "@babel/preset-env" "^7.8.4" + "@babel/runtime" "^7.8.4" + "@hapi/joi" "^15.1.0" + "@rollup/plugin-node-resolve" "^7.1.1" + "@rollup/plugin-replace" "^2.3.1" + "@surma/rollup-plugin-off-main-thread" "^1.1.1" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^8.1.0" + glob "^7.1.6" + lodash.template "^4.5.0" + pretty-bytes "^5.3.0" + rollup "^1.31.1" + rollup-plugin-babel "^4.3.3" + rollup-plugin-terser "^5.3.1" + source-map "^0.7.3" + source-map-url "^0.4.0" + stringify-object "^3.3.0" + strip-comments "^1.0.2" + tempy "^0.3.0" + upath "^1.2.0" + workbox-background-sync "^5.1.4" + workbox-broadcast-update "^5.1.4" + workbox-cacheable-response "^5.1.4" + workbox-core "^5.1.4" + workbox-expiration "^5.1.4" + workbox-google-analytics "^5.1.4" + workbox-navigation-preload "^5.1.4" + workbox-precaching "^5.1.4" + workbox-range-requests "^5.1.4" + workbox-routing "^5.1.4" + workbox-strategies "^5.1.4" + workbox-streams "^5.1.4" + workbox-sw "^5.1.4" + workbox-window "^5.1.4" + +workbox-cacheable-response@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz#9ff26e1366214bdd05cf5a43da9305b274078a54" + integrity sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA== + dependencies: + workbox-core "^5.1.4" + +workbox-core@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-5.1.4.tgz#8bbfb2362ecdff30e25d123c82c79ac65d9264f4" + integrity sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg== + +workbox-expiration@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-5.1.4.tgz#92b5df461e8126114943a3b15c55e4ecb920b163" + integrity sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ== + dependencies: + workbox-core "^5.1.4" + +workbox-google-analytics@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz#b3376806b1ac7d7df8418304d379707195fa8517" + integrity sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA== + dependencies: + workbox-background-sync "^5.1.4" + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + workbox-strategies "^5.1.4" + +workbox-navigation-preload@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz#30d1b720d26a05efc5fa11503e5cc1ed5a78902a" + integrity sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ== + dependencies: + workbox-core "^5.1.4" + +workbox-precaching@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-5.1.4.tgz#874f7ebdd750dd3e04249efae9a1b3f48285fe6b" + integrity sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA== + dependencies: + workbox-core "^5.1.4" + +workbox-range-requests@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz#7066a12c121df65bf76fdf2b0868016aa2bab859" + integrity sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw== + dependencies: + workbox-core "^5.1.4" + +workbox-routing@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-5.1.4.tgz#3e8cd86bd3b6573488d1a2ce7385e547b547e970" + integrity sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw== + dependencies: + workbox-core "^5.1.4" + +workbox-strategies@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-5.1.4.tgz#96b1418ccdfde5354612914964074d466c52d08c" + integrity sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA== + dependencies: + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + +workbox-streams@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-5.1.4.tgz#05754e5e3667bdc078df2c9315b3f41210d8cac0" + integrity sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw== + dependencies: + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + +workbox-sw@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-5.1.4.tgz#2bb34c9f7381f90d84cef644816d45150011d3db" + integrity sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA== + +workbox-webpack-plugin@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz#7bfe8c16e40fe9ed8937080ac7ae9c8bde01e79c" + integrity sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ== + dependencies: + "@babel/runtime" "^7.5.5" + fast-json-stable-stringify "^2.0.0" + source-map-url "^0.4.0" + upath "^1.1.2" + webpack-sources "^1.3.0" + workbox-build "^5.1.4" + +workbox-window@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-5.1.4.tgz#2740f7dea7f93b99326179a62f1cc0ca2c93c863" + integrity sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw== + dependencies: + workbox-core "^5.1.4" + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^6.2.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.3.tgz#ccc96e4add5fd6fedbc491903075c85c5a11d9ee" + integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== + dependencies: + async-limiter "~1.0.0" + +ws@^7.4.6: + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^17.0.0: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/applepay.php b/applepay.php index e31eb6b..62479bc 100644 --- a/applepay.php +++ b/applepay.php @@ -1,2 +1,16 @@ -select('tzahlungsession', 'cZahlungsID', $sessionHash); + if ($paymentSession && $paymentSession->kBestellung) { + $oBestellung = new \JTL\Checkout\Bestellung($paymentSession->kBestellung); + + if ( + \JTL\Shopsetting::getInstance() + ->getValue(CONF_KAUFABWICKLUNG, 'bestellabschluss_abschlussseite') === 'A' + ) { + $oBestellID = PluginHelper::getDB()->select('tbestellid', 'kBestellung', $paymentSession->kBestellung); + if ($oBestellID) { + $url = Shop::Container()->getLinkService()->getSpecialPage($linktype_ordercompleted)->getURL(); + header('Location: ' . $url . '?i=' . $oBestellID->cId); + exit(); + } + } + $oBestellstatus = PluginHelper::getDB()->select('tbestellstatus', 'kBestellung', (int) $paymentSession->kBestellung); + $url = Shop::Container()->getLinkService()->getSpecialPage($linktype_orderstatus)->getURL(); + header('Location: ' . $url . '?uid=' . $oBestellstatus->cUID); + exit(); + } + } + } else { + //eigentlich nicht notwendig, aber naja + ifndef('LINNKTYPE_BESTELLABSCHLUSS', 33); + $linktype_ordercompleted = (int) LINKTYP_BESTELLABSCHLUSS; + + + if (array_key_exists('hash', $_REQUEST) && (UrlHelper::urlHasSpecialPageLinkType($linktype_ordercompleted))) { + $sessionHash = trim(Text::htmlentities(Text::filterXSS($_REQUEST['hash'])), '_'); + $paymentSession = PluginHelper::getDB()->select('tzahlungsession', 'cZahlungsID', $sessionHash); + if ($paymentSession && $paymentSession->kBestellung) { + $oBestellung = new \JTL\Checkout\Bestellung($paymentSession->kBestellung); + + $oBestellID = PluginHelper::getDB()->select('tbestellid', 'kBestellung', $paymentSession->kBestellung); + if ($oBestellID) { + $url = Shop::Container()->getLinkService()->getSpecialPage($linktype_ordercompleted)->getURL(); + header('Location: ' . $url . '?i=' . $oBestellID->cId); + exit(); + } + + } + } + } + + + + + ifndef('MOLLIE_REMINDER_PROP', 10); + if (random_int(1, MOLLIE_REMINDER_PROP) % MOLLIE_REMINDER_PROP === 0) { + /** @noinspection PhpUndefinedConstantInspection */ + $lock = new ExclusiveLock('mollie_reminder', PFAD_ROOT . PFAD_COMPILEDIR); + if ($lock->lock()) { + AbstractCheckout::sendReminders(); + Queue::storno(PluginHelper::getSetting('autoStorno')); + } + } + + // TODO: DOKU + ifndef('MOLLIE_DISABLE_USER_CLEANUP', false); + + if (!MOLLIE_DISABLE_USER_CLEANUP) { + ifndef('MOLLIE_CLEANUP_PROP', 15); + /** @noinspection PhpUndefinedConstantInspection */ + if (MOLLIE_CLEANUP_PROP && random_int(1, MOLLIE_CLEANUP_PROP) % MOLLIE_CLEANUP_PROP === 0) { + QueueModel::cleanUp(); + } + } + if (array_key_exists('mollie_cleanup_cron', $_REQUEST)) { + exit((string) QueueModel::cleanUp()); + } +} catch (Exception $e) { + Shop::Container()->getLogService()->error($e->getMessage() . " (Trace: {$e->getTraceAsString()})"); +} diff --git a/lib/Checkout/AbstractCheckout.php b/lib/Checkout/AbstractCheckout.php index f870850..20522f6 100644 --- a/lib/Checkout/AbstractCheckout.php +++ b/lib/Checkout/AbstractCheckout.php @@ -1,2 +1,828 @@ -oBestellung = $oBestellung; + $this->api = $api; + } + + /** + * @param string $sessionHash + * @param string $id + * @param bool $test + * + * @throws ServiceNotFoundException + * @throws CircularReferenceException + * @return void + * + */ + public static function finalizeOrder(string $sessionHash, string $id, bool $test): void + { + $logger = Shop::Container()->getLogService(); + + try { + if ($paymentSession = PluginHelper::getDB()->select('tzahlungsession', 'cZahlungsID', $sessionHash)) { + if (session_id() !== $paymentSession->cSID) { + session_destroy(); + session_id($paymentSession->cSID); + $session = Frontend::getInstance(true, true); + } else { + $session = Frontend::getInstance(false, false); + } + + if ( + (!isset($_SESSION['Warenkorb']->PositionenArr, $paymentSession->nBezahlt, $paymentSession->kBestellung) + || !($paymentSession->nBezahlt && $paymentSession->kBestellung)) + && count($_SESSION['Warenkorb']->PositionenArr) + ) { + $paymentSession->cNotifyID = $id; + $paymentSession->dNotify = 'NOW()'; + + $api = new MollieAPI($test); + $mollie = strpos($id, 'tr_') === 0 ? + $api->getClient()->payments->get($id) : + $api->getClient()->orders->get($id, ['embed' => 'payments']); + + if (in_array($mollie->status, [OrderStatus::STATUS_PENDING, OrderStatus::STATUS_AUTHORIZED, OrderStatus::STATUS_PAID], true)) { + require_once PFAD_ROOT . PFAD_INCLUDES . 'bestellabschluss_inc.php'; + require_once PFAD_ROOT . PFAD_INCLUDES . 'mailTools.php'; + + $order = getOrderHandler()->finalizeOrder(); + $session->cleanUp(); + $paymentSession->nBezahlt = 1; + $paymentSession->dZeitBezahlt = 'now()'; + } else { + throw new Exception('Mollie Status invalid: ' . $mollie->status . '\n' . print_r([$sessionHash, $id], 1)); + } + + if ($order->kBestellung) { + $paymentSession->kBestellung = $order->kBestellung; + PluginHelper::getDB()->update('tzahlungsession', 'cZahlungsID', $sessionHash, $paymentSession); + + try { + $checkout = self::fromID($id, false, $order); + } catch (Exception $e) { + if (strpos($id, 'tr_') === 0) { + $checkoutClass = PaymentCheckout::class; + } else { + $checkoutClass = OrderCheckout::class; + } + $checkout = new $checkoutClass($order, $api); + } + + if (strpos($mollie->id, 'ord_') === 0) { + /** @var Payment $payment */ + foreach ($mollie->payments() as $payment) { + if (in_array($payment->status, [PaymentStatus::STATUS_AUTHORIZED, PaymentStatus::STATUS_PAID, PaymentStatus::STATUS_PENDING])) { + $checkout->getModel()->cTransactionId = $payment->id; + $checkout->getModel()->save(); + } + } + } + + $checkout->updateOrderNumber() + ->setExpirationDate() + ->handleNotification($sessionHash); + } else { + throw new Exception(sprintf('Bestellung nicht finalisiert: %s', print_r($order, 1))); + } + } else { + QueueModel::saveToQueue($_REQUEST['id'], $_REQUEST, 'webhook'); + + throw new Exception(sprintf('PaymentSession bereits bezahlt: %s - ID: %s => Queue', $sessionHash, $id)); + } + } else { + QueueModel::saveToQueue($_REQUEST['id'], $_REQUEST, 'webhook'); + + throw new Exception(sprintf('PaymentSession nicht gefunden: %s - ID: %s => Queue', $sessionHash, $id)); + } + } catch (Exception $e) { + $logger->notice(__NAMESPACE__ . ' finalize order:' . $e->getMessage()); + } + } + + /** + * @param string $id + * @param bool $bFill + * @param null|Bestellung $order + * @throws RuntimeException + * @return static + */ + public static function fromID(string $id, bool $bFill = true, Bestellung $order = null): self + { + /** @var OrderModel $model */ + $model = OrderModel::fromID($id, 'cOrderId', true); + + $oBestellung = $order; + if (!$oBestellung) { + if (!$model->kBestellung) { + throw new RuntimeException('Keine Bestell-ID hinterlegt.'); + } + $oBestellung = new Bestellung($model->kBestellung, $bFill); + } + + if (static::class !== __CLASS__) { + $self = new static($oBestellung, new MollieAPI($model->bTest)); + } elseif (strpos($model->cOrderId, 'tr_') !== false) { + $self = new PaymentCheckout($oBestellung, new MollieAPI($model->bTest)); + } else { + $self = new OrderCheckout($oBestellung, new MollieAPI($model->bTest)); + } + $self->setModel($model); + + return $self; + } + + /** + * Lädt das Model falls vorhanden, oder gibt eun neues leeres zurück + * + * @throws Exception + * @return OrderModel + */ + public function getModel(): OrderModel + { + if (!$this->model) { + $this->model = OrderModel::fromID($this->getBestellung()->kBestellung, 'kBestellung'); + $this->model->bTest = $this->getAPI()->isTest(); + } + + return $this->model; + } + + /** + * @return static + */ + protected function setModel(OrderModel $model): self + { + $this->model = $model; + + return $this; + } + + /** + * @throws Exception + * @return Bestellung + */ + public function getBestellung(): Bestellung + { + if (!$this->oBestellung && $this->getModel()->kBestellung) { + $this->oBestellung = new Bestellung($this->getModel()->kBestellung, true); + } + + return $this->oBestellung; + } + + /** + * @throws Exception + * @return MollieAPI + */ + public function getAPI(): MollieAPI + { + if (!$this->api) { + if ($this->getModel()->cOrderId) { + $this->api = new MollieAPI($this->getModel()->bTest); + } else { + $this->api = new MollieAPI(MollieAPI::getMode()); + } + } + + return $this->api; + } + + /** + * @param null|mixed $hash + * + * @throws CircularReferenceException + * @throws ServiceNotFoundException + * @throws Exception + * @return void + * + */ + public function handleNotification($hash = null): void + { + if (!$hash) { + $hash = $this->getModel()->cHash; + } + +// try{ +// $pm = $this->getPaymentMethod(); +// if(method_exists($pm, 'generatePUI') && ($pui = $pm->generatePUI($this))){ +// $this->getBestellung()->cPUIZahlungsdaten = $pui; +// $this->getBestellung()->updateInDB(); +// } +// }catch (\Exception $e){ +// + + $this->updateModel()->saveModel(); + if (null === $this->getBestellung()->dBezahltDatum) { + if ($incoming = $this->getIncomingPayment()) { + $this->getPaymentMethod()->addIncomingPayment($this->getBestellung(), $incoming); + if ($this->completlyPaid()) { + $this->getPaymentMethod()->setOrderStatusToPaid($this->getBestellung()); + $this::makeFetchable($this->getBestellung(), $this->getModel()); + $this->getPaymentMethod()->deletePaymentHash($hash); + + $this->Log(sprintf("Checkout::handleNotification: Bestellung '%s' als bezahlt markiert: %.2f %s", $this->getBestellung()->cBestellNr, (float)$incoming->fBetrag, $incoming->cISO)); + + $oZahlungsart = PluginHelper::getDB()->selectSingleRow('tzahlungsart', 'cModulId', $this->getPaymentMethod()->moduleID); + if ($oZahlungsart && (int)$oZahlungsart->nMailSenden & ZAHLUNGSART_MAIL_EINGANG) { + $this->getPaymentMethod()->sendConfirmationMail($this->getBestellung()); + } + } else { + $this->Log(sprintf("Checkout::handleNotification: Bestellung '%s': nicht komplett bezahlt: %.2f %s", $this->getBestellung()->cBestellNr, (float)$incoming->fBetrag, $incoming->cISO), LOGLEVEL_ERROR); + } + } + } + + } + + public function setExpirationDate() + { + // set expireDate as Bestellattribut + try { + if (PluginHelper::getSetting('syncExpirationDate')) { + if ($order = $this->getMollie()) { + if ($this->getBestellung()->kBestellung && isset($order->expiresAt)) { + $bestellattribut = new stdClass(); + $bestellattribut->kBestellung = $this->getBestellung()->kBestellung; + $bestellattribut->cName = 'mollieOrderExpirationDate'; + $bestellattribut->cValue = date("d.m.Y H:i:s", strtotime($order->expiresAt)); + PluginHelper::getDB()->insertRow('tbestellattribut', $bestellattribut); + } + } + } + } catch (Exception $e) { + $this->Log('Set Expiration Date nOrderCheckout::setExpirationDate:' . $e->getMessage(), LOGLEVEL_ERROR); + } + + return $this; + } + + /** + * Speichert das Model + * + * @throws Exception + * @return true + * + */ + public function saveModel(): bool + { + return $this->getModel()->save(); + } + + /** + * @throws Exception + * @return static + */ + public function updateModel(): self + { + if ($this->getMollie()) { + $this->getModel()->cOrderId = $this->getMollie()->id; + $this->getModel()->cLocale = $this->getMollie()->locale; + $this->getModel()->fAmount = $this->getMollie()->amount->value; + $this->getModel()->cMethod = $this->getMollie()->method; + $this->getModel()->cCurrency = $this->getMollie()->amount->currency; + $this->getModel()->cStatus = $this->getMollie()->status; + } + + // TODO: DOKU, Reminder Email, name der paymentmethod in array + if (!defined('MOLLIE_DISABLE_REMINDER')) { + define('MOLLIE_DISABLE_REMINDER', []); + } + if (is_array(MOLLIE_DISABLE_REMINDER) && $this->getModel()->cMethod && in_array($this->getModel()->cMethod, MOLLIE_DISABLE_REMINDER)) { + $this->getModel()->dReminder = date('Y-m-d H:i:s'); + } + + $this->getModel()->kBestellung = $this->getBestellung()->kBestellung ?: ModelInterface::NULL; + $this->getModel()->cBestellNr = $this->getBestellung()->cBestellNr; + $this->getModel()->bSynced = $this->getModel()->bSynced ?? !PluginHelper::getSetting('onlyPaid'); + + return $this; + } + + abstract public function getMollie(bool $force = false); + + /** + * @return stdClass + */ + abstract public function getIncomingPayment(): ?stdClass; + + /** + * @throws Exception + * @return FallbackMethod|MethodInterface|PaymentMethod|\Plugin\ws5_mollie\lib\PaymentMethod + */ + public function getPaymentMethod() + { + if (!$this->paymentMethod) { + if ($this->getBestellung()->Zahlungsart && strpos($this->getBestellung()->Zahlungsart->cModulId, "kPlugin_{$this::Plugin('ws5_mollie')->getID()}_") !== false) { + $this->paymentMethod = LegacyMethod::create($this->getBestellung()->Zahlungsart->cModulId); + } else { + $this->paymentMethod = LegacyMethod::create("kPlugin_{$this::Plugin('ws5_mollie')->getID()}_mollie"); + } + } + + return $this->paymentMethod; + } + + /** + * @throws Exception + * @return bool + */ + public function completlyPaid(): bool + { + if ( + $row = PluginHelper::getDB()->executeQueryPrepared('SELECT SUM(fBetrag) as fBetragSumme FROM tzahlungseingang WHERE kBestellung = :kBestellung', [ + ':kBestellung' => $this->oBestellung->kBestellung + ], 1) + ) { + return (float)$row->fBetragSumme >= ($this->oBestellung->fGesamtsumme * $this->getBestellung()->fWaehrungsFaktor); + } + + return false; + } + + /** + * @param Bestellung $oBestellung + * @param OrderModel $model + * @throws ServiceNotFoundException + * @throws CircularReferenceException + * @return bool + */ + public static function makeFetchable(Bestellung $oBestellung, OrderModel $model): bool + { + if ($oBestellung->cAbgeholt === 'Y' && !$model->bSynced) { + PluginHelper::getDB()->update('tbestellung', 'kBestellung', $oBestellung->kBestellung, (object)['cAbgeholt' => 'N']); + $model->bSynced = true; + + try { + return $model->save(); + } catch (Exception $e) { + Shop::Container()->getLogService()->error(sprintf('Fehler beim speichern des Models: %s / Bestellung: %s', $model->kId, $oBestellung->cBestellNr)); + } + } + + return false; + } + + /** + * @param $msg + * @param int $level + * @throws ServiceNotFoundException + * @throws CircularReferenceException + * @return $this + */ + public function Log(string $msg, $level = LOGLEVEL_NOTICE) + { + try { + $data = ''; + if ($this->getBestellung()) { + $data .= '#' . $this->getBestellung()->kBestellung; + } + if ($this->getMollie()) { + $data .= '$' . $this->getMollie()->id; + } + ZahlungsLog::add($this->getPaymentMethod()->moduleID, '[' . microtime(true) . ' - ' . $_SERVER['PHP_SELF'] . '] ' . $msg, $data, $level); + } catch (Exception $e) { + Shop::Container()->getLogService()->error(sprintf("Error while Logging: %s\nPrevious Error: %s", $e->getMessage(), $msg)); + } + + return $this; + } + + /** + * @return $this + */ + abstract protected function updateOrderNumber(); + + /** + * @param int $kBestellung + * @param bool $checkZA + * @return bool + */ + public static function isMollie(int $kBestellung, bool $checkZA = false): bool + { + if ($checkZA) { + $res = PluginHelper::getDB()->executeQueryPrepared('SELECT * FROM tzahlungsart WHERE cModulId LIKE :cModulId AND kZahlungsart = :kZahlungsart', [ + ':kZahlungsart' => $kBestellung, + ':cModulId' => 'kPlugin_' . PluginHelper::getPlugin()->getID() . '%' + ], 1); + + return (bool)$res; + } + + return ($res = PluginHelper::getDB()->executeQueryPrepared('SELECT kId FROM xplugin_ws5_mollie_orders WHERE kBestellung = :kBestellung;', [ + ':kBestellung' => $kBestellung, + ], 1)) && $res->kId; + } + + /** + * @param Bestellung $oBestellung + * @param null|MollieAPI $api + * @return static + */ + public static function factory(Bestellung $oBestellung, MollieAPI $api = null): self + { + return new static($oBestellung, $api); + } + + /** + * @param int $kBestellung + * @param mixed $fill + * @return OrderCheckout|PaymentCheckout + */ + public static function fromBestellung(int $kBestellung, $fill = true) + { + $model = OrderModel::fromID($kBestellung, 'kBestellung', true); + + if (!$model->kBestellung) { + throw new RuntimeException(sprintf("Bestellung '%d' konnte nicht geladen werden.", $kBestellung)); + } + $oBestellung = new Bestellung($model->kBestellung, $fill); + if (!$oBestellung->kBestellung) { + throw new RuntimeException(sprintf("Bestellung '%d' konnte nicht geladen werden.", $kBestellung)); + } + if (strpos($model->cOrderId, 'tr_') !== false) { + $self = new PaymentCheckout($oBestellung, new MollieAPI($model->bTest)); + } else { + $self = new OrderCheckout($oBestellung, new MollieAPI($model->bTest)); + } + $self->setModel($model); + + return $self; + } + + /** + * @throws CircularReferenceException + * @throws ServiceNotFoundException + */ + public static function sendReminders(): void + { + $reminder = (int)PluginHelper::getSetting('reminder'); + + if (!$reminder) { + PluginHelper::getDB()->executeQueryPrepared('UPDATE xplugin_ws5_mollie_orders SET dReminder = :dReminder WHERE dReminder IS NULL', [ + ':dReminder' => date('Y-m-d H:i:s') + ], 3); + + return; + } + // TODO: DOKU + ifndef('MOLLIE_REMINDER_LIMIT_DAYS', 7); + $remindables = PluginHelper::getDB()->executeQueryPrepared("SELECT kId FROM xplugin_ws5_mollie_orders WHERE (dReminder IS NULL OR dReminder = '0000-00-00 00:00:00') AND dCreated > NOW() - INTERVAL " . MOLLIE_REMINDER_LIMIT_DAYS . " DAY AND dCreated < NOW() - INTERVAL :d MINUTE AND cStatus IN ('created','open', 'expired', 'failed', 'canceled')", [ + ':d' => $reminder + ], 2); + foreach ($remindables as $remindable) { + try { + self::sendReminder($remindable->kId); + } catch (Exception $e) { + Shop::Container()->getBackendLogService()->error('AbstractCheckout::sendReminders: ' . $e->getMessage()); + } + } + } + + /** + * @param $kID + * @param mixed $kId + * + * @throws Exception + * @return true + * + */ + public static function sendReminder($kId): bool + { + $order = OrderModel::fromID($kId, 'kId', true); + + // filter paid and storno + if (!$order->kBestellung || (int)$order->cStatus > BESTELLUNG_STATUS_IN_BEARBEITUNG || (int)$order->cStatus < 0) { + $order->dReminder = date('Y-m-d H:i:s'); + $order->save(); + + return true; + } + $oBestellung = new Bestellung($order->kBestellung); + $repayURL = Shop::getURL() . '/?m_pay=' . md5($order->kId . '-' . $order->kBestellung); + + $data = new stdClass(); + $data->tkunde = new Customer($oBestellung->kKunde); + if (!$data->tkunde->kKunde) { + $order->dReminder = date('Y-m-d H:i:s'); + $order->save(); + + throw new Exception("Kunde '$oBestellung->kKunde' nicht gefunden."); + } + $data->Bestellung = $oBestellung; + $data->PayURL = $repayURL; + $data->Amount = Preise::getLocalizedPriceString($order->fAmount, Currency::fromISO($order->cCurrency), false); + + $mailer = Shop::Container()->get(Mailer::class); + $mail = new Mail(); + $mail->createFromTemplateID('kPlugin_' . PluginHelper::getPlugin()->getID() . '_zahlungserinnerung', $data); + + $order->dReminder = date('Y-m-d H:i:s'); + $order->save(); + + if (!$mailer->send($mail)) { + throw new Exception($mail->getError() . "\n" . print_r([$data, $order->jsonSerialize()], 1)); + } + + return true; + } + + /** + * cancels oder refunds eine stornierte Bestellung + * + * @return string + */ + abstract public function cancelOrRefund(): string; + + /** + * @param array $options + * @throws Exception + * @return self + */ + public function loadRequest(array &$options = []) + { + if ($this->getBestellung()) { + $oKunde = !$this->getBestellung()->oKunde && $this->getPaymentMethod()->duringCheckout + ? $_SESSION['Kunde'] + : $this->getBestellung()->oKunde; + + $this->amount = new Amount($this->getBestellung() + ->fGesamtsumme * $this->getBestellung()->fWaehrungsFaktor, $this->getBestellung()->Waehrung, true); + $this->metadata = [ + 'kBestellung' => $this->getBestellung()->kBestellung, + 'kKunde' => $oKunde->kKunde, + 'kKundengruppe' => $oKunde->kKundengruppe, + 'cHash' => $this->getHash(), + ]; + + if ( + defined(get_class($this->getPaymentMethod()) . '::METHOD') && $this->getPaymentMethod()::METHOD !== '' + && (!PluginHelper::getSetting('resetMethod') || !$this->getMollie()) + ) { + $this->method = $this->getPaymentMethod()::METHOD; + } + + + $this->redirectUrl = $this->getPaymentMethod()->duringCheckout ? + Shop::Container()->getLinkService()->getStaticRoute('bestellabschluss.php') . "?" . http_build_query(['hash' => $this->getHash()]) : + $this->getPaymentMethod()->getReturnURL($this->getBestellung()); + + $this->webhookUrl = $this->getWebhookUrl(); + } + + $this->locale = Locale::getLocale(Frontend::get('cISOSprache', 'ger'), Frontend::getCustomer()->cLand); + + return $this; + } + + /** + * @throws Exception + * @return string + */ + public function getHash(): string + { + if ($this->getModel()->cHash) { + return $this->getModel()->cHash; + } + if (!$this->hash) { + $this->hash = $this->getPaymentMethod()->generateHash($this->getBestellung()); + } + + return $this->hash; + } + + /** + * @throws Exception + * @return string + */ + protected function getWebhookUrl(): string + { + $query = [ + 'mollie' => 1, + ]; + if ($this->getPaymentMethod()->duringCheckout) { + $query['hash'] = $this->getHash(); + $query['test'] = $this->getAPI()->isTest() ?: null; + } + + return Shop::getURL(true) . '/?' . http_build_query($query); + } + + /** + * @param array $paymentOptions + * @return Order|Payment + */ + abstract public function create(array $paymentOptions = []); + + /** + * @throws Exception + */ + public function storno(): void + { + if (in_array((int)$this->getBestellung()->cStatus, [BESTELLUNG_STATUS_OFFEN, BESTELLUNG_STATUS_IN_BEARBEITUNG], true)) { + require_once PFAD_ROOT . PFAD_INCLUDES . 'bestellabschluss_inc.php'; + + $log = []; + $conf = Shop::getSettings([CONF_GLOBAL]); + $nArtikelAnzeigefilter = (int)$conf['global']['artikel_artikelanzeigefilter']; + foreach ($this->getBestellung()->Positionen as $pos) { + if ($pos->kArtikel && $pos->Artikel && $pos->Artikel->cLagerBeachten === 'Y') { + $log[] = sprintf('Reset stock of "%s" by %d', $pos->Artikel->cArtNr, -1 * $pos->nAnzahl); + self::aktualisiereLagerbestand($pos->Artikel, -1 * $pos->nAnzahl, $pos->WarenkorbPosEigenschaftArr, $nArtikelAnzeigefilter); + } + } + $log[] = sprintf("Cancel order '%s'.", $this->getBestellung()->cBestellNr); + + if (PluginHelper::getDB()->executeQueryPrepared('UPDATE tbestellung SET cAbgeholt = "N", cStatus = :cStatus WHERE kBestellung = :kBestellung', [':cStatus' => '-1', ':kBestellung' => $this->getBestellung()->kBestellung], 3)) { + $this->Log(implode('\n', $log)); + } + } + } + + protected static function aktualisiereLagerbestand(Artikel $product, int $amount, array $attributeValues, int $productFilter = 1) + { + $inventory = $product->fLagerbestand; + $db = PluginHelper::getDB(); + if ($product->cLagerBeachten !== 'Y') { + return $inventory; + } + if ( + $product->cLagerVariation === 'Y' + && count($attributeValues) > 0 + ) { + foreach ($attributeValues as $value) { + $EigenschaftWert = new EigenschaftWert($value->kEigenschaftWert); + if ($EigenschaftWert->fPackeinheit == 0) { + $EigenschaftWert->fPackeinheit = 1; + } + $db->queryPrepared( + 'UPDATE teigenschaftwert + SET fLagerbestand = fLagerbestand - :inv + WHERE kEigenschaftWert = :aid', + [ + 'aid' => (int)$value->kEigenschaftWert, + 'inv' => $amount * $EigenschaftWert->fPackeinheit + ], + ReturnType::DEFAULT + ); + } + getStockUpdater()->updateProductStockLevel($product->kArtikel, $amount, $product->fPackeinheit); + } elseif ($product->fPackeinheit > 0) { + if ($product->kStueckliste > 0) { + $inventory = getStockUpdater()->updateBOMStockLevel($product, $amount); + } else { + getStockUpdater()->updateProductStockLevel($product->kArtikel, $amount, $product->fPackeinheit); + $tmpProduct = $db->select( + 'tartikel', + 'kArtikel', + $product->kArtikel, + null, + null, + null, + null, + false, + 'fLagerbestand' + ); + if ($tmpProduct !== null) { + $inventory = (float)$tmpProduct->fLagerbestand; + } + // Stücklisten Komponente + if (Product::isStuecklisteKomponente($product->kArtikel)) { + getStockUpdater()->updateBOMStock( + $product->kArtikel, + $inventory, + $product->cLagerKleinerNull === 'Y' + ); + } + } + // Aktualisiere Merkmale in tartikelmerkmal vom Vaterartikel + if ($product->kVaterArtikel > 0) { + Artikel::beachteVarikombiMerkmalLagerbestand($product->kVaterArtikel, $productFilter); + getStockUpdater()->updateProductStockLevel($product->kVaterArtikel, $amount, $product->fPackeinheit); + } + } + + return $inventory; + } + + /** + * @throws Exception + * @return string + * + */ + public function getDescription(): string + { + $descTemplate = trim(PluginHelper::getSetting('paymentDescTpl')) ?: 'Order {orderNumber}'; + $oKunde = $this->getBestellung()->oKunde ?: $_SESSION['Kunde']; + + return str_replace([ + '{orderNumber}', + '{storeName}', + '{customer.firstname}', + '{customer.lastname}', + '{customer.company}', + ], [ + $this->getBestellung()->cBestellNr, + Shopsetting::getInstance()->getValue(CONF_GLOBAL, 'global_shopname'), //Shop::getSettings([CONF_GLOBAL])['global']['global_shopname'], + $oKunde->cVorname, + $oKunde->cNachname, + $oKunde->cFirma + ], $descTemplate); + } + + /** + * @param Order|Payment $model + * @return $this; + */ + abstract protected function setMollie($model); +} diff --git a/lib/Checkout/OrderCheckout.php b/lib/Checkout/OrderCheckout.php index c45276a..a042b30 100644 --- a/lib/Checkout/OrderCheckout.php +++ b/lib/Checkout/OrderCheckout.php @@ -1,2 +1,377 @@ -getModel()->cOrderId) { + try { + $this->order = $this->getAPI()->getClient()->orders->get($this->getModel()->cOrderId, ['embed' => 'payments']); + if (in_array($this->order->status, [OrderStatus::STATUS_COMPLETED, OrderStatus::STATUS_PAID, OrderStatus::STATUS_AUTHORIZED, OrderStatus::STATUS_PENDING], true)) { + $this->Log(PluginHelper::getPlugin()->getLocalization()->getTranslation('errAlreadyPaid')); + + return $this->order; + } + if ($this->order->status === OrderStatus::STATUS_CREATED) { + if ($this->order->payments()) { + /** @var Payment $payment */ + foreach ($this->order->payments() as $payment) { + if ($payment->status === PaymentStatus::STATUS_OPEN) { + $this->mollie = $payment; + + break; + } + } + } + if (!$this->mollie) { + $this->mollie = $this->getAPI()->getClient()->orderPayments->createForId($this->getModel()->cOrderId, $paymentOptions); + } + $this->updateModel()->saveModel(); + + return $this->getMollie(true); + } + } catch (Exception $e) { + $this->Log(sprintf("OrderCheckout::create: Letzte Order '%s' konnte nicht geladen werden: %s, versuche neue zu erstellen.", $this->getModel()->cOrderId, $e->getMessage()), LOGLEVEL_ERROR); + } + } + + try { + $this->order = $this->getAPI()->getClient()->orders->create($this->loadRequest($paymentOptions)->jsonSerialize()); + $this->updateModel()->saveModel(); + } catch (Exception $e) { + $this->Log(sprintf("OrderCheckout::create: Neue Order '%s' konnte nicht erstellt werden: %s.", $this->oBestellung->cBestellNr, $e->getMessage()), LOGLEVEL_ERROR); + + throw new RuntimeException(sprintf("OrderCheckout::create: Neue Order '%s' konnte nicht erstellt werden: %s.", $this->oBestellung->cBestellNr, $e->getMessage())); + } + + return $this->order; + } + + /** + * @throws Exception + * @return static + * + */ + public function updateModel(): AbstractCheckout + { + parent::updateModel(); + if (!$this->mollie && $this->getMollie() && $this->getMollie()->payments()) { + /** @var Payment $payment */ + foreach ($this->getMollie()->payments() as $payment) { + if (in_array($payment->status, [PaymentStatus::STATUS_OPEN, PaymentStatus::STATUS_PENDING, PaymentStatus::STATUS_AUTHORIZED, PaymentStatus::STATUS_PAID], true)) { + $this->mollie = $payment; + + break; + } + } + } + if ($this->mollie) { + $this->getModel()->cTransactionId = $this->mollie->id; + } + $this->getModel()->cStatus = $this->getMollie()->status; + $this->getModel()->cHash = $this->getHash(); + $this->getModel()->fAmountRefunded = $this->getMollie()->amountRefunded->value ?? 0; + + return $this; + } + + /** + * @param bool $force + * @throws Exception + * @return Order + */ + public function getMollie($force = false): ?Order + { + if ($force || (!$this->order && $this->getModel()->cOrderId)) { + try { + $this->order = $this->getAPI()->getClient()->orders->get($this->getModel()->cOrderId, ['embed' => 'payments,shipments,refunds']); + } catch (Exception $e) { + throw new RuntimeException(sprintf('Mollie-Order \'%s\' konnte nicht geladen werden: %s', $this->getModel()->cOrderId, $e->getMessage())); + } + } + + return $this->order; + } + + /** + * @param Order|Payment $model + * + * @return static + */ + protected function setMollie($model) + { + $this->order = $model; + + return $this; + } + + /** + * @param array $options + * @throws Exception + * @return $this + */ + public function loadRequest(array &$options = []) + { + parent::loadRequest($options); + + $this->orderNumber = $this->getBestellung()->cBestellNr; + $this->billingAddress = new Address($this->getBestellung()->oRechnungsadresse); + if ($this->getBestellung()->Lieferadresse !== null) { + if (!$this->getBestellung()->Lieferadresse->cMail) { + $this->getBestellung()->Lieferadresse->cMail = $this->getBestellung()->oRechnungsadresse->cMail; + } + $this->shippingAddress = new Address($this->getBestellung()->Lieferadresse); + } + + if ( + !empty(Frontend::getCustomer()->dGeburtstag) + && Frontend::getCustomer()->dGeburtstag !== '0000-00-00' + && preg_match('/^\d{4}-\d{2}-\d{2}$/', trim(Frontend::getCustomer()->dGeburtstag)) + ) { + $this->consumerDateOfBirth = trim(Frontend::getCustomer()->dGeburtstag); + } + + $lines = []; + + //$Positionen = $this->getPaymentMethod()->duringCheckout ? $_SESSION['Warenkorb']->PositionenArr : $this->getBestellung()->Positionen; + + $Positionen = $this->getPositionen(); + + foreach ($Positionen as $oPosition) { + $lines[] = WSOrderLine::factory($oPosition, $this->getBestellung()->Waehrung); + } + + if ($this->getBestellung()->GuthabenNutzen && $this->getBestellung()->fGuthaben > 0) { + $lines[] = WSOrderLine::getCredit($this->getBestellung()); + } + + if ($comp = WSOrderLine::getRoundingCompensation($lines, $this->amount, $this->getBestellung()->Waehrung)) { + $lines[] = $comp; + } + $this->lines = $lines; + + if (!defined('MOLLIE_DEFAULT_MAX_EXPIRY_LIMIT')) { + define('MOLLIE_DEFAULT_MAX_EXPIRY_LIMIT', 100); + } + + if (!defined('MOLLIE_KLARNA_MAX_EXPIRY_LIMIT')) { + define('MOLLIE_KLARNA_MAX_EXPIRY_LIMIT', 28); + } + + // TODO: Refactor this to use "PluginHelper::getPaymentSetting" once available + if (($dueDays = (int)self::Plugin('ws5_mollie')->getConfig()->getValue($this->getPaymentMethod()->moduleID . '_dueDays')) && $dueDays > 0) { + $max = $this->method && strpos($this->method, 'klarna') !== false ? MOLLIE_KLARNA_MAX_EXPIRY_LIMIT : MOLLIE_DEFAULT_MAX_EXPIRY_LIMIT; + $date = new DateTime(sprintf('+%d DAYS', min($dueDays, $max)), new DateTimeZone('UTC')); + $this->expiresAt = $date->format('Y-m-d'); + } + + $this->payment = $options; + + return $this; + } + + /** + * @throws Exception + * @return CartItem[] + * + * @psalm-return array + */ + public function getPositionen(): array + { + if ($this->getPaymentMethod()->duringCheckout) { + $conf = Shop::getSettings([CONF_GLOBAL]); + $oPositionenArr = []; + + if (is_array($_SESSION['Warenkorb']->PositionenArr) && count($_SESSION['Warenkorb']->PositionenArr) > 0) { + $productFilter = (int)$conf['global']['artikel_artikelanzeigefilter']; + /** @var CartItem $item */ + foreach ($_SESSION['Warenkorb']->PositionenArr as $_item) { + $item = unserialize(serialize($_item)); + + $item->cName = Text::unhtmlentities(is_array($item->cName) + ? $item->cName[$_SESSION['cISOSprache']] + : $item->cName); + + $item->fMwSt = Tax::getSalesTax($item->kSteuerklasse); + if (is_array($item->WarenkorbPosEigenschaftArr) && count($item->WarenkorbPosEigenschaftArr) > 0) { + $idx = Shop::getLanguageCode(); + // Bei einem Varkombikind dürfen nur FREIFELD oder PFLICHT-FREIFELD gespeichert werden, + // da sonst eventuelle Aufpreise in der Wawi doppelt berechnet werden + if (isset($item->Artikel->kVaterArtikel) && $item->Artikel->kVaterArtikel > 0) { + foreach ($item->WarenkorbPosEigenschaftArr as $o => $WKPosEigenschaft) { + if ($WKPosEigenschaft->cTyp === 'FREIFELD' || $WKPosEigenschaft->cTyp === 'PFLICHT-FREIFELD') { + $WKPosEigenschaft->kWarenkorbPos = $item->kWarenkorbPos; + $WKPosEigenschaft->cEigenschaftName = $WKPosEigenschaft->cEigenschaftName[$idx]; + $WKPosEigenschaft->cEigenschaftWertName = $WKPosEigenschaft->cEigenschaftWertName[$idx]; + $WKPosEigenschaft->cFreifeldWert = $WKPosEigenschaft->cEigenschaftWertName; + } + } + } else { + foreach ($item->WarenkorbPosEigenschaftArr as $o => $WKPosEigenschaft) { + $WKPosEigenschaft->kWarenkorbPos = $item->kWarenkorbPos; + $WKPosEigenschaft->cEigenschaftName = $WKPosEigenschaft->cEigenschaftName[$idx]; + $WKPosEigenschaft->cEigenschaftWertName = $WKPosEigenschaft->cEigenschaftWertName[$idx]; + if ($WKPosEigenschaft->cTyp === 'FREIFELD' || $WKPosEigenschaft->cTyp === 'PFLICHT-FREIFELD') { + $WKPosEigenschaft->cFreifeldWert = $WKPosEigenschaft->cEigenschaftWertName; + } + } + } + } + $oPositionenArr[] = $item; + } + } + + return $oPositionenArr; + } + + return $this->getBestellung()->Positionen; + } + + /** + * @throws Exception + * @return null|stdClass + */ + public function getIncomingPayment(): ?stdClass + { + /** @var Payment $payment */ + foreach ($this->getMollie()->payments() as $payment) { + if ( + in_array( + $payment->status, + [PaymentStatus::STATUS_AUTHORIZED, PaymentStatus::STATUS_PAID], + true + ) + ) { + $this->mollie = $payment; + + $cHinweis = $payment->details->paypalReference ?? $payment->id; + if (PluginHelper::getSetting('paymentID') === 'api') { + $cHinweis = $this->getMollie()->id; + } + + return (object)[ + 'fBetrag' => (float)$payment->amount->value, + 'cISO' => $payment->amount->currency, + 'cZahler' => $payment->details->paypalPayerId ?? $payment->customerId, + 'cHinweis' => $cHinweis, + ]; + } + } + + return null; + } + + /** + * @throws ApiException + * @throws Exception + * @return string + */ + public function cancelOrRefund(): string + { + if ((int)$this->getBestellung()->cStatus === BESTELLUNG_STATUS_STORNO) { + if ($this->getMollie()->isCancelable) { + $res = $this->getMollie()->cancel(); + + return 'Order cancelled, Status: ' . $res->status; + } + $res = $this->getMollie()->refundAll(); + + return 'Order Refund initiiert, Status: ' . $res->status; + } + + throw new Exception('Bestellung ist derzeit nicht storniert, Status: ' . $this->getBestellung()->cStatus); + } + + /** + * @throws CircularReferenceException + * @throws ServiceNotFoundException + * @return static + */ + protected function updateOrderNumber() + { + //update only order number + try { + if ($order = $this->getMollie()) { + $body = [ + 'orderNumber' => $this->getBestellung()->cBestellNr + ]; + $this->getAPI()->getClient()->orders->update($order->id, $body); + } + if ($this->getModel()->cTransactionId) { + $this->getAPI()->getClient()->payments->update($this->getModel()->cTransactionId, [ + 'description' => $this->getDescription() + ]); + } + } catch (Exception $e) { + $this->Log('Update only orderNumber nOrderCheckout::updateOrderNumber:' . $e->getMessage(), LOGLEVEL_ERROR); + } + + try { + if ($this->getMollie()) { + $this->getMollie()->orderNumber = $this->getBestellung()->cBestellNr; + $this->getMollie()->webhookUrl = Shop::getURL() . '/?mollie=1'; + $this->getMollie()->update(); + } + if ($this->getModel()->cTransactionId) { + $this->getAPI()->getClient()->payments->update($this->getModel()->cTransactionId, [ + 'description' => $this->getDescription() + ]); + } + } catch (Exception $e) { + $this->Log('OrderCheckout::updateOrderNumber:' . $e->getMessage(), LOGLEVEL_ERROR); + } + + return $this; + } +} diff --git a/lib/Checkout/PaymentCheckout.php b/lib/Checkout/PaymentCheckout.php index 445d853..4ae9cc5 100644 --- a/lib/Checkout/PaymentCheckout.php +++ b/lib/Checkout/PaymentCheckout.php @@ -1,2 +1,206 @@ -getModel()->cOrderId) { + try { + $this->payment = $this->getAPI()->getClient()->payments->get($this->getModel()->cOrderId); + if (in_array($this->payment->status, [PaymentStatus::STATUS_AUTHORIZED, PaymentStatus::STATUS_PAID], true)) { + $this->Log(PluginHelper::getPlugin()->getLocalization()->getTranslation('errAlreadyPaid')); + + return $this->payment; + } + if ($this->payment->status === PaymentStatus::STATUS_OPEN) { + $this->updateModel()->updateModel(); + + return $this->payment; + } + } catch (Exception $e) { + $this->Log(sprintf("PaymentCheckout::create: Letzte Transaktion '%s' konnte nicht geladen werden: %s, versuche neue zu erstellen.", $this->getModel()->cOrderId, $e->getMessage()), LOGLEVEL_ERROR); + } + } + + try { + $req = $this->loadRequest($paymentOptions)->jsonSerialize(); + $this->payment = $this->getAPI()->getClient()->payments->create($req); + $this->updateModel()->saveModel(); + } catch (Exception $e) { + $this->Log(sprintf("PaymentCheckout::create: Neue Transaktion '%s' konnte nicht erstellt werden: %s.\n%s", $this->oBestellung->cBestellNr, $e->getMessage(), json_encode($req)), LOGLEVEL_ERROR); + + throw new RuntimeException(sprintf('Mollie-Payment \'%s\' konnte nicht geladen werden: %s', $this->getModel()->cOrderId, $e->getMessage())); + } + + return $this->payment; + } + + /** + * @throws Exception + * + * @return static + */ + public function updateModel(): AbstractCheckout + { + parent::updateModel(); + $this->getModel()->cHash = $this->getHash(); + $this->getModel()->fAmountRefunded = $this->getMollie()->amountRefunded->value ?? 0; + + return $this; + } + + /** + * @param mixed $force + * @throws Exception + * @throws Exception + * @return Payment + */ + public function getMollie($force = false): ?Payment + { + if ($force || (!$this->payment && $this->getModel()->cOrderId)) { + try { + $this->payment = $this->getAPI()->getClient()->payments->get($this->getModel()->cOrderId, ['embed' => 'refunds']); + } catch (Exception $e) { + throw new RuntimeException('Mollie-Payment konnte nicht geladen werden: ' . $e->getMessage()); + } + } + + return $this->payment; + } + + /** + * @param array $options + * @throws Exception + * @return $this + */ + public function loadRequest(array &$options = []) + { + parent::loadRequest($options); + + $this->description = $this->getDescription(); + + foreach ($options as $key => $value) { + $this->$key = $value; + } + + return $this; + } + + /** + * @throws Exception + * @return null|stdClass + */ + public function getIncomingPayment(): ?stdClass + { + if (in_array($this->getMollie()->status, [PaymentStatus::STATUS_AUTHORIZED, PaymentStatus::STATUS_PAID], true)) { + $data = []; + $data['fBetrag'] = (float)$this->getMollie()->amount->value; + $data['cISO'] = $this->getMollie()->amount->currency; + $data['cZahler'] = $this->getMollie()->details->paypalPayerId ?? $this->getMollie()->customerId; + $data['cHinweis'] = $this->getMollie()->details->paypalReference ?? $this->getMollie()->id; + + return (object)$data; + } + + return null; + } + + /** + * @throws ApiException + * @throws IncompatiblePlatform + * @throws RuntimeException + * @return string + */ + public function cancelOrRefund(): string + { + if ((int)$this->getBestellung()->cStatus === BESTELLUNG_STATUS_STORNO) { + if ($this->getMollie()->isCancelable) { + $res = $this->getAPI()->getClient()->payments->cancel($this->getMollie()->id); + + return 'Payment cancelled, Status: ' . $res->status; + } + $res = $this->getAPI()->getClient()->payments->refund($this->getMollie(), ['amount' => $this->getMollie()->amount]); + + return 'Payment Refund initiiert, Status: ' . $res->status; + } + + throw new RuntimeException('Bestellung ist derzeit nicht storniert, Status: ' . $this->getBestellung()->cStatus); + } + + /** + * @param Order|Payment $model + * + * @return static + */ + protected function setMollie($model) + { + $this->payment = $model; + + return $this; + } + + /** + * @throws CircularReferenceException + * @throws ServiceNotFoundException + * @return static + */ + protected function updateOrderNumber() + { + //only ordernumber + try { + if ($this->getMollie()) { + $this->getMollie()->description = $this->getDescription(); + $this->getMollie()->update(true); + } + } catch (Exception $e) { + $this->Log('OrderCheckout::updateOrderNumber:' . $e->getMessage(), LOGLEVEL_ERROR); + } + + try { + if ($this->getMollie()) { + $this->getMollie()->description = $this->getDescription(); + $this->getMollie()->webhookUrl = Shop::getURL() . '/?mollie=1'; + $this->getMollie()->update(); + } + } catch (Exception $e) { + $this->Log('OrderCheckout::updateOrderNumber:' . $e->getMessage(), LOGLEVEL_ERROR); + } + + return $this; + } +} diff --git a/lib/Controller/HelperController.php b/lib/Controller/HelperController.php index 7203c56..c31512e 100644 --- a/lib/Controller/HelperController.php +++ b/lib/Controller/HelperController.php @@ -1,2 +1,39 @@ -query ?? false) { + if (isset($data->query) && is_object($data->params) && property_exists($data->params, ':limit') && property_exists($data->params, ':offset') && strpos($data->query, 'LIMIT') === false) { + $query = rtrim($data->query, ';') . ' LIMIT :offset, :limit;'; + $maxItemsParams = (array)clone $data->params; + unset($maxItemsParams[':offset'], $maxItemsParams[':limit']); + $response = [ + 'items' => PluginHelper::getDB()->executeQueryPrepared($query, (array)($data->params ?? []), 2), + 'maxItems' => PluginHelper::getDB()->executeQueryPrepared($data->query, (array)($maxItemsParams ?? []), 3), + ]; + } else { + $response = PluginHelper::getDB()->executeQueryPrepared($data->query, (array)($data->params ?? []), 2); + } + } + if (!is_array($response) && ($error = PluginHelper::getDB()->getErrorMessage())) { + throw new APIException('DB Error: ' . $error); + } + + return new AbstractResult($response); + } +} diff --git a/lib/Controller/MollieController.php b/lib/Controller/MollieController.php index 5647275..1fe36d8 100644 --- a/lib/Controller/MollieController.php +++ b/lib/Controller/MollieController.php @@ -1,2 +1,296 @@ -getClient()->methods->allAvailable([/*'includeWallets' => 'applepay', 'resource' => 'orders'*/]); + $methods = []; + $oPlugin = self::Plugin('ws5_mollie'); + + foreach ($_methods as $method) { + if (in_array($method->id, ['voucher', PaymentMethod::DIRECTDEBIT, PaymentMethod::GIFTCARD], true)) { + continue; + } + $id = 'kPlugin_' . Helper::getIDByPluginID('ws5_mollie') . '_' . $method->id; + $oZahlungsart = PluginHelper::getDB()->executeQueryPrepared('SELECT * FROM tzahlungsart WHERE cModulId = :cModulID;', [ + ':cModulID' => $id + ], 1); + + // If Mollie has new payment method that we don't support currently + if (!$oZahlungsart) { + continue; + } + + $oPaymentMethod = LegacyMethod::create($oZahlungsart->cModulId); + + $methods[$method->id] = (object)[ + 'log' => PluginHelper::getDB()->executeQueryPrepared('SELECT * FROM tzahlungslog WHERE cModulId = :cModulId AND dDatum < DATE_SUB(NOW(), INTERVAL 30 DAY)', [':cModulId' => $oZahlungsart->cModulId], ReturnType::AFFECTED_ROWS), + 'linkToSettingsPage' => Shop::Container()->getLinkService()->getStaticRoute('/admin/zahlungsarten.php') . "?kZahlungsart=$oZahlungsart->kZahlungsart&token={$_SESSION['jtl_token']}", + 'mollie' => $method, + 'duringCheckout' => (int)$oZahlungsart->nWaehrendBestellung === 1, + 'allowDuringCheckout' => $oPaymentMethod::ALLOW_PAYMENT_BEFORE_ORDER ?? null, + 'paymentMethod' => $oZahlungsart, + 'linkedShippingMethods' => PluginHelper::getDB()->executeQueryPrepared('SELECT v.* FROM tversandart v +JOIN tversandartzahlungsart vz ON v.kVersandart = vz.kVersandart +JOIN tzahlungsart z ON vz.kZahlungsart = z.kZahlungsart +WHERE z.cModulId = :cModulID', [':cModulID' => $id], 2), + ]; + + if ($api = $oPlugin->getConfig()->getValue($id . '_api')) { + $methods[$method->id]->api = $api; + } + if ($api = $oPlugin->getConfig()->getValue($id . '_components')) { + $methods[$method->id]->components = $api; + } + if ($dueDays = $oPlugin->getConfig()->getValue($id . '_dueDays')) { + $methods[$method->id]->dueDays = (int)$dueDays; + } + } + + return new AbstractResult($methods); + } + + /** + * @param stdClass $data + * @return AbstractResult + */ + public static function cleanlog(stdClass $data): AbstractResult + { + if (isset($data->cModulId) && ($modulId = $data->cModulId)) { + return new AbstractResult(PluginHelper::getDB()->delete('tzahlungslog', 'cModulId', $modulId)); + } + + return new AbstractResult(false); + } + + /** + * @param stdClass $data + * @return AbstractResult + */ + public static function statistics(stdClass $data): AbstractResult + { + $id = 'kPlugin_' . Helper::getIDByPluginID('ws5_mollie') . '_%'; + + $result = PluginHelper::getDB()->executeQueryPrepared('( +SELECT COUNT(b.cBestellNr) as transactions, ROUND(IFNULL(SUM(b.fGesamtsumme),0),2) as amount, "day" as timespan FROM tbestellung b +WHERE kZahlungsart IN (SELECT z.kZahlungsart FROM tzahlungsart z +WHERE z.cModulId LIKE :cModulId1) +AND b.dErstellt > DATE_SUB(CURDATE(), INTERVAL 24 HOUR) +) UNION ( +SELECT COUNT(b.cBestellNr) as transactions, ROUND(IFNULL(SUM(b.fGesamtsumme),0),2) as amount, "week" as timespan FROM tbestellung b +WHERE kZahlungsart IN (SELECT z.kZahlungsart FROM tzahlungsart z +WHERE z.cModulId LIKE :cModulId2) +AND b.dErstellt > DATE_SUB(CURDATE(), INTERVAL 1 WEEK) +) UNION ( +SELECT COUNT(b.cBestellNr) as transactions, ROUND(IFNULL(SUM(b.fGesamtsumme),0),2) as amount, "month" as timespan FROM tbestellung b +WHERE kZahlungsart IN (SELECT z.kZahlungsart FROM tzahlungsart z +WHERE z.cModulId LIKE :cModulId3) +AND b.dErstellt > DATE_SUB(CURDATE(), INTERVAL 1 MONTH) +) UNION ( +SELECT COUNT(b.cBestellNr) as transactions, ROUND(IFNULL(SUM(b.fGesamtsumme),0),2) as amount, "year" as timespan FROM tbestellung b +WHERE kZahlungsart IN (SELECT z.kZahlungsart FROM tzahlungsart z +WHERE z.cModulId LIKE :cModulId4) +AND b.dErstellt > DATE_SUB(CURDATE(), INTERVAL 1 YEAR) +)', [ + ':cModulId1' => $id, + ':cModulId2' => $id, + ':cModulId3' => $id, + ':cModulId4' => $id, + ], 2); + + $response = array_combine(array_map(static function ($v) { + return $v->timespan; + }, $result), array_values($result)); + + return new AbstractResult($response); + } + + /** + * @param stdClass $data + * @throws \Exception + * @throws ApiException + * @return AbstractResult + */ + public static function cancelOrderLine(stdClass $data): AbstractResult + { + if (strpos($data->id, 'ord_') !== 0) { + throw new \RuntimeException('Invalid Order ID!'); + } + if (strpos($data->lineId, 'odl_') !== 0) { + throw new \RuntimeException('Invalid Orderline ID!'); + } + if (!$data->quantity || $data->quantity <= 0) { + throw new \RuntimeException('Invalid Quantity!'); + } + + $checkout = OrderCheckout::fromID($data->id); + $checkout->getMollie()->cancelLines([ + 'lines' => [ + [ + 'id' => $data->lineId, + 'quantity' => $data->quantity, + ], + ], + ]); + + return new AbstractResult(true); + } + + public static function cancelOrder(stdClass $data): AbstractResult + { + if (strpos($data->id, 'ord_') !== 0) { + throw new \RuntimeException('Invalid Order ID!'); + } + + $checkout = OrderCheckout::fromID($data->id); + + return new AbstractResult($checkout->getMollie()->cancel()->isCanceled()); + } + + /** + * @throws ApiException + * @throws \Exception + */ + public static function refundOrder(stdClass $data): AbstractResult + { + if (strpos($data->id, 'tr_') !== false) { + $checkout = PaymentCheckout::fromID($data->id); + $checkout->getMollie()->refund([ + 'amount' => $checkout->getMollie()->amountRemaining, + ]); + } else { + $checkout = OrderCheckout::fromID($data->id); + $checkout->getMollie()->refundAll(); + } + + return new AbstractResult(true); + } + + public static function cancelRefund(stdClass $data): AbstractResult + { + if (!$data->id || !$data->refundId) { + throw new \RuntimeException('Missing Mollie ID or Refund ID!'); + } + + if (strpos($data->id, 'tr_') !== false) { + $checkout = PaymentCheckout::fromID($data->id); + } else { + $checkout = OrderCheckout::fromID($data->id); + } + $refunds = $checkout->getMollie()->refunds(); + /** @var Refund $refund */ + foreach ($refunds as $refund) { + if ($refund->id === $data->refundId) { + $refund->cancel(); + + return new AbstractResult(true); + } + } + + throw new \RuntimeException('Refund not found!'); + } + + public static function refundOrderLine(stdClass $data): AbstractResult + { + if (strpos($data->id, 'ord_') !== 0) { + throw new \RuntimeException('Invalid Order ID!'); + } + if (strpos($data->lineId, 'odl_') !== 0) { + throw new \RuntimeException('Invalid Order ID!'); + } + if (!$data->quantity || $data->quantity <= 0) { + throw new \RuntimeException('Invalid Quantity!'); + } + + $checkout = OrderCheckout::fromID($data->id); + $checkout->getMollie()->refund([ + 'lines' => [ + [ + 'id' => $data->lineId, + 'quantity' => $data->quantity, + ], + ], + ]); + + return new AbstractResult(true); + } + + + public static function refundAmount(stdClass $data): AbstractResult + { + if (strpos($data->id, 'tr_') !== 0) { + throw new \RuntimeException('Invalid Payment ID!'); + } + + if (!$data->amount) { + throw new \RuntimeException('Invalid Amount!'); + } + + $checkout = PaymentCheckout::fromID($data->id); + $result = $checkout->getMollie()->refund([ + 'amount' => [ + 'value' => number_format((float)$data->amount, 2), + 'currency' => $checkout->getMollie()->amount->currency, + ], + 'description' => 'Refund for order ' . $checkout->getBestellung()->cBestellNr, + ]); + + return new AbstractResult($result->id); + } + + public static function getOrder(stdClass $data) + { + if (strpos($data->id, 'ord_') !== 0) { + throw new \RuntimeException('Invalid Order ID!'); + } + $checkout = OrderCheckout::fromID($data->id); + + return new AbstractResult($checkout->getMollie()); + } + + public static function getPayment(stdClass $data) + { + if (strpos($data->id, 'tr_') !== 0) { + throw new \RuntimeException('Invalid Payment ID!'); + } + $checkout = PaymentCheckout::fromID($data->id); + + return new AbstractResult($checkout->getMollie()); + } +} diff --git a/lib/Controller/OrdersController.php b/lib/Controller/OrdersController.php index c904380..b57d6d8 100644 --- a/lib/Controller/OrdersController.php +++ b/lib/Controller/OrdersController.php @@ -1,2 +1,187 @@ -id, 'cOrderId', true); + + $oBestellung = new Bestellung($orderModel->kBestellung); + + return new AbstractResult(AbstractCheckout::makeFetchable($oBestellung, $orderModel)); + } + + /** + * @param stdClass $data + * @return AbstractResult + */ + public static function shipments(stdClass $data): AbstractResult + { + $response = []; + if ($data->kBestellung) { + $lieferschein_arr = PluginHelper::getDB()->executeQueryPrepared('SELECT * FROM tlieferschein WHERE kInetBestellung = :kBestellung', [ + ':kBestellung' => (int)$data->kBestellung + ], 2); + + foreach ($lieferschein_arr as $lieferschein) { + $shipmentsModel = ShipmentsModel::fromID((int)$lieferschein->kLieferschein, 'kLieferschein', false); + + $response[] = (object)[ + 'kLieferschein' => $lieferschein->kLieferschein, + 'cLieferscheinNr' => $lieferschein->cLieferscheinNr, + 'cHinweis' => $lieferschein->cHinweis, + 'dErstellt' => date('Y-m-d H:i:s', $lieferschein->dErstellt), + 'shipment' => $shipmentsModel->kBestellung ? $shipmentsModel : null, + ]; + } + } + + return new AbstractResult($response); + } + + /** + * @param stdClass $data + * @return AbstractResult + */ + public static function all(stdClass $data): AbstractResult + { + if (PluginHelper::getSetting('hideCompleted')) { + $query = 'SELECT o.*, b.cStatus as cJTLStatus, b.cAbgeholt, b.cVersandartName, b.cZahlungsartName, b.fGuthaben, b.fGesamtsumme ' + . 'FROM xplugin_ws5_mollie_orders o ' + . 'JOIN tbestellung b ON b.kbestellung = o.kBestellung ' + . "WHERE !(o.cStatus = 'completed' AND b.cStatus = '4')" + . 'ORDER BY b.dErstellt DESC;'; + $data->query = $query; + } + + return HelperController::selectAll($data); + } + + /** + * @param stdClass $data + * @throws Exception + * @return AbstractResult + */ + public static function one(stdClass $data): AbstractResult + { + $result = []; + if (strpos($data->id, 'tr_') !== false) { + $checkout = PaymentCheckout::fromID($data->id); + } else { + $checkout = OrderCheckout::fromID($data->id); + } + + $checkout->updateModel()->saveModel(); + + $result['mollie'] = $checkout->getMollie(); + $result['order'] = $checkout->getModel()->jsonSerialize(); + $result['bestellung'] = $checkout->getBestellung(); + $result['logs'] = PluginHelper::getDB() + ->executeQueryPrepared( + 'SELECT * FROM `xplugin_ws5_mollie_queue` WHERE cType LIKE :cTypeWebhook OR cType LIKE :cTypeHook', + [ + ':cTypeWebhook' => "%{$checkout->getModel()->cOrderId}%", + ':cTypeHook' => "%:{$checkout->getModel()->kBestellung}%" + ], + 2 + ); + + return new AbstractResult($result); + } + + /** + * @param stdClass $data + * @throws Exception + * @return AbstractResult + */ + public static function get(stdClass $data): AbstractResult + { + if (strpos($data->id, 'tr_') !== false) { + $checkout = PaymentCheckout::fromID($data->id); + } else { + $checkout = OrderCheckout::fromID($data->id); + } + $checkout->updateModel()->saveModel(); + + return new AbstractResult($checkout->getBestellung()); + } + + public static function getQueue(stdClass $data): AbstractResult + { + if (strpos($data->id, 'tr_') !== false) { + $checkout = PaymentCheckout::fromID($data->id); + } else { + $checkout = OrderCheckout::fromID($data->id); + } + + $checkout->updateModel()->saveModel(); + + return new AbstractResult(PluginHelper::getDB() + ->executeQueryPrepared( + 'SELECT * FROM `xplugin_ws5_mollie_queue` WHERE cType LIKE :cTypeWebhook OR cType LIKE :cTypeHook', + [ + ':cTypeWebhook' => "%{$checkout->getModel()->cOrderId}%", + ':cTypeHook' => "%:{$checkout->getModel()->kBestellung}%" + ], + 2 + )); + } + + + /** + * @param stdClass $data + * @throws Exception + * @return AbstractResult + */ + public static function reminder(stdClass $data): AbstractResult + { + return new AbstractResult(AbstractCheckout::sendReminder($data->id)); + } + + /** + * @param stdClass $data + * @return AbstractResult + */ + public static function zalog(stdClass $data) + { + if ($data->id && $data->kBestellung) { + $logs = PluginHelper::getDB()->executeQueryPrepared('SELECT * FROM tzahlungslog WHERE cLogData LIKE :cLogData1 OR cLogData LIKE :cLogData2 ORDER BY dDatum DESC', [ + ':cLogData1' => sprintf('%%#%d%%', (int)$data->kBestellung), + ':cLogData2' => sprintf('%%$%s%%', trim($data->id)) + ], 2); + + return new AbstractResult($logs); + } + + return new AbstractResult(); + } +} diff --git a/lib/Controller/QueueController.php b/lib/Controller/QueueController.php index 1bf4ad5..ecce0c7 100644 --- a/lib/Controller/QueueController.php +++ b/lib/Controller/QueueController.php @@ -1,2 +1,62 @@ -id) && ($id = (int)$data->id)) { + return new AbstractResult(PluginHelper::getDB()->delete('xplugin_ws5_mollie_queue', 'kId', $id)); + } + + return new AbstractResult(false); + } + + public static function unlock(stdClass $data): AbstractResult + { + if (isset($data->id) && ($id = (int)$data->id)) { + return new AbstractResult(PluginHelper::getDB()->update('xplugin_ws5_mollie_queue', 'kId', $id, (object)[ + 'bLock' => ModelInterface::NULL + ])); + } + + return new AbstractResult(false); + } + + public static function run(stdClass $data): AbstractResult + { + if (isset($data->id) && ($id = (int)$data->id)) { + $todo = QueueModel::fromID($id, 'kId'); + $todo->cError = ModelInterface::NULL; + $todo->dDone = ModelInterface::NULL; + $todo->cResult = ModelInterface::NULL; + $todo->bLock = ModelInterface::NULL; + + return new AbstractResult($todo->save()); + } + + return new AbstractResult(false); + } +} diff --git a/lib/Controller/ShipmentsController.php b/lib/Controller/ShipmentsController.php index 5608611..d264ce5 100644 --- a/lib/Controller/ShipmentsController.php +++ b/lib/Controller/ShipmentsController.php @@ -1,2 +1,68 @@ -kBestellung || !$data->kLieferschein || !$data->orderId) { + throw new APIException('Bestellung, Liefererschein oder Mollie OrderId fehlen.'); + } + + $checkout = OrderCheckout::fromID($data->orderId); + + if ($checkout->getModel()->kBestellung) { + $shipment = new Shipment((int)$data->kLieferschein, $checkout); + + $oKunde = new Customer($checkout->getBestellung()->kKunde); + + $mode = PluginHelper::getSetting('shippingMode'); + switch ($mode) { + case 'A': + // ship directly + if (!$shipment->send() && !$shipment->getShipment()) { + throw new APIException('Shipment konnte nicht gespeichert werden.'); + } + + return new AbstractResult(true); + case 'B': + // only ship if complete shipping + if ($oKunde->nRegistriert || (int)$checkout->getBestellung()->cStatus === BESTELLUNG_STATUS_VERSANDT) { + if (!$shipment->send() && !$shipment->getShipment()) { + throw new APIException('Shipment konnte nicht gespeichert werden.'); + } + + return new AbstractResult(true); + } + + throw new APIException('Gastbestellung noch nicht komplett versendet!'); + } + } else { + throw new APIException('Bestellung konnte nicht geladen werden'); + } + + return new AbstractResult($shipment); + } +} diff --git a/lib/Customer.php b/lib/Customer.php index 1ad0c69..5b04b4d 100644 --- a/lib/Customer.php +++ b/lib/Customer.php @@ -1,2 +1,92 @@ -kKunde, 'kKunde'); + + $api = new MollieAPI(MollieAPI::getMode()); + + if (!$mCustomer->customerId && isset($_SESSION['cPost_arr']) && is_array($_SESSION['cPost_arr'])) { + if (!array_key_exists('mollie_create_customer', $_SESSION['cPost_arr']) || $_SESSION['cPost_arr']['mollie_create_customer'] !== 'on') { + return null; + } + + $customer = new self(); + } else { + try { + $customer = $api->getClient()->customers->get($mCustomer->customerId); + } catch (ApiException $e) { + $customer = new self(); + } + } + + $customer->name = trim($oKunde->cVorname . ' ' . $oKunde->cNachname); + $customer->email = $oKunde->cMail; + $customer->locale = Locale::getLocale(Frontend::get('cISOSprache', 'ger'), $oKunde->cLand); + $customer->metadata = (object)[ + 'kKunde' => $oKunde->getID(), + 'kKundengruppe' => $oKunde->getGroupID(), + 'cKundenNr' => $oKunde->cKundenNr, + ]; + + if ($customer instanceof \Mollie\Api\Resources\Customer) { + $customer->update(); + } else { + try { + $customer = $api->getClient()->customers->create($customer->toArray()); + $mCustomer->kKunde = $oKunde->getID(); + $mCustomer->customerId = $customer->id; + $mCustomer->save(); + } catch (ApiException $e) { + return null; + } + } + + return $mCustomer->customerId; + } +} diff --git a/lib/ExclusiveLock.php b/lib/ExclusiveLock.php index 0955b9d..0b993e6 100644 --- a/lib/ExclusiveLock.php +++ b/lib/ExclusiveLock.php @@ -1,2 +1,80 @@ -key = $key; + $this->path = rtrim(realpath($path), '/') . '/'; + if (!is_dir($path) || !is_writable($path)) { + throw new RuntimeException("Lock Path '$path' doesn't exist, or is not writable!"); + } + //create a new resource or get exisitng with same key + $this->file = fopen($this->path . "$key.lockfile", 'wb+'); + } + + public function __destruct() + { + if ($this->own === true) { + $this->unlock(); + } + } + + /** + * @noinspection ForgottenDebugOutputInspection + * + * @return bool + */ + public function unlock(): bool + { + $key = $this->key; + if ($this->own === true) { + if (!flock($this->file, LOCK_UN)) { //failed + error_log("ExclusiveLock::lock FAILED to release lock [$key]"); + + return false; + } + fwrite($this->file, 'Unlocked - ' . microtime(true) . "\n"); + fflush($this->file); + $this->own = false; + } else { + error_log("ExclusiveLock::unlock called on [$key] but its not acquired by caller"); + } + + return true; // success + } + + /** + * @return bool + */ + public function lock(): bool + { + if (!flock($this->file, LOCK_EX | LOCK_NB)) { //failed + return false; + } + fwrite($this->file, 'Locked - ' . microtime(true) . "\n"); + fflush($this->file); + + $this->own = true; + + return true; // success + } +} diff --git a/lib/Helper/UrlHelper.php b/lib/Helper/UrlHelper.php index b4dd749..f3ec575 100644 --- a/lib/Helper/UrlHelper.php +++ b/lib/Helper/UrlHelper.php @@ -1,2 +1,28 @@ -getLinkService()->getSpecialPage($linkType)->getSEOs(); + + if (!empty($seoLinkArray)) { + foreach ($seoLinkArray as $seoLink) { + if (strpos(strtolower($_SERVER['REQUEST_URI']), strtolower($seoLink)) !== false) { + return true; + } + } + } + + return false; + } +} diff --git a/lib/Hook/ApplePay.php b/lib/Hook/ApplePay.php index d4dd93b..a8d9a60 100644 --- a/lib/Hook/ApplePay.php +++ b/lib/Hook/ApplePay.php @@ -1,2 +1,61 @@ -getID())) + && array_key_exists($key, $_SESSION) && !array_key_exists('Zahlungsart', $_SESSION) + ) { + unset($_SESSION[$key]); + } + + if (!array_key_exists('ws_mollie_applepay_available', $_SESSION)) { + pq('head')->append(""); + } + } catch (Exception $e) { + } + } + + /** + * @return bool + */ + public static function isAvailable(): bool + { + if (array_key_exists('ws_mollie_applepay_available', $_SESSION)) { + return $_SESSION['ws_mollie_applepay_available']; + } + + return false; + } + + /** + * @param bool $status + */ + public static function setAvailable(bool $status): void + { + $_SESSION['ws_mollie_applepay_available'] = $status; + } +} diff --git a/lib/Hook/Checkbox.php b/lib/Hook/Checkbox.php index fe35937..7fb0815 100644 --- a/lib/Hook/Checkbox.php +++ b/lib/Hook/Checkbox.php @@ -1,2 +1,107 @@ -cModulId, 'kPlugin_' . PluginHelper::getPlugin()->getID() . '_') === false) { + return; + } + + if ($args_arr['nAnzeigeOrt'] === CHECKBOX_ORT_BESTELLABSCHLUSS && ($klarnaEID = trim(PluginHelper::getSetting('klarnaEID'))) !== '') { + $modulID = Frontend::get('Zahlungsart')->cModulId; + // TODO: Refactor this to use "PluginHelper::getPaymentSetting" once available + $trustedShopsCheckbox = self::Plugin('ws5_mollie')->getConfig()->getValue($modulID . '_trustedShopsCheckbox'); + if ($trustedShopsCheckbox === 'Y') { + $checkbox = new \JTL\CheckBox(); + $checkbox->kLink = 0; + $checkbox->kCheckBox = 0; + $checkbox->kCheckBoxFunktion = 0; + $checkbox->cName = 'MOLLIE KLARNA AGB'; + $checkbox->cKundengruppe = ';1;'; + $checkbox->cAnzeigeOrt = ';2;'; + $checkbox->nAktiv = 1; + $checkbox->nPflicht = 1; + $checkbox->nLogging = 0; + $checkbox->nSort = 999; + $checkbox->dErstellt = date('Y-m-d H:i:s'); + $checkbox->oCheckBoxSprache_arr = []; + + $langs = LanguageHelper::getAllLanguages(1); + foreach ($langs as $kSprache => $lang) { + $checkbox->oCheckBoxSprache_arr[$kSprache] = (object)[ + 'cText' => PluginHelper::getPlugin()->getLocalization()->getTranslation('klarnaAGBText', $lang->getIso()), + 'cBeschreibung' => sprintf(PluginHelper::getPlugin()->getLocalization()->getTranslation('klarnaAGBDesc', $lang->getIso()), $klarnaEID), + 'kSprache' => $kSprache, + 'kCheckbox' => -1 + ]; + } + + $checkbox->kKundengruppe_arr = [Frontend::getCustomer()->getGroupID()]; + $checkbox->kAnzeigeOrt_arr = [CHECKBOX_ORT_BESTELLABSCHLUSS]; + $checkbox->cID = 'mollie_klarna_agb'; + $checkbox->cLink = ''; + + $args_arr['oCheckBox_arr'][] = $checkbox; + } + } + + + if (Frontend::getCustomer()->nRegistriert && $args_arr['nAnzeigeOrt'] === CHECKBOX_ORT_BESTELLABSCHLUSS) { + $mCustomer = CustomerModel::fromID(Frontend::getCustomer()->getID(), 'kKunde'); + + if ($mCustomer->customerId) { + return; + } + + $checkbox = new \JTL\CheckBox(); + $checkbox->kLink = 0; + $checkbox->kCheckBox = 0; + $checkbox->kCheckBoxFunktion = 0; + $checkbox->cName = 'MOLLIE SAVE CUSTOMER'; + $checkbox->cKundengruppe = ';1;'; + $checkbox->cAnzeigeOrt = ';2;'; + $checkbox->nAktiv = 1; + $checkbox->nPflicht = 0; + $checkbox->nLogging = 0; + $checkbox->nSort = 999; + $checkbox->dErstellt = date('Y-m-d H:i:s'); + $checkbox->oCheckBoxSprache_arr = []; + + $langs = LanguageHelper::getAllLanguages(1); + foreach ($langs as $kSprache => $lang) { + $checkbox->oCheckBoxSprache_arr[$kSprache] = (object)[ + 'cText' => PluginHelper::getPlugin()->getLocalization()->getTranslation('checkboxText', $lang->getIso()), + 'cBeschreibung' => PluginHelper::getPlugin()->getLocalization()->getTranslation('checkboxDescr', $lang->getIso()), + 'kSprache' => $kSprache, + 'kCheckbox' => -1 + ]; + } + + $checkbox->kKundengruppe_arr = [Frontend::getCustomer()->getGroupID()]; + $checkbox->kAnzeigeOrt_arr = [CHECKBOX_ORT_BESTELLABSCHLUSS]; + $checkbox->cID = 'mollie_create_customer'; + $checkbox->cLink = ''; + + $args_arr['oCheckBox_arr'][] = $checkbox; + } + } +} diff --git a/lib/Hook/IncompletePaymentHandler.php b/lib/Hook/IncompletePaymentHandler.php index afd963d..f32c2ae 100644 --- a/lib/Hook/IncompletePaymentHandler.php +++ b/lib/Hook/IncompletePaymentHandler.php @@ -1,2 +1,63 @@ -cAnbieter) && $_SESSION["Zahlungsart"]->cAnbieter === "Mollie") || Request::isAjaxRequest()) { + return; + } + + // Check if coming back from Mollie and payment was not successful. Redirect to check out with "mollie_payment_not_completed"-parameter to be able to show correct error alert in frontend + if (Shop::getPageType() === PAGE_BESTELLVORGANG && array_key_exists('fillOut', $_REQUEST) && $_REQUEST['fillOut'] === '-1') { + + $queryArray = array_merge($_REQUEST, [static::MOLLIE_PAYMENT_NOT_COMPLETED_STRING => 1]); + unset($queryArray['fillOut']); + + $queryString = http_build_query($queryArray); + $checkoutURL = Shop::Container()->getLinkService()->getSpecialPage(LINKTYP_BESTELLVORGANG)->getURL(); + + header('Location: ' . $checkoutURL . '?' . $queryString); + } + + // Add error alert to frontend + if (array_key_exists(static::MOLLIE_PAYMENT_NOT_COMPLETED_STRING, $_REQUEST) && $_REQUEST[static::MOLLIE_PAYMENT_NOT_COMPLETED_STRING] === '1') { + + $translatedErrorMessage = PluginHelper::getPlugin()->getLocalization()->getTranslation('paymentNotCompleted'); + Shop::Container()->getAlertService()->addAlert( + Alert::TYPE_ERROR, + $translatedErrorMessage, + 'mollie_payment_incomplete' + ); + } + + } catch (Exception $e) { + Shop::Container()->getLogService()->critical($e->getMessage()); + } + } +} diff --git a/lib/Hook/Queue.php b/lib/Hook/Queue.php index e717073..a94141d 100644 --- a/lib/Hook/Queue.php +++ b/lib/Hook/Queue.php @@ -1,2 +1,132 @@ -kZahlungsart, true) + ) { + $args_arr['oBestellung']->cAbgeholt = 'Y'; + Shop::Container()->getLogService()->info('Switch cAbgeholt for kBestellung: ' . print_r($args_arr['oBestellung']->kBestellung, 1)); + } + } + + /** + * @param array $args_arr + * @throws CircularReferenceException + * @throws ServiceNotFoundException + */ + public static function xmlBestellStatus(array $args_arr): void + { + if (AbstractCheckout::isMollie((int)$args_arr['oBestellung']->kBestellung)) { + QueueModel::saveToQueue(HOOK_BESTELLUNGEN_XML_BESTELLSTATUS . ':' . (int)$args_arr['oBestellung']->kBestellung, [ + 'kBestellung' => $args_arr['oBestellung']->kBestellung, + 'status' => (int)$args_arr['status'] + ]); + } + } + + /** + * @param array $args_arr + * @throws CircularReferenceException + * @throws ServiceNotFoundException + */ + public static function xmlBearbeiteStorno(array $args_arr): void + { + if (AbstractCheckout::isMollie((int)$args_arr['oBestellung']->kBestellung)) { + QueueModel::saveToQueue(HOOK_BESTELLUNGEN_XML_BEARBEITESTORNO . ':' . $args_arr['oBestellung']->kBestellung, ['kBestellung' => $args_arr['oBestellung']->kBestellung]); + } + } + + /** + * @throws CircularReferenceException + * @throws ServiceNotFoundException + */ + public static function headPostGet(): void + { + if (array_key_exists('mollie', $_REQUEST) && (int)$_REQUEST['mollie'] === 1 && array_key_exists('id', $_REQUEST)) { + try { + if (array_key_exists('hash', $_REQUEST) && $hash = trim(Text::htmlentities(Text::filterXSS($_REQUEST['hash'])), '_')) { + AbstractCheckout::finalizeOrder($hash, $_REQUEST['id'], array_key_exists('test', $_REQUEST)); + } else { + QueueModel::saveToQueue($_REQUEST['id'], $_REQUEST, 'webhook'); + } + } catch (Exception $e) { + Shop::Container()->getLogService()->error(__NAMESPACE__ . ' could not finalize order or add to queue: ' . $e->getMessage() . "\n" . json_encode($_REQUEST)); + } + + // TODO: DOKU + ifndef('MOLLIE_STOP_EXEC_AFTER_WEBHOOK', true); + if (MOLLIE_STOP_EXEC_AFTER_WEBHOOK) { + exit(); + } + } + if (array_key_exists('m_pay', $_REQUEST)) { + try { + $raw = PluginHelper::getDB()->executeQueryPrepared('SELECT kId, cOrderId FROM `xplugin_ws5_mollie_orders` WHERE dReminder IS NOT NULL AND MD5(CONCAT(kId, "-", kBestellung)) = :md5', [ + ':md5' => $_REQUEST['m_pay'] + ], 1); + + if (!$raw) { + throw new RuntimeException(PluginHelper::getPlugin()->getLocalization()->getTranslation('errOrderNotFound')); + } + + if (strpos($raw->cOrderId, 'tr_') === 0) { + $checkout = PaymentCheckout::fromID($raw->cOrderId); + } else { + $checkout = OrderCheckout::fromID($raw->cOrderId); + } + $checkout->getMollie(true); + $checkout->updateModel()->saveModel(); + + if ($checkout->getBestellung()->dBezahltDatum !== null || in_array($checkout->getModel()->cStatus, ['completed', 'paid', 'authorized', 'pending'])) { + throw new RuntimeException(PluginHelper::getPlugin()->getLocalization()->getTranslation('errAlreadyPaid')); + } + + $options = []; + if (!PluginHelper::getSetting('resetMethod')) { + $options['method'] = $checkout->getModel()->cMethod; + } + $mollie = $checkout->create($options); + $url = $mollie->getCheckoutUrl(); + + header('Location: ' . $url); + exit(); + } catch (RuntimeException $e) { + $alertHelper = Shop::Container()->getAlertService(); + $alertHelper->addAlert(Alert::TYPE_ERROR, $e->getMessage(), 'mollie_repay', ['dismissable' => true]); + } catch (Exception $e) { + Shop::Container()->getLogService()->error('mollie:repay:error: ' . $e->getMessage() . "\n" . print_r($_REQUEST, 1)); + } + } + } +} diff --git a/lib/Locale.php b/lib/Locale.php index 44ae2c5..b11400c 100644 --- a/lib/Locale.php +++ b/lib/Locale.php @@ -1,2 +1,53 @@ - ['lang' => 'de', 'country' => ['DE', 'AT', 'CH']], + 'fre' => ['lang' => 'fr', 'country' => ['BE', 'FR']], + 'dut' => ['lang' => 'nl', 'country' => ['BE', 'NL']], + 'spa' => ['lang' => 'es', 'country' => ['ES']], + 'ita' => ['lang' => 'it', 'country' => ['IT']], + 'pol' => ['lang' => 'pl', 'country' => ['PL']], + 'hun' => ['lang' => 'hu', 'country' => ['HU']], + 'por' => ['lang' => 'pt', 'country' => ['PT']], + 'nor' => ['lang' => 'nb', 'country' => ['NO']], + 'swe' => ['lang' => 'sv', 'country' => ['SE']], + 'fin' => ['lang' => 'fi', 'country' => ['FI']], + 'dan' => ['lang' => 'da', 'country' => ['DK']], + 'ice' => ['lang' => 'is', 'country' => ['IS']], + 'eng' => ['lang' => 'en', 'country' => ['GB', 'US']], + ]; + + /** + * @param mixed $cISOSprache + * @param null|string $country + * @return string + */ + public static function getLocale($cISOSprache, ?string $country = null): string + { + if (array_key_exists($cISOSprache, self::$langs)) { + $locale = self::$langs[$cISOSprache]['lang']; + if ($country && is_array(self::$langs[$cISOSprache]['country']) && in_array($country, self::$langs[$cISOSprache]['country'], true)) { + $locale .= '_' . strtoupper($country); + } else { + $locale .= '_' . self::$langs[$cISOSprache]['country'][0]; + } + + return $locale; + } + + return PluginHelper::getSetting('fallbackLocale'); + } +} diff --git a/lib/Model/CustomerModel.php b/lib/Model/CustomerModel.php index 95fcf05..b761f6e 100644 --- a/lib/Model/CustomerModel.php +++ b/lib/Model/CustomerModel.php @@ -1,2 +1,24 @@ -dCreated || $this->dCreated === '0000-00-00 00:00:00') { + $this->dCreated = date('Y-m-d H:i:s'); + } + $this->dModified = date('Y-m-d H:i:s'); + + return parent::save(); + } +} diff --git a/lib/Model/QueueModel.php b/lib/Model/QueueModel.php index e64a951..8e33870 100644 --- a/lib/Model/QueueModel.php +++ b/lib/Model/QueueModel.php @@ -1,2 +1,96 @@ -executeQueryPrepared(sprintf('DELETE FROM %s WHERE dDone IS NOT NULL AND (bLock IS NULL OR bLock = "0000-00-00 00:00:00") AND dCreated < DATE_SUB(NOW(), INTERVAL %d DAY)', self::TABLE, (int)MOLLIE_CLEANUP_DAYS), [], 3); + } + + /** + * @param null|string $result + * @param null|string $date + * @return bool + */ + public function done(string $result = null, string $date = null): bool + { + $this->cResult = $result ?? self::NULL; + $this->cError = $this->cError ?? self::NULL; + $this->dDone = $date ?? date('Y-m-d H:i:s'); + $this->bLock = self::NULL; + + return $this->save(); + } + + /** + * @return true + */ + public function save(): bool + { + $this->dModified = date('Y-m-d H:i:s'); + + return parent::save(); + } + + /** + * @param string $hook + * @param array $args_arr + * @param string $type + * @throws CircularReferenceException + * @throws ServiceNotFoundException + * @return bool + */ + public static function saveToQueue(string $hook, array $args_arr, string $type = 'hook'): bool + { + $mQueue = new self(); + $mQueue->cType = $type . ':' . $hook; + $mQueue->cData = serialize($args_arr); + $mQueue->dCreated = date('Y-m-d H:i:s'); + + try { + return $mQueue->save(); + } catch (Exception $e) { + Shop::Container()->getLogService() + ->error('mollie::saveToQueue: ' . $e->getMessage() . ' - ' . print_r($args_arr, 1)); + + return false; + } + } +} diff --git a/lib/Model/ShipmentsModel.php b/lib/Model/ShipmentsModel.php index 50f2d97..5f2198c 100644 --- a/lib/Model/ShipmentsModel.php +++ b/lib/Model/ShipmentsModel.php @@ -1,2 +1,42 @@ -dModified = date('Y-m-d H:i:s'); + + return parent::save(); + } +} diff --git a/lib/MollieAPI.php b/lib/MollieAPI.php index 20e299c..51b6d67 100644 --- a/lib/MollieAPI.php +++ b/lib/MollieAPI.php @@ -1,2 +1,104 @@ -test = $test; + } + + /** + * + * true = TEST + * false = LIVE + * + * @return bool + */ + public static function getMode(): bool + { + try { + if (PluginHelper::getSetting('testAsAdmin') && PluginHelper::getSetting('test_apiKey') !== '') { + $_GET['fromAdmin'] = 'yes'; + + return Shop::isAdmin(true); + } + } catch (Exception $e) { + return false; + } + + return false; + } + + /** + * @throws ApiException + * @throws IncompatiblePlatform + * @return MollieApiClient + */ + public function getClient(): MollieApiClient + { + if (!$this->client) { + $this->client = new MollieApiClient(new Client([ + RequestOptions::VERIFY => CaBundle::getBundledCaBundlePath(), + RequestOptions::TIMEOUT => 60, + ])); + $this->client->setApiKey(self::getAPIKey($this->test)); + $this->client->addVersionString('JTL-Shop/' . APPLICATION_VERSION); + $this->client->addVersionString('ws5_mollie/' . PluginHelper::getPlugin()->getCurrentVersion()); + } + + return $this->client; + } + + /** + * @param boolean $test + * @return string + */ + protected static function getAPIKey(bool $test): string + { + if ($test) { + return PluginHelper::getSetting('test_apiKey'); + } + + return PluginHelper::getSetting('apiKey'); + } + + /** + * @return bool + */ + public function isTest(): bool + { + return $this->test; + } +} diff --git a/lib/Order/Address.php b/lib/Order/Address.php index 3370f58..2a23719 100644 --- a/lib/Order/Address.php +++ b/lib/Order/Address.php @@ -1,2 +1,65 @@ -title = html_entity_decode(substr(trim(($address->cAnrede === 'm' ? Shop::Lang()->get('mr') : Shop::Lang()->get('mrs')) . ' ' . $address->cTitel), 0, 20)) ?? null; + $this->givenName = html_entity_decode($address->cVorname); + $this->familyName = html_entity_decode($address->cNachname); + $this->email = html_entity_decode($address->cMail) ?? null; + + if ($organizationName = isset($address->cFirma) ? trim($address->cFirma) : null) { + $this->organizationName = html_entity_decode($organizationName); + } + } +} diff --git a/lib/Order/Amount.php b/lib/Order/Amount.php index 744c58f..e4055ac 100644 --- a/lib/Order/Amount.php +++ b/lib/Order/Amount.php @@ -1,2 +1,66 @@ - true [5 Rappen Rounding]) + * @todo: prüfe mit Shop4 + */ + public function __construct($value, Currency $currency = null, bool $useRounding = false) + { + if (!$currency) { + $currency = self::fallbackCurrency(); + } + $this->value = number_format(round($useRounding ? self::round($value) : $value, 2), 2, '.', ''); + $this->currency = $currency->getCode(); + } + + /** + * @return Currency + */ + public static function fallbackCurrency(): Currency + { + $curr = $_SESSION['Waehrung'] ?? PluginHelper::getDB()->select('twaehrung', 'cStandard', 'Y'); + + return new Currency($curr->kWaehrung); + } + + /** + * @param float $gesamtsumme + * @return float + */ + public static function round(float $gesamtsumme): float + { + $conf = Shop::getSettings([CONF_KAUFABWICKLUNG]); + if ( + isset($conf['kaufabwicklung']['bestellabschluss_runden5']) + && ($conf['kaufabwicklung']['bestellabschluss_runden5'] === 1) + ) { + // simplification. see https://de.wikipedia.org/wiki/Rundung#Rappenrundung + $gesamtsumme = round($gesamtsumme * 20.0) / 20.0; + } + + return $gesamtsumme; + } +} diff --git a/lib/Order/OrderLine.php b/lib/Order/OrderLine.php index 79d495f..14e221b 100644 --- a/lib/Order/OrderLine.php +++ b/lib/Order/OrderLine.php @@ -1,2 +1,221 @@ -type = self::getType($oPosition->nPosTyp, $oPosition->fPreis >= 0); + // TODO: FktAttr? $orderLine->category + + $orderLine->name = $oPosition->cName; + if (!$orderLine->name || !is_string($orderLine->name)) { + $orderLine->name = $oPosition->cArtNr ?: '(null)'; + } + + $_vatRate = (float)$oPosition->fMwSt / 100; + if ((int)$oPosition->nPosTyp === C_WARENKORBPOS_TYP_KUPON) { + $_netto = round($oPosition->fPreis * (1 + $_vatRate), 4); + $_vatRate = 0; + } else { + $_netto = round($oPosition->fPreis, 4); + } + $_amount = (float)$oPosition->nAnzahl; + + if (fmod($oPosition->nAnzahl, 1) !== 0.0) { + $_netto *= $_amount; + $_amount = 1; + $orderLine->name .= sprintf(' (%.2f %s)', (float)$oPosition->nAnzahl, $oPosition->cEinheit); + } + + // TODO vorher 2 + $unitPriceNetto = round(($currency->getConversionFactor() * $_netto), 4); + $unitPrice = round($unitPriceNetto * (1 + $_vatRate), 2); + $totalAmount = round($_amount * $unitPrice, 2); + $vatAmount = round($totalAmount - ($totalAmount / (1 + $_vatRate)), 2); + + $orderLine->quantity = (int)$_amount; + $orderLine->unitPrice = new Amount($unitPrice, $currency, false); + $orderLine->totalAmount = new Amount($totalAmount, $currency, false); + $orderLine->vatRate = number_format($_vatRate * 100, 2); + $orderLine->vatAmount = new Amount($vatAmount, $currency, false); + + $metadata = []; + + if (isset($oPosition->Artikel)) { + $orderLine->sku = $oPosition->Artikel->cArtNr; + $metadata['kArtikel'] = $oPosition->kArtikel; + if ($oPosition->cUnique !== '') { + $metadata['cUnique'] = $oPosition->cUnique; + } + } + + if (isset($oPosition->WarenkorbPosEigenschaftArr) && is_array($oPosition->WarenkorbPosEigenschaftArr) && count($oPosition->WarenkorbPosEigenschaftArr)) { + $metadata['properties'] = []; + /** @var CartItemProperty $eigenschaft */ + foreach ($oPosition->WarenkorbPosEigenschaftArr as $eigenschaft) { + $metadata['properties'][] = [ + 'kEigenschaft' => $eigenschaft->kEigenschaft, + 'kEigenschaftWert' => $eigenschaft->kEigenschaftWert, + 'name' => $eigenschaft->cEigenschaftName, + 'value' => $eigenschaft->cEigenschaftWertName, + ]; + if (strlen(json_encode($metadata)) > 1000) { + array_pop($metadata['properties']); + + break; + } + } + } + $orderLine->metadata = $metadata; + + return $orderLine; + } + + /** + * @param $nPosTyp + * @throws Exception + * @return string + */ + protected static function getType($nPosTyp, $positive = true): string + { + switch ($nPosTyp) { + case C_WARENKORBPOS_TYP_ARTIKEL: + case C_WARENKORBPOS_TYP_GRATISGESCHENK: + // TODO: digital / Download Artikel? + return OrderLineType::TYPE_PHYSICAL; + case C_WARENKORBPOS_TYP_VERSANDPOS: + return OrderLineType::TYPE_SHIPPING_FEE; + case C_WARENKORBPOS_TYP_VERPACKUNG: + case C_WARENKORBPOS_TYP_VERSANDZUSCHLAG: + case C_WARENKORBPOS_TYP_ZAHLUNGSART: + case C_WARENKORBPOS_TYP_VERSAND_ARTIKELABHAENGIG: + case C_WARENKORBPOS_TYP_NACHNAHMEGEBUEHR: + return OrderLineType::TYPE_SURCHARGE; + case C_WARENKORBPOS_TYP_GUTSCHEIN: + case C_WARENKORBPOS_TYP_KUPON: + case C_WARENKORBPOS_TYP_NEUKUNDENKUPON: + return OrderLineType::TYPE_DISCOUNT; + default: + return $positive ? OrderLineType::TYPE_SURCHARGE : OrderLineType::TYPE_DISCOUNT; + + } + + throw new Exception('Unknown PosTyp.', (int)$nPosTyp); + } + + /** + * @param OrderLine[] $orderLines + * @param Amount $amount + * @param Currency $currency + * @return null|OrderLine + */ + public static function getRoundingCompensation(array $orderLines, Amount $amount, Currency $currency): ?self + { + $sum = .0; + foreach ($orderLines as $line) { + $sum += (float)$line->totalAmount->value; + } + if (abs($sum - (float)$amount->value) > 0) { + $diff = (round((float)$amount->value - $sum, 2)); + if ($diff !== 0.0) { + $line = new self(); + $line->type = $diff > 0 ? OrderLineType::TYPE_SURCHARGE : OrderLineType::TYPE_DISCOUNT; + $line->name = 'Rundungsausgleich'; + $line->quantity = 1; + $line->unitPrice = new Amount($diff, $currency, false); + $line->totalAmount = new Amount($diff, $currency, false); + $line->vatRate = '0.00'; + $line->vatAmount = new Amount(0, $currency, false); + + return $line; + } + } + + return null; + } + + /** + * @param Bestellung $oBestellung + * @return OrderLine + */ + public static function getCredit(Bestellung $oBestellung): self + { + $line = new self(); + $line->type = OrderLineType::TYPE_STORE_CREDIT; + $line->name = 'Guthaben'; + $line->quantity = 1; + $line->unitPrice = (object)[ + 'value' => number_format($oBestellung->Waehrung->getConversionFactor() * $oBestellung->fGuthaben, 2, '.', ''), + 'currency' => $oBestellung->Waehrung->getCode(), + ]; + $line->totalAmount = (object)[ + 'value' => number_format($oBestellung->Waehrung->getConversionFactor() * $oBestellung->fGuthaben, 2, '.', ''), + 'currency' => $oBestellung->Waehrung->getCode(), + ]; + $line->vatRate = '0.00'; + $line->vatAmount = (object)[ + 'value' => number_format(0, 2, '.', ''), + 'currency' => $oBestellung->Waehrung->getCode(), + ]; + + return $line; + } +} diff --git a/lib/Payment/Address.php b/lib/Payment/Address.php index abce6dc..6e442ad 100644 --- a/lib/Payment/Address.php +++ b/lib/Payment/Address.php @@ -1,2 +1,65 @@ -streetAndNumber = html_entity_decode($address->cStrasse . ' ' . $address->cHausnummer); + $this->postalCode = html_entity_decode($address->cPLZ); + $this->city = html_entity_decode($address->cOrt); + $this->country = html_entity_decode($address->cLand); + + if ( + isset($adresse->cAdressZusatz) + && trim($adresse->cAdressZusatz) !== '' + ) { + $this->streetAdditional = html_entity_decode(trim($adresse->cAdressZusatz)); + } + } +} diff --git a/lib/PaymentMethod.php b/lib/PaymentMethod.php index b7aa5b1..a426d71 100644 --- a/lib/PaymentMethod.php +++ b/lib/PaymentMethod.php @@ -1,2 +1,311 @@ -kPlugin = JtlPluginHelper::getIDByModuleID($this->moduleID); + + return $this; + } + + /** + * @return true + */ + public function canPayAgain(): bool + { + return true; + } + + /** + * @param array $args_arr + * @return bool + */ + public function isValidIntern(array $args_arr = []): bool + { + return $this->duringCheckout + ? static::ALLOW_PAYMENT_BEFORE_ORDER && parent::isValidIntern($args_arr) + : parent::isValidIntern($args_arr); + } + + /** + * @return bool + */ + public function isSelectable(): bool + { + if (MollieAPI::getMode()) { + $selectable = trim(PluginHelper::getSetting('test_apiKey')) !== ''; + } else { + $selectable = trim(PluginHelper::getSetting('apiKey')) !== ''; + if (!$selectable) { + $this->doLog('Live API Key missing!', LOGLEVEL_ERROR); + } + } + if ($selectable) { + try { + $locale = self::getLocale(Frontend::getInstance()->getLanguage()->gibISO(), Frontend::getCustomer()->cLand); + $amount = Frontend::getCart()->gibGesamtsummeWaren(true) * Frontend::getCurrency()->getConversionFactor(); + if ($amount <= 0) { + $amount = 0.01; + } + $selectable = self::isMethodPossible( + static::METHOD, + $locale, + Frontend::getCustomer()->cLand, + Frontend::getCurrency()->getCode(), + $amount + ); + } catch (Exception $e) { + $selectable = false; + } + } + + return $selectable && parent::isSelectable(); + } + + /** + * @param string $cISOSprache + * @param null|string $country + * @return string + */ + public static function getLocale(string $cISOSprache, string $country = null): string + { + switch ($cISOSprache) { + case 'ger': + if ($country === 'AT') { + return 'de_AT'; + } + if ($country === 'CH') { + return 'de_CH'; + } + return 'de_DE'; + case 'fre': + if ($country === 'BE') { + return 'fr_BE'; + } + return 'fr_FR'; + case 'dut': + if ($country === 'BE') { + return 'nl_BE'; + } + return 'nl_NL'; + case 'spa': + return 'es_ES'; + case 'ita': + return 'it_IT'; + case 'pol': + return 'pl_PL'; + case 'hun': + return 'hu_HU'; + case 'por': + return 'pt_PT'; + case 'nor': + return 'nb_NO'; + case 'swe': + return 'sv_SE'; + case 'fin': + return 'fi_FI'; + case 'dan': + return 'da_DK'; + case 'ice': + return 'is_IS'; + default: + return 'en_US'; + } + } + + /** + * @param $method + * @param string $locale + * @param $billingCountry + * @param $currency + * @param $amount + * @throws IncompatiblePlatform + * @throws ApiException + * @return bool + */ + protected static function isMethodPossible($method, string $locale, $billingCountry, $currency, $amount): bool + { + $api = new MollieAPI(MollieAPI::getMode()); + + if (!array_key_exists('mollie_possibleMethods', $_SESSION)) { + //Frontend::set('mollie_possibleMethods', []); + $_SESSION['mollie_possibleMethods'] = []; + } + + $key = md5(serialize([$locale, $billingCountry, $currency, $amount])); + if (!array_key_exists($key, $_SESSION['mollie_possibleMethods'])) { + $active = $api->getClient()->methods->allActive([ + 'locale' => $locale, + 'amount' => [ + 'currency' => $currency, + 'value' => number_format($amount, 2, '.', '') + ], + 'billingCountry' => $billingCountry, + 'resource' => 'orders', + 'includeWallets' => 'applepay', + ]); + foreach ($active as $a) { + $_SESSION['mollie_possibleMethods'][$key][] = (object)['id' => $a->id]; + } + } + + if ($method !== '') { + foreach ($_SESSION['mollie_possibleMethods'][$key] as $m) { + if ($m->id === $method) { + return true; + } + } + } else { + return true; + } + + return false; + } + + /** + * @param Bestellung $order + */ + public function preparePaymentProcess(Bestellung $order): void + { + parent::preparePaymentProcess($order); + + try { + if ($this->duringCheckout && !static::ALLOW_PAYMENT_BEFORE_ORDER) { + $this->doLog('Zahlung vor Bestellabschluss nicht unterstützt!', LOGLEVEL_ERROR); + + return; + } + + $payable = (float)$order->fGesamtsumme > 0; + if (!$payable) { + $this->doLog(sprintf("Bestellung '%s': Gesamtsumme %.2f, keine Zahlung notwendig!", $order->cBestellNr, $order->fGesamtsumme), LOGLEVEL_NOTICE); + + return; + } + + $paymentOptions = []; + + if (Frontend::getCustomer()->nRegistriert && ($customerID = Customer::createOrUpdate(Frontend::getCustomer()))) { + $paymentOptions['customerId'] = $customerID; + } + + // TODO: Refactor this to use "PluginHelper::getPaymentSetting" once available + $api = self::Plugin('ws5_mollie')->getConfig()->getValue($this->moduleID . '_api'); + + $paymentOptions = array_merge($paymentOptions, $this->getPaymentOptions($order, $api)); + + if ($api === 'payment') { + $checkout = PaymentCheckout::factory($order); + $payment = $checkout->create($paymentOptions); + $url = $payment->getCheckoutUrl(); + } else { + $checkout = OrderCheckout::factory($order); + $mOrder = $checkout->create($paymentOptions); + $url = $mOrder->getCheckoutUrl(); + } + + try { + if ($order->kBestellung > 0 && method_exists($this, 'generatePUI') && ($pui = $this->generatePUI($checkout))) { + $order->cPUIZahlungsdaten = $pui; + $order->updateInDB(); + } + } catch (\Exception $e) { + $this->doLog('mollie::preparePaymentProcess: PUI - ' . $e->getMessage() . ' - ' . print_r(['cBestellNr' => $order->cBestellNr], 1), LOGLEVEL_NOTICE); + } + + if ($url) { + ifndef('MOLLIE_REDIRECT_DELAY', 3); + $checkoutMode = PluginHelper::getSetting('checkoutMode'); + Shop::Smarty()->assign('redirect', $url) + ->assign('checkoutMode', $checkoutMode); + if ($checkoutMode === 'Y' && !headers_sent()) { + header('Location: ' . $url); + ifndef('MOLLIE_STOP_EXEC_AFTER_WEBHOOK', true); + if (MOLLIE_STOP_EXEC_AFTER_WEBHOOK) { + exit(); + } + } + } + } catch (Exception $e) { + $this->doLog('mollie::preparePaymentProcess: ' . $e->getMessage() . ' - ' . print_r(['cBestellNr' => $order->cBestellNr], 1), LOGLEVEL_ERROR); + + Shop::Container()->getAlertService()->addAlert( + Alert::TYPE_ERROR, + PluginHelper::getPlugin()->getLocalization()->getTranslation('error_create'), + 'paymentFailed' + ); + } + } + + abstract public function getPaymentOptions(Bestellung $order, $apiType): array; + + /** + * @param Bestellung $order + * @param string $hash + * @param array $args + * @throws CircularReferenceException + * @throws ServiceNotFoundException + */ + public function handleNotification(Bestellung $order, string $hash, array $args): void + { + parent::handleNotification($order, $hash, $args); + + try { + $orderId = $args['id']; + if (strpos($orderId, 'tr_') === 0) { + $checkout = PaymentCheckout::factory($order); + } else { + $checkout = OrderCheckout::factory($order); + } + $checkout->handleNotification($hash); + } catch (Exception $e) { + $this->doLog("ERROR: mollie::handleNotification: Bestellung '$order->cBestellNr': {$e->getMessage()}", LOGLEVEL_ERROR); + Shop::Container()->getBackendLogService()->critical($e->getMessage(), $_REQUEST); + } + } +} diff --git a/lib/PluginHelper.php b/lib/PluginHelper.php index c650498..3984059 100644 --- a/lib/PluginHelper.php +++ b/lib/PluginHelper.php @@ -1,2 +1,14 @@ -cType))) { + try { + switch ($type) { + case 'webhook': + self::handleWebhook($id, $todo); + + break; + case 'hook': + self::handleHook((int)$id, $todo); + + break; + } + } catch (Exception $e) { + Shop::Container()->getLogService()->notice('Mollie Queue Fehler: ' . $e->getMessage() . " ($type, $id)"); + $todo->cError = "{$e->getMessage()}\n{$e->getFile()}:{$e->getLine()}\n{$e->getTraceAsString()}"; + $todo->done(); + } + } + + self::unlock($todo); + } + } + + /** + * @param int $limit + * @return Generator + */ + private static function getOpen(int $limit): Generator + { + if (!defined('MOLLIE_HOOK_DELAY')) { + define('MOLLIE_HOOK_DELAY', 3); + } + $open = PluginHelper::getDB()->executeQueryPrepared("SELECT * FROM xplugin_ws5_mollie_queue WHERE (dDone IS NULL OR dDone = '0000-00-00 00:00:00') AND `bLock` IS NULL AND (cType LIKE 'webhook:%%' OR (cType LIKE 'hook:%%' AND dCreated < DATE_SUB(NOW(), INTERVAL :hd MINUTE))) ORDER BY dCreated DESC LIMIT 0, :LIMIT;", [ + ':LIMIT' => $limit, + ':hd' => MOLLIE_HOOK_DELAY + ], 2); + + foreach ($open as $_raw) { + yield new QueueModel($_raw); + } + } + + /** + * @param QueueModel $todo + * @return bool + */ + protected static function lock(QueueModel $todo): bool + { + // Validation should not be necessary here since QueueModel::TABLE is a constant, but we do it anyway to lead by example + if (!AbstractPluginHelper::isAlphaNumericPlus(QueueModel::TABLE)) { + return false; + } + + return $todo->kId && PluginHelper::getDB()->executeQueryPrepared(sprintf('UPDATE %s SET `bLock` = NOW() WHERE `bLock` IS NULL AND kId = :kId', QueueModel::TABLE), [ + 'kId' => $todo->kId + ], 3) >= 1; + } + + /** + * @param string $id + * @param QueueModel $todo + * @throws Exception + * @return bool + */ + protected static function handleWebhook(string $id, QueueModel $todo): bool + { + $checkout = AbstractCheckout::fromID($id); + if ($checkout->getBestellung()->kBestellung && $checkout->getPaymentMethod()) { + $checkout->handleNotification(); + + return $todo->done('Status: ' . $checkout->getMollie()->status); + } + + throw new RuntimeException("Bestellung oder Zahlungsart konnte nicht geladen werden: $id"); + } + + /** + * @param int $hook + * @param QueueModel $queueModel + * @return bool + * @throws CircularReferenceException + * @throws ServiceNotFoundException + * @throws Exception + */ + protected static function handleHook(int $hook, QueueModel $queueModel): bool + { + $data = unserialize($queueModel->cData); //, [stdClass::class, Bestellung::class, \JTL\Customer\Customer::class]); + if (array_key_exists('kBestellung', $data)) { + switch ($hook) { + case HOOK_BESTELLUNGEN_XML_BESTELLSTATUS: + if ((int)$data['kBestellung']) { + $checkout = AbstractCheckout::fromBestellung($data['kBestellung']); + + $result = ''; + if ((int)$checkout->getBestellung()->cStatus < BESTELLUNG_STATUS_VERSANDT) { + return $queueModel->done("Bestellung noch nicht versendet: {$checkout->getBestellung()->cStatus}"); + } + + if (!count($checkout->getBestellung()->oLieferschein_arr)) { + if (!defined('MOLLIE_HOOK_DELAY')) { + define('MOLLIE_HOOK_DELAY', 3); + } + $queueModel->dCreated = date('Y-m-d H:i:s', strtotime(sprintf('+%d MINUTES', MOLLIE_HOOK_DELAY))); + $queueModel->cResult = 'Noch keine Lieferscheine, delay...'; + + return $queueModel->save(); + } + + if ( + (int)$data['status'] + && array_key_exists('status', $data) + && $checkout->getPaymentMethod() + && (strpos($checkout->getModel()->cOrderId, 'tr_') === false) + && $checkout->getMollie() + ) { + /** @var OrderCheckout $checkout */ + $checkout->handleNotification(); + if ($checkout->getMollie()->status === OrderStatus::STATUS_COMPLETED) { + $result = 'Mollie Status already ' . $checkout->getMollie()->status; + } elseif ( + $checkout->getMollie()->isCreated() + || $checkout->getMollie()->isPaid() + || $checkout->getMollie()->isAuthorized() + || $checkout->getMollie()->isShipping() + || $checkout->getMollie()->isPending() + ) { + try { + if ($shipments = Shipment::syncBestellung($checkout)) { + foreach ($shipments as $shipment) { + if (is_string($shipment)) { + $checkout->Log("Shipping-Error: $shipment"); + $result .= "Shipping-Error: $shipment\n"; + } else { + $checkout->Log("Order shipped: $shipment->id"); + $result .= "Order shipped: $shipment->id\n"; + } + } + } else { + $result = 'No Shipments ready!'; + } + } catch (Exception $e) { + $result = $e->getMessage() . "\n" . $e->getFile() . ':' . $e->getLine() . "\n" . $e->getTraceAsString(); + } + } else { + $result = 'Unexpected Mollie Status: ' . $checkout->getMollie()->status; + } + } else { + $result = 'Nothing to do.'; + } + + return $queueModel->done($result); + } + + return $queueModel->done('kBestellung missing'); + case HOOK_BESTELLUNGEN_XML_BEARBEITESTORNO: + if (!PluginHelper::getSetting('autoRefund')) { + throw new RuntimeException('Auto-Refund disabled'); + } + $checkout = AbstractCheckout::fromBestellung((int)$data['kBestellung']); + + if (!isset($checkout)){ + return $queueModel->done("No Checkout found for kBestellung:" . (int)$data['kBestellung']); + } + return $queueModel->done($checkout->cancelOrRefund()); + } + } + + return false; + } + + /** + * @param QueueModel $qm + * @return bool + */ + protected static function unlock(QueueModel $qm): bool + { + // Validation should not be necessary here since QueueModel::TABLE is a constant, but we do it anyway to lead by example + if (!AbstractPluginHelper::isAlphaNumericPlus(QueueModel::TABLE)) { + return false; + } + + return $qm->kId && PluginHelper::getDB()->executeQueryPrepared(sprintf('UPDATE %s SET `bLock` = NULL WHERE kId = :kId OR bLock < DATE_SUB(NOW(), INTERVAL 15 MINUTE)', QueueModel::TABLE), [ + 'kId' => $qm->kId + ], 3) >= 1; + } + + /** + * @param mixed $delay + * @throws ServiceNotFoundException + * @throws CircularReferenceException + * @return true + */ + public static function storno($delay): bool + { + if (!$delay) { + return true; + } + + $open = PluginHelper::getDB()->executeQueryPrepared( + "SELECT p.kId, b.cBestellNr, p.kBestellung, b.cStatus FROM xplugin_ws5_mollie_orders p JOIN tbestellung b ON b.kBestellung = p.kBestellung WHERE b.cStatus IN ('1', '2') AND p.dCreated < NOW() - INTERVAL :d HOUR", + [':d' => $delay], + 2 + ); + + foreach ($open as $o) { + try { + $checkout = AbstractCheckout::fromBestellung($o->kBestellung); + $pm = $checkout->getPaymentMethod(); + if ($checkout->getBestellung()->cAbgeholt === 'Y' && (bool)$checkout->getModel()->bSynced === false) { + if ($pm::ALLOW_AUTO_STORNO && $pm::METHOD === $checkout->getMollie()->method) { + if (!in_array($checkout->getMollie()->status, [OrderStatus::STATUS_PAID, OrderStatus::STATUS_COMPLETED, OrderStatus::STATUS_AUTHORIZED], true)) { + $checkout->storno(); + } else { + $checkout->Log(sprintf('AutoStorno: Bestellung bezahlt? %s - Method: %s', $checkout->getMollie()->status, $checkout->getMollie()->method), LOGLEVEL_ERROR); + } + } + else { + $checkout->Log(sprintf('AutoStorno aktiv: %d (%s) - Method: %s', (int)$pm::ALLOW_AUTO_STORNO, $pm::METHOD, $checkout->getMollie()->method), LOGLEVEL_ERROR); + } + } else { + //$checkout->Log('AutoStorno: bereits zur WAWI synchronisiert.', LOGLEVEL_ERROR); + } + } catch (Exception $e) { + Shop::Container()->getLogService()->error(sprintf('Fehler beim stornieren der Order: %s / Bestellung: %s: %s', $o->cBestellNr, $o->kId, $e->getMessage())); + } + } + + return true; + } +} diff --git a/lib/Shipment.php b/lib/Shipment.php index a49f87e..f3763d2 100644 --- a/lib/Shipment.php +++ b/lib/Shipment.php @@ -1,2 +1,332 @@ -kLieferschein = $kLieferschein; + if ($checkout) { + $this->checkout = $checkout; + } + + if (!$this->getLieferschein() || !$this->getLieferschein()->getLieferschein()) { + throw new APIException('Lieferschein konnte nicht geladen werden'); + } + + if (!count($this->getLieferschein()->oVersand_arr)) { + throw new APIException('Kein Versand gefunden!'); + } + } + + /** + * @return Lieferschein + */ + public function getLieferschein(): Lieferschein + { + if (!$this->oLieferschein && $this->kLieferschein) { + $this->oLieferschein = new Lieferschein($this->kLieferschein); + } + + return $this->oLieferschein; + } + + /** + * @param OrderCheckout $checkout + * @throws Exception + * @return array (\Mollie\Api\Resources\Shipment|null|string)[] + */ + public static function syncBestellung(OrderCheckout $checkout): array + { + $shipments = []; + if ($checkout->getBestellung()->kBestellung) { + $oKunde = $checkout->getBestellung()->oKunde ?? new \JTL\Customer\Customer($checkout->getBestellung()->kKunde); + + $shippingActive = PluginHelper::getSetting('shippingActive'); + if ($shippingActive === 'N') { + throw new RuntimeException('Shipping deaktiviert'); + } + + if ($shippingActive === 'K' && !$oKunde->nRegistriert && (int)$checkout->getBestellung()->cStatus !== BESTELLUNG_STATUS_VERSANDT) { + throw new RuntimeException('Shipping für Gast-Bestellungen und Teilversand deaktiviert'); + } + + /** @var Lieferschein $oLieferschein */ + foreach ($checkout->getBestellung()->oLieferschein_arr as $oLieferschein) { + try { + $shipment = new self($oLieferschein->getLieferschein(), $checkout); + + $mode = PluginHelper::getSetting('shippingMode'); + switch ($mode) { + case 'A': + // ship directly + if (!$shipment->send() && !$shipment->getShipment()) { + throw new APIException('Shipment konnte nicht gespeichert werden.'); + } + $shipments[] = $shipment->getShipment(); + + break; + case 'B': + // only ship if complete shipping + if ($oKunde->nRegistriert || (int)$checkout->getBestellung()->cStatus === BESTELLUNG_STATUS_VERSANDT) { + if (!$shipment->send() && !$shipment->getShipment()) { + throw new APIException('Shipment konnte nicht gespeichert werden.'); + } + $shipments[] = $shipment->getShipment(); + + break; + } + + throw new APIException('Gastbestellung noch nicht komplett versendet!'); + } + } catch (APIException $e) { + //TODO: handle url entity error + $shipments[] = $e->getMessage(); + } catch (Exception $e) { + $shipments[] = $e->getMessage(); + Shop::Container()->getLogService()->error("mollie: Shipment::syncBestellung (BestellNr. {$checkout->getBestellung()->cBestellNr}, Lieferschein: {$shipment->getLieferschein()->getLieferscheinNr()}) - " . $e->getMessage()); + } + } + } + + return $shipments; + } + + /** + * @throws IncompatiblePlatform + * @throws Exception + * @throws ApiException + * @return bool + */ + public function send(): bool + { + if ($this->getShipment()) { + throw new APIException('Lieferschien bereits an Mollie übertragen: ' . $this->getShipment()->id); + } + + if ($this->getCheckout()->getMollie(true)->status === OrderStatus::STATUS_COMPLETED) { + throw new APIException('Bestellung bei Mollie bereits abgeschlossen!'); + } + + $api = $this->getCheckout()->getAPI()->getClient(); + + $this->shipment = $api->shipments->createForId($this->checkout->getModel()->cOrderId, $this->loadRequest()->jsonSerialize()); + + return $this->updateModel()->saveModel(); + } + + /** + * @param false $force + * @throws IncompatiblePlatform + * @throws \Mollie\Api\Exceptions\ApiException + * @return null|\Mollie\Api\Resources\Shipment + */ + public function getShipment(bool $force = false): ?\Mollie\Api\Resources\Shipment + { + if (($force || !$this->shipment) && $this->getModel() && $this->getModel()->cShipmentId) { + $this->shipment = $this->getCheckout()->getAPI()->getClient()->shipments->getForId($this->getModel()->cOrderId, $this->getModel()->cShipmentId); + } + + return $this->shipment; + } + + /** + * @throws Exception + * @return ShipmentsModel + */ + public function getModel(): ShipmentsModel + { + if (!$this->model && $this->kLieferschein) { + $this->model = ShipmentsModel::fromID($this->kLieferschein, 'kLieferschein'); + if (!$this->model->dCreated) { + $this->getModel()->dCreated = date('Y-m-d H:i:s'); + } + $this->updateModel(); + } + + return $this->model; + } + + /** + * @throws Exception + * + * @return static + */ + public function updateModel(): self + { + $this->getModel()->kLieferschein = $this->kLieferschein; + if ($this->getCheckout()) { + $this->getModel()->cOrderId = $this->getCheckout()->getModel()->cOrderId; + $this->getModel()->kBestellung = $this->getCheckout()->getModel()->kBestellung; + } + if ($this->getShipment()) { + $this->getModel()->cShipmentId = $this->getShipment()->id; + $this->getModel()->cUrl = $this->getShipment()->getTrackingUrl() ?? ''; + } + if ($this->tracking) { + $this->getModel()->cCarrier = $this->tracking['carrier'] ?? ''; + $this->getModel()->cCode = $this->tracking['code'] ?? ''; + } + + return $this; + } + + /** + * @throws Exception + * @return OrderCheckout + */ + public function getCheckout(): OrderCheckout + { + if (!$this->checkout) { + //TODO evtl. load by lieferschien + throw new RuntimeException('Should not happen, but it did!'); + } + + return $this->checkout; + } + + /** + * @throws Exception + * @return $this + */ + public function loadRequest(array &$options = []) + { + /** @var Versand $oVersand */ + $oVersand = $this->getLieferschein()->oVersand_arr[0]; + //TODO: add setting for url + if ($oVersand->getIdentCode() && $oVersand->getLogistik()) { + $tracking = [ + 'carrier' => $oVersand->getLogistik(), + 'code' => $oVersand->getIdentCode(), + ]; + if ($oVersand->getLogistikVarUrl() && PluginHelper::getSetting('trackingActive')) { + $tracking['url'] = $oVersand->getLogistikURL(); + } + $this->tracking = $tracking; + } + + $this->tracking = $tracking; + + + // TODO: Wenn alle Lieferschiene in der WAWI erstellt wurden, aber nicht im Shop, kommt status 4. + if ((int)$this->getCheckout()->getBestellung()->cStatus === BESTELLUNG_STATUS_VERSANDT) { + $this->lines = []; + } else if ((int)$this->getCheckout()->getBestellung()->cStatus === BESTELLUNG_STATUS_TEILVERSANDT && PluginHelper::getSetting('shippingMode') === 'A') { + $this->lines = []; + } else { + $this->lines = $this->getOrderLines(); + } + + return $this; + } + + /** + * @throws Exception + * @return array (float|int|string)[][] + * + */ + protected function getOrderLines(): array + { + $lines = []; + + if (!count($this->getLieferschein()->oLieferscheinPos_arr)) { + return $lines; + } + + // Bei Stücklisten, sonst gibt es mehrere OrderLines für die selbe ID + $shippedOrderLines = []; + + /** @var Lieferscheinpos $oLieferschienPos */ + foreach ($this->getLieferschein()->oLieferscheinPos_arr as $oLieferschienPos) { + $wkpos = PluginHelper::getDB()->executeQueryPrepared('SELECT * FROM twarenkorbpos WHERE kBestellpos = :kBestellpos', [ + ':kBestellpos' => $oLieferschienPos->getBestellPos() + ], 1); + + /** @var OrderLine $orderLine */ + foreach ($this->getCheckout()->getMollie()->lines as $orderLine) { + if ($orderLine->sku === $wkpos->cArtNr && !in_array($orderLine->id, $shippedOrderLines, true)) { + if ($quantity = min($oLieferschienPos->getAnzahl(), $orderLine->shippableQuantity)) { + $lines[] = [ + 'id' => $orderLine->id, + 'quantity' => $quantity + ]; + } + $shippedOrderLines[] = $orderLine->id; + + break; + } + } + } + + return $lines; + } + + /** + * @throws Exception + * @return true + * + */ + public function saveModel(): bool + { + return $this->getModel()->save(); + } +} diff --git a/lib/Traits/RequestData.php b/lib/Traits/RequestData.php index 0532775..8b69b71 100644 --- a/lib/Traits/RequestData.php +++ b/lib/Traits/RequestData.php @@ -1,2 +1,88 @@ -requestData) { + $this->loadRequest(); + } + + return $this->requestData; + } + + /** + * @param array $options + * @return $this + */ + abstract public function loadRequest(array &$options = []); + + /** + * @param string $name + * @throws Exception + * @return false|mixed|string + */ + public function __get(string $name) + { + if (!$this->requestData) { + $this->loadRequest(); + } + + if (!array_key_exists($name, $this->requestData)) { + return null; + } + + return is_string($this->requestData[$name]) ? mb_convert_encoding($this->requestData[$name], 'UTF-8', mb_list_encodings()) : $this->requestData[$name]; + } + + /** + * @param string $name + * @param mixed $value + * @return $this + */ + public function __set(string $name, $value) + { + if (!$this->requestData) { + $this->requestData = []; + } + + $this->requestData[$name] = is_string($value) ? mb_convert_encoding($value, 'UTF-8', mb_list_encodings()) : $value; + + return $this; + } + + /** + * @return array + */ + public function __serialize(): array + { + return $this->requestData ?: []; + } + + /** + * @param string $name + * @return bool + */ + public function __isset(string $name) + { + return $this->requestData[$name] !== null; + } +} diff --git a/paymentmethod/ApplePay.php b/paymentmethod/ApplePay.php index 32235b6..5ce4f38 100644 --- a/paymentmethod/ApplePay.php +++ b/paymentmethod/ApplePay.php @@ -1,2 +1,30 @@ -getConfig()->getValue($this->moduleID . '_usePUI') === 'N') { + return false; + } + + $template = PluginHelper::getPlugin()->getLocalization()->getTranslation('banktransferPUI'); + + return str_replace( + [ + '%amount%', + '%expiresAt%', + '%bankName%', + '%bankAccount%', + '%bankBic%', + '%transferReference%' + ], + [ + "{$checkout->getMollie()->amount->value} {$checkout->getMollie()->amount->currency}", + date('d.m.Y', strtotime($checkout->getMollie()->expiresAt)), + $checkout->getMollie()->details->bankName, + $checkout->getMollie()->details->bankAccount, + $checkout->getMollie()->details->bankBic, + $checkout->getMollie()->details->transferReference + ], + $template + ); + } + + public function getPaymentOptions(Bestellung $order, $apiType): array + { + $paymentOptions = []; + if ($apiType === 'payment') { + $paymentOptions['billingEmail'] = $order->oRechnungsadresse->cMail; + $paymentOptions['locale'] = Locale::getLocale(Frontend::get('cISOSprache', 'ger'), $order->oRechnungsadresse->cLand); + // TODO: Refactor this to use "PluginHelper::getPaymentSetting" once available + $dueDays = (int)self::Plugin('ws5_mollie')->getConfig()->getValue($this->moduleID . '_dueDays'); + if ($dueDays > 3) { + $paymentOptions['dueDate'] = date('Y-m-d', strtotime("+{$dueDays} DAYS")); + } + } + + return $paymentOptions; + } +} diff --git a/paymentmethod/Belfius.php b/paymentmethod/Belfius.php index 4673b2b..052e197 100644 --- a/paymentmethod/Belfius.php +++ b/paymentmethod/Belfius.php @@ -1,2 +1,23 @@ -cFirma) && strlen($_SESSION['Kunde']->cFirma)); + return $company && parent::isSelectable(); + } + +} \ No newline at end of file diff --git a/paymentmethod/Blik.php b/paymentmethod/Blik.php index 0f7611c..8460428 100644 --- a/paymentmethod/Blik.php +++ b/paymentmethod/Blik.php @@ -1,2 +1,23 @@ -clearToken(); + } + + protected function clearToken(): bool + { + $this->unsetCache(self::CACHE_TOKEN) + ->unsetCache(self::CACHE_TOKEN_TIMESTAMP); + + return true; + } + + public function handleAdditional(array $post): bool + { + // TODO: Refactor this to use "PluginHelper::getPaymentSetting" once available + $components = self::Plugin('ws5_mollie')->getConfig()->getValue($this->moduleID . '_components'); + $profileId = PluginHelper::getSetting('profileId'); + + if ($components === 'N' || !$profileId || trim($profileId) === '' || (array_key_exists('pruefekupon', $post) && $post['pruefekupon'] === '1')) { + return parent::handleAdditional($post); + } + + $cleared = false; + if (array_key_exists('clear', $post) && (int)$post['clear']) { + $cleared = $this->clearToken(); + } + + if ($components === 'S' && array_key_exists('skip', $post) && (int)$post['skip']) { + return parent::handleAdditional($post); + } + + // Skip handleAdditional if "Guthaben nutzen"-Request is being processed + if (array_key_exists('guthabenVerrechnen', $post) && (int)$post['guthabenVerrechnen'] === 1) { + return true; + } + + try { + // TODO: Refactor this to use "PluginHelper::getPaymentSetting" once available + $trustBadge = self::Plugin('ws5_mollie')->getConfig()->getValue($this->moduleID . '_trustBadge') === 'Y' + ? PluginHelper::getPlugin()->getPaths()->getFrontendURL() . 'img/trust_' . Frontend::getInstance()->getLanguage()->getIso() . '.png' + : false; + $locale = self::getLocale(Frontend::getInstance()->getLanguage()->getIso(), Frontend::getCustomer()->cLand ?? null); + $mode = MollieAPI::getMode(); + $errorMessage = json_encode(PluginHelper::getPlugin()->getLocalization()->getTranslation('mcErrorMessage'), JSON_THROW_ON_ERROR); + } catch (Exception $e) { + Shop::Container()->getLogService()->error($e->getMessage(), ['e' => $e]); + + return parent::handleAdditional($post); + } + + if (!$cleared && array_key_exists('cardToken', $post) && ($token = trim($post['cardToken']))) { + return $this->setToken($token) && parent::handleAdditional($post); + } + + if (($ctTS = (int)$this->getCache(self::CACHE_TOKEN_TIMESTAMP)) && $ctTS > time()) { + $token = $this->getCache(self::CACHE_TOKEN); + } + + Shop::Smarty()->assign('profileId', $profileId) + ->assign('trustBadge', $trustBadge ?? false) + ->assign('components', $components) + ->assign('locale', $locale ?? 'de_DE') + ->assign('token', $token ?? false) + ->assign('testMode', $mode ?? false) + ->assign('errorMessage', $errorMessage ?? 'Unexpected Error.') + ->assign('mollieLang', PluginHelper::getPlugin()->getLocalization()->getTranslations()); + + return false; + } + + protected function setToken(string $token): bool + { + $this->addCache(self::CACHE_TOKEN, $token) + ->addCache(self::CACHE_TOKEN_TIMESTAMP, time() + 3600); + + return true; + } + + public function getPaymentOptions(Bestellung $order, $apiType): array + { + $paymentOptions = []; + + if ($apiType === 'payment') { + if ($order->Lieferadresse !== null) { + if (!$order->Lieferadresse->cMail) { + $order->Lieferadresse->cMail = $order->oRechnungsadresse->cMail; + } + $paymentOptions['shippingAddress'] = new Address($order->Lieferadresse); + } + + $paymentOptions['billingAddress'] = new Address($order->oRechnungsadresse); + } + if ((int)$this->getCache(self::CACHE_TOKEN_TIMESTAMP) > time() && ($token = trim($this->getCache(self::CACHE_TOKEN)))) { + $paymentOptions['cardToken'] = $token; + } + + return $paymentOptions; + } +} diff --git a/paymentmethod/EPS.php b/paymentmethod/EPS.php index f496f9a..e7f1307 100644 --- a/paymentmethod/EPS.php +++ b/paymentmethod/EPS.php @@ -1,2 +1,25 @@ - substr($order->cBestellNr, 0, 13)] : []; + } +} diff --git a/paymentmethod/Klarna.php b/paymentmethod/Klarna.php index 43d1ca9..bcc36b0 100644 --- a/paymentmethod/Klarna.php +++ b/paymentmethod/Klarna.php @@ -1,2 +1,21 @@ -Lieferadresse !== null) { + if (!$order->Lieferadresse->cMail) { + $order->Lieferadresse->cMail = $order->oRechnungsadresse->cMail; + } + $paymentOptions['shippingAddress'] = new Address($order->Lieferadresse); + } + $paymentOptions['description'] = 'Order ' . $order->cBestellNr; + } + + return $paymentOptions; + } +} diff --git a/paymentmethod/PaysafeCard.php b/paymentmethod/PaysafeCard.php index 19b2924..709b3eb 100644 --- a/paymentmethod/PaysafeCard.php +++ b/paymentmethod/PaysafeCard.php @@ -1,2 +1,25 @@ - $order->oKunde->getID()] : []; + return $apiType === 'payment' ? ['customerReference' => Frontend::getCustomer()->getID()] : []; + } +} diff --git a/paymentmethod/Przelewy24.php b/paymentmethod/Przelewy24.php index 1271182..92c878f 100644 --- a/paymentmethod/Przelewy24.php +++ b/paymentmethod/Przelewy24.php @@ -1,2 +1,25 @@ - $order->oRechnungsadresse->cMail] : []; + } +} diff --git a/paymentmethod/Riverty.php b/paymentmethod/Riverty.php index 54cbb99..eb81b30 100644 --- a/paymentmethod/Riverty.php +++ b/paymentmethod/Riverty.php @@ -1,2 +1,25 @@ - Date: Thu, 5 Sep 2024 10:08:27 +0200 Subject: [PATCH 2/2] remove src --- adminmenu/app/src/assets/img/Przelewy24.svg | 1 - adminmenu/app/src/assets/img/Voucher.svg | 59 ----- adminmenu/app/src/assets/img/abocloud.png | Bin 215779 -> 0 bytes adminmenu/app/src/assets/img/applepay.svg | 1 - adminmenu/app/src/assets/img/bancontact.svg | 1 - adminmenu/app/src/assets/img/banktransfer.svg | 7 - adminmenu/app/src/assets/img/belfius.svg | 1 - adminmenu/app/src/assets/img/billie.svg | 4 - adminmenu/app/src/assets/img/blik.svg | 23 -- adminmenu/app/src/assets/img/creditcard.svg | 1 - adminmenu/app/src/assets/img/directdebit.svg | 1 - adminmenu/app/src/assets/img/eps.svg | 1 - adminmenu/app/src/assets/img/giftcard.svg | 1 - adminmenu/app/src/assets/img/giropay.svg | 1 - adminmenu/app/src/assets/img/ideal.svg | 1 - adminmenu/app/src/assets/img/in3.svg | 14 - adminmenu/app/src/assets/img/inghomepay.svg | 1 - adminmenu/app/src/assets/img/kbc.svg | 1 - adminmenu/app/src/assets/img/klarna.svg | 5 - adminmenu/app/src/assets/img/klarnaone.svg | 4 - .../app/src/assets/img/mollie-dashboard.png | Bin 82390 -> 0 bytes adminmenu/app/src/assets/img/mybank.svg | 10 - adminmenu/app/src/assets/img/paypal.svg | 1 - adminmenu/app/src/assets/img/paysafecard.svg | 1 - adminmenu/app/src/assets/img/riverty.svg | 5 - adminmenu/app/src/assets/img/sofort.svg | 1 - adminmenu/app/src/assets/img/trustly.svg | 11 - adminmenu/app/src/assets/img/twint.svg | 29 -- adminmenu/app/src/assets/tailwind.css | 20 -- adminmenu/app/src/context/MollieContext.ts | 5 - .../app/src/context/PaymentMethodContext.tsx | 42 --- adminmenu/app/src/helper.tsx | 247 ------------------ adminmenu/app/src/hooks/useErrorSnack.ts | 15 -- adminmenu/app/src/hooks/useMollie.ts | 192 -------------- adminmenu/app/src/hooks/useOrder.ts | 40 --- adminmenu/app/src/hooks/useOrders.ts | 69 ----- adminmenu/app/src/hooks/usePaymentLogs.ts | 43 --- adminmenu/app/src/hooks/useQueue.ts | 42 --- adminmenu/app/src/hooks/useQueues.ts | 64 ----- adminmenu/app/src/hooks/useShipments.ts | 58 ---- adminmenu/app/src/hooks/useSuccessSnack.ts | 15 -- adminmenu/app/src/hooks/useWarningSnack.ts | 15 -- adminmenu/app/src/index.tsx | 24 -- adminmenu/app/src/react-app-env.d.ts | 1 - adminmenu/app/src/reportWebVitals.ts | 15 -- adminmenu/app/src/tabs.tsx | 145 ---------- .../AboCloudWidget/index.tsx | 23 -- .../ActivePaymentMethods/index.tsx | 90 ------- .../MollieDashboardLink/index.tsx | 75 ------ .../QuickStats/index.tsx | 113 -------- .../CustomDashboardGridCards/index.tsx | 19 -- .../src/tabs/Orders/OrderDetails/Details.tsx | 78 ------ .../app/src/tabs/Orders/OrderDetails/Logs.tsx | 84 ------ .../tabs/Orders/OrderDetails/OrderLines.tsx | 178 ------------- .../src/tabs/Orders/OrderDetails/Payments.tsx | 111 -------- .../src/tabs/Orders/OrderDetails/Queue.tsx | 97 ------- .../src/tabs/Orders/OrderDetails/Refunds.tsx | 149 ----------- .../tabs/Orders/OrderDetails/Shipments.tsx | 112 -------- .../src/tabs/Orders/OrderDetails/index.tsx | 104 -------- adminmenu/app/src/tabs/Orders/index.tsx | 238 ----------------- .../components/PaymentMethodGrid.tsx | 20 -- .../AdditionalInformation.tsx | 17 -- .../ConfigurationItems.tsx | 70 ----- .../PaymentMethodGridItem/index.tsx | 63 ----- .../app/src/tabs/PaymentMethods/index.tsx | 60 ----- adminmenu/app/src/tabs/Queue/index.tsx | 188 ------------- adminmenu/app/src/types/PaymentMethod.ts | 39 --- 67 files changed, 3166 deletions(-) delete mode 100644 adminmenu/app/src/assets/img/Przelewy24.svg delete mode 100644 adminmenu/app/src/assets/img/Voucher.svg delete mode 100644 adminmenu/app/src/assets/img/abocloud.png delete mode 100644 adminmenu/app/src/assets/img/applepay.svg delete mode 100644 adminmenu/app/src/assets/img/bancontact.svg delete mode 100644 adminmenu/app/src/assets/img/banktransfer.svg delete mode 100644 adminmenu/app/src/assets/img/belfius.svg delete mode 100644 adminmenu/app/src/assets/img/billie.svg delete mode 100644 adminmenu/app/src/assets/img/blik.svg delete mode 100644 adminmenu/app/src/assets/img/creditcard.svg delete mode 100644 adminmenu/app/src/assets/img/directdebit.svg delete mode 100644 adminmenu/app/src/assets/img/eps.svg delete mode 100644 adminmenu/app/src/assets/img/giftcard.svg delete mode 100644 adminmenu/app/src/assets/img/giropay.svg delete mode 100644 adminmenu/app/src/assets/img/ideal.svg delete mode 100644 adminmenu/app/src/assets/img/in3.svg delete mode 100644 adminmenu/app/src/assets/img/inghomepay.svg delete mode 100644 adminmenu/app/src/assets/img/kbc.svg delete mode 100644 adminmenu/app/src/assets/img/klarna.svg delete mode 100644 adminmenu/app/src/assets/img/klarnaone.svg delete mode 100644 adminmenu/app/src/assets/img/mollie-dashboard.png delete mode 100644 adminmenu/app/src/assets/img/mybank.svg delete mode 100644 adminmenu/app/src/assets/img/paypal.svg delete mode 100644 adminmenu/app/src/assets/img/paysafecard.svg delete mode 100644 adminmenu/app/src/assets/img/riverty.svg delete mode 100644 adminmenu/app/src/assets/img/sofort.svg delete mode 100644 adminmenu/app/src/assets/img/trustly.svg delete mode 100644 adminmenu/app/src/assets/img/twint.svg delete mode 100644 adminmenu/app/src/assets/tailwind.css delete mode 100644 adminmenu/app/src/context/MollieContext.ts delete mode 100644 adminmenu/app/src/context/PaymentMethodContext.tsx delete mode 100644 adminmenu/app/src/helper.tsx delete mode 100644 adminmenu/app/src/hooks/useErrorSnack.ts delete mode 100644 adminmenu/app/src/hooks/useMollie.ts delete mode 100644 adminmenu/app/src/hooks/useOrder.ts delete mode 100644 adminmenu/app/src/hooks/useOrders.ts delete mode 100644 adminmenu/app/src/hooks/usePaymentLogs.ts delete mode 100644 adminmenu/app/src/hooks/useQueue.ts delete mode 100644 adminmenu/app/src/hooks/useQueues.ts delete mode 100644 adminmenu/app/src/hooks/useShipments.ts delete mode 100644 adminmenu/app/src/hooks/useSuccessSnack.ts delete mode 100644 adminmenu/app/src/hooks/useWarningSnack.ts delete mode 100644 adminmenu/app/src/index.tsx delete mode 100644 adminmenu/app/src/react-app-env.d.ts delete mode 100644 adminmenu/app/src/reportWebVitals.ts delete mode 100644 adminmenu/app/src/tabs.tsx delete mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/AboCloudWidget/index.tsx delete mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/ActivePaymentMethods/index.tsx delete mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/MollieDashboardLink/index.tsx delete mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/QuickStats/index.tsx delete mode 100644 adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/index.tsx delete mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Details.tsx delete mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Logs.tsx delete mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/OrderLines.tsx delete mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Payments.tsx delete mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Queue.tsx delete mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Refunds.tsx delete mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/Shipments.tsx delete mode 100644 adminmenu/app/src/tabs/Orders/OrderDetails/index.tsx delete mode 100644 adminmenu/app/src/tabs/Orders/index.tsx delete mode 100644 adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGrid.tsx delete mode 100644 adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/AdditionalInformation.tsx delete mode 100644 adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/ConfigurationItems.tsx delete mode 100644 adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/index.tsx delete mode 100644 adminmenu/app/src/tabs/PaymentMethods/index.tsx delete mode 100644 adminmenu/app/src/tabs/Queue/index.tsx delete mode 100644 adminmenu/app/src/types/PaymentMethod.ts diff --git a/adminmenu/app/src/assets/img/Przelewy24.svg b/adminmenu/app/src/assets/img/Przelewy24.svg deleted file mode 100644 index 6f33785..0000000 --- a/adminmenu/app/src/assets/img/Przelewy24.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/Voucher.svg b/adminmenu/app/src/assets/img/Voucher.svg deleted file mode 100644 index d04256e..0000000 --- a/adminmenu/app/src/assets/img/Voucher.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/adminmenu/app/src/assets/img/abocloud.png b/adminmenu/app/src/assets/img/abocloud.png deleted file mode 100644 index 49ae35d4c53396fefadd33153285038be8cca358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215779 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�k%j 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 \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/bancontact.svg b/adminmenu/app/src/assets/img/bancontact.svg deleted file mode 100644 index 935deab..0000000 --- a/adminmenu/app/src/assets/img/bancontact.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/banktransfer.svg b/adminmenu/app/src/assets/img/banktransfer.svg deleted file mode 100644 index 1cb6476..0000000 --- a/adminmenu/app/src/assets/img/banktransfer.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/adminmenu/app/src/assets/img/belfius.svg b/adminmenu/app/src/assets/img/belfius.svg deleted file mode 100644 index eb9eafa..0000000 --- a/adminmenu/app/src/assets/img/belfius.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/billie.svg b/adminmenu/app/src/assets/img/billie.svg deleted file mode 100644 index 1dbe69e..0000000 --- a/adminmenu/app/src/assets/img/billie.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/adminmenu/app/src/assets/img/blik.svg b/adminmenu/app/src/assets/img/blik.svg deleted file mode 100644 index a0b1bf3..0000000 --- a/adminmenu/app/src/assets/img/blik.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/adminmenu/app/src/assets/img/creditcard.svg b/adminmenu/app/src/assets/img/creditcard.svg deleted file mode 100644 index a22e26c..0000000 --- a/adminmenu/app/src/assets/img/creditcard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/directdebit.svg b/adminmenu/app/src/assets/img/directdebit.svg deleted file mode 100644 index 8a88323..0000000 --- a/adminmenu/app/src/assets/img/directdebit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/eps.svg b/adminmenu/app/src/assets/img/eps.svg deleted file mode 100644 index d56e47c..0000000 --- a/adminmenu/app/src/assets/img/eps.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/giftcard.svg b/adminmenu/app/src/assets/img/giftcard.svg deleted file mode 100644 index 7f70179..0000000 --- a/adminmenu/app/src/assets/img/giftcard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/giropay.svg b/adminmenu/app/src/assets/img/giropay.svg deleted file mode 100644 index 9113803..0000000 --- a/adminmenu/app/src/assets/img/giropay.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/ideal.svg b/adminmenu/app/src/assets/img/ideal.svg deleted file mode 100644 index d62792c..0000000 --- a/adminmenu/app/src/assets/img/ideal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/in3.svg b/adminmenu/app/src/assets/img/in3.svg deleted file mode 100644 index 418f0e6..0000000 --- a/adminmenu/app/src/assets/img/in3.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/adminmenu/app/src/assets/img/inghomepay.svg b/adminmenu/app/src/assets/img/inghomepay.svg deleted file mode 100644 index 2dc26a7..0000000 --- a/adminmenu/app/src/assets/img/inghomepay.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/kbc.svg b/adminmenu/app/src/assets/img/kbc.svg deleted file mode 100644 index 7f75295..0000000 --- a/adminmenu/app/src/assets/img/kbc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/klarna.svg b/adminmenu/app/src/assets/img/klarna.svg deleted file mode 100644 index 00c8b5a..0000000 --- a/adminmenu/app/src/assets/img/klarna.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/adminmenu/app/src/assets/img/klarnaone.svg b/adminmenu/app/src/assets/img/klarnaone.svg deleted file mode 100644 index da0aa1a..0000000 --- a/adminmenu/app/src/assets/img/klarnaone.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/adminmenu/app/src/assets/img/mollie-dashboard.png b/adminmenu/app/src/assets/img/mollie-dashboard.png deleted file mode 100644 index 150bc6fdd64b7dd6094ce998fb31b6d21352acfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82390 zcmZr&1z1#DyQV}?kx)97?(S5&r8@*+2{mot@XwGz2CbCdZ!?X_JrUG92^{)w3L`K930{X92|Tz3Nmmd0IVAX{D5~* zmV66WGEB4y{32$eDQzk*4@U=_qrkxjn!_PI+yZhb1iw)8%V)IMs2i2c1AqQlPa?!+9W%Xb^0R0j~O$$TMn zpd}@N`@7t03HkijAR-(wLG$uRA@Og~0{QomW7q5Ne zZ`6WP5NOq&kzOtAY(tIm8_3hiYH1dfY(M)=L{i(vj*tE)@zv3{` zf#KorxJgq6DLyg7P)<<)>+{GqF?n3}h#0l2zWglKk&I)~%NWg;mGw&s-9I?6eS(IT zU1dI|Y-?M_F}gqBDCx2{m#&hlAWeSP_l?|fsF)O2!2NVW!~FVeSGC$gEs@KLV09>I z((aAf!{UlykzwHDOGi;F#s;|ch7oVB#u=RTf8>VtE2avi#4_p0G`pW>Xz06%d!rn1 zcHPy|EKH(g2>)Y#K@gFO58tJ($DV7_uh$8c*|j+DYS$Y?mL^O5Wd>xt#`=Zoj56O| zKe|1gG&s4t-uLL{0sU;6yRC!@Wug&s^$G4w6l&yB%En&IS+zZDfX-t%qWnEAZIdV) zXg0-9Nj=;Ip2MiW4~M84f+U&@uzs6FBpp0tXm7fb8k<=^S?K=8p*~ljMN7BUI|b&k zFSxuNE_^37U11Wu&xBVKi0>%Mfbr=ckMjYc98@@4{m89$`{MU76Gqf!CIdJYvo(xf zm#c9nyR{2cU+jiM*g?Y#wM5OgXS3rO;!kI4ZBiA}dY?5Y&LKM@{PUD?s8dOlwQ;@1 z9VCthEtMOD!25Y(8IlqS-`}tgr3x>AOpDxZJRNla!!cWI^Br&Ty1o!In!tJHNKb+B z$IE;u;XNekngs^5BM^X9^v#m?fwF;C&d+vdM_&3o|S@JL`Y*;ok|j`fzr z$_Uq7hG2}3Q2k$TpnyjRCl!vBojLyXT@)C_i8OT6lW(1N!ABM8Q{(JsYJhdZ9V|<)BEx$#?}0B z=wIWcc#hE2+o<2{ZjU@aDcMDz5r9t06y8C^^-=SaBQCQ0Cqv212m4wS@(n~M9i>hM zOOs26vlo4Cy@)N)^wS4Bq`en^{(@%oY6ei1+DL|4w!s1d&9=QluC@vI1x6_M&#XgDhlN$Uj~mv zX45av;iP)-yPud9XjM{~^hXDM^7G3#Z2vT#t4KQ2=u#?v%kR7s0rP(Pl13z7IXlB~ zb5tpmfYWSes@(DZ&g-e32dee)^?qxvL@0sMa5C>I!*c`PA^Ty)4cp5jljXRM{up|d zo)CP-x*b?Ee|lr!*&85Qw^1T^wp{u>MmKBofoF=5H8VM5Xa(PUYuB;BQ;~E96aAGa zd{Qy<7Jj*@O!rqm^Jum_CsCCxWQZFHW0iIF_QVR2H+rZ||KM5kJ4 z>0S*@!fEijYGK^|@q}5gfngh`r%s(=1zNrPkxnH)Cx!@NAB*Pz`pQkQ>nqAW7lj2b zsgvB2_(0+vtdd#5s@R|v7A@%E9OVkneiMZMOl6_POWsI0O*$FhIxn+7mO*RO@#5fp z;H_4fp|3Pix^XSjFi0>nZAL|-I4m;1kSlyerljP`Gv;ouabM0TC_AQwu2;9KT#V`t zjPu)tJyU#mZ00CThi}gkD8o8Af>gNWmNV^|GJ2jhTxg*GzUL-XWMEC+?B3V!WC0vk z)X-vonralls+zp*=J)xPNj&pib~?@w!9deXTIC;m#oOjv6ocM6?Vs8{wGA*kr>jVw zDPP)~F#IZ^c!=GhgxpjR+8XSO{U}hC!)iZecw2dP?-4Nn%Gok8W|Jj)ToWxY$xMqoFg^-7ZMUYAA6G@Itr*lxGYDNrsB{c9jDyybF@ zaBIG?R%dmd_QNG}GCyb9v)}PXr0E5XY8f0h1BP`qZZdK2?o@pe0cW0UDB*Z5+u|kZ zkXnb2M&)|Jik`uqcxJEsJLzzJw^##)-dw0eNL7K$Q0n$(Xf3kRVTBs4e9qi>ow&}G z{kUe*bEs>nQ#kC_Z1yZgwbGkii%PLQ@2BcJ@$m;1MpPX!8P| z;jjwv;>07$ezm9~V9h+HtnU#p<4FSpSlNBq3PS1Xedr{BM`s`65TMd$@ zqFSBZ3Kbe2$7eeAQtIAL??*x;XOB{Z9MtnQ_4GEm`JXdrweXdv?<&Nzy#KU#IGCXK z?p?%Op!Z4-n$|jCebNkC+(iu^rz@&JP?B=CUk&5Ly!I4!ZrHA+i&@f9s>=G)w&3F- zZpIHga8eAZx$;R|-|?MV>=RdK+E$m175PYcIb076t;XzeQlYKBgb9LseS6 zZy6lpSA$+qGklPG2(&)T81bye$U)glUC`YwjIE!=vH*6-0n%(2)V51_=RYXYTWWFF zMVKXffWQ>1*Eimy)po>4$O_r~l|P1as+htmyXTJ^P$7*MlVi6+ojBvycM5%`{QhW(%|+iID*#1j4O&| zO}?WZQZED(9lAadt^CEg+NUvo(%#$oVY;7_u}jAG)e_#&$;71bs?crQ zc!FFjvzBRzr1)p}kNw#Cx?yTOBkc0`<~2p^4kZW`21Znx`Tg|ae#c$Ck5s-X$Na+U z@w{%9_QYTb3WtxJoOZa^jxLXRXT0Q%L!&<2CE)+!&DiH4m0yBG(d@cmhZjLn>S}c} z`}mc2)b*&nj_OXloazj4{z$2rh>ZjFYW?0Lh@Oz}fkCk$(N$g@`-^bOGdhIARG^|=|qe0&ms?1fQ zH09IPSbMwa;GfRF@k35H#(;l7cm`y)+dmmqE{|5T(J>7+!gH_4gqQ~G%oivH)M{Hu zMxRC?{|15w=m_AF1)9)ow4|DN{<-7oTDgfWj#zW9!D&t0%9b@x)+9PKky~LF7|V}K zV>rUV9iFh10dqf|FnNLw_g=>$hn)*lm9w(fRIG*8Mvob1+5#8}f8N-=C9D&QC0rd! z6jba7#|sSUis4rq{hXr^7)x3;3aXMG#E|vkx~g`&dG$GT^P}6-q*LCG9&W;(Y`XC> z_g9#bsnW)c(gV&oCgVJOj=R=}OFl8fDg4a6HUp?>;^ME5Nq8Gv(H zv!&$EV}L*6xq3urwn{XK?BP}fVooKdF+W}a-+PViOjn|T-Hlu164+*}$(}z{Rj3Lg z$#35$a_vsH)}q2*p*xEd&9U7cbfS|KjnvUG*x}yOz5eZ9!dQ7~nTc~r4Mr2%4(A#{ zm3@TVMbu-PW4W0!*aJE{qM&)?Q;UI>>_Pt~46PP>PR@_80GSvDg`}TMnZO5YRUO^_ zGFNTZ#!h5A)OpHF{REdzDtK+^HS4wY@kZICd$W;J$%MlYt<%=H^3P@+jo_x5Vx9iX zdgq-Pt5@q{N$QNWmOnw)E1yTCh-Ydd-G>r6s`_Lh0=!OUlQK-LxRtYO4P4eRy0{2* zVzw`D-@YBR5Bu;vGNC7g;0=%i!Yjv+^_6euH%g24#9>YKo5zYm5ejf_v@MnCAA*)S z-p|o2ds~PCRfpMWg}CG4GWg`0bYM_x?`&4rmk@IoV!y;X|23{4^8ChJ^zP=eTG}Bw zTxu*VE-u)zGhH;WO1l1j{%xA*2zh=SZHVb3 zhySkpTHgB9J_0bd&3Lg6x4~wlH=8HW==?0IS}omGZ&l4# zK60eDnk^s8$VXVZEEdwG@$bi`@7pk#b*A~&X_xRsAXeYywZ&z^Jas^r!e4-!N7g5FSHqq0TV-b9&!VUv z+n9drq3&r-QZA#H!~%}-XM5L@1Yd`eIM~)b`0RHsq(@R)x+>2DyB;G#IEP~y3&q** zi3Av$UE}C=`rno)MlQNGzpAT@omBHmWD}Gnw=nT#GH^-<%U@t3G>}I~etkB0Evu zr$dsthu33e{sK=2jjZL<~Pp`2SI6SEF+zFLze z=CmZ&_^!WSVEDVu$k@uIvy&He;h>#MT({$lp#{I$xID}CGyP4Yk=OpKkH4ifo=+8n z?|ns&?&z~W@6~Pva+gxdXx`m2XqL5EJ6w5sxi$LF4~}~j8#KFD-$e8jGKF||fIs`s z4VfxE`(2aC_|zgD){rkf?aDmm)4@+gP)>jQ=yDdQM;LlQ@$?DK;xAK2hM~$XZ#6aJ zJxfQtZ=7;TJWLGJW;6W+9w?dvJA@{1;&}qIZq;Wlt7*E}s>#|7R%W*ngIXNM7akoN z!P$Ef12v3K%&-L535jo|$T2JXmp__5pTYl7jIi%_x7h4L18!l_K4`_ar{yQj%t7;n zIr$%%bdTPEJl3l(i5437edf0HYMs%%VxigF;{^&gR^vO++f8>oy(l3mSzx z)W?+-n}r&si6$K*h0%xQiAzgMszsWtc1YWdwGC6{#*$Y6B{5I8E%ypt=MRwf zg2gv>C{b!9Db#e8Okq|p*6O84xDBj{^4!bvc&D52XDK~UQ%PDROt@~k17(F-;FPHK zO9X_-gznSrpE)Dsfn!w(!ec|~H{*P(q^*zrY(Bhqh6d4xd7^)c=0l#v?M zGu_}yXfRdS;Oo@)wJ_r0Yqyb~V|hyC+O>N@VAA3_6+65Q$m<~Yhr)r(7bQ>2jtgrV zKVFE2JWlYd<$3P*>B(lm>9!PfLq63;F*Ov=oJ(lB?}cQo(qx>+NCkG`X*a{DP0L7< zzT4&_tlo@~o*^hvbn{Fzq1W-mI>oS1?v_(h-_>+|G7nW4-J}KC_EecWtw~=5i|i@` z@)B7)J;KjY?bj&>*o-P#dzZMNA7j7r**{k{;YuY#6)M+f477LCPy?rLxDSp`q>U)M zjiwv3jVExgc5MyqR1Hh7u7F{5^o9~jP86t-!;FVD z6f8p>tYZf@n~!?S`2)J$p7sNkJWA`(tzZW9WW33?&hqQ3!yA3dm!>Y7{De&zU??HZpf-EsxV8bmhHHPR;qz zC@Pdwz964A}qh9qT{SCX_jTs;1na7Y$*_W+x z_nHs4DR*A93^pX%Rj#zRJiFBOSt+1(1Ml*ur@Lb+!)cb+opxtpkk{f*nl*FWY#NI* z6;D>}pNPhUd#{8OTt$fXO-Br+GM5Ske~cN3qUN^Jt&FDn5`!?{uW`F%;6+}G7|pDa zc&Et$wXpPU5xxp=&3@Zb)})$eSSK`K+ThUZJeqVfciB2R_o#LB@)$Q?ZZmScTE%18 zcr!!@24L$?Mp|SZ{h;vEJ1l^6Q}lF9;4zrnWU3U33obo48eo1wT1z!N#mW7BfYmKO zM`_V`!xe|7++Bu?fc*my-&pTkWt}+Hy@HU$6K!?@9GJ`A-k~96Bc5NNdESN*9VY9w)bXe@ zy#?q1a9E7fIFLYDj@cYD+awCkIzx&l6aAm!jwac(NXIeH!mQf{X57~1`gkVKQm)gj zdi6=R`T9Y`&mX8(<}jCiZJQX^j5iOQVj`zyYmr;Rv=!r9F{*rE~cT>Iva@mUMuV5+egPO zM%`b#X8o$z7wOfDB6MQvc6vey^PP8R9yrZWA9%zMPCMhFsfX;QgJjM<->r_yZD-m@ zg)SGKSTh%1U<}b01w6wya=q$}Gw_!7X{i|a^;f#QZiAi<%*34q6 zES(nMw5iGoMD-uou3GFa9b84Tc(Ar$aq`O5B8@>Ib233f*VAHY1_SP(=1r>dK^TQV zb5a*Wqjb|R3pLEg4~0r9*}*XXe*9;pk0ZF{t+Nz0mP~wcxCHs| z%%t*5vjEdC8Ur0Wfa}`mL>G=0E++b&at_oGauri!Ti8_ZT{+cjt>*{5*{9rypqiz+ z^~w-sR?sj}ej=Zf1@HFle(OCJf8U2*D}kp__C=!4BaEO4-r>U0hnoC*6g9Q86fQnK zZ7uWRM}b=GxHjnAg7>w&dV66s0k<{7H2{BJE~~-qq}(mG``K$XSp<6d9k@1O&KbDw zhr-en9%9D-K3ZS3&DvKzU+xNFCl5orQ5^)HiK60=DEpXkJ-!K>q)mY2qN^r(ogfXjgXBV{ka&C?3~~mOsBul z@1O4?SQKruu2sV<(}wG93IcBCja+5#2Ykch$B`*P(}H#!8~Aot!B2KVGHO>P&(AQ{|aOvEiyJ zvU6@!f&fslCfx9hPMlF}v6!H%N7ozLJC1Y_a;^mGWDduTcfqd?8HCSA2w&-+rBxp8 zZmfs4r~ft~+d!Ypb!;J;22pI2f7T9*9G=T;S}8dfG1Y6>qb)Nt6W~1+x^i{Dkh5j4 zyVx=0B)^|bHQBQuor0eS^5O^9JG^&ghHtj!>e(lXv{c+3THTJRfUa3zlcL@P^!al1 ztI`jU2KPA;Zujz2Rge<;Z^-ooUSQjERUr-N68>knsL~?I1`3|ziMfc(+y+gqtgHPo zvg%&9S56I{mlYwP;p7Ay22HY*`tIs^5Xjsuxv|akoe6QJ^a=KFdp)MzaP-|k8rTPzmOCbpaIFXMKDe&ss1JkCsnKPd zwj8-uhiwhwlYF6g!5mHHvK=I<p6%-r&b^aG%;9mquzcF z|1bu$&%U$jl=9nVI2(YMPEPN5eevjk&tbwkSWU3-rn7d?Woyv@KxzO&6WTD1Nr<8NO%6D%FSN3+GVp1ab>q8i7 zL-xIJf9`gyWnpZF@zCh|>+sP)jb=80C?xZ|imUgiPDd)a0m9=;Y;5uO@89ch2dQ}c zXg+9plj zw|^FxY|#p#)@C6m0F7`IAjN3O+BW@XV0*E>Ti}C5Ux95eASbJ@=Xn%iDt!~Rhj4_{ zGl8~M8n(8+zsY2J=o`w52x^Q^;1iT=@ad$oyZ`vj82+`2V6q4yFL#T%I@Uvy-7dTw z`6Mb3R3%4lb7F}%`OSLVXdN)2&?KjMQMYNz9}56fp;8US3cURk>4lxWu zK1UkBGyArCcrz>b{YWNp-$}0SuFeirI)%^E8W%G40qb!S<-=b&de%QRVEi`hh*&Aa z(oOP|ob+!mheKM95|NX8c38gwbVai|{GaxM#`MiC0WaqG(1)R2X&S1rHL0=1i8v1_ z-?1iff$3}AF8)QPGQvytlr?+099QiUcJEGDW})N%nTQKMUm(aT0h~jY5+MP>*7kh$ zbSu3^Ngw5PFb?C<)`-Q-bJuQ>T9DXmzk^x{F;cHp%;fefG+=@+PFbh5pY^WEAB~$hlS;E z!(9DlpTph%ogX9-!Mm0?1~ z{nL?!o=#5ciktt25O*>@&5f0ylj%y3O8Q%WEKfW@6OsuL^uXHZF9kmH(|IpFa>F`Ktsku6{J;> zsB2N6T(7?Un6~mrO%cWXKcD#8n=0Q+a!V_FKbWyzA04>-$8u#6C}pA}War%y_)}Sh zY+wSsZ;bL+Q^qqT!_BTvHdPy)t>~1qP#zlCpb!TVyX0q%nYgOt32zIJ#?^+B3q5sz zCkLS68B6FbVfPNo;KaF=sRa2pn8)x?K>p{57)Lqq_^D&lEIts&oQwGQ`8xoJm~V~e zzr@5`!hZP>qYqblRbuGWHUL890c9%#{_km>!J{BM7pgB*&E{bT$zH~%8%*|C-A9iB zprfk~oNyKsN%M|#s0ja@#9zY_D(x9WF+BGWJ;5yEVOcE>vM#tuR25M5wXkrjR;ZXc_oPZAlWoSc>tA_{7IUf+6wWa|y}~~m zDzL3rWu{b5At)fA>+Yi=!8IG#l$soR2-wR=xpD6Xpl`CbaRY>K6U91l4@#t_A{gnX z$!CrxU)YhbH8f(&?S{)RAEJ6&9BP@}utdX?{&;nb*x9e!19??<1&pOoQG!3-7s=)e zh_y!d<{Pt@hI-BcQw=f!SQPG3`wzx~dJT^D%)I;bAmfJ;HyS9eT17!-X_jc_I^?6< zQ!=c0V)2W)Gj{vyV}B%AjJuuu1EV z@V5;=EPW|blWE#DJ;n*)pSk`g)na|}89;9Eu8~Um*|Uq*qb2C!M27xw-*T`|C6u8U z!Zmz5p1V@GZ}#|KuWkdQ)O}3rH8FF26Z*87+5`v=W`J`%DAVHT8UY)95U>GuzEd_= zZ8>QMG?Jd5hP*T~Ha72%rggkNvvN2C;M=opKyO0>DDxJI*7N(CJawUm$&xoq&LdNa@m>4KW*xXBCYlWH$}zd=1D*VjJR^ z4V?1|H7PrW-nUm;9}X8>I|I;6U=O|gqlg1x1W)0KV_8Ay z__4g;{`j$?Ao^v2m%9DjPluS*|E&eZC}rQcyF~5eb|0!Ne*iZ?1^=$zepRYzC(1S7 zrNN=&OGHDaMCj}HW>XBcmXl1{K+j>&g~Q>aY7mP|mZlzWyWL@H;!Y*q3mhB?sPMf& zwe`GqkbpflDYn^Chkr#0>I*8opZS^$dJWNCl86mJad&&M5*`f{^6q=}>l*;4UXeVi zqLJAjj~OmM@b&U&>h9)P5vW+Puo*OeqwEh)i4d0N#&>Xo;F?6XTfKsTzaTBW? zUa!T|ZIa$q`xDv}z>mx_2zy@GCb>ZdrINT98TFgu^<9@9DXLrQM>46y|2SG5K#PME zA}8d>bLIjap?81)MyiM@0-2w1Zx6ZHZg^l8sL*z;)o9j@kq&l_$_YR1{qanZ*Ay5w z$b9W(4N?Q16U!L!Hu;AYBLU0R`}oeMoqh6#yH^7w3ZS&C_7;bA z1yHc&hI!~QsrQ91kf@BmK~W`FR?sPGZk_@U|M`Je-u_j7^!O3vuvDj(srhm($q}GM z3eU(61mFb*1fVZD|II%Lyjo;MoR5i9*KoAU6p&qf_YzCE!RzfWdVwjRjpV%<~cE6mWE5bDYgBMPbg?aZISZ&0RdKS>C{?h z4<@jW0V|phsM)Gq_Vu$(kNchUnq0r>gKwQ4#IuJCSAd8ptCB0pp96mmnZLO5)c0+s z1@;8NI?!GhY(AT@ROcHG2`64Z-I-QlYMfMW6L?To9ru0(ikdNx{buTG`WvhtHm$c3 z0MA*oO{Azpx?F;3yPB~2wZyX7hwBdle$Zz=j1-5asc7bP6w47%@G1dn+ArrB$1Tp- zQ!F15Sa{2ib+{Q*>SMA$JpkEa$_+g9v2ZCfXH zYKjHdheP(G6otMO5(3E9YUB~qz$}9M$;O)|YKR7(ZSr|N6rdqsPq`Kye)YWvx&ix` zELVhQ`j&b4{|cXEv>0Eae69B%P3Y?@!)*^3|4OjA)pr!KDAFu9>Iwj~v@baI&u#%q z^qv0`?7``svao@}kSjnqI%w}g?&(Pc9o5KJ_IKqKymytjp3pFeL8c+SH>D>M^3-IC z18-)>(NIu`6&xPfaA{84az9~ixyVR1hsMyyC40fj-Xn&R3PXSr+$76dqX)d-Bp_({ zv*@Aue#t6o(3WtBO{e-r-)$9p8vU-W&9@fw1`zI!lC7g-&?;v|C~V*`YE#73lk(b& zF%6Nj7>Xp{yx6!7u5v)y5!~Kc<<;P?`X{>pCy`jbJop?!6{D#lVfZhPW3<&We zdnK(Qd~r>IoAMxLCHOm;0MJxSk<86A41>AsPD1@<%7S2kP? znx8bW`Gg(=u{v43Sew!b8J&ay{}9s#1@@{9%90tb2{T8l{&&Ej;6z{=O6vp&P%w!= z@bJL2ThNuF@GS)hjEE3&Pc+5y%WH85Q;)IH6l;ej>|EwJavLxcX&!;&Azx6b+B-Jq zMN{UoNoUBLb@$66m(!J&nQOSV0B*v~k1vneoNmLnS8sQKSXevR)O+**`2le^wf?s@ zk25t}6VILUl>NtGk;U?I2O;dKc322L`!9VbQ>g6a^s(SI;sr3=Xo3BEnbj;8FXCQ-T~FmkQz<_KLr8=3u0`!Du20Yue(L5L@Im`y z`?c86BS1bU4Mc!CURyn&_d9C4p4n694Lt>PAm8cSqpkQ)xa#}!W9j$=p_ucQ4*?Ji9kyI&B zhwJKXXM1})Z0FPDmMM8koNsUMon}j_XHnwMyz`#6DJAWQI>{hT9s*L2Dq-+l)6GSO zP!C?Yt!lUuexELRTOrx_z0OP_*D&YSn0A7N(q>*&!wgUp|F5UR683dfNf{?E%@DKPdueoSDUUrhN8E3{KRL0>3A*6*27Nfsu?!dkXa+IV2y z-XiqB5EdpJXLIpN4lEv0!HXVLpZTWypPJzd@`Lacvy@$G0WA6{5hy`Hbq09k^3p`% zOe9HM3xVWa4oChM=wr!0k@+9U?|VTJk(bg{e(o%Eo-CU5GMC1q&5JJa1_%2|lRRea z-bixux!LB@wJB_NSSag5IH?j2>o&yj6;}XFzpJ$Or&Cn4KTPr86{2g3NCwvrQbBhL z_?#y!O7ZcWrO7vJ{#3!S6(X!h?vFmv8U#?I#1ehYA}fcGso0X4^u>>CFNP9g@GohA zB^^z}?YOf3FbjW&grL}mw*?3wS$zNU+j!Ub?=%7j&$DH5C~Zt3C*Nr;6Giwuj=!^= z6Midq{H07W!4x~Y6T}PKzk&#VDM@}!r^yLRlJNWQH%66xn0a`3`0*k)hoy8u{P{2P z=Hh%TWcbw#-`@1o|5A99ubh=No_^@KcM=m7d&^rLWj6UbqklIjGPi6{^vQp%CfUdf zsc~e!g=Qc!zSF$BaeO5Y-^hJ@)~P8IrMxJW0xN+?vXR?hF%pY+T@Uf<3Mo`sA4Me` z8#!g8-2aP#{*T2S|nF^DJ&sTmivAL9T_U?DX{129YD1f0aq)ym3JRg6Jqj{6yuud(5 zZ{#GJVQjQ{5|i6o{3yueAbq;XQGlrqtfPK;FsT28uUT&=B0PJ_?0uQBd1J3q=G*`6 zPyh*liy+-00!`$kpU7YE$&+F%ypDYB2B$`M;<(_ZskJ1_ln@iv`{=x6fX=vv38Qf( z_49}F@F2Nz5}PO3|4zMsJ?X_`UyAo>NjBn#4QqMdKV)2wgwt}V7ul^x@P_0`)Kc5o z+@Hs4E)Tzwz*|-H;}|bZQIh^&aqBM!iNy2GGD*vYN=FL?Hg$jRl5>+`_3%FSemOs& z5|nqlF4mrY=x|Lc(dR7J(b^>b!^63@Pwbx^OaC|<8S4uvZD38mbKno1v%e$ijHRWZ z%$7MDPio-p9l%^73PS`?C8jIsznlO6nR1axiU^9PI-R-c$1aSK0#PI{y`XQ`CXh(; zabAUKy?DjN6}u<=6;lT)|1u&I<53(KRw$qOK+7zUx6NApruy4(Q4aVq|I!tRbYMw2 zB42gly&!Hlix{2@%OONJ+F0wv`-+KdTT=B#RY-@f|4n+dTCV`#7CbQ~WDdIEAx1bX zt~@w~yY>tId)G4$47KmXGENTJKcFt#7Uiig=U>D2ypQ)p`=i;=D8s*|{ZM_=L7j5Z z%OZ)HfwSKe?#FjMFUADe&12NIi!(Ag)kgqX;)F0PP-)oZam$qkgcM&21+oNJJRSK3 zye||~|4Cu$Im`Jf!49p0cxSpEV)P30nNGPjW5%l&@+#m6&B1$d)dPhoBiXt5m)oyRqLpVTMpv&^_<)LdDiXU_$tPF z2!26JTNr+!XJ?#r@y2fF(!_53%J_Z0O_NO3Y9h-?VRa6@l>{c|4xvrYqteG&@79<{F%mWTFe#%3Chn#cy1) zy<1=!C%^ftCUFtL$1koHv~5DsPaixH*pw&rQg+ToUr_?yh}YfB_K6HGk(djK=I|%_ zG=cKF^=Xt#6*kF9nwp)|0Gjue4A|6JoG*qK9gyksZ@0aaOefJ~Q&c*Ft|tP&=josA z#Nz8K=rua~33-CanuX2a#3h9@<~`0vb@rPSF)_b!*op{;S9$LOU2A7OZbQFBjUsK) zl^(?mHCZrc-)Zs}w3Ev9yO`@+L_|bEjq<0QR5n0u+8z4(h}r$!cGXO6?5)dwS*B?B3<6BdH|uxU1{GLt@0io$Ic0uv6LbRW zY?}ZF31=b~{hb%f$QIApH$db;B#97w{e-cs3OqyI7qz6?1j^z5%`Hd5>!8tEeGfK| z(*0gRJESWUZqt?1)4D{3gx8e*pFh6~c($3ZL%6H4EC02rkQX?!5pj_E(iPYw<$b3^;xS0N`l&p*cBcU3r-Gs0NPZ0c^zpH(ia#nXcnmQB6` z{JNIY!G0@lo<}J+jf*dqYL2q}mE(nm`aQ7kuQ^t`YEKN`;a6@!HQ`8ycrfGDAZ)Ys z%AE+CN$VTi>a$$+-Nw-o7}O@}|puB;A~w~mw*`;!adu<4ZE6p6S(2NgEW zOXq4A;uxX|v0aOFy(jks$G1=KOgZ)C4`6|*GbTCFy`iZzwN$p(jI)k8;O8W zBv%#@R=^kE3MR}Mc)2ZLJ-X=OcGqEg9NXaIU(HL?V4bA~P1^RWM_*&2W>H)%MYE;~ zi+2amqjE>W$4s@=+SwGDj%zL2WD$0!n#RSF3s&!z9wT26N@;@;?cB{=>&r@o*_#DC zRnZ?4SWbvbj zQ?H4}C+JG60LCM_b``L%a5~D5)_fo(fn7j(c zlBVRu>w(JVr+3_bTt#<&N9#{tSXE~{#qH8Z!n`ns4-Du)8GByw71=+Y%Y zoBsY^00Hwk#@tU=8f@-eg3w04kqc$ZTgE9pFMpJ-RT$>DJ{*;K8J5Z;&D=5?SfEiX z*H~K;=k9TSFAD6KqMK#8QasKHrO_xMQUx^Ryg#wJgGa$}Ok?FQs0X+1zlOsZx7@;* z*wybg#+Epa*LgX1R$f)v^io;8E3Nr>{T<8uF4zN$D0HPwI1p*_`$=c*!jB+7uu7nF z@h{1j-rtt*)&>*&WM0zKUF(nuq!#>K?!QA!tlkm<$gi9Q@FnSOjUm?|&ZnQm`W)=* z2y@(bn~2PQ+>zU-p0p|Nm=jCzbXvNedI2cy3n@a&U5Hd32z2v9lKuf#F1jH=s!atK zgc~{c-0YL<{1xC7qgb=M3V8V!8CmCRYUr4~*I|O(v9~$b_|a2p%TzStx0|E>qY>$y zW}_FZ<6HG>%DLY2GgaV8(_k$XuDbxhhU;`)OTKI@ban;*c$wKBqhfC=6y1+<;LUvQN8y9 z-ls!6i7b1TmC3?yJvnb)IJn>KY(DHZTnSYa>O-)jqX+45@g9DYhj1mxD7MqioTVkCuQhuM#wV67zLoTaa~oP@&uPo*ODhDp(fv1e<}3 zzg(WdN+E?WJ^*|fDxPcq0V=`oa?coQp|3n&_g*mgX3DfthZ!- zRHU}wlddnG6%lP`A-rFsP*k3fGrF>VPQ5_2$NLemEkR~iTW5dOdbWV_bnm)GoZWB1 zZQ%7#WpfjA^0pzOSJH(KMl3hFd?H)t+i#9YWc&PzZ?$AKI1QWq2|Wt+o0jN=JqeYzk%B+t}i+i8{9@y!cc(;O-u$H~7Rq-K%!@TRtL*BK}hLlb%qfYnv@Vzbn zQ2+^sVY9<)fGHXknN+pJy9G95WMK+>>>&_vuJPA5-R)Zu{t9VmX#+Me)ACHsxUQok zTY%ln%(Ph{906VmF?89}_}bA21%Q}4Vq(h8ACCFEM*BuLC9q>@&E!A^I#Eb&>S+@q zq-qPk=w;s|O2&U|1A36!6ARg^G9;wR?lwB-_MmNzLY^dJPJTR;$z!b6a_m#Ck4aVmExrgv3SZ*4PPX!H1YfBOK0 z;BB5(d0buivt{;|SDn)_azdoZ(S~FO378noeLFcy-#G1*2cpEW1gze&SRYX&+Nhl&I zujLtA&la|9bd6vGy7<-EuKJFrX+?0U>7%gUB2))$$Dgm-;>VGiWuEah7mme%M#-yT zm2{&^`;#jj#8qd+U0HnQV{~Y$Vm@U;q5GkeN!wnuUAFfIfLJL=5W*n1GwWrUN`(!& zv@3ZEzy4w-c&H2oCpPQkK3SHrex%pE*~jXZn6Hhodc}As*sx)KG!7bQ5xz4lbHu6zHoH|k<0mp+H_>L^9e!4%>~HUQ z*{`-)6e3veaB*5o+3|hqspHxXZ-S|$jbwNVOR^y75m(8jG5mSlw(G$n{1Bwlr{{^{ zI^vb!b>BhzqDxks<5|w|dbk1R?sH&=_1;{wEVT9`-7Fmj#GorlDO~6_3)cas;*kHs zPce&}BR|^berff*iK12Q8uv@e#9{OF?YaJ@Jb0>?6xde7%l`b#5ju-EHMM@-0@{af z@Hi*&&ylB>>?1Ys#v$VVIAe6&bQY(-!N9YdgJ}>NyW`f4z+ZOleWdE1drxSpd@~Yg zus0w@$|36HF$=0ZjtWp?vRk& zba!`morTZ;J?DJ!i+b%9bB#IX829}f7KBpxpR|%{uBo)0B7|!w{|R(4K~oN*+H_1- zpS8y8C{RekEz(ysA=2=^2&xRbWHC z#w1a4uI|~ez>0^o#c5Gy-HL~zOtVge%Z5g`tei*U`;iO38tu8suI*~XOBmms5q92K zV$=bvn+&eY(N?(dj?^#8Aw>$y1!uLGE7#yYUv&KX zLwHydj1hBPE!cbzrMrFMl6UuJzX=i`xrg|qJ;UG@uHFTCPvv$&AxU@_0DT%a3!~GX zK^0f0wSV4NV}U47aMa0i{u7GKcq$8x*;LQq6x*~p^;ZM* zCfFp%3B}#1XXB+k{)!~{EMAx>xgAf@AiK-&6=gByDt$w%i`&;%C$3fq=~4ZE{$QUh ztI(aJX%4z7Gs$YZ`S6@3IFp@yuN>F0wjzk^%XMtyWSbV#dW+HAsSyvyh#n?`n#fPa zO}XwW=dKB|P$w-19ekti3p~m?e>pM&*vcHQ?2GQM_%#UrXLhhn@V&V=EGaE;{60Nq zZ@N&aO88H#8l4PxH(+hHiz@yT=U|hKqF>rki}u@2W`V1t?Cp$O&L;FgkP=&1t|vIN?K3U z9QM$=bepLpO%|yRIO2Vrha9-*hqh-sbLq9H4X^GN_$Rh(2TjaJUTHL`Hn0KRG$0cTe!HxC)3H#ATvGV4 zlyu~m$3M)jTOHyfe;|9SbVcEV6#s6BQn?8bZ+oB7Z*x?SrdE8Kl^$y~r1|yY&Ux|o z-dq{Ms9-ThzSdw&Kg%E+ao*uj*_f-2Sc?@RN}2iSV<2$%IwYAoW)aj42?bjZSlVRl z#ga4*Dzci;fXBt}&o_ZreEFOyeu^u1YF+x>i&WFkF7X8meHi~r!=0><-iDd0n4>dR z1Z9|?#A4`?SIg7imC4IT8B^XG#u(0$A4+sQuaWTn zMi>>Rw(;Zzya_BP$n_36v)C)^fOShYJD6NZ*EBeJNO9caJN~vs3M|3iMfiD3(b_a% zg#Da%SXtF(NwSUmBJ=>RRcbb}qb46cnmP4oqbKj2%!kcg-0z`!KBjmC6Qw}z?Iu^V zuuBuDudMi3^MsJx%%ndRjW1V8=r_Nfp&fHS8};c}<|d&>wp}*wB8=%^y{TW<41p>~ zNxLTPY)2#RJ{Jvhu`d0avW?gr9n9~L{Nn{DXIkDZ(x{lQEdA4n6ZT(azJIE`caWp# zXLwN0@kmg-0%|*=L4Knos*&HPvcGu^CIu(`#%nP$Ou9Dx6g&PLOF*S}ETVz&D`F-E zUO`DsRKB|rakfmT^iF)Qxbngw-_1YrRnWaj2JRPKgkwwwqp1${uk^x+xYPH=ly5&4 z8tq$#rFcD2LQt(Un;2Oi9)`DH%##CXV8xsSfCahs8+3%zBldcFc%2ZbVlA0Jt&dw; zkTf6nNG^EwuOHx<Ap#f6;`I zK(WXW*Ri-sXn50ENlhs;H{!Y~|Ae~&8x(89%mS7ohu6yKu_Y{VhQHcsVoa+%; zgaRWm^Mw9uyLPs+1+Z?~^kmZiw2Nyv5FPB`45Z$sIY8BAe%dAMX~vfKS2Z=Zzm&9Bl=aJp8A$ZA4u&jeY=#PAM7R zv=x>pm?AKL*&6-!4Sp)mkizrL>qaF1Ol|rQ@9{P|ZHM|8Pmb^&WLo?1 zK7UjMkIgCuWB6A?bpFWGytlFS)=HDZ?6v|xkCFz8k4#CE1tT~izP<#I2SF-DW|I#b z1@ocC0N$pR8cI8%_g_qCmG+IW@xB2;Ll5qv>fX=i`sfsSn{Crh79Vc^AH>jO>JZb+vr9T(%Evw%l(N-^*9j$!LhYnJQPGQC|pMlh-9CP<7o)eIfL!W z_tt(F@ zQ}L{o5dW)9yK>WSb{qNCmw-aE{lWMKIjZ?nbP8GZJNhKHmz*7G zyz!T`-}?bwr{JR|1hb2&UlWDOJ)EEGL4{gk`bJ);Hj`Se-TajB+Z{1t&l6ub7=-`0b$ym2-Xl^9hVAu?*Ev z({y_6b}0a)6Ynu>sZ>FYq^~UBe`B>5bkbII?LbEf@OEyWb7aNA{Y1$5C(F$e(*UR; zk%&yp`;u5B3u+Z$m?m>1cPtk+w_x+{TAl;lSKL5hf z3K(T2ujTdx?KXIO)ZXRK(9*k4=VHFP64O7+ER-Iz!{!}C-@i5Pbjdr%sC8ocx@H`t zUrR5y&ogb_!oeCn=&7%JnA~LOepiYzRoE3}_j$+dr-B~!<0C**8T-212ldJXcGG3^ zP~F8bvih0?^ocqis%;TXIa|scU1xX!>wgN1@sAIGEf1!;Y7KW+*^sWXMd3BEM=^tr zKMy9+7$z)MY2z(aSvIhM0jIbC)Z=Z=#q@#Pq!`jRt=s00Yf5G6MIU^g8=xhTKWRET zaYo<4I7{UA%6Gi<+`xHU^tBg$o3{91uAMakn{(mGzvjNeYHH^`5tA#`?5)V>Zs;4& zJ+zEQUm`|aDJfw2by0cB2)C`#zFuCt-jQ`0kjenJ$|nfyC^@EyG2z_bC9Q230Joef z(ZyQ}oR|@{k`d;3RhTA?o;wJWa+7s4b$cuxCU0e3ZYM4_^7M9=^V%r~sl(ZjAc+NI}(V zHQea`HDPE`tg$oil_Qqf&eR%o+&lH)(5fC(6%0LspQ&=u`pnM_M7MN~fnfBzWprp( zrA%F17ZJ}Q(VUdE_rrxZ6!hd9^biq;_V&i|dV_mZyzttiE$OMski(gS9cW0-Bc1G$ zRjq2%*~tQOY782UWc!@~L3+o1y*cG{KT`@D>b*&fp`@JIRot)WeO^{op7#Uen;+Bp zGpKi_>fEOXYj?(w42V1}5xiC?D*P+#Ri7n`RlRYP>C0}g*Yc(b3ATW!d&do-njSRD z!~C2E^YE{Ul>RxI(iE%+O`d~q-uigF-eq|Bi%E6`+h*!|U%b2K{_r`-u2E-nr+TxF z(Cb0I4-x14NzWJ5^o(?yd8q@d)hbEnpKTE+n2+<*;g#~b^Jh`v;k6IvQubQi6&-Y0 zKw~45*>vo$1)vC}Y;Db`Vy$$wa46D@{=l8V9j30S5j^Xi0d%PK$JGZCjRaNS+ zrdxmZ$#YyYi7y9w2rR=Zk7tVWY)PhLCr3Cd(`OS1X=VuweNA4@wf)G~JHwh^JLmwc z+@SW!4t%=UU2-aaVp*+6#g%cibGq*g>TI7fl0<$-@&BwvNkHXTo4V|{MkPPO(&^1j z0#t=;(*?3wz;1W?`+-=T^gq-B@=A5SkCG~14&T>)TOCiz=~GBtdS3)!3qQtkvC`c; zMXL3^gsYC?&(k65IJ>I=8IOCO3%^7XYq&=JzSMh!EegJ&c}gRoW&*UHsG@K-bNa42 zkbc(>7^v46WexvI=SVk%=&#{%5-BK4+AbaP~E_cYk-dX7zZnHXDGY$=OwDrRy?W znWtB+Hkwc!&$nbqC>IJgbxVQ)$`#ln;NfSxaiUeOL_#dUwk)(xt{7(1Rnvh-{J4T7 zIso88%Cukb&ULOJdxzw^K46$_r_@#Z99>Dj7hg(S?*$Zvg|3BEozhMe(uK~rTb0PAMI;F75 z0FteQ4f*J#>yH#%1#H{|2}j91+r)}Q?Ns@2Dk9#l=K&JWW8I{%~Z}t!&C=O zUB=NS`V;KkbZjW*kRgQk8M-XN zWq+&eL;Fz^ru*3d@mp1#1+-R#HemcwZXcgk=gp~(eoL7IJOSJGue|BWzNU@`N6#pT z<9~@%2in(K$)yT0zI-x@lL>lp>&YJM66GiBjZHUV5P4Dr*qNR zq(%qAid1lUI=IixC{@LMp;;-lf`o*m9SNfCO^D)G0GbOeavwcc#xuo8sK=V!wbQ_> zbu!!j@0lu)=^bs;pn(T)V^f(#baFY%!p4VvtjDY4T&TV{yB}m4U0Em4DzU`9o^Z>8 z8ZdymYX*5H>z}5aRG9<%3;_R?2iSBJfX?U}{v>|8s7Kt?W()8>2m;#6suG=iDIAOC zg^M|%miOr<0IfKM3BDi^klognc%LkBE;KvQIPG5y>Uw)o^0r>I+1M|ct+noAmJhksjjkp)PW3r-Q zA7i|#Rh}{!c=dESHVJ6j)0{6F0sqhMxyE+jE;T(tl||p9yZU%v z@!#`_`kfMuX^~HNGS>sTtRx~z_nRY}Q|u|P4UhFAR7_0rS3-ia_7K2*=0ia$7GC+- zzy?644FVFcm*K>GOvQY10F!$rK;hOHE^e7juQ9%}Arh;tsm=W7vbLj$Hbc4sGWFPR zp69CT8-B-E2(N*}iZ2^VnNp&~YK8CWz9h#m1?T2wb{buME%oal#1So^U(R&c9h-=a zcm?N?`Y8Um+NWyZ$oS2hvD)s00Nv~#1{4>3g(1IPR3wBgihsYt?hEW zK$bMtan_B%0?64*xU5%Nzae1KW&-R0G#lA9oPNOPgzEE|0lu_f^4#qg&*}B?R8d@y z@g0D?&jDbS6H`Ts+Z`AS?rzube8Af{rpN#dAZMk`V^W;R>vNJsg+`sk=)i@7PvY)C zjId^^E9X7H4G2|5!RNFOq<+n4JA49*hnYMU1VIWP;tPU^Ar`bB{j~|XU(pby;l68P(lbJU)tqkH;L%*t)5<)_Jguy~ zTnjXrrj0CSyseL<9 zvk>SFu>k9Kn&kmR(gv6XlztZXdZy({A%KgBl*ZD4N8_qflOUKo3Fp0jxJ8Of^ zX$=Q*rxR5Ynala8aI^tHSaxq9V9}}xBvW=b+tM2EO%rYlDd@P!f1WM-W)O5)fNr-+)oVVMA1~A?=3g^}q9o{9pfKM8_MU;$6@(q!zy+1U z&EGGr!3&A&?6BA%L`Z1AkD%&fHcP+;szOAQch^HfPA=A_7PBKVr-)axucir8!#*6{ z;}-4ox-a~+ZaP4$hspp85+bI6+jLd~M96_Fo|n=cr7@)9#Z?@13mt%UjfSKIaCp@3 z^Z`I43RwQzB?lC%#d>KtVYS7@RyT)*O8o#`AKP~%$o_aBEimBQtN^)tjZ_R)KIum= z&d?bW)FjxZgX`h_OaY(21lVimmuY+xPay4|aaFHw$lDRChUI*6xXKfpQ+hRoTANj! zYv}`#5H6BT05Pf5*06Sl7>B9$NdJ+RutcRy!BwR~N83D<#B75XcHMj9Pbf$d78Rr; zB?VaP#8WbXfT;-lvv}W(_;?X8xuJbFu%6+4^q&CU>^?wDM@FzIg0d`^XD{6%zB2HK z9$kFfZfL1RG5~vCS)dy1De4|$(Hjo!@s1%TD%4-EcCQoac%vCu|MRLapOTk46%c5f zDjnDw0OR2_))pypc)I%mm6NQ&zCa;}glN_qpw_f!cj-Xs`mu=EKg=aU?@7rA_zHFs zqke>(R|!Bag9|+IY=WOSuh}lLFS>?DH6u4l!!mJaoQwiXyYk0ki=Y2xRLVbt_E#B* z2L4-g4VvvFb<_6t=P8Dl15lUARH3|taEYa|Q@Vg%>2Z)Sed*9MaBGynwonu%popyh z2zZy2AQ`c35v^DQ)nWIW6HzRG_&n@WG+zwTC~L0;-Se{aqrOX{#3y-=>j|rhiY@yCbJJ!bYKD=os5!^%t0h&k_DfoAIYrFtjsoMyt6mjjIf6DT% z6AGo!7=xn#099g3Q~6)=EGfQCjY&a`c7$VOdi7F2+t-n$l6LZ(??A=pdtRfjc8m5(*%2q71{(yh-X&?v<2r{%!E+R3f3-3 zR1=G2Bym^>Uhq#wa(8}=5FUx&DASCP?upF^Ql?0dIKcviM2|SLH3+L8YDXBzPJqz^ zyjNgheHU0r)KtT+C%pU#6@M|uo1^(+q-0}+u5fH2j6fUh!w^qci%+SW*sb6RAyNdv zF-iYU%KSOh@6gEjUjdBx)ujRo{cR;O>N@`MCc*m}Yc)p_UD!B`ycO94;M)|6TSP3M(ueLr6h z%-c5DT{FB}`jc-`7M&Er8kAF((TVj(gDF*G$QW@ZK-|Cvb&C@(!tZh4rswy3>n*Yv zH;(@~al*?pvh8nbuzV*vyi@gMBJ7J99&1R1l-F5LXOH^n#Jf ztqcsZ7x3_}0mHKz++i{z_%R?91@;`UrGhloKoA5bM`}Nj{S7&!!UY5xNUz@C&0V*A ziz6?FEmwTIdsG=sPB%mZ7<$FNe_=ECz2A4s4Z?&+)C8I*U5(0b%4|McjK%m(vB(6a z35GXJGVlGrF~DvKfQI|cU9kvKc+DJ1;`OB)mLHb%EPh~O;%b|8I z!ws%!H2@41*N>ih0ZwS}mKX3SwYx@xT0n|Aoo1Thl?Yh+sI@PHnn^iz zv&lXnu6$bCSm@61m9d?JIfU$jMqbw=y9IoYkDNuqIH@q?T-{`5<0Ro7R}+#FG{~*` zPI7=Bbdfqw)_DdymYk;^0~E8@%L<$Qi=|2r(WyCjLaB=C`@dyTP4X7$2*=1z_C@>R zJlshv4_JXkP>lcyR_Zon!#5L@i>>>cl}M}=?Kgchg?8wj>IIIPUl_ByVc zT?%X75kx@felR704MpX68<+4+VI6R$TfP6zPo4zDq1p3b$rQ2W4jc$P0V|NFzBcb6h@+c51MhUdcg+ znr&VBc&U5qFO+JPnZ<;-Zc?#&yzN(_La@82E0aPSh{$|Mdh)yV-=P{INY%LXx+P$r zd)oKaEQ0GEh+7^JB|lv~$_yUri)ljvM~eU3hp&W*7cIc(6Y>J==}VKRKUi4tfc<$M z$`2rCmR$F%xs-6j1w;q&B;S4_5F)SVL|+%-_kjI{dO`BNXCDi{a2~DRCLo_M@Ve`a z5E%m3@^4mMaHqxfg_UZQq6Xm7j%SE`ux`6n$r}mo`?N{v8sGjX8(xU+J{C?%b?YrvjylDni zu&FIyu+@}6a&9M=x0yfVuZc`SDAq1tON3V_6$B_{%0C^AjU3xND7%Qe7M(D&A2nOn z`2;%x*M^aCy#0EtPwnyrJ!#O(d!K z223z+2I>Yb8Ttkr3935snwSQ7JW^|O@?u(0EzZ&@z^3<>mbgX<)MJ3p&trAs6Il1M z{i>K*9hf%XSByq+xE|j*@vYJKJGagplD5t`wrt9|mTe1D(X`&p^>PY0Kq)HD!wHN^ z-hG~0td)%OYYs~=J8j$!P( zSIeevV6Y4?tbw8^uDeTkC?p-KFx|}5Jnyw&))YmNSv^CRrD?95DL|(x+_;HAP zhHu23Qs-M7a-6kji*f7+roR~o{k3gTL>a+GMUi{G5o4U z|I}$3A(=v`v011(Y+Giv^~VsF8g-QB+XEi!oc$4>k*fls-@^ztOUn zd#xW=TQhX_QS>>oljde@e(;C>dw9rlT&Hn<%}pjfxH&h; zHu9wFFRIR+`meKz+LxtKao4V#{xaj}f;ha2Q7nt41)0Ka;q9bL)Gn=sq+q2;;j-B? zJdiyTB&yk@BnM164q0jr9etp~Q~+;X)^rdit`H`u2}o;cq-knr815T#1iCo~jXn}~ zUG<*e3w=Wn?R;MmKAlw?L)f|}PU(fxfP!O(RO%IXn@gzSHeB`ZTN*fk-7`%6)5cd2 zE>GvWeE9B~?DJ>P+E-1sFVHtCy(x{QVyFyIG1tP-yELEO+*7u`QS#X1Q-1Vr;5t5t zws&^3Hh1Ub{c=n?k`f6=^u)jj#Ya7$o=$PSXHISnJd7cv_KUd#44dpS7t{`!?*$}a#LUE*Q9)UQkj~FziI5MWh;s$_ zksH<7zU8X|&g>$YwR(dA{Xc&*C$|SKAm62pcF}2L4R>J;b4qA-ok4S{#@W36CL$;^ zwBP+g(-j8;KUM#kaYn|Fz+J_2cPqRk@p4pQB`K>tz=2RZ|2ah8*0Bhih~wqi()(GL`lar7nzeSOOUvq z*p@ofs(7+KO*yh_a7ScaOWLKTPeLvrCGuNTC{ zPfvbMPYhN%U;uu0h}bsd7U4CZ0q>BJXUK8haS8~Hu;BtGK1qK)xX*rJBfmY%7UH#= zXRoX=#wA8(;CHjky6x5tTuU&INVtFBT1JG2BOYj&C?mNu$oNAp?=_ztfK)QMQU`-l z2qm~>T4#dA@2;?TCu~c9Hw)`EINSgc)uF21aD=@d8iF3RbBp9g^@lQQy$4rsWM3r# zR;n0l)7FPN)MxfwgA7|Ks6X4{V0P_469zZ6B9YPK!=Zmy)W1&O&yGds|kFL>yc zT5#MV^Xc9$)e|IyL%M~>|1={+k28AfQ~zWSuPi{XnIFEOiLt0fMt%Wff*P;<-q96; zEuIZToNFjawnT$EA^0htR3v5c9dSU2qW6Nki3A=<&5qYHQKR8|a4*1no-#60$6ONi zZP-NMwtB(NhQ~s)dir_mwo&DHASsfxDyl?z$T@|G2c-xmjz&U*-GySt$KE2qkx~C& zHU|>wv=09pVsjzaFXw}|EMS@-dLfJf9;)<3rk2kR94qAn7a7p7&*O2TR{R~)ffcY! z2bdOQYiq-2U_nZ8Gq1Cscd)W2a}RxTqr&eXS*3oU3FVX{%(*t& zrKY2}jS4TNR^dTb?)a)d0=2+BfVOH~>h0F#R{d9zS|f6=v6sIeE}cQ`9#4J0I z=`FL*<%itACcLcHp+A)H5s^j!u0p{5Q>IT;@M2^*mCls$G1LKa{>s~>=>M+U+cTrq zC{6CJP&r;8akJ-77UgZyw83=1Cxis&Zj#hYrZ46N&4y7K11q-^Aa0ni0O;hzk>60v z8Jm=Sn>w3)5dk|WVT|RUW;}9DMu>iMjpV*nGdPhUJW~hzZ7M0~jZ?ez4jDb)uH#0$ z(>yi$N)8paK#KCZ<=jLT;`t98uxy8Dyhd9ILct*$IT*O(da$^T!kl;zup5oKXEpHK zu9ay6Tpl}phf2ZU*kNHI)zZ%LD@Ps@O^W@5sK{9TQIf{D;Xm2#Y@RpQ?A4$y+(sfHHbi-Fjxb;AjwxPFHMl1Az56ToZmOIl zcDuI^>hTlmQA0gnB#4@{)$guVfOQdWZ=EXyo#Al0M7+kerA`lYRoaZzoLT}m8R=^_ zc3!zb(cScNw&9ofRNG)?0laK6J%B`2gbtPK%G;GZ@IzeD?eS9hTLPuORZX!NM*c+7 zOdhT=V2y#QLb=ZT3~Q{dncp9o#x-iJI2Zizv8eH#sia-2rZYh z2zSjO2rNS+6R5X?)wijYeR;YhJu-R60nBo~)bHb)?wgV+d?QVeNI)bEMmHxd2kKye zB~lF?>dv1pl#p2`lxV$>j@s$rSFt-M0k-K1o8MNvY>_Z>)M;iX){?tFsz%?6u^YX; zDICz2FzXUB%!98}$tvAg5&wF;UGY%vTgt7D4spNZeAwnxT1i97GWG=9am3PpX8YmVbu?I&AluLe#%7Vuk6nCv$!jFAt{YYq3(qr)US&v zlIWg4+B2CsaTj`$!IKy7Bnik_U>iwLHFHBW>*?uH(#W2;5_!s=tnQd5u;+gX)OIl$ zrAtZVPKw{kS3$NyFaIm(7@}6TLtUebrz^H=5*|c*w#eD^{Q0*-h59bf5u3||G;X(S zXYp+nU~QWrH9I{w`D)du&^_2JbA@s5E^AL53vq<~{Q0wHh{>FU*fud}DNV6pBGINj z%dkXcoXYu1wbDYF%i-elwn4;ID4iyyi_vEc1KG#CiuRPjn*&k#-k-r>p@+&aXaY;{ zd8UwFus|dc%l;2UNF2XTQ7ml{X47HVxhdtC-&E`0b*Oc7Ed*BNuy?9%mLwkQtuvu9 zB=gOG%xe^IzAXkOc1UZYQW>|bd`&c4YMX6lVAJ^bk$$5xA)qMrjJ1)5F&Ll3@yB1KT9@zXumZy-_vko$=7@+7!*#-jh0yIUCu#V$9n!KtMvgai@uZ`5g1x; z&N!JrlQC^Ag~pPn3vhM1KURUQc0di3y5jZ~MxEdGc!F%CeAn8|`H6hw?Qh&*IU>+y zHc?O~E^}Mcp$Q8d|JGcP^3ug0gRTNm>(v}4G7YuezkjC%=H{|w`dZ`n2KhXu@z@7q zYI)F!exw#D^LYq`S1Ol+nV-i9v<>WM|DK7i*`Q!Fp8auT7S!R{N~c3>iSRoDN7%#r zIRW$LRJIBjg87W4oBO22mjma2|83@?M;8L*Nc*c(xb!twR)@b;p#lgL$se09ibq+T zuPC{W_3SW`xJg7gV6;Ss+#naItSw_k4$#fUXyQZin5y3MnD;9g{1@xCHm4UPTdrzz z-z#<`^y9yMJDdm*EvHt8jX9TJbuw8pVRh1Eqn#v@p5%JIQ)KqTP-SARv;MYTIJcNC znOv1jl(S>Yab{L#!@ZKTX>xd?oqO>d4Q$)ViJEx0T`foh;IbrrZDy1CO8Yy%i-;c~ z2Xw1GZAVt?_Gpyb=u%JSz*s#TF{ezo^J-r`94ghjoHB5K)L|UYB>mF^=SM)|{kA|u z1?+B$#veA^uli#X>PHd>oi;q(&%<^%%|qyTzdCNj`@DzikD3^V@+fq$v`GWsHyA{| z#qD8#-^t*jWe;$Q32z_gd|p!?_xhSr6nY1+82}Lt8PZv(`fBB5zTpBPD*Yrr|1uNl zOnq``B2PCfa9&0LW#(II+>KUe$%thdFcMAVEK)0kwN=IlswTh6*R>xL0>epsd`c}8yzvc`84+lb?lnmY|kbc`53KlQ=d=MKZajmn4sS>nfD!X zAnXjG6qK8+CSEHMbH#osQebk*|HkOSS1)j zFV~q2%xp~5#231{5GRx$T}_F?6VEGeorp-2sY3NU1EXR3k0~fAfiTvsewQjGSExST zU+%-`w0MVA^ozEZ^J4qMIK$5R)lWGTBcLRev-UH-y-F;2Ka=B%ToeA*gC)=HzEL-l zt>IN!$FQWD!;d~&s093;zF$gogDx&Ur;@yFbRMLrM~}#!GblQOeHy{n*q+Yj3Vg|) zX|w-A=TWFHU*8&H+2)UQdbd~;7g{%kB=4g@;sdxJV@0jGrrZ$AG)V4m`y4Q_t=40V zur30#)sY*GrwI>Y8IIufDs9zE+-KPloz?wTyO_f^(B%3a}c> zFe!rae8VpPc>eMkX zWdRpDzvJy5X9V9FBKHx73o>Eqf3J>IwHI^enken>PMQI$)1}U&&Q*JOQooW2l<_IFTC%S#4#qaDYG`scm;QuQ-a#94&UkK2Cm2 ztPDEYMt@HcJZE}m$0kLn^BMjgBeGL>TU6a{=Fp+)RE^Zq+xC(L%h85T#{21$P}{5n zCC^UnTY@0<<6WTB00_1UglU+toSUWCoKz6k2D&2VZG@r8?2*U+q6E~qKWv>bRgrE| zjv^;qnw!SPnr+9)Qpa5ibl-RNh?`x|*O<{E?A7ehXKhk^m=cCu#}{HHjQ5$f&Xits zzNp1OK=d3LO8D}vt-O8dl!SWFBUjZ3!s|K&&HHftTy7nvBm@9-+z)mpy{p|nWA|k{ zA{@9h-69h9di$s${o0O%yw1x(3-+IX-PC}zi)=yD^n~9q956CJZP7>552?n*x};^= zl|+K6+HLH3zx*Eyz?88o;djEm{F7>v2qFf3YE;mfmZSgsb2*#+oX1oJF@E^`b zVBCa`_#vBB-jbXBne<~%n zdA!-*ABaYStD|i+TNXZP(?NfB8W74i%0e;w(n6&NSNR) zIMkf87OP~pYgc5(_Wm4y>K)qa|K+d;9^bSevoc!Yi4XR9L?M(R%M?Fv2XD{mFLl^- zNcVF)%Ei&TCU5!0qCN}Z&!U-}67vM!VbE#BuZkd@^omy*aUdhMKLFKe5&<3Z2~2MINXti*R$W}ly+AH0#SVg(K918jlF@DwD?q4 zf9ga^p*jheo8y?o`rIR+K@Ln==Fjx!v2!`h^z$Aw6%zVH_iWl!x$whfb z+P2aAjIFe>c%1OC+F=csBh#pqX9xZP4I)D}6A<$0N&O+#6BKy;nm}9Nl9m3&&hzfz zRJW)H*eBjLyc%L(MtJ^k&AY$JdHvVz3weuq`^HNfHwwX;p;D<>;l4VpuIEZA=naaH z{Cl-O&ul=B?4ZzCH!l}`oiU=2%<+SXETrRwnxy=f8yI>T4rySB)kLRdv%)5Ho$|Rw z!jK}QWmm`ZIy>9gh$z{7$zzVo^4DqVgod(q$Jz4Qi>6)5Qw-I@UzGwiHy7^)g?|BD zK;K&gLV+~f@6wZ((o4kAn4p=O+bh!0QS={$9{Yrt3inuuy%a68+baDyQWjRrg=)<@ zS|btDldUnj5!plZmXaQ~#|7WwI#ATVMw(it+_^f7R*aKLf61Sp^qEjt%8^CH+Zc@w zvOhi>5L#x}9x;NQYkQ3*Kb;jgU6*p^%IALD3XnwwYWFz2yb#ejjwU|Sm+3DkQJ7mT zZ(f*c2b!4|quTUhz+>?5>K)bogyu~S^^;o|wr+KsmwGaa9(s3C$yV|8`?^DoN-JOD z$dDmI#;O7mim=xBTs#gPGFjpkk(3O}6MWX2^Xxa8GC^ISUl4>AqAP1buKx@`Im9AV9RYsG!F zVwQ~rb|rk=yK{7kf?@#X>UFh%cUpL*4v6#VJ7jJ*=Ua_w+Fo{ArffRtt_BZn&?18v zVjkztcFl-nsfmy5Mvz$C4x(bqT+;?0l4}QsD%wPYk?$XI1lUF$USFWX9PYz>%&+F) z0xvrr+k^KPUf3rWPrV8g@4hO_xDpdd`nNxr&@MYJ0z*9Z;($@L4!Ozj{4Ylcz&X_Y z;Vf=!KjqLSJ4=>lGsy(9o%EX7f!Z)Bk_Bz*n(JR+0FLHtAQ5%bk(JO#VW-)`KioYq9o(QdM%ucO|-AnLVgCJNC+ ztyX0KMVYFQduC*2n*H{mJTQFl@845_OfIQ*;KiY;IehL7aNn9gt6Q1zCcCVuw+#-Q0};Lcg9GQ^_OY>y>&45&ZDy+Yx8k?PeSxm?SUrF3vfust~~yL}m> za2&gPMtN|0IBh?2I%Jo7lvy^rPI)bq9kZ_W?jb+0RYqB8G_TpIWSyo#O)saeORBNeBg=n#Eh?EW%lA4syYm#}GY%ESBX)~~BZhP^n+1$Do|rq2 z+Y9^B<|WjOPN+6B-Le{S)jONBUoE*P$Eb7SaF}+BR*Dtap2qO2`KCGYC7C(O{dP}6 zRo5-Z=odrqC%xM$D)SGx5WK-F_;0y~IwAy4iP2H496wSE3orkYYb3KB{lLPK9PDDr zy5WelfXfg@Y8-PdGUpDz#MaDAwq>xkBawX0O= zZB1B|(HS!~3qmwA<+~_X@olM5_&*C|#bon~6KE8UEfT&Tj`qwxA#z7jcUevd0xV^_ z)NLUm;#6UWliHJ|dbBt*)UT$XOkUl=1qZnmMF!nl>x%Qd-!}?;T%v&5Uh#S}>Ul(- zbf*!iO@V@zwFyOB;<@$yuEhJ4KJ%PG1uBKucXn37~o>jT-Zk9PqL z3Qp^jF}mXjz*pAs%n^DpC4=@O!{-5Rq0)}I&SE?qdezOcnCYvTT*nt}r4B+b<{i!E z`@WYj3cmDyTug7Q(ev39$@eaZ-g4&GMBZmQ2~!2CE_pFNu5-32EGL!;Kd|nhZkN8z z>P$+86)_}Nd%qXr=!EG@#oufqP%)o!Rzd4ytz-6mdEA2H$5uOuia@Rrx>H->OeDptP6S~#R)um;wc|MYSz51aA$R)THUiOI-WQ6RGa(Nuv|$w9QhO4#7DsVBWl&$RIk$Z5!O#dwt=} zaM`paB=USu8>5fHFVKME-AR!ttk?EbEmu|{P=z@Liov4-a!t@exe&yMYw_h9gDTh@Fy=?Od zY+ze*JHu9vyj-mY=a@`rA3B?5lzZN1?_bh)WCfoPl}<2{%l_t5GnW#tTUEPH$1Hl(QjH6lKXFDT-i> zll+qte0`}7^m*Yxp;F{YDGx_|4X9YD%KxzXT|Bqz87djZ*X-%<_qmFze7sNOJWTef zQ;+)pr_KTnK;^JT^bowT6n1m7TuR+4nt));mKK@>g($F(xrkKc4o1lb+2@%L)u*wzEzqX$nP%C;Vxh$(onV85HQ1~>Bet`> zp3u|_#4uEkqRO?tO`mq?I{iO1on=@SUE8+l5a~ubr9rw|y1PN7ySqU;q(MNC?(XjH z?#_$u<{R$k{r>1LVw;(3vF2RIe(Z8kPF`Pk(hNHsy*j(SFoT?W*Xrk#BljnWWBuVu zjV4Y9#&IuuiTDM7n?7{9%hBv+ZnaO02|uOol4~`+3g%->R&{U%U1W=#9h@S+HaNC8 zPl5$pylr~BmN*VP%Df-()Xle=|3Mo5*`}Rb;?>w&sftmriXa-p2hfpjw}=#Q>ZX4& zusNCs>m_7l42yM3VA%Fw6dH698m!{`qYhh&1QbAO)Rv$rW*LUF#io(^7@IH`w_5YL zfFuT>=poZ{xU6u91uj=ukg`3aTLoGs0C*Jwu4FHq0bP%4uyP8a?)?QiBVRMNR>svg zJ6g=*c+Od9Am+yHm?P#Y!bef@ke94f_k5PKM8GqBN(#L^>*|G`Mk_%x6=F9%6)005g(EmXTCt7)xk=&wW)64Bw|)ok|&vvZvDZ^CAdf51?{ zzbWW)@pS;hP^HTeh8zLU8-?hVfUcarzT2V|%+tdwwPc0A;{=62Qm4BxlzHuB)WNj# zE`g7AUvFKI0iYKULCeO!7X#E!g{YpMAqDq<9EsMD@9_KQ93f%?)J~Uu*f=FT32xMi zdbW`f%Cn|Kb(nL!aRSslnia>JAlF0>jhPqdh{LInvzjtg2rgDo&B3^77jL*hH+|6S zn7;3kJKo)HO`K@k(#TUrtIKP@_IdtW;F-eFB&m^iU1Fy1lfA`a7QeIE#yDdMR1CU( zU-;v6<=ac%!QX%P0#6B2>cwKJi>NE#T`Z_A=cg(@rJ?id3jxPcCD&5;Cik}OPo!=A z@nB-o>e(jNJW3<`vhewj)mTKYw1lqhF-llRhaIs5gaA^Jhua~ub$jVM(?`FosIydj zv(H0RnJ6ei-EU-!k4cRN;$i=N66JUMMM7YH$L1^4$bni2@YH|Y2i#!6N~5Ilf`KV{ zkUf+4L|^bY;~<}UH>KpB#>}lz*h;WRT5p-0Wx$aYapvAg^2{hM3;t60rTCDaKP16* z#<#aU@7fI`Skt-Us`~kAABEvn`-2SriuyPcVN)oz&jeB-i?eM@hf^5N<1NiBt`A%z zgdU;)q!USHKIg*H0}2-;e9kOKAZ(5=;DXI7D3ysGnZd zcf$G*{va6sAP=4Cn@K$Jwrs7-(M8$Xw{)d1&(Y`Wjo+PZb$>#K3+$}X8;qKnB-1UMzb>%CEN@?tY}`&$uC%5$0)opRUnWcI_wiW0t0(`va!A zq5ia3a4p@O`HTCuiixlN{pRkQBmM@0zrmoNX`ECl(mzYs7V)yY)=gWSvSg9|&nxH@oaX6PqEk*18r`9hJCWWptyBGG*#Kh4VLq>3|b3bJ9fh7rldSIC^-@93bL9b8T;5Mk&8PJ%41?yv3hULz2&cxrG+VqxU{NiM*2;?zkkkQ?s zf*IVb&y}Rb)sks#kUre|>$$H}5|ve>r5 z&Mv~$U@1do2V{7;Z9&*?MPV%=1s28s%je>TgS8WRUQD+GVG1;;7Qp&8{h|5T@V+PT ze%wnIy5C#(JXiIhBwp3_owN{X{B?)F{HOrm%_kw;aJ30c*~_9!Ghr zz?uQWWD%ehKB5Ga)&CITvQu=py&fvL7XXuu?ph!KHC$)3tRkT4fpJ#r#xF?=Hl&zn zR;U$vW=R8+TqXf5SfjY|5S#86AhZ1j*L(SS)7bG~+Q;X?l-*YD8IYI!B^k~6nVGHk z`f{z3A-jr*3sp@6Q3BKpD81OTGfJoSb_<6s=Y8_<(E2ANfN#rsm28vZln(z5!VajrK-~uq@s(a+~+?jE+G??DIAHo~L!id>x-2z)U_Q z-1J?gcn1h1sFr)QHRuKzllMUMJ0xq5uYcuszCvF=HA^IAmKukbIA|L$`~2`+zf}iK zT90|C8sNgTTHUIOuZ-4(aiV{96;x2@RT_ZHW^k*@c6K^^H1SzT2Hxx-t4VlYk8#|b z)Jzm}zrQ`((rDM0HnTJRSpda-^LPNHK2v}{^{A*|+%`C@eT!SDM8N&(r?Wg*fwoPP z7=aNNG^L|~;pHgHMB@`)EC{ea^WuH`8M^BGdNvkfgg_4Ad?mN( zCu2=0_JL>D*WRg~_MiybF>v8Y(Cn|VVrrfNr7w<`mdGy%*I!B(I(M#UKfkHSt;ss(?5FyL|+f-?GC6-^*a zEAu7<{GfI;xiZi)bC`cv6fBXKf~;9*Es-#FDfDKqCY3?hTTc^7WhWX0Tuw6+E*+u3 z%SB+CN}+m1W-%oj=%h(cgWsg+oo^7o@6D8W>zXMw+tO5t zIwM6W0y5MgAlOkk{TlSvrG#z$BMgF46oQWySVilK^^Zj!fR(COG$kDefGpC? zx^L%>0BO780!j)b`YMRCfL7DQFTV9AUvNRlRsch#c+ebMJwml$)~9JXdb zz%FdXeneS}nmmJ!<7$Z}NLm|58;3tc1r8l3RHfn;EGO+J!m+&XQKfgdo|RH+K8~!r z1v^J#=9tnZYQ^epH_BOCQKGl}dGH5f9ULm!?$R8-!O}YcunzeWwy^eco2P5@A&^7_ z;5;dXU=ABNSCm#l-xqtL3en+2T5({wLc*CFX!6CfjHFN`;)Fs79mxun)2(plDPe=gXAXh|e@PuI?`FMvK}r5=@a zesY_`h*sWgLaZbb9%ffW4os-UXU%zGD(ZzE=#8{-_O`RBBz8Ng8u*|a!sXv8$G@yU zelSYTnSioTEucjP4DPS);Y}pCyv7#;2S{{Gjql*u1l^}VmLKDLga!!=KSzLS?{%vV z#`tz+5QN+o)0Q7RJWt8C!5M*Bk0LguoSpm+B?xrb$upy?UBmh;OyMsC+)fHwj+>uL zkj&Pnh;BAKDkPe2kTUG6j+Xeu$zr)O2aS?UC|y+ux09qPvUL2XVq+{A}^JT2;{`rcOT7gqsOe z7%_uz6Fy)k&W{3itS8>lHN2?_g?9qtttLy`D#SDa;i3oGU$N%f$TdUSC)^zF(bSZa zg@{*3Ht+n8laf#U;C6y4#W3e{L?S+uoM(ET!RKHpbq`k>_8gMj)j>uz5(sVj$3n`M zmFGgd18bY?B)y3 z{61d7Bc?Dy<{v?5g4u@9hEc4oyYfH8#=h9LW(O%+9o+-W)z@qHi=e;|2Bv?}fZ`XWbqy9pkH?@Y+bO4Y^sXOR~FaTY~BRhkD$ECC+I6q-ZWNP{c{bPxh;i2fH+|CM6QrcXk zk<}IS3wPN(BOHsqn22WLBKb!a*KC7tT+ZmqLw3HkRvY8km-W<-R z;)25{gWI_fjb}Gdf%@Kr(+z4FeSMkn26x#@M$q7gh)*MoL_=DbwmsPVML)8&D<`?O zh_vRzB*f8?gIrix*ZJHhbYB@YgI6DMwa_jt@MWuv(u08O%5|PeFMt`Kyiw~W|IB)V zGAwkF3fA3bK_MgD*-L;$f}OVec2!M;%aB!2z~uOg=m%9d9&Bp1!?wNjK;-W~xX(vm z`?ogEe_DZL)lQ=WZ;w{8Y#D=L*9#gumqot`v$IrDJv)oQLM(>xK`pfNdX%cCuDQun$ zYtNfG?H;8AgKqoKE(*0>-UL|{5a`TsKhdD3cOcp0)3p@V{I1zkK54_J8JL9`9)F=T zL}VSEC;2SY7=p4Z$|M;b6QiDHLK|Zyuc%Kf{KX$b(T*S1aD(O|gcNGHNkUt-SVd76 zJ*s(KUUKFcdB6l^+|U6D_9x`C?~RYfjvXBA*fqeI&MjM%RwNOnj|)AY ze2-PVXd}UCyv#Qxq=YMlXso63><~#o5}o%f@VGses{HlXk!UAdr6LIB-Bj;Tar}~^ z1EHoS?#~^Qd>KjD^G#H6q7Ye|1KoA4mMR?qYXG8orRRstYL5^bD0%AKy7!i7TyCO) zXGQSQ#aL!JSe&@6LVMc$-I3S(na8UC}sdG zZML^S!F)fD*%qXObox_t(AxaQKz-V~xJH6~!iy zB*A}(YhI~mC)S?_kGic*=taFWi z8~EV7_y7)DweA+0l%aQnRB+_C=AkAhTs4FTq-j@**j7Oj)?;FjC^Y_?p%V1M;8PT| zxK}gvv&o&_I|c30W`+PIC8a`qDyhIMGplX>VI6=vp=ZtfSdTt4gc&SD$`QIhBsIyl zutS#J9paeu(@-6@t?sm%F^ML{v19Cs-ULUB<@zu@`8AR2fhYFBZj7j zlf`jaCB}kf?tdc%uvUYfQ3AQK%6TkpF`*J9Dk~Hkp@&Sr3y2wgPLmokvk)N41sCK< z|5B<_s6bM;j$?AO*nwx6wnajqHCW;nM!X!fPXO|bAw;w-k+TX5Za47c;1sZ&D^6S% zJ^>t?>Y(E)cAW7x;@0jeEiE|E!PZwKy_GGU&sbGUHp2vKq@b|>O)6S(I8+4ApbCVW(w_bzvh~l z%2&!}m*Gz^KMSc$hw0Y=X2pn2)5S`lhL{58hlM`@btcJq3z>OAWI*vi()knYDd6^^ z(bxWbTXV2Hp$*Cj8~wi4V$vRRv)^CgR}49AlPr>k`B(O%ND2{@+Kao2m`D+!4l>1cKS#BL4DMTY|9% zZ}v6s0s3Pc-*-!y`o!e5yg)hr4e{l@z`g>ZkBRzAOB!$j zQxbCy%=Qai%J61$?a2~d{6LQ`+drE@cYnNjL%q1KXg{V^-W<2ES~V^NY_`imgpKzM z%k|!{-VZ|(%hk?*jt2-DkgjM$aBt4@U$T}3>;vwvtXI;WZjST$IbU&fk?f)&Z4VE6 zz)P8e-!BjJ%^7(}g)yY5HK^g4foaRhWT zU1h6a$snE-`5jYn1xiEf=F-dHtYGKK$)7zDobx6kWMR&Oc0YgdqKuwa$>CBCss-#Y zbHbwsT)=04(yJpW1Q@Mc$h)FnGd!gP-|_K&rX(9lvzf&NR|;^+bd^D&JJC^N&baJ~ zpd%qZ0GsoyJJS#axNPihyizbx2~j*sI^qXIVF(EPacIwG5Ylu&ALN6ObaWUJ4}{+2 z1B5bMq@5d;>m_nzxtTI#*ujuOBeAmoq91NVcZ5gnYBeheunRU zsSaHZ52hpWq_s0Tt>y?3rl)pN-0DXl_^gd|q}+?aaiF}`GP5y@07N5l!vv<%vO?Lion%!hG`EHc6b* zXLxEBFWHZ$T-CN5rw_K!s*w?SA_U9Td)6sg~0y-ucJRqJAS?-I}w?ydDJG8=$i(;14gm6@O^{mEBkf$zSI4_6W%OrcN{JA^A#OYV9&gJzi?q5#3+{{o=-QS&lT!Lt-HUIQFwJc zoY<*im%op>u8LT`Ys+&WHb#HiW$f&JcYTrLDu040n@q7sH=A9Azv*!`QpE)^qgk?< z4ZnKEXtB!Mr$HLJ_tM%=U^VNl-`TXve+6iZl>YRV^P9hza zUsIFiS}*TlXA4X@JdVQ>>dsRH8$%YlHk?<+R4Qz&(>m->z4<)wUs)fuE!-5n=PK;R z^)Xp}QwhOW3%Csh%t>&c$wixI7O9ML`ElP-U|3+J9@DXedp>zhgFL}Zx?MIZ^>!jb zpCiCZz;NYwCSOG0U>R_FF07#gt~tzpY&jtc=Oj+@vo6>qpt@yEJRr^f{nEg1JkLu< z0(R$u{>l8PW`(VD-Y#Xfv!R~uVDj9*w)TsaW~9Hv>5W264g;tvlhPVK24C7N`K;_o zOv?do3LLkTKw~=Lq!}iI=%g0S1_=P$5N$M#5u4k8k(Iga_Fknl1-c{NCH0=r1vyTo zkAOu!>kzWTJCdp`U8b`fd+ZPG#ptaMeoeF+zPi-uwxqIme=z!WzOe&OZMpvHX>S-) zel!;deQwAP{(4|OQzZ1-%<8%hk;j(F=?>J}%?ASqaYJdlueF9dl*L+k-@M;v7^M#1 zwhGLp1UJUD&c?Lsi@&vbI_1H~=TBFP6K3tvzU5t&Uizu&1%&}e%X!$D?%j92EqdM* z-dDc1CA?;!l35Fh`wd5`w#Q|-#Q7{e-Q%fy7&P$L5=Em#JO1lrYW}EE#06cE1;p0G z%rC%E?9GdE{b?h`*;-4?nfs>Vlk1U}bNMELT~FO?p{DkHoP55I_bZhq|MRw`%Q(9H zj8DqpAI=k3Sw`oxubvMVsCZ61mL2);g_UAjF*fS7^xRO-wwY1WY*G-$Ne`z$z&XVkS)uRFRL-~dvT zgQd(-rE*JeGb`7rx(n`Qhb1zDBnCd?C1Gl~E9gz5B)jC6=91K2ksw0p=^plP`eP%) zc&>^Mis0ih2I0_Mh;Thh@)ZkTCzGK}o>$doR;midgi0}2N%J3_ueZ7R=;?LcXRIt@ zOX<(H0f-S*T>R|y)*e^zG&0Y+8vUOsLM#am>-B%EEPWB!Id2QM6maWIpiIt3Pmi;r z0To5Kb#%=}AE&`r8sD4bzY58juPTHO9!_mqd;=&?L~gsx6j?pFU-Gw<+uy^ooEg>Y zKU=TXYR*|N{4HUtu`?^r4(=#ch9$BDsf{fuDtt2(&eCbBX7%2u%j0TDlU}z6$wFEB z*+Jb195AXZKe=DOlfDEU&z6e~)_gkjtqg1eJ>Oo!A8d;Irs+* zn4?Wz#vTes`%K%obN@}Y=RouT$10tc!odN8yr!6l9$L&7|Gd5uy>`=*oN>G!%o9-u zq8RTk9%YK@0%zIHAG{Vg-8n`a& zp(GYKfmh$vUbZ*Y3$$wyRXR%a_Bc7!^kuHH%Gc#JUZ(V?9(qVRW!81&Sr%X-ojAK! zEO+zt=X^@!eywbDgrqQ#*iC@-2EI9|t_MZXa-nz#L_0zw%UruXfkc%5Kzwt)UZW15 zIawP+#HJK=De%G@C3V3qfx3%Xv&Tr<{eBzfQdt*`@`RB2lf4G&bj8(g+wB>Lwh!=e zKQGcy;d2jaQAA3X)YWAd7W@cyn5}lNQBnON>y4_101|y(iezG7a3<=~kE9>Ws=@~6 zo4t0mnE8)uf&u4%0%jrK0i&*pLEnbE%1*X~>L z9qqgKZi$e)OX4PYQ9bq}a^4(7#(7>$(*s;N%558KPxol^GU<1}&-DzT+d!sI)jXy{ z2r3OT-u_Op>y*<$MAoFpr*JU|za1P(uSpn=ioxG%c)sKL6cP!*Z9If2AiZ1&$NnuB zg6&|)mF9sfvp#aC%w$8An6R|KoV2$UtK3ZY8m@lF6A5XXY{Q&XP9G=F#Aps|pJ4$zqz;m~J>;PNPh`k*oe4`pgsB<%&#K044=uH_v`>2rxU&%}Gv+{OtBC&3ULaF@7LoA0 zkz{hEYzY<+WwXQM-USa1%;gC-J7~b|psjJ{A>0*s9E});2UgvUX6Kgfn#(@K)9_Rv ziTjZyE{E&UpmG#igU>fWV2C|J4q zN9n7b1*BGFsUXg-@T;MN$h)LFpX_!V6^Y$|d^D<5T4s5{QeR%HS<#ILx%@P_=-*sK zcnbMw;Ho`#2eLj&K0nxDW$UsYHBRh?c;a8)G%wV2wnL%lm$It+b6ivp{ zWEnf|uqq08OI`eM*i3la-mvJvU`qa>Y$pS$gOVjr?m>@Iv^oLKoIuUjtQFW92$y{r ztp*=RzNd$o_V#fjW!IFYKp4c)@Ob?^d;Upz?QGeIu7MFEG_-U}Qxx#`38o z?DHmA%$d4#$FEF$c2QZu;_%VGLd5Z8eztWV&3D`(#$lA`7PG!#)mb3# zP-}2!YthEedM_4%b$Lmq)T|;I9u;;eO*^nMh{4^^TI_VBG;H)DBJwwvJ1UJ9yxBay z|E4FmivRquZ*lc?$PiiinYLx7kdZ(C?sPeyo1y2nw?ESs)++|lSB}dya88i=Y$X;J zhIWL=X+M7jM)|%xIK?yJZqSaMwVwU%^5~DGJ*-PeZ~rhc zLAWfy=asHl4SMgZ<>+B=EA^Yl$yd<+Ms#RjEi6DeU8~N#v)vHw@u&-or$4E7v|47zQZs}&$263QhX<=T?tKVlmZU2E5+Yb3 zZ$YeoCfUH>=>TT*H#_L!AFU{qDAa)Oz{7?!4iP zzJ$A}TWo)WD1$Zo?N8DvhI*f+n#@Ct=S;J$F;`QG*KeaAY4HNML7YP08tol36mt)= zs1|FXyaz;o|?w>g(K2i z_ELlI>Wwmx(fH_>YG6Uiq4+Oz6hlxm&RMzR-=K)>=7QP zEIc-g#wwV<4Lkb(#NtDnuh}CPGaXhO{%x#Nh11KbL*F=?+&|a^uCoKLj$ny#(7j|p2Sdl&*i2ti@joimx@2R){zBWAxw)cFBf)3cJ6Wt75}J;KyY~e zvCvLlS;yVcKBWU|97aBjG%bC^6R`) z5xTX;^$qJ5I$=$<0z!L?+We8 zf8wFkrI9*hCjlY ztuZ*4`d?>{kRS@2reJbFDsw5CdTiW+%{@q~E8kU-aJ^$yT8csE7h2r7ZAlX7#GK~D z81hI1yB-!Hu{0pqhps!cPA+30jmnsKGhi3T9@XPF%qiEg5FV6K?$%+A<+4+I}a;d+S{OcOioZKL zddQTM7ZZ+*%nZ+}Xy<#l=uH6u#Bh0TG3cDSiKD=`jqJ=iQ<{%(jKgP$<(yp%VLJQ*M z6l9hXoDbD<4GaUq$ZnjER#RDbp2MI9600aiCWjWUoazu%0WG7cZ z^IWvjBMJYp7`C4zLPbsTh@#ron9x9lrX0Rm%R&?II(_j#n@}Rh6P7ml-**cN7Hoz; z^!JEY11HeVczw8L#ba~fEz|2+(c)ChbmHuLIk?YCG+D4+l$dCL_||p_xJybrIhxOw z`BmC=G>3pP9biu_hKd6ID(uw3nXrdW$hG0rhEy*X>U0nWG$v=`tj9d#Sf(Hmtcpvv z)ISd!9W%xHAG~=#d%XZd)Q>I1H!_IoTg9l=kU~i)d78|XRS2oHm)}i=aGtHbyGK_U zl60bf^LT%U1<||md#lHrl{ZMh7`gLV%r#h#L| z$~#3evq|UfMLgxk%BL<*dw|(|q9Cs{fnO2rUSIP^BH}Og;y2I?`#+cw7qxKU&F@XS zB}r~iwo1b)j-&62DjfPcAM>C2@UVzVhZEf?w@ca`p>+PfGijSWQh~octG<1>ts{q+ zt+td{{ac^js=NDS9)~49rNw_&uv>(f4qO-NR8Y40aw~@egZ>E+doM+L^NywQiF@}*bJx$UQ`>RlLSz`ur$7zG7i)m3gfINzWCl4bc>2JvG_Sn56OEihCTsb={m7&#@j% zJUSg%<34xAz-Oo>>q3}U(Kn>h7SOPKy%r|w=$er~O`)yOG)(VCd&5H=Km~h(O_Fz<36wT|9Q~BT z?YfL1vY->?sKv3uUkaJcJ!y;#GS}{LZ1AU;yztW=ep6zn39pkUR95+EK_zP=3wSRQ zzqdXK;JJ-t*jQ0ce5^q~0W=bAOSPW?{whS&bQ*h}F4Z`S=cb+28x+s5N_m)7 z5+yg*CsLz6Lzhh-nm9GWE&54U)TouTKW}@iA9oda!?`snneKKo% z%EbtsO0EPQqUS@`=rq9$^2e8mKrs;>bvNnNt>G9a=O;@#;#*F7ex^!$M4if~pq?vB zk()ik!bDaLB$V+*GWh}SJ(1bQ>NAb;0%uZ3=x zochb9OO8ubhZVKS8Jl&MD{1AXTMO1JlB=-sl)myE@5~`ts_nJbw9WbI_bMX^>@~r& zP-hd{9q-xSvF8dbD~`kx-89k9vXKRFB?He}=N3XL#G`VS>ns!ilt5+K9}@OxB`p4^ ze8o0DS>H3_tnrpoPph*#=z9gAKmMSZFtF7lvsCpT&n=2IvhjH&G6Z3f2y=nfrfGVP z+kyaS<$5n+#a8tKuXpsRa6J=pzHY9L3)*0&p=seg#C{{P=nNP zoGZ}Kf}LkMvkZuHhev41D31@ZU9gb+G@{RuPXBwviOEp>n0{5k8lm))>eA91B?cYF z5H38MCffja5T1sxD>{~YZNg%1fwMKH&?h_z)A+U>MpYd}CUvgYo99n;gVjP<621OV zi?NfUnsnPUqDnwvbPv^EU$I3^kwX9;yZlz7m;(;(IubZ~gZfUm^&BS#Y!MAd`hc2U4B& zno?@7{!|_Z!NOhe+et))>PE$(UFx#z&%w&An^{LP6@t$HpwB~l^g@wmm)TNtBLD$# zyjhK?DE4~n;dY`sIG(BD0e-LF3`DJuVc z*gD~MxBX9AmxTg*Ni>H=AQb+87r>4L^TD0;CZr|TtHw6kKPx7CTB2wnkEH~R>yO?) z9H!ZJ-L`=gHJgH<>%!EvsaRW`1%ITjyWjyVPV=8v4sq*VQfa z3_X?kCQtqDa-0}s??Lr7KrB(@(MI_(8+$sgL00uBgON4g9XMA+m}d|{*U9$q{y5P9 z4p*uxbaG6r%@1Rri}W|v+gZaRUo0@ZxvwnK9!D?)=%1Y-ZB-%8OUN=+OHsyo^p}1U z0>~e=6q%lTVBL|l`E+B&kq=g`bTW-t523ptd~G0+TTs2#+IQ_Y?ea5v8TQtTQS{k% zUF~9(8gOrpvo992mHrhBqJXqbCa3)&1(>;~@IN_`BP=sc<+Hs%m|vC5+lclM`38OP zxX%F2S)NH%z-TTvU~|M>)I#h93r z^)r_15>i|Hk0Zv@+5QBtfnI_fe|AF=xM#&v$xj3PU}7bSGbx<{vA~%2Me=r2zB+Op z#aE>E_e*SJHT?oL*(b{>wB;(Jg6YVfRelVMxqqpD?V_szo>1C%T>G$OKl}MSU!2G{ z?ab5c>npc+{%r2 zdSIS~qZx{wc-G5fSlM8!`&Z=Wf1FO-jEdOnOI>7J_ymhC-Flpi7=}TP_Xs~7KDt2^ zP&TJ%z2S)ppGJ#n^9x4AOD~{@%I?Z`2^Fct1%;44{_qc?I zi6A@QeAZ4Y($&+xQt9g$U63SXx@ETT!Gf0b#`bnNO_xUWEz164O0UM4CnYGzd6oVT z$4tD}C6LlAah_`ra{S%+Lo88}1F4FEARdQFdIFL~D~ho3fWdjT*qCK`%yPf$`c=MT z@w`JC+&TrfgYZzgU|kI_z>HLTGp`u7OT>vyPlL!8ZbItBgW})-ShczVdFhQF{ zs42P7Vk@C7ux@t2Zj^tvrabq5E2RHytyPyrA`()=^$gjH?PYh?Z}|OvB~o)XexV5z z#M(4oh=8<#$I%=*2J$?%YUezQU*~I{ZXxn24RSYoZgFXkYu0z<^WMElHh7J3#sGL!Oj$AL54Nn)Q;*+bX0wvC%j)+*+GM(3B8o(1rwJ)_{$7LZNf*< zms@tBkn6N3TCy%ID{7a(){v1MKi(m85y9Wh-_Js}<7uXQuobyS z*|S?1$E}o^4v3$TU_we=kU9A_;%r>`<3bcBlAR=HVs1IFf^Rs1wjMdJxHD(Bw7TIV zq0}kGRTg<5sC9CJ2tg^cZb<1fLU6A{g7tmtVl>)d-AAs`EFlOs8T9 z!P??GcRTz!hP|HNf?SqInHeQ8||G{DN#+*zihDsuXu6Nonf1 zeiNU~bEHaC@n^e7xq8=b5OR;lZU<3ddhVfw8BGyS@@wDKqgF&u+YPCra@Z$ZPY29Je#6vOInj0;M~h?S zjR8jKwJyDyP4$T&iAm^5;Y5)2}Hm+3Fl6i4g)aD$dHlp&5@x`*7gX1ET*RI3HMJrs9kDX~; z1?da8gy&>N{!^IGO8%-ydT3+(9h^Y;jEbmLjIr&B5|dFqYFTGJ^=dC7|C}l+dvH)< zqbYIgcD|~Lx!s6UvqZ0~812kRN+p+p?^&^~IMG_ROc74_Ch{-Uwa2MIkwwOLl_-L` z*Q*sLyvtR)J#smk_Iy`lkE6$e1k=0eL<>bsm-%}88LVQZrnpL!(N$*2$rf=A{pC7u zkIOr|Ht+q@!Oo_($K!|_JcNh;g9MA|XMvo<77w$X&Ry-go`&A7dqz17TR2t{Kt_@HO=UGHGRecZ6^Jq zx$MH4Drfeb-p1<7XwB=AMB~zyad-copr-%IT?Tr?+B<$1Shjy*Mf}^wgBc4OLv@*g zDkhDzmv75n6%$GzTA~Ri?~r<~6R#y%aU8WR-fdNt^y$Zc6{ES};NpyDg~~FI0Yw{O z3k+*OJDrQ=O7udRZ}wHoobmq_qF}+ofJ*d^T+mK%?pEY)8@}({)47p^Qq7r^_7!|M zwkyqvlyd2zXHdE9*2|OWT#gV|{v-?x(ND-YC>ZC#2Hm|u40JFnux4YY^Mar~L#=kp zd&0e2f(6-fzIxJ?e(g4I2f4+$5h&$~@pG(!Bx4)T+Lpw*Yd=LBmn4eUg=>_7rY+da z8)8Og$(XlPZe=p!orK*@O_aE23E^BahKW!@DcmA?;oOjKFg|x1lH7@)m!~WAp#rnv zY5Jc9gADx)v!Grv<==~eY>9jivx9VKU&tT(%sqFH`j3ZO$7~r1>qs0AG`3Ds|BkUd!icm|n|% z^2hH+A?~|n*;Mg_LFse1j3*!aaV}pslh%~Q`09kk=51R*+AgQfk1qK6i@eTnFb9kH+uzYC*ByXkW8r)5tzxnRj=rS8&WbrxByY8v6~J6%TbBONBo7 z<3C@Z?q+S*DBKeC6e5;{tHf-n)R$CnDZgM+hUW9nO7`=W*C)*hD3^DTEtTD1z;Jw9 zZyUud&1If7BduOkc;{yRp9je1Sn&;NC<(7941~ zY`08aqg3%)uGT^wxdSt~98H!4uxWG_e+P^^?>HZ37iKxGL|{?N2)th)dTs%-zc@d? zIgbmw=3^=AyT9!c_gLX*6<}!XP)Iz|l`)vg&r>vV zh&EA2Dvcgs{ce~x3Cdd^x@12;(#^8Jl@a$?rgI!c)q&2=9!MVh?=F}7xK0Jpm^a!o@pCwL}%KhF`SLUD^_p z=)|s|rSbYRH_v(&wbsd#_tTAeg({Edexy3?$M^ITWP;NmFvp@!T3e0elfbPOgV8yO z4x~C9Zl_OR6PFv#WI+xV-}_hF9RH~mQ$fcH1@=E%nhkp8TJzjW=d8AIYuqwhGP&d7Wc5Oh%&H>-dnI=~VoVqNU{6mp$N) zkt2cALi0Il;N&%(j8i5R*dTnl{hWHZor><{wt%%ELq12JahW0*babPEf6LaV37Id?( zeLnMez0J!buvSsyn-kKDnvl^Vuw{xgKh(^(9`d$aDf#K;`JBXFW$(Q-n4p){YF-UL zRde=gXT)(kp6{$eYs9h$61GG58k^yc<{$#>ybB`v0m=%~iKBSuCm6_yxODeMo#Qx^ z7kHACsKCATv+q~x)P|OZ?C?h@U=MnGGkjOw=XJRBLe6@Hgj|K;zX6uEE@A^maxUX$ z@3CpAndD|Wfp#8mpJUAyQa*)mzpCM{9}x;-X0kK>m@k}<9A1pmZ@&cm_BKzb{L-24<40JT=J;e}8 zyD_vG!!*OGop|2(q!Id-(t7jlqw7ZUtn0SCqgwNmu>*qa5T5RGf<}@n%oveR{vTOi9Tip7y{!l+p@@_;D%~=4hk$fV(A_Z%-8s~E@qK^m`_}hci$7p7bMLw5p0m&1&wlo^U+vBLiBjNN(yhsn zF9hMMSpNNE;>2jt-kbvrswmbi3Yz93Bh-u0Upq|R=h3Vx06T*yuA!5 z!Na>K)`F-4%?qpE8W|a_&rB`GTmvn-ddUYI^y9w2pa6E+2S9uXlT$7a+xfhYMmC+s zp7bPiYOTONjm)T{E~U~m7^a_98mu^ymTkV()*J17H~xMEoEN=uFyjQzEr}Yzk7g+q zq!Wr#{?g^VKOBdS9yuGkGtj=6loqPLRQ_@<+20_kD$GaeK{k zE6!F3MVb&qZ3ovg%iIkdjby%WyS*4W4s!BV%vWk_P3~S&Obhqj{h1HPP17hAEFe;f z^Ywji&!CyY_bh%BwTW?4@U=@3vsZC5$uxhjQg4x9YK}_ff9wMJW8-@xy5iLvne0*Y zlWh|sw=}V#Xn|VIaBN}@PO<2cb)BEjJ`S=Ofpht(0rs zN*UV|MSq2zfo9?O#JFOB@J^N{OOmAp5wq@FFe+5F)GaiQIhxIvbi6nlkP}K%%Nxwe z?blMZJ>p0_DFWBl5Q?}UA)Nck7%@Cb6gpFV;sGswI4YTY8aeMb z*?2}7rSt75QBUN+OsBOrLzw{-z1m_T?9yXr0ps(;;nC*%(~I*|^%{ALZTd9x84kA{ zN%>n>j}yB#CP-ukB7IAa(pxa8=3rVTQfM~O2y;EZOD=xwXpN4>>26U_wK*wHM1<*% zTss@ak%}7CsH9BudultGj?Vj6d{H4%JJegF_ z&d3t^74Fe1bl81QZ>utNGWAF4(rKA)>Gv20W7;D@y}$8TE}bX(7uS@YQK-Il9^g9r zs6{+e5S}fa9)0=oP;2DP@jFdswND$3t_LH>8$_H!UKiQBD=X@?0Q9sU+&kVPhoeg9 zV>NlJ_yoQA!_W_+SMdJWOcETe*nZM&9vcbk#HWZ<|0!Z;Sm4uw?b6>D%&BtrExYr7 z_2BR(=a2uq6|R7o(fk6+55;liC=g(w^dIt{a#=MclhWq9YzIAr!@aMvePefPhzSgT2A$mT|!ZbTJSx^!EtcQ`P|ut6OPKn?8@R3cVK49p8e_RcizRjeLo)>hx|JYp&OR@T=8d8z3&LyEvS!cow$!(p`>?HNb$r>$lCvswIV3U5zu6fpL~@qOsqiJ#3POtN<>3f zxa3dtGoA^bO;i25$ZYNt4exUF+navp?dg_q?6vp!P8;zSyO(g4qedoKIgGT-U?|=4 zM==ER>nhTaDjk=wCo7*~jWxO30hdJ7ALI3PW{h~(oMMM{oOy~6q6R*gtd*4Q(3C0% zlP*2V6B8^x%4I)Oe}XmzT zwvA)n1tV~k1fPsRy|nrgK}p{453bb)76+09lwghvK(Uj>TT5%KWMfzYmozLvogS=+ z?M#tx|K2GxrM5;lv9gQ+#3m^Bo7F(Kk5>NsjC_k+74!Vb}7+j`bxj_K4;R?G!xu&p=j2f%eBy*ML z-obVp$#}6%VG86`W8H=4HgO^(QO5O_zq-nMT21B@Tr%#^n#H4Z@sguH3bf~x@6~C4 zKU?8r#aC?08Ko7dI9ITK)nMJlXmsM9n^Mfn?cjIqGeq-*F#>WUpju{4j1xx&Gh5!d zpZvzXX+ z8U1D$v|_2)Mu&INNz&%X*B$9`hKq>;xR5P)?B{GhXKJqu^{(+3<>zNUu*#OigZOPh zc7%vQntY&fwZWAnD`jIw4{=sH3 z#v&1*AYtZ5LHv_6?XyZ=w&LLR^mwIYBWsMXfhQl9)A6{45uTLh-&g_1^@5mQI>Q1^ zTjfaK)Q%qPi7CSb0gK{T2Bzfj`XBv=<>*(6| zgBAFkUtunYM0k0*ym)|txYblCky%Ft#Vr-Ycq5n3I;+VCp}5!47>%=e5i{w%Mr)?~ z?XX;i`yzdf?uH6Hy|p%N7Z*3hkk0QS6=K#GGg9pG;zDG;hk#v0-w8gz5UXcgzrAQd z8Y>7M`XQu|m5p~taa`i+USn+pi4#aJ^vn@(ii4#IK{fzn8I!2X)UUoiy9ApGD4Qa^tTM*het_*}k? z80<_n7azoTHf!4%zQ00H>XG$oh#}5?CI%($$gv5>XWTWXQ&91g5T74Yv6M;7X&Ob> zH#mMOj(D?b{)!n-(9VNNtzScKV^qk{vl{suDYl7qecxAbp1ppSQ(NJHgLi+uYirOf zUt4C7>72+xs(S6}#eAM;hw(drb13U%z{B00d;4M>kAll6`m9kdK1-J1Aoo1$;H1Y# z@YrCLSSjrm?z=JPkjBQ_3}+Y|0lWVcCb^0Trl&N|V|E#Lzl|O-#yf?#4uYwfAC;K9 z+*-WT!)U(QPVTfikLBajQY2UE)_i0Z!P7ZcZUJiMy3v4s=`Tls$z*9l2%@1Yn&M5u z$#b&}rXZZCr46=IouyTU*;B7P)Fd8|84dU#0qp>n-F^9y+zwW=;LROwxrc~FY9`5R zZ8>Ti>?s^d_BJ=Fs+K1*b34=V6a&IzbFBN_?&@adV zKBG2XelY|0Zljryi6rr2RLo~;of`@yBkf&s8o$)#OXUwa--rmgZuq3oq*wIk#mVw% zbyeXe^BpDGR|k+Eg!R*&*a*1f1N@=iPzB5G?)aM7#LA+|2@N|~??%PVmCr3Wi7)>* z6y%`6Q5Wdnin?ny4BBz6bv1_8tyOG*e%(z9y&rYinpR9IhB}(N=A94!c>=#96Zz@% z_sWe*^K|W=XB%(TluMB;xdTdi56`bM-C5$4-96k3UDNTcIb1bfsS{Z{7P$vfm3&sV zf!6NXeLy}%uE~pE@A#1aszW+LndxYB6m~V+oh6CcAHI2MZMS$D27X!IrJB95*U5kJ zCJy>{p(|9ykg-!P#eGaru}2^wlGxnF5GJq&(YvSfx$FJdNc++b*3($)w0QG2b|?ZN ze33oWJ)H*%Eir&LtoM`6pe6C#OOf+=h6xk8tTa>@pPU0CwSAzi8PBiec9T6Dmp93% zh!>Ar@ts-u6P_r#C4JX_IJc;_Fi;yIRR9S0HQP%34~#(`ZBYM31+>wZ1)7K*Tp^?9 z=+I;_;xEQFR@IBAz!PK)k9&&IR9rp+?;}vq>&kQNyD|>!5!mFPQ6JP>Y+6w+)87~h ziacB~cAh?p;+*3tjbPkU{4%L@_lyB^fq zg1%p)2S<&n%UcguyDdFt)U5hpO?Cm|Qy6IG7r#j%h(Q*mDdV-yhrdVdZL?}S#q->O~zERl-izptxWNu?_ z0v3aSK9NIqasl5ILRjK{#SB?;6REs8~23c>3A;qXcX;|C?2*VOXE z*B;iwL~pq3*UsR5MN&u9`{eGrBk#(ZyKG==4#02H z~Z-^wdu1nw87Xl@(b`p~^_Qa3ZSeIoM>#bmxviZWMop*KVBWQ05PJ`RE%ceBX{ zADuqjmbE;^p~y;YbnQ>1^YQg&W%YA!{=DVIG^VC>O1(J9H(YZp8Z(u)OqBvRzvY5YI{~`om=I4h2rx|{hMDR zr`UI$+%dZ8dKzC>9ZEAe;@oLbHeEGEo#N*A2NthU#Gh7jFSq%MAIrwaVRE=B>!m{y z=_1#~BKkp-5ZztefuYR>Tu6W9j9VznpG#xs!6Z)VyEYHHPj}#Dq10ehzo_w^cPKo- z3!{1|j;bzF;H!_9z2yqpw4VI?wGv1(^%wE-;Rw~2NF2A4thldUW3*Nl|}QGSQuki71)!p6n0w@zu`fmaL?@&H-BP(a=BR~zl=cop=t>Lf(ZRvQN zgUsX#B2LpD6*2M6519JF`&Bkl@OcaV+Vwhby4Fz5zWQj-%P}bsd|pQ9F7G6+mPEom z`h-qc+vB=pAsrd4OQMDEEW~++HVi&HdO)!KMJ=f^4%T8s7-n50=~px(cz%Tb_)$*& zngAcPxv1~RYZ>vy24-eRQQ ztZ2Mi9emJy_T9`7F^+mLIAxdzX}O93kc|%;3snwJNN8Z+e845}^(M*^mB=DtbsZST z;Vzm$zK2rMWo#8{!BP&FpN1&r%czcgRu zzLgD~5uHsn$P}&8b#d|~MG6YO8^WCYvl?2HBLUqT~PHBtOTMFA>gc7|4={?C0@ zjg-n@^9k*)pG1yRFtY4WFP^ch)Sa#45ueqP(@@=}R63e6iCQZq*&oJ|@gg^*m;ml< zA1q4pSrOL_!M)|(n?oY=^bySihRpYP0*Cl17Nfp~vLEEeOv@+Xn3RV`%>(I`3XmdG z33n0)=K-=?js>!f$dEmBvb}{^#E`6(p!IPWVZq7zPEb9l ze-qWO^Sz??xK;_TrF?yrQT#>NOg4kD39BrTnW67aciehh@t8ba zVX@wLE~kv7?`eRE7*+f1r%tO|Z3{MhHBn#f%gH^xDz7=hS?FhSm!^s+60m^OZKOu# znvUGhnX?pUT1|XcIkMU~R)6v4$$y~~)pF`1eCLBOs>cr}OYiSTLoc@!q|ahaPOMxN zxdTq}GEO#3?Dz4Oi5-N|e~Q=xAHu*`$CP`$VfV42YOBC46%*gdi!dmipB_p~SuH-D zSC(@+Wv7aMD?BXVXMSO%JBOzKE&cT#Q;Jk=i z`{~a&^L!FG6bsKyz}zh+*?_+jNbL9n6Q9NLiU41(8>buncYkWt$X1yeZ&z#6`Y^VI zJ89l!X@aXVMME(hFNT&465O3S10H74nK$sW5Fop34=*f!HpTMy&Q#8CR=}#a1@6 z!j`p(LzGa=iRkNhEWj6*QQ5yz@Jg)z=Q+gN=CD11R^Mb3{mFqqr>O{b@n^soKBCHg z!#hGu6z*8;-HpZ2X({#*6G%qk&M-#0#%-h0(Wr|DMVLF(U*xuew&ulE^fo;?s zMr?B5jlpj{D~@1Q&&iq@QCv3e1zvfIz|GIA-e$JjmmgD6ja=>ecm}N8A(e#6jUg$zuEg#% zMqlruY0^S9v8Bp0y9UQIOa?TcyY{Zrk$mGX=cnoTtm$P>amaxlimN=cCk&Z5?eKjD z3A<*VK2@Jt-4v==~qy|M0J4<3{0Xd-@ zYULVHd{ZXX$!yGHYAlC!YP<7ptMRcPgYU~Uiznl61LN)`%o-U36 zyVmQd5Pa4Tk?N4VUJ{|6$n=c#d{~Bt)uhVE+n@rq>l)P$O)rjK!a2-_QkCcw({hry zC}=gyL8g7wrrdTjQhK#E`RzeQo7XaGo2Q8&^|Q>r(@SFm2E7_9vKrU|2h?=lRG7`8hh>P^|6^!<=`%ckeCLTqbDTW)jx!t*ddcDzVZjm3^| z*<7_*mq540vHDY^_-^>iH-jfSiU*gb7i?o@qwQV&CiczzT!qKCv8Qj7{D6E+)t6q5 z)p&+#tH})R(xl#8QrYExNJ~`8l@6b!`E2!Q zocr|qV+3(wgMDMS?`^5goV4#HgUilnl;h9acQMdwnDum>j(4k@%AbVSS3=G9M{mQu z5egwc9crAFVxv?c7HXDVDs}*4LKzt&`*Rv}HcnzSYZk4{mg1L?B)kPiUjoI=Aj&EwMu0I$!*5hhWP0DGxf zVK8|DY38Vl>vKvf&2jgi_)KXJ=>K|HnuPckL>C$mW5p7qz^xAS5>8e(J7cre5!;(- zq%nz%G|T6G+Q{}{4^|gI?(n8D7zwF<*!81X|*72aPIY_ZM8c{ zJB`*pfbCSpHafyX)Th(-$K=pP_J!`1_s|D}R+~d-Yb+JL?q;N2NUL+2ug~R((^P!z z)}_arY|IOPiHtx6Vp-I5yM4|EKOhgs*mA@Tl7w1-ItHZ+CW=)=3;*Y*I}g zQUY;*(S+s4l3~W4p&YYYGgUFW#hlE9`WN|kLpXUW?-teGs#@$X?l6#?^&-@_TD%GY z8H{67u~r1SMM{kQLCcd(0~Ij$3FPdf%T-u%^*%MYlAhSmZ|HOXw=MVNxWNLM4y5zO zu8s~{4da#9wc>1*Y4MGsJ&9e|jgM5y#iI)Fqt=viOM(8dThBmuR<9YR)Y^jqK&VSb z;`{S_qTm+Vbd5;cR0fXGyN}wjZkBaAidx`joTeD zBB2R0uKnTU0&zwP=sb;X2YHMd#j1d=B{@;GQ_qVe0k^VT@7B9phUV!X7!T+0*(>GS z7|YB%nv9e}Lfq{>j$H(2cd;zwSWWB2)Q~45AGqwGR7eJTF|RW1En`JPn)aSN+=fiz zs*>hjID%kE5RierSn_5_?&x!^7$w*Q@+n`&ua83DA+c5krq`^_$d66poV($;_@rKm z!tQq8bUuBAP$=`jQ*cnaC_JZpk9^tjb%WkhOnYj;qn<`m~nY_KDGvISm&r7|$ zRXUwXaH#r_@XeesnWA#-KK+G(mul~;t}mUW9VV~iiQg!`zcd|1^?=+*ztLmmZ@RGS zOBIMG+zpRv9r`OXSN{q~GZT6X=Q6fCwr{za4a-4B{s`%r3RHimu9Q9tnC~fU8QMfJ zZmp>kXe3ND8}OP96Oilwb7q5Z*+CA7=d12D0#XS(vdMt6Dy8EoSO0ZWgMd*(e<=9{W}ly-lo`D#lx zj$YBq?_T12IYEbUr0cOVjIX^8?=G-Q4t0q&$q~k(f06% zrYGi=QAQHguRe^<96o8G{twEC%BWNLcTm;N09UJC3YUbgXQrbfWAvO*(9%KQe+?{ zrKd6$2->z9kL9W6prDNa`cZuTocQHW77ae@WHGn_pGp4upebybYxbtGCk}OM)B`5) z0?1Xw;el4xK7>a^I?Ubl05z%o&d64k^wDgg>*1WAV41Pw=zK+wlEle;_}RikVxd&B z)^e#(&D^9CNWArNtsn)bhpyIpoy_x+<5}$!MhcHlSBN=GhL?1asT`G-Uu(@xVikdD zs}OAgbvLQ*G$Z`nEp2FK(H=aM!mu{@wDuUG0fF7UN6&a58dg%b9@?>#5HHq3$cuJh zb^gW**okKyM%-TrYgo<)ES8?VOs#Va-PmjX7h(-;-ow zb40kFlTBs&Pu@t$vsu2HB1RuA8Qn_jAnkMmJv>vV9SwZxDbqH;-(EZiT z9g-=Avynwe167+q(J63j8Bl+(WLEU{ru3js@s?3?EI|rwb8mYj=4ko_$t`Th`DBx# zf$A8WM(gVCdfm*N(vMrJY^cWadIy4?Nnv!tlh$k&ebEsdIlQKH9uJyvv6_nMoo-46 zY61X?)?}F;TZg*@2RA8#)3%P4d``y6MN@x9etr|+NYTey8j`~LoJ-sTZvC=_qjuWD zE0JD{8T$d2)o`~TrD&ITknm*s9Y3$G!_feKpysdN)c}ree&ZN86~|*YHiL-AZL+!v z(Xje4)qRrWe)k+*ZTTE#8y?f*Epy@u7wuknb@~1g`{0Qo?H|VzBZO<6q z8m8{a1NnKB>Huw#i6X*3&B=)1_-FS-QJS7W64!`Ny*<{Zh7!Bxf@Vr3T4~VP9-?Kc zU*o8!eVk0&0&#b;c=rb`BuIS`+UbX)!7G>c@N#yzH1JglK}B(DYQ$@E7z9J2At%5;xjw8aW!cx;La`c65#dn|+Js?gb zFzWfty6W<;|KsuD!zV=+@{ihGfo?GJ=O4E@@T0$g<(cu0)cb8|iFBd^;r=q^ zOmXC=p1WP6WlQ*{Ra;5)6{=qi7k8ra~q9M^xz${UuKE z5m`Fn68huW&u1e{2|TvuS=bh9*Yb;1n6NbewA54+RYrt9n_s`%sIcD&_ZnP*55Xyg zHpEQn*FJ9@ECMGTqpn51-igP*P#%sB};PvbH`vH+zInnc1Fk8DNML92+W{#0c^44zRWok`o?l=5@ z@Jak5{L|%Q$^D1T_!1w*%xd_mAaS7G88o~8gODz^97wZmxc|>qg@Nl7yGts6{309R4?i4$i6N>J&^lqwcl<7d4LY7BVm#S_543$c)cIWrXr6$m#aJgF z!(>#Lb|tGk9OuWoQlJ?FF8edUi$Dc{z0-_$QjdY>&Qxq0{8MP;A!!|vzF{Nd3cq`stHo8gL2Um;QnK zPdTX{KRoNZfKIZuW81xMv7*^O%^B$eb;ak}iS@?l2Dt6O+7eZwdVehp%@sm6psw~v zIRp$#=mOv3!4MU5i>5tB`S*rhpQtwS)-Jy`AL0Y2>8u*-VG=UGR(_95C;(hXh^pix zHcDZHzX8~si0IjmPmG(qmMp*MzE%N4v3&&$g;rtx-_d`M`)u-2ER;vj&lhl+LSTu} z08IUI7*w7l)*A!p{Oki{38FrNcu@T7L~7 zf%VLh*XVv^6qqX^mAGy%0zhO*f~LC4MUHnjXh7rVOeK$}P+?(>PI330n$|+iuVyhq zT5m%7w8BWZ?4*GVV~)&;9pYBQ%HrbZ%IDBpSq)2CDV54F9jA>ExsLC2x*pwuH&=$l zC(o+A=r=RZJ4Xy3NWwHP!^Dame)aX8xKzmK-#v1**HUICa3+K1y$=z1kf#%;H#Y$UWbtuyrjox~1k6U;aNcmXK z7Cg3Ds*Af@XbzgKu~iJ$t;!zMTO~GZ@$QoN%+uR_MpffJSMK1HHMmJB?D*}R@^b3T zm3MGB{UCO%Nv&8PIX=r?h4s&&z$hK4z)g(hUs;4I7_R+51LT67FsqI2C2zj^XC zsTGn)SBu=-5djjHj7}E@oc5w3ESE<;6uCglY&C6dS{7`Immh6WGcxFE=>m}eH0AG4 zgrcIN60>vc5pr#(dEGZ*6~mJEh=56RKu-2x1dyW6g;g`*vfSK6*ngnN8qGbJ@Ayab zml18VzJK0m8PklQm<4p*=0(R86}xi3WlzSjf@K7s0E9dPojr#&I^{D5eG3CqNq^h-MV@GJVK$(59vX|Vpx-s)n%tN z*8RL-^4$a%gWt{?3)ogG=otQGc0i}f7-8#KaD2;|aj)ilIQ$uDwCm1)cpz3}0Oc2& zDGt^o%BIsQ`vUMrMUIYx>=$sexQev6LPme$(QU1b7;hfz2^3lVyS@vH(w71tA)o(RA@xOHy5-gB3o`Gg zHBEqwD5Ucx6SC;g_5+-T2NJM+)2Bmk3tu3XMtW>x>(<^W0adN^XPc9f`lUUn2jMqA ziZnca6>0c|#Wnw{B7C2V#?F5xa0wTa(a#B?i2YjhFKF@rrd?U>Wf&dU2H) zT|I?z7^GblS>2$HK7}N~Sj$N}T7px6tfG3pyE1-%^@r2D(@U26Pb|UUesfxuO1igV z?0#cBqb9xd14S7r#Phdf)j#sYdaOdg2XyqbFa{d9SUd#c^liV;O}iWKk!hJPn|-eL ztm`VqomeHOMHd)soEX~u!QYBjItg8Vjb$afV z{Vl7tpFV5hWcFH~7^E_%$@1kQtyw)^MNSvszUm5scCJiBkgYf(xsDexxNJ`?pV4@u zTQ1vT{f`y^m&HuLDP3_2P{~l@VW$WXd~<1^@2IVaqggC3e?HwltgUJSI&84q{+Df& zC0(SI{hKBPkP&T>`D*B?5pAsW4@Jt9cS^i5`o_m;wII`yqY`-YYITJ_d~5m$Z@gYY zuP=$FxTIs&WheHBt0`K8QY&IhtAh15t4g3 z(R#k_XT#~{Ues=xDovqNkE;<2SRw)4^Vgr}&vGbGidt1!jJhNs-*#@9J1)98y&>&q z4t+zK{C5p@-I4h~DH)$Ej80c@qL%HJ--#Azy3QzXu6+G&eP(lT#)nyW{^-LVVPjbr^s7R6qY-i?>+L?gGhxS zRpdVmCB*j*KBdYBt~JV(l@)N?%fpPd`rCAMF_4br?Tw#{rBkv+0>ll|nWpaz+FO{X z)~&*v+qdqfZe4v`*d&ds2O;_)*{nZqE>4NloY)2ydHG#YLGt2|7qSKa<^;{ z8#_I>oT7~dj+FAd@l(&Ae0QAIzdPOX{Pu89TOlIWD-P)3?6z)=eBk8{b%$jGyk$${ zr*|UT!`1o9o1r5BHMh5Fpva})Z2Y3Pr@BeoVu=3ksgV)p56?&<=xOn0az#4sRDA5I z3|{MKTJ!&X^&DvK<8osAW9s+jr%s?#haw%uf$c?BGSFtoi!$KYr1~V$R+i1xtz){T z4r6RKxQtrsfr}P8gw~8&17M1t>*~3K#j88c!;D?7_fM1?#nb?7fKm=5aV`H63-Fgm zF?jc&r;eT?wM*`l&+xdkU4Kg(IuuFHR#_B^%409otqfrPEj&KRx#^54WHSpnD;xD8 zSP$FPUBE6EPBU+&^s0)^%P6dy`u;-G(8Hj@@_8&Cw4{W-Xy{<)J}Uv`%Ho!iRM6y% zXK{Ot6Py;H84>%5d&YL0YOyN4gR<=WSAs&TV(_<_##AQ568h$o)~U^5k-1HY%y|)^ zPcH}41eV_Y96@ci%6F{-z~!U?AibrKC^WP4zC!*}A#D!`0W?p7d&UFNhjO=GzmAK~ zrIiGDd`Z>BFq}7u>>>Vs_2D z9UdEnc-F4b@pM{GL9hIwjyWe6WV5PE`$UpxyGlYev(W=J42abqKW==?b})(DKE&+| z;ZI(=$}X6L`x%y$uGOxm_$`^Ej{?VB^kZE0$H1XljaNr=4)}XU{MH5h6M=*CYz7VM z^aM=DO@@5A^`~2SwhUdEdjJk2pX`V{)#)Q9Po;|JI9{)Z$}A>=%(qI)wWnL0@_X`q z=HiUhMiWrCH2iCkyn{Rdxa4}&up^(iZ@u5$s=?fmpTO&&&z5Gf5sxRLl)4|)scpW| z)AO}3UH~X0sQE-FNvD+h+oR%@_xfKI#$O`o(u>~FOy-L9u+-a?l^J@uIOe>oBaXna z{Izt_g-m<&qpOw4ov=Usv13KuL9}T^gvvNgS%cnSc+4l$3tj-GgZ|)l%y0 z!aKa#_=@>pmHb6TQQh0xMB+5H2#A#5ym$r8f`JwRZPMLbF{5TfuBU}5q2)j40T~x~ z@YM7fzQEe?tPt-*iKCeRHKQxCWnkA3lcqg=dRjYOmf@F3Ym7N)_oD-UkXjFE*A@@H zQxYpp??j18_y$amK32o083EH=q8NOw1PBZ-kPs8_CC7L4HB_S*osp{kFnqJ;Jr26Dnf&xJs!x=^A}_P7Ylv$N2)xhw(~W%Ij5atR`N~0FVco? zhB8qN5P{6k=if}S3LWJ2vpsRIdHjIiyS%i|hB!ulW82ufQGH|AA^=SY!X!GM{@Y(> z$nZIvw-G7u(`$DG)@e3q*L)qIk27fP5q=h&?khGVa#9s1=~khbJhbDBxW(BzTzRL; zU@~U!dqnyJOS7e$pMdeT#92}mVaOp$#S^6I)e89t-Lq()G?|O8qmt{@+a8x!d$?T!WfSjwEf$MB@Jjz?etkNM#rFJN8IIm}G9uC@ zq5D;3eivlbbbyFqnRG48@xpau$kdV4z3`88dicok=b>V@){hGmej%D=x=d5?C&UMk zraO^Hg`;t7uenKieGCl3E+vXqbwuZczO@XM!Xi=WViP$~J7umMc_ z#bYjLXZ_YKqZ>h9>+t{x5{lh<^xXzXKSbpPr%(#C9Qz}=hdhro7DEr~=3+X6XWqe> z%$@OB5=Hb9q|@R&99y>EotVCnAlB(*CTQ(_sF3|gj(X{rdd=$EUEC7HsMw1pS8*XJ zh8SFQ2eHGa2W}(Jc7!I6i+I=0!g#TS_ymM&c8sRUqkR@XvM@4A2QoqnJ)ND~?FrX8 zn~tVWzJfCW9OZWi38gW&TlbJ-t$i%99ed43Yib_lzu`!es+eMTJCFJ_z1~YTO1i70 zY9{ca;PGod4Q{Y8CjPJF%B_x=R!M00ac!uZ*un6bgN~n}$o<0Q`{N&+acd{TfCziR z?=M<+cZdCl&ReTI27~czY%Hnw#ZN)Paki7=GU_XfjvT2-@NzgDDZ-QBp3S#dQf|8^ z{beO(i-Pq0NX0I?l~n27A~}OwFk%dSJLLKL#!ymGs$iQbwD46WZ9^l-yUqR=H+dMj8)ZQab{P8bKK zcQ53GZ1w~y7k{P?Ufbayn3v_BeIjzhqkr}ghbo{bqQ^-Q-!>1(Z-wc ze{F1OYV3M3i5N<^BklyZsOwNnwUv}&(pl< zHLWYVY)&^|v?nf`i`$WxId9sQ8cY33T{#=mIJrI)G6VtONz8GMvJ!AGn25DmD_atF z$4&$@wKg~k4yhl>KgW6PQA!x&l85pD_-Uio4Xv~UUsLUep2i6kK~%NMq8A~MY@Irt z1mSSVUH^+no&Ni!Bg^g^k6S*<(ypCv&3wX^&tIV4ylG3WYY!03KrIjT%0P{xcsSy* zQQbck#n?21e-d|`g7_Ize{(H50hjvyA5nq?|HMFR?6D=iD*^?(BUx5$t$fg?*~VUx zBGA#4deNGdkx>>c(NJQgfNSjgyO+Qu>AY;i_N;WrE&%*?QQ5Z{lm$he$w9jgzF<=9Yx;slkbHY5OwaBHy zK-+mLMeyW;Y2Pr=%xv9u5ow=INxLugw(col!Q@dA#FXS`=>aSN2z9{Ve;*2|<{=^^lu}t8 zFlTa$)DDK7nS6&_i zL7idurk2MVz;gTLi1GR!vbV3n6wc9Yf7`q`v=swAc4`taCzSD3SO}v0ODrS+P{z|})?;8ReVjmbr`lHFGkYY( z_wTmeVHb?e6gj^&J~M{@SFB2_p7ocPFvZ|csGeWh z=tIz~$qZ&CuxCO`HTB5mrQZx8dGO$W$^aZQqfsdx;P>7%f6^!NP{FXzW*6Af&u#e( z57c>sfyLt32LZG(9u`Q>3lv4Uc+eN1;fym- z7uU}@-D{xq-1lLLP(MNwdT)`<4E(Mx1H3lPCz{4}B%RwGd+qq_%}tnUTjN3x&rkJ9 zs;vyd9ty%*^WJM8MAAbWF7aGXHWVPeyD$+RT2`9LOlY8OJR8%&e~@DQ2b2lTB?cf! z{n~zZ*fwG9UxZ%O&HJFvVPCQyz8vP*?fziv9`+I-&SA;K2kxlHF6MNFUz3>Et~K=a z&%M}}jewxt&B^b_4Jz)tIv|?>zC5tnY9DaYWcp*k7kH+FBB)%gnoznrzC4+r7{rwD zzZ5r=kIZhddlG}37F`{Rta-{b;X5birV_O&^^Uzcwbo`EcA;lm|9jAu7}L+So1X^~ zhfIj7=W;zUkL{Kx{0vM*VYI&i<>v{bMow3Ul=NEnVvbu3H;%8iweK1$8BbnWKz1l19hnKbt1j|GAvs3OHF^4ccVGK1?id6-jbJKJE30e;67kX&q zR>K4g4_on7GO&N~l6m_c=9C!4l4{3>P`~&6Yr9I!G~sZ}j(-Ue?>EbGBCDY#Y%cb1 zNzI{&r1=-pVv!*sSwQMvhcJ?BGw#bv;4xpC0M-qM2k!RXN*o{f`c zVT+mX-P)gu)Ds%EM(+pNmtV&i?mKMW7MaN&SE^-+CAGe=bmG&^%`bX*ZUY&~LKqLq zC)DVV={J9h5t{;WPtHdaLD4gA_S5{&mdiU*i;Qf3+X0;a);9Ia0pYHtretflC|Dpc* zsHZ;4<<|oFE*yOxYH_#k9j0L7wY-+kdrFAYQT89EIrL$gLpl3^&ws2ybsygDwyx!Q zWcGEflYUCC`Q^im@jpvAd;fE!QuJEcuBYV6c(qIfOUMWLt>ZKBC`W^$#K1_*P+y&Y zG*f-{PcP;r-OJ5KV_@$V?1IdJYdPXAQ7ZVW!`#S^A({;%Zs^8DZg%FGUdh!;m~r%Y z|AsCqh7*nm(*z7vooHKlKpxga`M}$HoN*SWh-d#SL0hSCuPu6N|KHy0m-2oQKVx4i9wNW=@>dCrE5SyLSm4T?vh4Qy1S%vnD>r8>hpcR z?^^HQzqNj>^T!>|z2~0XXYYMJ`*Ww$@D|h#P9Gm8lO?x~*O4f#+oFz-y!8pa0Mfc# zdX&NuN&7)#u=q;w0X6?!K)~or(0+%e!%DXLiOln`-N~v)TvijrHDYXl2cKC0#~1%h z>}RnUhu76c#F)0I5Raptx0k~3YQG=C33qIDnYz#CQ$;u7i6QT3`t zt=}7j8K@1X5dvt#B}xm3tPp$Pc`IU@LE|&+hpXGxp2qQPgv3rFxQIBV=0YkGdlpVC zOz#0Y!XA%r@92O1M72VSHj?C?Cp|Z=G-^hQp*z0&EZU1L^=K@fynw=91b4ct71j;x zF%Nr2bsL7Y|&DPv9ImKf-j$1g@@3BzJ@SnE$B;L5Xudu>VT23+e)A>$T>FQSjRYQ$ z(E#u$K<|iY9t$AGWE`P9FkavDjlU&4&rIW7CFHEsNB_*7nB*Zy5H= z^Jir2{5(t|EWz-}3eraN_xX9A{;x_$c`0{}&Tb+cD=+UY@iNDxE`;w?MLPt@#bi5L z%cjl1URmrdw0$}i=Lo5nWLobEKKS-X;N>)M#z#x&gOPHq<;q`|_MT!Frf;8PY^QSj z&A;m?)`*E7&ko5(!ECl$Fw50mRlUxY4Zb~5N15sgH_Grlfee<&IxRB^E3Gmc;&VaL z;MmRAQ9a5AL}~1BD!uu2R`avI>9StNA>UJ`H}V#0_r@!b*AS;eBuQ7B7VpBsjtJQ! z7twoZ)`&=c^oI7ztmnG~I-F5u|1g!$H9W{3{sh%#*2(?AhL1YC999rx?N;WR1CQz3 z0I?vq^1cER`%ll(qM-@ifPoCPtKDxvMc0jA)>uJ(%3g{E(Ds-acV!qB36ZnwWdzSE zX6$;L2Iq+!(mL#X52ya5*UKKQ9?OW5d5?U(R0g6mzWl)w{E;ULV!cs-^V(zNG2p5x zxt+>exJoC1a>zd#G8$NVq`Lm~n*npxGLL*fXq;_R(46;q9*_BQj@Z@ZFhG)EHdJy$ zS}GwejXG3-7A2!w85*IaC%Rjq8c=z)6g>r+-3S_-YSH1ypVIzUn&(ay&21rvJIJsM{sz_$n`1?8-MqPb$gq~WINQ^&M0d~Ta}L*64L+GJ25>vil`f51 z?d#zNqWqZ|gmWVAE|^(zG`b4k@J)S6;UMVONNCqYsh58Qg_qZLbR%D7(rmcUk2;6V zxE{-I3t7OI4lUAR4^*;b`EtXo=>fWplSfT}y|zZqvDsjM#+)`Neg}}jXT(2W;F!0o zq5<9RZ9d$)Iv)yZW>ttk1iko(+Jt|nXTcb?c(}a_N3V=LN}o7LO~9x3I&wO_;R)>u zEFxQDp5Gtn&ES489m+xxh?@EufhYi`f+XiLXX-n4un`N<`1H#Pm+y~7sQMk4)k~z% zqoJTpzgnQXZpU9^Sp`|o#Q5(cD*;ObPGz+W%2qyU&ljl^!N;jiy?Oa(wbK$d1DL8Z zikqd*1_{*~8htWnBe5-m*oMiXU|+R3@1JTzD{Ui`m}RxAIj~y|8eRR;f4ybAC`AN@ zGXyDINdK_;=vOf9uR`hM#EQhUUpz#5Vdl5CJ@3lpW|mvd+CfzdOBWrC@aE9*ECRx{ z7wa-iN#P6Am9KA3l-Qc)m zs8(6+8lv&`r@^U*4(@`R6>HUU$N|OJQP1pbcPZPp=W{5M65P;z-}qC3|7X>ucolWQ z6KkWNWQJC_Aq+UWHWq&wRuA>FE|c0Q4C|(omtT>#&x89k!=rqC;LqlM#lroP&2z6@ zcklvZOHk%0*NmN((JRM!@KI@3hb;9xO2Pzs#lAKlL1%F(wJ}K8OYMGwTZ#+Hk5{MW zr1|FEmdGG+=U=N5h&}t^U}C~xO-B7JVefguvSCbjlVWoviZ$~=N)Pjd zO7metMgzS;bb$8#TOdlrc!|C%QojpnE_`#w@x9G|%|N0Q*k!41e^w7@3nqSQ%&==- z$pJyssp~zyenVFg2QYen4>Xo7`W17F<9fk@J03{nZvNp@ew4uY=z;DiTU37pep?@4 zmkKsLTuwaO9uyY`-48$ki~dPi%IMxqb&jTpu*DAjcwQ+Q;v_u4-iq{sarS6^Z@Zve zEj0Ub_70!Ge4vg;xF4bm_*t+0U7C++nKxH6^ue;^HSyvG)E- zkZb57#7ft-th>sh7SU@v^JLeCa-aP4nKqK6*B{=m|9Y;1$)%N0nXD}SukrNbL(AzZ zQI)$|T2;K8bL0)^F2GR!km)>T47;b!c=qb%bU5w8zpJQ2_u*!CJ<~LEnEDO(&TeJ` zKhz-LqtBeD9+{mn4Xv#NJu@t3J_6VPUAE;Tz4+?K=<10UZ&KjiJinlmsHN zkEdZS`74mUhoxwXN!DAL8F_>$%K%%F_6fQ|>`J5T-nJ$$)0+3-Q`f&^`fM2^O4dao z@2%?DqSS#H?E^sn<+SqKG_O(`2*W^mS^nrIk$~@8BQDwvar>GyY6oh>a98)Z&Nk3- z>+%x~i9HRS!v_pt=JkJ5O(={v-4v@ zLx_=dxdwS)4_E-t4xad1&HZsg{B8rCT%&~-PL{A=1EGlk)<+d|BPeWA-rr}3S9$4Q znhouo2^d>esGbRUVW+>?Yo=L+37i|#*bHC)ybrjjRG_W86{Kr@hZ8_2qDXUr0|e0~ zx?fzPzw7nufl9!WR-MfKp8Rix|CDr!%KK$t|C#c?FQx!j)wF!l*PrmIe@`Ib`Vy6= zX!8u*^S7`61;+c`{eQ;+a6p|9Q$_vVi~h9H zD;aQn{m*^sZ(bUZcY%%H`Jd{eem2SjcIx!UVANLs-_)oG!Qm0)j5so<=HuMCS4f0HInysbCk6=O)b@F1{s;LPs)Rcd8{3rkO_0!Utcvj zN^;1i2lwmm)*}vqv(`>-Ak;$v5{j7MhB9GX30#0&KfCHOzdYAt_C&UD&(}PM^VCc( zLf4A$l6AV-BX>7Zk-`8|Alg{lsVIp}z*nzIg45#~8rJ8xsLuuVPKG~G@|}_RDJOpgzIIsJHwIZjx=lH@G;dBcL#ras*o)4_h#to;U;Zr&tLhiudHVd_eNr^7X4 zxAd?Rb9b=*Uh$NVve-1S1G(UJ&r|`}#;~g&v#8Q@aD(<(cxN@ma|D#lL~#^vp$lCH0Z7}4FHlTjrkEsvH&x|*v%foYlCeUz z98BEvviv>sjCQy{nYm>WX8&7v4o4y3>74jDBnlUWipIHMQIC0*qnMW7*&v64{A2g*KpwrAPAi$r{H=6OfjB~)v!Abz!N$r;E*#j9aK4P-$fiAaKEgz;Fp$>R{jUM zS?=n7HUd)d*c)61B6HsYTt`@Sf(s5ZrsZ<(Kc0kW=+OXBh@p6qQ)h0=+2Uwww=%AB zi-O_$mKe zDYN}87gQYTKg5I1V2{l&+djs(prWQYFcG@|6p@K0jy-8Xsmn(}IwPcK;uTAwPF);| zeHB2ZKF`u(U)pvFr4;qf)5w?T)_`ZXz0gp4Bjwi<*pLRc%44!i{G2<-IbM4TguE$@ z7HF+koZ)`zC*GT7gzO_0`|-H#j&&yLjM;^0>(dkuw;qO!vMc`>#plI^?QK#i2TF5V z0;HE;kp%VgNQ(U3e3DVbeBuryyZ57iNPOo20F6{xzF34vFcseji6dm0y7ZCQMFC6W zKXK=3$j}s=9U&#D)^P8~1`n0MR(iLLdy?*tYXAg_hZGU2fH#j>p>Oo%5x?WCLti6Y z@l_uRv0*k=%>V_+E2}*g1sqH!lajde6zx2c*;!Qq5V%-`^kM!*D*8b@F%7s<~qIf?1jpu`)~}GtGY2m-~}>T=af65DBLS`fqR3FM+;c` z+c#xbqTc?g4j|Tg4C&x`2MFQvB76K&7Km4g)tM}_SlQEEkgaU{I(Y&%|NLX^!r@Bc z5y*6(ecv;|bLe}q0}1ls5p>^{LE=)h`vgE@J+y{KZWN({qde{#4HhqUtiRtFS#lEM zFZn}zlT7M8tzDib175PJ%fXBA6Aed^#ojM@%_XY*BoNMNSBLYAY38pTm!TXx=Bfv3M)|3WNe&G|0DIauuIqt8 z;w}_n(~6k?iEoKLl*PK5=z8)h-bM&uSEwAYGjG zr|QO3xn+g=WlyGGkg~)?vpb*w%ZqMpvREvOPdnIQe0^Q($Ux2ZNB5x~3f+!Tpyb6b zCSw4Ky!SyDiI^3F$C<%!tbTA+Jxa*N1w_S7i!?|7- ztm~r7;mK&g-k~D1r*epLZau5ZroPaix}CkHZq6Ht#Jm(HgD`v}cZ_BaJ%mPq*mR8I zJ6wn0({69H3YJEIz-12zGAA$G(av=AK%w&e6qWj5lIp z_Rnl+Bbl*NL_I~==$+>Iirc3$p$pqkonX$B&d-z}tJW;+ZX$9@N^{qK@A3^$h#S&3 z!m#$7YXSD&ws68py@GnoIF*KqF@}fYVN4ERx@J4+V_U_PJHwrynIncHh-Cu~1v@X` zZwXq1@kYux1spa>PXI?@x!Z9l^?|z1a^R-3UvOeh<>#PUTfpNRH}7!wOOW~WyfOhr zy=~NJ!ZVAT52`o>5i&hXW*HLiV{CgS*DBdw^YZNgVFC;9rqo3gEKak7@1$YN0QhhY z1txgXEw|PWTx_1-Y8G1qj5w#@wLlo2>DzO;Q@77MC!%i%$LO4zq9&ZgJ4sn|=@e?$ zlqziTlFLU@i*QKH2^VolScn;K9&moeRyF$ZofxW4w$E%NxiDxL9KN^fJpKs2+i{HwXwRSoD0HrW9^R z(lLgHy6~}1KA$mY4~rn~`Xod2x~|M|w-ECA0xl>oXxaX_P-u@{UgQMe`Zas?dMLkg z28wBN@|55NjiSY_!!V3l|NMCxPtKM$A1t9RtUE?nF-0?E`@Ot>*T|yBrRlp{i&tt} zh3Rc}qLKHl-&Y!TYnZ;;ny=^5ki#w%wH&V1r8?FAf z-P8@yC*f%kZ>>1?kL#8lUmk7dvAOFOzm=bY5(sD9h%MA)fIppXw|x;;82Rcomr~)C z!Z|IQhQ-UfjC!&rE+wn$#*iSl%g(Ep2^ID48cHvz4&k;T$Jq6dso4$^cFL1g2xZn9 zL9|D>`Cy4}T+gYl9-|Zs z^d2q_9qRt?C8pJ)E^Z_rYhFe7ynX#p1|k!_vhO^qmFQDS>ivyh-dyga>jnEjB>7E~ zrdkfF`mcH)HBjY1@uH)7RH_ zv)^hJfUAbhl=qlvrORIK;wmfe>pEEPTKrxNjH)Kw|- zD7RhoGP7Jh$%`jUMpC{S0bMa1g&t2EJEa+)EK482mY`|VFxYI5hohsT@hWImw<<%j zNw}5Zvw`55-(nBLxfAcgxqJgZdqX7KF1gdl_LoWctN4S5p-!IeR}8zUidsx3*YiC_ zKPw`y5bj!cI)#_!d}~825)W*9lx29oQ&=52{P^I#({{u@8FctPpb`vzx5dfnk{ipl zT^|x6NKH!@^NCVJ9=64nCeRXr&sq3-IH+YBUUN+FP!_?->@k0~TB%p(%CjZv*(YaA z@D*=zG9)6YDu>HqIWs~~2-0QK!~6v!X&ut-rxul^?^_*XznFbXE}ri!6uX`eVEX3h z%CDIJ-d(nNUxsQ$S|ahPxoUmLm|PTgEz5l;OpdG4W9G4Si5z8X_>c!*RkXG!+dgB8 zBbX`4yu8ro-r1~EKdcy!%w$(l;Hu_o#%{p7xEaV+6HGyp9boO-u zN9zg3F$t468iHX%zoReX*>=%Edg2LDUU*ZF0P0Fx1%WfwxC)C@;q=EtMrW2&r|i}_ z)1K0fw(C7fER&fs1Qm<;f_zha*oNWP=j+EH9(|k4kLwK+1(6HgQ%M&)R;J-A7rUNw zg1YOA%L3bDMVXIVkG95Jbeu%xc1K5Di89N+f%n-;!m^tti|XDSyiYrV&kPk+jrJoO z=FeT=7Rk}-W8K-y-=i$Wi}ZwbBdF7Qi5{j}+NW+{4TIpx_7{FLEkP}!ZjT~+LN=?l zE_%w_g&Ys?_btswkG|KOXvn3dFB)oVv2|M^f+d45XD-H^ucF16Tnw`iozhw(6S*jj4NxH{NqQ;V0>q?2EoUNO)!`X{N zZW*_}wGgLp;cbMScVa(`Z8-74gSR*60ERDjbUx?n*^#VmnZG~bwm+$FH`eXP+2IAt z5Qyr@@8cCR)##?DMc2mk?o-UvmZ?(1A@|sgcXXco`Z(Q^?FV#RHqZgw4*NXDVJ1LKMAsxos5FpiUe| ziSef$ExTJTxUi}ikh8E~|83?MURVU>+Gerr8*wLyuK4c? zZz+M+2Se^{-^hq6EaRVlGHIzQaSlJvq6Q)h$9hvdvaC-^_QfBwx$i_d3&dj`d;=5Q z}7;{pF z-%}*pkro_3(g0-|9mR2Sn~y~=8&D{6>B;TUuk8rNPlQy~*IP}MosOO|@Lt54`i5T~ zGwl|V`Efp%(Y#2`nOakx-OwDr6s;&MIfjvoLO~55KF-{_$H{asBk3k;ykc+7qw6%Z zX&9cK9?1aSuxfen=98|J7{(V`?{>N-)`a4c+urbpPfX_YuEaNnx%v;Rms}Ex`3+`{ zA}HCt`)Kc-VbXXEM+|0qY2nkzHT2ds8ybuArlV7@M;MUKSmiAy({@5sv(U=h{Q{s6~}@vlg@ zA(Lb-Nv?I>x{u-S>@sAQ06pS%nvoX$aY;eCL|MtZ%0))ntXCta&HAF|V)yJwxc1rH zqs6|X49#KkVJ}N~o`W1bxQ_Z=`1QS7$*1AveFH;R{^XlQmuEZ`(AP;~V5odNrGuxQ z>y*CLsC}cei%$amf}Mu0txK(7SC73KVf%t1`s&-WcW##&cNbvQCh2{(pK5rmC*so< zn0l9`82`Qa|?56!61OyWt0mP|O?zd_tUA zyUsM5?ovZWJ>g?567MZr!w6Mh+_cyhaYnB7V3W5eZ@(H0X{56c(8q7)_jEmr<)ik_ zq-`b!NEwx4c0 zlKhH2|3w?NX-DgrCt7C~qT;g#o7<+V;cDqBP_4iAHrm`|k zvM+=@nU61S2|lj29EZIZrg|C_>#x*0{B)H*S(L^x!c)FiNcP=!8&NVjpWZ$JS`$O^ zE+sez} za%*f{YaQw{tMq8TTJhQ1MF)N?S#Mt^gvtC>?x(!aMs-Y9l*g=FNYme;=wi|e7UgIVTv0!r8v37uw;7`Rkl7J;`AzK$SVlYNId zNM;vCYxY!_qGYz|eVtfnG@UEYUQ~DOclzxdDA{00F`Ym_0@bQpgYQ!*fJ{d0ahRRl zgeUBQfC=Lm$7DmEGO}5!#gaTS4B1)w@k!)uy0sL5KpS zY=ua8kaD%|W#3+o^a)&V@y2Z;R$rEF4?;TmxGemq(nq{Sx-tc^7gB`FA1!`l;o*2+ zP@S0ZJ&;tUY^^`0=&QW4K}z;;O)dHsW_;=5zIiDe#fsfJoL=;+lm}i z5Khabt<%jOE{-)^aEr73k|s$k<1o-$Ys~hQOrbtZvV?C(`ve(_rh@)|Ez$ z#u0MA0nAOPD}JYbxmKf~zEOe9B(@5{1cLzwxAH*pwcF<)DHFtH!cg zmR%pm9&BDx=H7NHkD&{7kZqvUoiJ-JE)W-s#kO2`9J{sX!p6p9a)-WGa>BVR4Fz^_ z6@`7Z2Lh|}d*I@Q z_;DiaEX1nJ1!;X6&VOJ|t_#X34BTL6dU!7mOO0O4xKu8%ROMmXL96|j)-^ki+v@H_ zglI%xX=%w%ZZSV}8t8~-0~>i?s8NX!d*O^WbzE2?Y2-*agNDY%5b&;J3_ C0}!(S diff --git a/adminmenu/app/src/assets/img/mybank.svg b/adminmenu/app/src/assets/img/mybank.svg deleted file mode 100644 index d885cd9..0000000 --- a/adminmenu/app/src/assets/img/mybank.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/adminmenu/app/src/assets/img/paypal.svg b/adminmenu/app/src/assets/img/paypal.svg deleted file mode 100644 index 4b71ec3..0000000 --- a/adminmenu/app/src/assets/img/paypal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/paysafecard.svg b/adminmenu/app/src/assets/img/paysafecard.svg deleted file mode 100644 index 73d5a20..0000000 --- a/adminmenu/app/src/assets/img/paysafecard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/riverty.svg b/adminmenu/app/src/assets/img/riverty.svg deleted file mode 100644 index 2179fbc..0000000 --- a/adminmenu/app/src/assets/img/riverty.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/adminmenu/app/src/assets/img/sofort.svg b/adminmenu/app/src/assets/img/sofort.svg deleted file mode 100644 index 972d0c1..0000000 --- a/adminmenu/app/src/assets/img/sofort.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/adminmenu/app/src/assets/img/trustly.svg b/adminmenu/app/src/assets/img/trustly.svg deleted file mode 100644 index d80cef5..0000000 --- a/adminmenu/app/src/assets/img/trustly.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/adminmenu/app/src/assets/img/twint.svg b/adminmenu/app/src/assets/img/twint.svg deleted file mode 100644 index 7968781..0000000 --- a/adminmenu/app/src/assets/img/twint.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/adminmenu/app/src/assets/tailwind.css b/adminmenu/app/src/assets/tailwind.css deleted file mode 100644 index 2759d8e..0000000 --- a/adminmenu/app/src/assets/tailwind.css +++ /dev/null @@ -1,20 +0,0 @@ -@import 'tailwindcss/base'; - -@import 'tailwindcss/components'; - -@import 'tailwindcss/utilities'; - -/* ---------------- Global CSS ------------------- */ -.backend-wrapper > .backend-main > .backend-navbar#topbar { - box-shadow: none !important; -} - -form .form-group .text-sm-right { - text-align: left !important; -} - - -/* TODO: remove after React Backend Library update to v2.0.0*/ -#root { - color: #435a6b; -} \ No newline at end of file diff --git a/adminmenu/app/src/context/MollieContext.ts b/adminmenu/app/src/context/MollieContext.ts deleted file mode 100644 index bd13aaf..0000000 --- a/adminmenu/app/src/context/MollieContext.ts +++ /dev/null @@ -1,5 +0,0 @@ -import React from 'react' -import { UseMollieReturn } from '../hooks/useMollie' - -const MollieContext = React.createContext({} as UseMollieReturn) -export default MollieContext diff --git a/adminmenu/app/src/context/PaymentMethodContext.tsx b/adminmenu/app/src/context/PaymentMethodContext.tsx deleted file mode 100644 index 973df9f..0000000 --- a/adminmenu/app/src/context/PaymentMethodContext.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import React, {createContext, useCallback, useContext, useEffect, useState, ReactNode} from 'react' -import {MergedPaymentMethodsMappedByMollieId} from "../types/PaymentMethod"; -import useApi from "@webstollen/react-jtl-plugin/lib/hooks/useAPI"; - -type PaymentMethodContextType = { paymentMethods?: MergedPaymentMethodsMappedByMollieId, reFetchPaymentMethods: () => void } - -const PaymentMethodContext = createContext({ - paymentMethods: undefined, - reFetchPaymentMethods: () => { - throw new Error('paymentMethods not yet loaded') - } -}) - -function PaymentMethodProvider({children}: {children: ReactNode}) { - const api = useApi() - const [paymentMethods, setPaymentMethods] = useState() - - const fetchPaymentMethods = useCallback(() => { - api - .run('mollie', 'methods') - .then((res) => { - setPaymentMethods(res.data.data) - }) - .catch(console.error) - }, [api]) - - useEffect(() => { - fetchPaymentMethods(); - }, [fetchPaymentMethods]); - - return {children} -} - -function usePaymentMethods() { - const context = useContext(PaymentMethodContext) - if (context === undefined) { - throw new Error('usePaymentMethods must be used within the correct context provider') - } - return context -} - -export {PaymentMethodProvider, usePaymentMethods} \ No newline at end of file diff --git a/adminmenu/app/src/helper.tsx b/adminmenu/app/src/helper.tsx deleted file mode 100644 index 93348be..0000000 --- a/adminmenu/app/src/helper.tsx +++ /dev/null @@ -1,247 +0,0 @@ -import {jtlStatus2text, Label, usePluginInfo} from "@webstollen/react-jtl-plugin/lib"; -import React from "react"; -import creditcardImg from './assets/img/creditcard.svg'; -import applypayImg from './assets/img/applepay.svg'; -import bancontactImg from './assets/img/bancontact.svg'; -import belfiusImg from './assets/img/belfius.svg'; -import billieImg from './assets/img/billie.svg'; -import directdebitImg from './assets/img/directdebit.svg'; -import banktransferImg from './assets/img/banktransfer.svg'; -import epsImg from './assets/img/eps.svg'; -import giftcardImg from './assets/img/giftcard.svg'; -import giropayImg from './assets/img/giropay.svg'; -import idealImg from './assets/img/ideal.svg'; -import in3Img from './assets/img/in3.svg'; -import inghomepayImg from './assets/img/inghomepay.svg'; -import kbcImg from './assets/img/kbc.svg'; -import klarnaImg from './assets/img/klarna.svg'; -import mybankImg from './assets/img/mybank.svg'; -import paypalImg from './assets/img/paypal.svg'; -import paysafecardImg from './assets/img/paysafecard.svg'; -import przelewy24Img from './assets/img/Przelewy24.svg'; -import sofortImg from './assets/img/sofort.svg'; -import voucherImg from './assets/img/Voucher.svg' -import blikImg from './assets/img/blik.svg' -import twintImg from './assets/img/twint.svg' -import klarnaOneImg from './assets/img/klarnaone.svg'; -import trustlyImg from './assets/img/trustly.svg'; -import rivertyImg from './assets/img/riverty.svg'; - -import {MergedPaymentMethodObject} from "./types/PaymentMethod"; - -export const showMethodInfo = (method: MergedPaymentMethodObject) => { - - const listShipping = (linkedShippingMethods: Record[]) => { - return linkedShippingMethods.length ? "Versandarten:\n" + linkedShippingMethods.map((shipping: Record) => ' - ' + shipping.cName).join('\n') + "\n\n" : ''; - } - - return alert(`${method.mollie.description}\n\n` - + `${method.duringCheckout ? `!! Zahlung vor Bestellabschluss !!\n\n` : ''}` - + `Status: ${method.mollie.status}\n` - + (method.api ? `API: ${method.api}\n` : '') - + `${method.components ? `Components: ${method.components}\n` : ''}` - + `${method.dueDays ? `Gültigkeit: ${method.dueDays} Tage\n` : ''}` - + `${method.mollie.minimumAmount ? `Minimum: ${method.mollie.minimumAmount.value} ${method.mollie.minimumAmount.currency}\n` : ''}` - + `${method.mollie.maximumAmount ? `Maximum: ${method.mollie.maximumAmount.value} ${method.mollie.maximumAmount.currency}\n` : ''}` - + `${method.linkedShippingMethods ? listShipping(method.linkedShippingMethods) : ''}`); -} - -export type MollieOrder = { - bSynced: string - bTest: string - cBestellNr: string - cCurrency: string - cHash: string - cLocale: string - cMethod: string - cOrderId: string - cStatus: string - cThirdId: string - cTransactionId: string - dCreated: string - dModified: string - dReminder: string | null - fAmount: number - fAmountRefunded: number - kBestellung: number - kId: number - - cJTLStatus: string - cAbgeholt: string - cVersandartName: string - cZahlungsartName: string - fGesamtsumme: number - fGuthaben: number - - // cIP: string - // cKommentar: string - // cLogistiker: string - // dBezahltDatum: string | null - // kSprache: number - // kVersandart: number - // kZahlungsart: number - // kWaehrung: number - // kWarenkorb: number -}; - -export type OrderLineType = - "physical" - | "discount" - | "digital" - | "shipping_fee" - | "store_credit" - | "gift_card" - | "surcharge"; - -export const mollieOrderLineTypeLabel = (type: OrderLineType) => { - switch (type) { - case "physical": - case "digital": - return - case "discount": - case "store_credit": - case "gift_card": - return - default: - return - } - -} - -export type ColorType = "green" | "black" | "gray" | "orange" | "red" | "blue" | "white" | undefined; - -export const molliePaymentStatusLabel = (status: string) => { - let color: ColorType = undefined; - switch (status) { - case 'paid': - case 'authorized': - case 'completed': - color = 'green'; - break; - case 'created': - case 'pending': - color = 'gray'; - break; - case 'open': - case 'shipping': - case 'refunded': - color = 'blue'; - break; - case 'canceled': - color = 'orange'; - break; - case 'expired': - case 'failed': - color = 'red'; - break; - } - return -} - -export const jtlStatus2label = (status: string | number) => { - const nStatus = typeof status === 'string' ? parseInt(status) : status; - let color: ColorType = undefined; - switch (nStatus) { - case -1: - color = 'red'; - break; - case 1: - case 2: - color = 'orange'; - break; - case 3: - color = 'blue' - break; - case 4: - case 5: - color = 'green'; - break; - - } - return ; -} - -export const PaymentMethod2img = ({mollieMethodId, style}: { mollieMethodId: string, style?: React.CSSProperties }) => { - - const pInfo = usePluginInfo(); - - if (pInfo.endpoint) { - const prefix = pInfo.endpoint.substring(0, pInfo.endpoint.lastIndexOf('/')) + '/app/build'; - const images = { - applepay: applypayImg, - bancontact: bancontactImg, - banktransfer: banktransferImg, - belfius: belfiusImg, - billie: billieImg, - creditcard: creditcardImg, - directdebit: directdebitImg, - eps: epsImg, - giftcard: giftcardImg, - giropay: giropayImg, - ideal: idealImg, - in3: in3Img, - inghomepay: inghomepayImg, - kbc: kbcImg, - klarna: klarnaImg, - mybank: mybankImg, - paypal: paypalImg, - paysafecard: paysafecardImg, - Przelewy24: przelewy24Img, - przelewy24: przelewy24Img, - sofort: sofortImg, - voucher: voucherImg, - twint: twintImg, - blik: blikImg, - klarnaOne: klarnaOneImg, - trustly: trustlyImg, - riverty: rivertyImg - } - switch (mollieMethodId) { - case 'applepay': - case 'bancontact': - case 'banktransfer': - case 'belfius': - case 'billie': - case 'creditcard': - case 'directdebit': - case 'eps': - case 'giftcard': - case 'giropay': - case 'ideal': - case 'in3': - case 'inghomepay': - case 'kbc': - case 'mybank': - case 'paypal': - case 'paysafecard': - case 'Przelewy24': - case 'przelewy24': - case 'sofort': - case 'twint': - case 'blik': - case 'voucher': - case 'trustly': - case 'riverty': - return {mollieMethodId} - case 'klarnasliceit': - case 'klarnapaylater': - case 'klarnapaynow': - return {mollieMethodId} - case 'klarna': - return {mollieMethodId} - } - } - return

{mollieMethodId}
; -} - -export function removeItemOnce(arr: T[], value: T) { - const index = arr.indexOf(value); - if (index > -1) { - arr.splice(index, 1); - } - return arr; -} - -export type ApiError = { - message: string -} \ No newline at end of file diff --git a/adminmenu/app/src/hooks/useErrorSnack.ts b/adminmenu/app/src/hooks/useErrorSnack.ts deleted file mode 100644 index a9d5ffa..0000000 --- a/adminmenu/app/src/hooks/useErrorSnack.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { useSnackbar } from 'react-simple-snackbar' - -const useErrorSnack = () => - useSnackbar({ - position: 'top-right', - style: { - backgroundColor: '#FF0000', - color: 'white', - fontSize: '20px', - textAlign: 'center', - padding: '10px', - }, - }) - -export default useErrorSnack diff --git a/adminmenu/app/src/hooks/useMollie.ts b/adminmenu/app/src/hooks/useMollie.ts deleted file mode 100644 index fcbc234..0000000 --- a/adminmenu/app/src/hooks/useMollie.ts +++ /dev/null @@ -1,192 +0,0 @@ -import { useCallback, useEffect, useState } from 'react' -import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' - -export type UseMollieReturn = { - loading: boolean - data: null | Record - error: null | string - load: () => void - refundAmount: (amount: number) => Promise - cancelOrderLine: (orderLineId: string, quantity: number) => Promise - refundOrderLine: (orderLineId: string, quantity: number) => Promise - cancelOrder: () => Promise - refundOrder: () => Promise - cancelRefund: (id: string) => Promise -} - -const PluginAPI = useApi - -const useMollie = (id: string, autoload = false): UseMollieReturn => { - const [state, setState] = useState>({ - loading: false, - error: null, - data: null, - }) - - const load = useCallback(() => { - const api = PluginAPI() - setState((p) => ({ ...p, loading: true, error: null })) - - if (id.substring(0, 4) === 'ord_') { - api - .run('mollie', 'getOrder', { - id: id, - }) - .then((res) => setState((p) => ({ ...p, data: res.data.data }))) - .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) - .finally(() => setState((p) => ({ ...p, loading: false }))) - } else if (id.substring(0, 3) === 'tr_') { - api - .run('mollie', 'getPayment', { - id: id, - }) - .then((res) => setState((p) => ({ ...p, data: res.data.data }))) - .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) - .finally(() => setState((p) => ({ ...p, loading: false }))) - } - }, [id, setState]) - - const refundAmount = useCallback( - async (amount: number) => { - const api = PluginAPI() - - if (amount <= 0) { - throw new Error('Betrag kann nicht kleiner oder gleich Null sein.') - } - setState((p) => ({ ...p, loading: true })) - - api - .run('Mollie', 'refundAmount', { - amount: amount, - id: id, - }) - .then(async (r) => { - await load() - }) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, - [id, load, setState] - ) - - const cancelOrderLine = useCallback( - async (lineId: string, quantity: number) => { - const api = PluginAPI() - if (quantity <= 0) { - throw new Error('Anzahl kann nicht kleiner oder gleich Null sein.') - } - setState((p) => ({ ...p, loading: true })) - api - .run('mollie', 'cancelOrderLine', { - id: id, - lineId: lineId, - quantity: quantity, - }) - .then(async (r) => { - if (!r.data?.error?.message) { - await load() - } else { - alert(r.data?.error?.message) - } - }) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, - [id, load, setState] - ) - - const cancelOrder = useCallback(async () => { - const api = PluginAPI() - setState((p) => ({ ...p, loading: true })) - api - .run('mollie', 'cancelOrder', { - id: id, - }) - .then(async (r) => { - if (!r.data?.error?.message) { - await load() - } else { - alert(r.data?.error?.message) - } - }) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, [id, load, setState]) - - const refundOrder = useCallback(async () => { - const api = PluginAPI() - setState((p) => ({ ...p, loading: true })) - api - .run('mollie', 'refundOrder', { - id: id, - }) - .then(async (r) => { - if (!r.data?.error?.message) { - await load() - } else { - alert(r.data?.error?.message) - } - }) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, [id, load, setState]) - - const refundOrderLine = useCallback( - async (lineId: string, quantity: number) => { - const api = PluginAPI() - if (quantity <= 0) { - throw new Error('Anzahl kann nicht kleiner oder gleich Null sein.') - } - setState((p) => ({ ...p, loading: true })) - - api - .run('mollie', 'refundOrderLine', { - id: id, - lineId: lineId, - quantity: quantity, - }) - .then(async (r) => { - await load() - }) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, - [id, load, setState] - ) - - const cancelRefund = useCallback( - async (refundId: string) => { - const api = PluginAPI() - if (refundId.trim()) { - setState((p) => ({ ...p, loading: true })) - - api - .run('mollie', 'cancelRefund', { - id: id, - refundId: refundId, - }) - .then(async (r) => { - await load() - }) - .finally(() => setState((p) => ({ ...p, loading: false }))) - } - }, - [id, load, setState] - ) - - useEffect(() => { - if (autoload) { - load() - } - }, [autoload, load]) - - return { - loading: state.loading, - data: state.data, - error: state.error, - load: load, - refundAmount: refundAmount, - cancelOrderLine: cancelOrderLine, - refundOrderLine: refundOrderLine, - cancelOrder: cancelOrder, - refundOrder: refundOrder, - cancelRefund: cancelRefund, - } -} - -export default useMollie diff --git a/adminmenu/app/src/hooks/useOrder.ts b/adminmenu/app/src/hooks/useOrder.ts deleted file mode 100644 index 9243dcd..0000000 --- a/adminmenu/app/src/hooks/useOrder.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { useCallback, useState } from 'react' -import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' - -export type UseOrderReturn = { - loading: boolean - data: null | Record - error: null | string - load: () => void -} - -const PluginAPI = useApi - -const useOrder = (id: string): UseOrderReturn => { - const [state, setState] = useState>({ - loading: false, - error: null, - data: null, - }) - - const load = useCallback(() => { - const api = PluginAPI() - setState((p) => ({ ...p, loading: true, error: null })) - api - .run('orders', 'get', { - id: id, - }) - .then((res) => setState((p) => ({ ...p, data: res.data.data }))) - .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, [id, setState]) - - return { - loading: state.loading, - data: state.data, - error: state.error, - load: load, - } -} - -export default useOrder diff --git a/adminmenu/app/src/hooks/useOrders.ts b/adminmenu/app/src/hooks/useOrders.ts deleted file mode 100644 index fb685fb..0000000 --- a/adminmenu/app/src/hooks/useOrders.ts +++ /dev/null @@ -1,69 +0,0 @@ -import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' -import { useCallback, useState } from 'react' - -const PluginAPI = useApi - -export type UseOrdersReturn = { - loading: boolean - data: null | { - maxItems: number - items: Array> - } - error: null | string - load: (perPage: number, page: number, query?: string) => Promise -} - -const useOrders = (): UseOrdersReturn => { - const [state, setState] = useState>({ - loading: false, - error: null, - data: null, - }) - - const load = useCallback(async (page: number, perPage: number, query?: string) => { - const api = PluginAPI() - setState((p) => ({ ...p, loading: true, error: null })) - - const offset = perPage * page - let params: Record = { ':limit': perPage, ':offset': offset } - let sqlQuery = - 'SELECT o.*, b.cStatus as cJTLStatus, b.cAbgeholt, b.cVersandartName, b.cZahlungsartName, b.fGuthaben, b.fGesamtsumme ' + - 'FROM xplugin_ws5_mollie_orders o ' + - 'JOIN tbestellung b ON b.kbestellung = o.kBestellung ' + - 'ORDER BY b.dErstellt DESC;' - - if (query && query.trim() !== '') { - sqlQuery = - 'SELECT o.*, b.cStatus as cJTLStatus, b.cAbgeholt, b.cVersandartName, b.cZahlungsartName, b.fGuthaben, b.fGesamtsumme ' + - 'FROM xplugin_ws5_mollie_orders o ' + - 'JOIN tbestellung b ON b.kbestellung = o.kBestellung ' + - 'WHERE b.cBestellNr LIKE :query1 ' + - 'OR o.cOrderId LIKE :query2 ' + - 'OR o.cStatus LIKE :query3 ' + - 'OR o.cMethod LIKE :query4 ' + - 'OR o.cTransactionId LIKE :query5 ' + - 'ORDER BY b.dErstellt DESC;' - params[':query1'] = params[':query2'] = params[':query3'] = params[':query4'] = params[':query5'] = `%${query}%` - } - - api - .run('orders', 'all', { - query: sqlQuery, - params: params, - }) - .then((res) => { - setState((p) => ({ ...p, data: res.data.data })) - }) - .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, []) - - return { - loading: state.loading, - error: state.error, - data: state.data, - load: load, - } -} - -export default useOrders diff --git a/adminmenu/app/src/hooks/usePaymentLogs.ts b/adminmenu/app/src/hooks/usePaymentLogs.ts deleted file mode 100644 index d8c5583..0000000 --- a/adminmenu/app/src/hooks/usePaymentLogs.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { useCallback, useState } from 'react' -import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' - -const PluginAPI = useApi - -export type UseQueueReturn = { - loading: boolean - data: null | Array> - error: null | string - load: () => Promise -} - -const usePaymentLogs = (kBestellung: number, id: string): UseQueueReturn => { - const [state, setState] = useState>({ - loading: false, - error: null, - data: null, - }) - - const load = useCallback(async () => { - const api = PluginAPI() - setState((p) => ({ ...p, loading: true, error: null })) - api - .run('Orders', 'zalog', { - kBestellung: kBestellung, - id: id, - }) - .then((res) => { - setState((p) => ({ ...p, data: res.data.data })) - }) - .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, [id, setState, kBestellung]) - - return { - loading: state.loading, - data: state.data, - error: state.error, - load: load, - } -} - -export default usePaymentLogs diff --git a/adminmenu/app/src/hooks/useQueue.ts b/adminmenu/app/src/hooks/useQueue.ts deleted file mode 100644 index d2cc095..0000000 --- a/adminmenu/app/src/hooks/useQueue.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { useCallback, useState } from 'react' -import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' - -const PluginAPI = useApi - -export type UseQueueReturn = { - loading: boolean - data: null | Array> - error: null | string - load: () => Promise -} - -const useQueue = (id: string): UseQueueReturn => { - const [state, setState] = useState>({ - loading: false, - error: null, - data: null, - }) - - const load = useCallback(async () => { - const api = PluginAPI() - setState((p) => ({ ...p, loading: true, error: null })) - api - .run('Orders', 'getQueue', { - id: id, - }) - .then((res) => { - setState((p) => ({ ...p, data: res.data.data })) - }) - .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, [id, setState]) - - return { - loading: state.loading, - data: state.data, - error: state.error, - load: load, - } -} - -export default useQueue diff --git a/adminmenu/app/src/hooks/useQueues.ts b/adminmenu/app/src/hooks/useQueues.ts deleted file mode 100644 index c60a58c..0000000 --- a/adminmenu/app/src/hooks/useQueues.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { useCallback, useState } from 'react' -import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' - -export type UseQueuesReturn = { - loading: boolean - data: null | { - maxItems: number - items: Array> - } - error: null | string - load: (page: number, itemsPerPage: number, query?: string) => Promise -} - -const PluginAPI = useApi - -const useQueues = (): UseQueuesReturn => { - const [state, setState] = useState>({ - loading: false, - error: null, - data: null, - }) - - const load = useCallback( - async (page: number, perPage: number, query?: string) => { - const api = PluginAPI() - setState((p) => ({ ...p, loading: true, error: null })) - - const offset = perPage * page - let params: Record = { ':limit': perPage, ':offset': offset } - let sqlQuery = 'SELECT * FROM xplugin_ws5_mollie_queue ORDER BY dCreated DESC' - - if (query && query.trim() !== '') { - sqlQuery = - 'SELECT * FROM xplugin_ws5_mollie_queue ' + - 'WHERE cType LIKE :query1 ' + - 'OR cResult LIKE :query2 ' + - 'OR cError LIKE :query3 ' + - 'ORDER BY dCreated DESC' - params[':query1'] = params[':query2'] = params[':query3'] = `%${query}%` - } - - api - .run('queue', 'all', { - query: sqlQuery, - params: params, - }) - .then((res) => { - setState((p) => ({ ...p, data: res.data.data })) - }) - .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, - [setState] - ) - - return { - loading: state.loading, - data: state.data, - error: state.error, - load: load, - } -} - -export default useQueues diff --git a/adminmenu/app/src/hooks/useShipments.ts b/adminmenu/app/src/hooks/useShipments.ts deleted file mode 100644 index 5cf87e2..0000000 --- a/adminmenu/app/src/hooks/useShipments.ts +++ /dev/null @@ -1,58 +0,0 @@ -import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' -import { useCallback, useState } from 'react' - -const PluginAPI = useApi - -export type UseShipmentsReturn = { - loading: boolean - data: null | Array> - error: null | string - load: () => Promise - sync: (mollieId: string, kLieferschein: number) => Promise> -} - -const useShipments = (kBestellung: number): UseShipmentsReturn => { - const [state, setState] = useState>({ - loading: false, - error: null, - data: null, - }) - - const sync = useCallback( - async (mollieId: string, kLieferschein: number) => { - const api = PluginAPI() - return await api.run('shipments', 'sync', { - kLieferschein: kLieferschein, - orderId: mollieId, - kBestellung: kBestellung, - }) - }, - [kBestellung] - ) - - const load = useCallback(async () => { - const api = PluginAPI() - console.debug('(useShipments->load)') - setState((p) => ({ ...p, loading: true, error: null })) - - api - .run('orders', 'shipments', { - kBestellung: kBestellung, - }) - .then((res) => { - setState((p) => ({ ...p, data: res.data.data })) - }) - .catch((e) => setState((p) => ({ ...p, error: `${e}` }))) - .finally(() => setState((p) => ({ ...p, loading: false }))) - }, [kBestellung]) - - return { - loading: state.loading, - error: state.error, - data: state.data, - load: load, - sync: sync, - } -} - -export default useShipments diff --git a/adminmenu/app/src/hooks/useSuccessSnack.ts b/adminmenu/app/src/hooks/useSuccessSnack.ts deleted file mode 100644 index 4fd5810..0000000 --- a/adminmenu/app/src/hooks/useSuccessSnack.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { useSnackbar } from 'react-simple-snackbar' - -const useSuccessSnack = () => - useSnackbar({ - position: 'top-right', - style: { - backgroundColor: 'green', - color: 'white', - fontSize: '20px', - textAlign: 'center', - padding: '10px', - }, - }) - -export default useSuccessSnack diff --git a/adminmenu/app/src/hooks/useWarningSnack.ts b/adminmenu/app/src/hooks/useWarningSnack.ts deleted file mode 100644 index 03b4336..0000000 --- a/adminmenu/app/src/hooks/useWarningSnack.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { useSnackbar } from 'react-simple-snackbar' - -const useWarningSnack = () => - useSnackbar({ - position: 'top-right', - style: { - backgroundColor: '#FF8800', - color: 'black', - fontSize: '20px', - textAlign: 'center', - padding: '10px', - }, - }) - -export default useWarningSnack diff --git a/adminmenu/app/src/index.tsx b/adminmenu/app/src/index.tsx deleted file mode 100644 index f224f4c..0000000 --- a/adminmenu/app/src/index.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom' -import './assets/main.css' -import { App } from '@webstollen/react-jtl-plugin/lib' -import reportWebVitals from './reportWebVitals' -import SnackbarProvider from 'react-simple-snackbar' -import createTabs from "./tabs"; -import {PaymentMethodProvider} from "./context/PaymentMethodContext"; - -ReactDOM.render( - - - - - - - , - document.getElementById('root') -) - -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals() diff --git a/adminmenu/app/src/react-app-env.d.ts b/adminmenu/app/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5..0000000 --- a/adminmenu/app/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/adminmenu/app/src/reportWebVitals.ts b/adminmenu/app/src/reportWebVitals.ts deleted file mode 100644 index 59d81aa..0000000 --- a/adminmenu/app/src/reportWebVitals.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ReportHandler } from 'web-vitals'; - -const reportWebVitals = (onPerfEntry?: ReportHandler) => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -} - -export default reportWebVitals; diff --git a/adminmenu/app/src/tabs.tsx b/adminmenu/app/src/tabs.tsx deleted file mode 100644 index c4bf736..0000000 --- a/adminmenu/app/src/tabs.tsx +++ /dev/null @@ -1,145 +0,0 @@ -import React from 'react'; -import {CreateTabs, hasUrlParameter} from '@webstollen/react-jtl-plugin/lib' -import DashboardPage from "@webstollen/react-jtl-plugin/lib/components/DashboardPage"; -import AdLink from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/AdLink"; -import SetupAssistent from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/SetupAssistent"; -import Support from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/Support"; -import ShopInfo from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/ShopInfo"; -import DashbarStatus from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashbarStatus"; -import AdImage from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/AdImage"; -import PageWrapper from "@webstollen/react-jtl-plugin/lib/components/PageWrapper"; -import Card from "@webstollen/react-jtl-plugin/lib/components/Card"; -import Orders from "./tabs/Orders"; -import Queue from "./tabs/Queue"; -import {DEBUG_URL_PARAM} from "@webstollen/react-jtl-plugin/lib/constants"; -import TextInput from "@webstollen/react-jtl-plugin/lib/components/Settings/TextInput"; -import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; -import {faCheckCircle} from "@fortawesome/pro-regular-svg-icons"; -import Button from "@webstollen/react-jtl-plugin/lib/components/Button"; -import CustomDashboardGridCards from "./tabs/Dashboard/CustomDashboardGridCards"; -import PaymentMethods from './tabs/PaymentMethods'; - - -/** - * 'Dashboard' and 'Einstellungen' Tab will be added automatically if not specified here. If you want to customize the 'Dashboard' or 'Einstellungen' Tab, - * just add them to the return array below as show with the 'Dashboard' tab. - * The prop "settingsMap" and "pluginInfo" can be used to conditionally render tabs. - */ -const createTabs: CreateTabs = (settingsMap, pluginInfo) => { - - const setupAssistentSlides = [ - { - id: 0, content: -
-

Einrichtungsassistent

-

- Richte Mollie und das Shop Plugin in wenigen Schritten ein. -

-
- }, - { - id: 1, content: -
-

Hast Du noch keinen Account bei Mollie?

- -
- }, - { - id: 2, content: -
-

API-Keys

-

Die Keys findest du in deinem Mollie - Konto.

-
Live Key: -
-
-
Test Key: -
-
-
Profil ID: -
-
-
- }, - { - id: 3, content: -
-

Als nächsten Schritt müssen noch die

- Versandarten mit Zahlungsarten verknüpft werden. -
- }, - { - id: 4, content: -
-

Fertig!

- -

Die grundlegende Einrichtung von Mollie Plugin ist fertig.

-

Bitte prüfe noch im Tab "Zahlungsarten", ob du noch etwas an bestimmten Zahlungsarten anpassen willst.

-
- } - ] - - return [ - { - title: 'Dashboard', - isDashboard: true, - component: - - - - - - - - - - }, - { - title: 'Zahlungsarten', - isDashboard: false, - component: - - - - }, - { - title: 'Bestellungen', - isDashboard: false, - component: - - - - - - }, - ...(hasUrlParameter(DEBUG_URL_PARAM) - ? [ - { - title: 'Warteschlange', - isDashboard: false, - component: - - - - - - }, - ] - : []), - ] -} - -export default createTabs - diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/AboCloudWidget/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/AboCloudWidget/index.tsx deleted file mode 100644 index b3e8e3f..0000000 --- a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/AboCloudWidget/index.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react"; -import DashboardGridCard from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashboardGridCard"; -import {usePluginInfo} from "@webstollen/react-jtl-plugin/lib"; -import abocloudImg from '../../../../assets/img/abocloud.png'; - -const MollieDashboardLink = () => { - const pluginInfo = usePluginInfo(); - const prefix = pluginInfo.endpoint.substring(0, pluginInfo.endpoint.lastIndexOf('/')) + '/app/build'; - - return ( - -
{/* This div only exists to prevent shadow from affecting other DashboardGridCards due to position:relative */} - - {'abocloud'}/ - -
-
- ) -} - -export default MollieDashboardLink; - - diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/ActivePaymentMethods/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/ActivePaymentMethods/index.tsx deleted file mode 100644 index e1128b9..0000000 --- a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/ActivePaymentMethods/index.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import React from "react"; -import DashboardGridCard from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashboardGridCard"; -import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; -import {faSync} from "@fortawesome/pro-regular-svg-icons"; -import {Loading} from "@webstollen/react-jtl-plugin/lib"; -import {faCheckCircle, faCircleInfo, faXmarkCircle} from "@fortawesome/pro-solid-svg-icons"; -import {MergedPaymentMethodObject} from "../../../../types/PaymentMethod"; -import {PaymentMethod2img} from "../../../../helper"; -import {usePaymentMethods} from "../../../../context/PaymentMethodContext"; - -const ActivePaymentMethods = () => { - const {paymentMethods, reFetchPaymentMethods} = usePaymentMethods() - - // Split into active and inactive payment methods - let activeMethods: Array = [] - let inactiveAndInvalidMethods: Array = [] - - paymentMethods && - Object.values(paymentMethods).forEach((paymentMethod) => { - if ( - paymentMethod.mollie.status === 'activated' && - paymentMethod.linkedShippingMethods.length && - paymentMethod.paymentMethod?.nActive === "1" && - (!paymentMethod.duringCheckout || paymentMethod.allowDuringCheckout) - ) { - activeMethods.push(paymentMethod) - } else { - inactiveAndInvalidMethods.push(paymentMethod) - } - }) - - return ( - -
{/* This div only exists to prevent shadow from affecting other DashboardGridCards due to position:relative */} - -
- -
-
- {!!paymentMethods && - <> -
-

Aktive Zahlungsarten:

- {activeMethods - ?
{activeMethods?.map((mergedPaymentMethodObject) => - - - )} -
- :
- -

Momentan ist noch kein Mollie Zahlungsart aktiv. Erfülle bei den gewünschten Zahlungsarten unten die roten markierten Bedingungen um die Zahlungsart zu aktivieren.

-
- } -
-
-

Inaktive Zahlungsarten:

-
- {inactiveAndInvalidMethods?.map( - (mergedPaymentMethodObject) => - - )} -
-
- - } -
-
-
-
- ) -} - -export default ActivePaymentMethods; - - diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/MollieDashboardLink/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/MollieDashboardLink/index.tsx deleted file mode 100644 index a19ffad..0000000 --- a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/MollieDashboardLink/index.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import React from "react"; -import Button from "@webstollen/react-jtl-plugin/lib/components/Button"; -import DashboardGridCard from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashboardGridCard"; -import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; -import {faExternalLink} from "@fortawesome/pro-regular-svg-icons"; -import {Loading} from "@webstollen/react-jtl-plugin/lib"; -import {usePluginSettings} from "@webstollen/react-jtl-plugin/lib/context/SettingsContext"; - -const MollieDashboardLink = () => { - const {settingsMap } = usePluginSettings() - - return ( - -
{/* This div only exists to prevent shadow from affecting other DashboardGridCards due to position:relative */} - -
- {settingsMap?.apiKey?.value ? ( - <> -
- Plugin Icon -
- Integriere alle wichtigen -
- Zahlungsarten in kürzester Zeit. -
-
-
- -
- - ) : ( - <> -
- Plugin Icon -
- Integriere alle wichtigen -
- Zahlungsarten in kürzester Zeit. -
-
- - - - )} -
-
-
-
- ) -} - -export default MollieDashboardLink; - - diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/QuickStats/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/QuickStats/index.tsx deleted file mode 100644 index b3b4bed..0000000 --- a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/QuickStats/index.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import React, {useCallback, useEffect, useState} from "react"; -import DashboardGridCard from "@webstollen/react-jtl-plugin/lib/components/DashboardPage/DashboardGridCard"; -import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; -import {faSync} from "@fortawesome/pro-regular-svg-icons"; -import {formatAmount, Loading} from "@webstollen/react-jtl-plugin/lib"; -import useApi from "@webstollen/react-jtl-plugin/lib/hooks/useAPI"; - -const QuickStats = () => { - const api = useApi() - - const [isLoading, setIsLoading] = useState(false) - const [statistics, setStatistics] = useState>>({}) - - const loadStatistics = useCallback(() => { - setIsLoading(true) - api - .run('mollie', 'statistics') - .then((res) => setStatistics(res.data.data)) - .catch(console.error) - .finally(() => setIsLoading(false)) - }, [api]) - - useEffect(() => { - loadStatistics() - }, [loadStatistics]) - - return ( - -
{/* This div only exists to prevent shadow from affecting other DashboardGridCards due to position:relative */} - -
- -
-
-
- Mollie Umsätze: -
- {statistics.day && ( -
-
{formatAmount(statistics.day.amount, 2, '€')}
-
last 24h
-
- )} - {statistics.week && ( -
-
{formatAmount(statistics.week.amount, 2, '€')}
-
last week
-
- )} - {statistics.month && ( -
-
{formatAmount(statistics.month.amount, 2, '€')}
-
last month
-
- )} - {statistics.year && ( -
-
{formatAmount(statistics.year.amount, 2, '€')}
-
last year
-
- )} -
-
-
- Mollie Transaktionen: -
- {statistics.day && ( -
-
{statistics.day.transactions}
-
last 24h
-
- )} - {statistics.week && ( -
-
{statistics.week.transactions}
-
last week
-
- )} - {statistics.month && ( -
-
{statistics.month.transactions}
-
last month
-
- )} - {statistics.year && ( -
-
{statistics.year.transactions}
-
last year
-
- )} -
-
-
-
-
-
- ) -} - -export default QuickStats; - - diff --git a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/index.tsx b/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/index.tsx deleted file mode 100644 index bacf5a0..0000000 --- a/adminmenu/app/src/tabs/Dashboard/CustomDashboardGridCards/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from "react"; -import QuickStats from "./QuickStats"; -import ActivePaymentMethods from "./ActivePaymentMethods"; -import AboCloudWidget from "./AboCloudWidget"; - -const CustomDashboardGridCards = () => { - return ( - <> - - - - - ) -} - - -export default CustomDashboardGridCards; - - diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Details.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Details.tsx deleted file mode 100644 index 92715f8..0000000 --- a/adminmenu/app/src/tabs/Orders/OrderDetails/Details.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import React, { useContext } from 'react' -import moment from 'moment' -import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' -import { formatAmount, Loading } from '@webstollen/react-jtl-plugin/lib' -import { molliePaymentStatusLabel } from '../../../helper' -import { UseMollieReturn } from '../../../hooks/useMollie' -import MollieContext from '../../../context/MollieContext' - -const Details = () => { - const mollie = useContext(MollieContext) - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {mollie.data?.billingAddress ? ( - <> - - - - ) : null} - - - - -
Mollie ID: - - {mollie.data?.id} - - Mode:{mollie.data?.mode}Status:{molliePaymentStatusLabel(mollie.data?.status)}
Betrag:{formatAmount(mollie.data?.amount.value, 2, mollie.data?.amount.currency)}Captured: - {mollie.data?.amountCaptured - ? formatAmount(mollie.data?.amountCaptured.value, 2, mollie.data?.amountCaptured.currency) - : '-'} - Refunded: - {mollie.data?.amountRefunded - ? formatAmount(mollie.data?.amountRefunded.value, 2, mollie.data?.amountRefunded.currency) - : '-'} -
Method:{mollie.data?.method}Locale:{mollie.data?.locale}Erstellt:{moment(mollie.data?.createdAt).format('Do MMM YYYY, HH:mm:ss')} Uhr
Kunde: - {mollie.data?.billingAddress.title} {mollie.data?.billingAddress.givenName}{' '} - {mollie.data?.billingAddress.familyName} - Zahlungslink: - {mollie.data?._links.checkout?.href ? ( - - {mollie.data?._links.checkout.href} - - ) : ( - '-' - )} -
-
- ) -} - -export default Details diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Logs.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Logs.tsx deleted file mode 100644 index 8c10ed8..0000000 --- a/adminmenu/app/src/tabs/Orders/OrderDetails/Logs.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import React, { useEffect, useState } from 'react' -import { Label, Loading } from '@webstollen/react-jtl-plugin/lib' -import { faChevronDoubleDown, faChevronDoubleLeft, faSync } from '@fortawesome/pro-regular-svg-icons' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import usePaymentLogs from '../../../hooks/usePaymentLogs' -import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' -import { parseInt } from 'lodash' -import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' - -export type LogsProps = { - mollieId: string - kBestellung: number -} - -const Logs = ({ kBestellung, mollieId }: LogsProps) => { - const [showLogs, setShowLogs] = useState(false) - const { load, loading, data, error } = usePaymentLogs(kBestellung, mollieId) - - useEffect(() => { - load() - }, [load]) - - const reload = (e: React.MouseEvent) => { - load() - e.stopPropagation() - } - - return ( -
-

setShowLogs((prev) => !prev)}> - Logs {data ? <>({data?.length ?? 0}) : null} - - {showLogs && ( - - )} -

- {showLogs && - (error ? ( - {error} - ) : ( - - - {data?.map((row) => ( - - - {parseInt(row.nLevel) === 1 ? ( - - ) : parseInt(row.nLevel) === 2 ? ( - - ) : parseInt(row.nLevel) === 3 ? ( - - ) : ( - row.nLevel - )} - - {row.cLog} - - {new Date(row.dDatum).toLocaleDateString('de-DE')} {new Date(row.dDatum).toLocaleTimeString('de-DE')} - - - ))} - - - ))} -
- ) -} - -const header: Array = [ - { - title: 'Level', - column: 'level', - }, - { - title: 'Log', - column: 'log', - }, - { - title: 'Erstellt', - column: 'created', - }, -] - -export default Logs diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/OrderLines.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/OrderLines.tsx deleted file mode 100644 index b42ce93..0000000 --- a/adminmenu/app/src/tabs/Orders/OrderDetails/OrderLines.tsx +++ /dev/null @@ -1,178 +0,0 @@ -import React, { useContext } from 'react' -import { formatAmount, Loading } from '@webstollen/react-jtl-plugin/lib' -import { mollieOrderLineTypeLabel, molliePaymentStatusLabel, OrderLineType } from '../../../helper' -import Button from '@webstollen/react-jtl-plugin/lib/components/Button' -import { UseMollieReturn } from '../../../hooks/useMollie' -import useErrorSnack from '../../../hooks/useErrorSnack' -import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' -import MollieContext from '../../../context/MollieContext' - -type Variation = { - name: string - value: string - kEigenschaft: number - kEigenschaftWert: number -} - -const OrderLines = () => { - const mollie = useContext(MollieContext) - const [showError] = useErrorSnack() - const handleCancelOrderLine = (lineId: string, max: number) => { - const quantity = - max > 1 - ? parseFloat( - window.prompt(`Wieviele von max. ${max} möchten Sie abbrechen?`, `${max}`)?.replace(',', '.') ?? '0' - ) - : 1 - if (quantity <= max) { - if (window.confirm(`Möchten Sie wirklich diese Position ${quantity}x unwiderruflich abbrechen?`)) { - mollie.cancelOrderLine(lineId, quantity).catch((e) => showError(`${e}`)) - } - } else { - alert(`Sie können maximal ${max} abbrechen.`) - } - } - - const handleCancelOrder = () => { - if (window.confirm('Diese Bestellung bei Mollie wirklich abbrechen?')) { - mollie.cancelOrder().catch((e) => showError(`${e}`)) - } - } - - const handleRefundOrder = () => { - if (window.confirm('Diese Bestellung bei Mollie wirklich zurück erstatten?')) { - mollie.refundOrder().catch((e) => showError(`${e}`)) - } - } - - const handleRefundOrderLine = (lineId: string, max: number) => { - const quantity = - max > 1 - ? parseFloat( - window.prompt(`Wieviele von max. ${max} möchten Sie abbrechen?`, `${max}`)?.replace(',', '.') ?? '0' - ) - : 1 - if (quantity <= max) { - if (window.confirm(`Möchten Sie wirklich diese Position ${quantity}x unwiderruflich abbrechen?`)) { - mollie.refundOrderLine(lineId, quantity).catch((e) => showError(`${e}`)) - } - } else { - alert(`Sie können maximal ${max} abbrechen.`) - } - } - - return ( - -
-
-

Positionen

- {mollie.data?.isCancelable && ( - - )} - {['paid', 'completed'].includes(mollie.data?.status) && ( - - )} -
- - {mollie.data?.lines.map((row: Record) => ( - - {row.id ?? '-'} - {row.status ? molliePaymentStatusLabel(row.status) : '-'} - - {row.sku ?? '-'} -
- {row.type ? mollieOrderLineTypeLabel(row.type as OrderLineType) : '-'} - - - {row.name ?? '-'} - {row.metadata?.properties?.length - ? row.metadata?.properties.map((prop: Variation) => ( - <> -
- {JSON.stringify(prop.name)}: {JSON.stringify(prop.value)} - - )) - : null} - - - {row.quantity} - {row.quantityCanceled > 0 ? ( - - [ {row.quantityCanceled} ] - - ) : null} - {row.quantityRefunded > 0 ? ( - - [ {row.quantityRefunded} ] - - ) : null} - - {parseFloat(row.vatRate)}% - {formatAmount(row.vatAmount.value, 2, row.vatAmount.currency)} - - {formatAmount(row.totalAmount.value, 2, row.totalAmount.currency)} - - - {row?.cancelableQuantity > 0 && ( - - )} - {row?.refundableQuantity > 0 && ( - - )} - - - ))} -
-
-
- ) -} - -const header: Array = [ - { - title: 'ID', - column: 'id', - }, - { - title: 'Status', - column: 'status', - }, - { - title: 'SKU', - column: 'sku', - }, - { - title: 'Name', - column: 'name', - }, - { - title: 'Anzahl', - column: 'quantity', - }, - { - title: 'MwSt.', - column: 'vatRate', - }, - { - title: 'Steuer.', - column: 'tax', - }, - { - title: 'Brutto', - column: 'brutto', - }, - { - title: '', - column: '_actions', - }, -] - -export default OrderLines diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Payments.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Payments.tsx deleted file mode 100644 index 3d745d3..0000000 --- a/adminmenu/app/src/tabs/Orders/OrderDetails/Payments.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import React, { useContext, useState } from 'react' -import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' -import { formatAmount } from '@webstollen/react-jtl-plugin/lib' -import { molliePaymentStatusLabel, PaymentMethod2img } from '../../../helper' -import { faChevronDoubleDown, faChevronDoubleLeft, faEdit } from '@fortawesome/pro-regular-svg-icons' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { UseMollieReturn } from '../../../hooks/useMollie' -import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' -import MollieContext from '../../../context/MollieContext' - -const Payments = () => { - const mollie = useContext(MollieContext) - const [showPayments, setShowPayments] = useState(false) - const payments = mollie.data?._embedded?.payments || [] - - return payments.length ? ( -
-

setShowPayments((prev) => !prev)}> - Zahlungen ({payments.length}) - -

- {showPayments && ( - - {payments.map((row: Record) => ( - - {row.id} - {molliePaymentStatusLabel(row.status)} - - - - {formatAmount(row.amount.value, 2, row.amount.currency)} - - {row.settlementAmount?.value - ? formatAmount(row.settlementAmount.value, 2, row.settlementAmount.currency) - : '-'} - - - {row.amountRefunded?.value - ? formatAmount(row.amountRefunded.value, 2, row.amountRefunded.currency) - : '-'} - - - {row.amountRemaining?.value - ? formatAmount(row.amountRemaining.value, 2, row.amountRemaining.currency) - : '-'} - - -
{JSON.stringify(row.details, null, 2)}
- - - {new Date(row.createdAt).toLocaleDateString('de-DE')} {new Date(row.createdAt).toLocaleTimeString('de-DE')} - - - {row._links.changePaymentState && ( - - - - )} - - - ))} -
- )} -
- ) : null -} - -const header: Array = [ - { - title: 'ID', - column: 'id', - }, - { - title: 'Status', - column: 'status', - }, - { - title: 'Methode', - column: 'method', - }, - { - title: 'Betrag', - column: 'amount', - }, - { - title: 'Settlement', - column: 'settlement', - }, - { - title: 'Refunded', - column: 'refunded', - }, - { - title: 'Remaining', - column: 'remaining', - }, - { - title: 'Details', - column: 'details', - }, - { - title: 'Erstellt', - column: 'created', - }, - { - title: '', - column: '_actions', - }, -] - -export default Payments diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Queue.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Queue.tsx deleted file mode 100644 index 71d30ee..0000000 --- a/adminmenu/app/src/tabs/Orders/OrderDetails/Queue.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import React, { useEffect, useState } from 'react' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faChevronDoubleDown, faChevronDoubleLeft, faSync } from '@fortawesome/pro-regular-svg-icons' -import useQueue from '../../../hooks/useQueue' -import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' -import { Loading } from '@webstollen/react-jtl-plugin/lib' -import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' - -type QueueProps = { - id: string -} - -const Queue = ({ id }: QueueProps) => { - const [showLogs, setShowLogs] = useState(false) - - const { load, loading, data, error } = useQueue(id) - - useEffect(() => { - load() - }, [load]) - - const reload = (e: React.MouseEvent) => { - load() - e.stopPropagation() - } - - return ( -
-

setShowLogs((prev) => !prev)}> - Queue {data?.length ? <>({data?.length}) : null}{' '} - - {showLogs && ( - - )} -

- {showLogs && - (error ? ( - {error} - ) : ( - - - {data?.map((row) => ( - - {row.kId} - {row.cType} - -
{row.cResult ?? 'n/a'}
- - -
{row.cError ?? 'n/a'}
- - {!row.dDone ? 'PENDING' : 'DONE'} - - {new Date(row.dCreated).toLocaleDateString('de-DE')} {new Date(row.dCreated).toLocaleTimeString('de-DE')} - - {/*TODO: REDO*/} - - ))} -
-
- ))} -
- ) -} - -const header: Array = [ - { - title: 'ID', - column: 'id', - }, - { - title: 'Typ', - column: 'typ', - }, - { - title: 'Result', - column: 'result', - }, - { - title: 'Fehler?', - column: 'error', - }, - { - title: 'Status', - column: 'status', - }, - { - title: 'Erstellt', - column: 'created', - }, - { - title: '', - column: '_actions', - }, -] - -export default Queue diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Refunds.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Refunds.tsx deleted file mode 100644 index b52c78d..0000000 --- a/adminmenu/app/src/tabs/Orders/OrderDetails/Refunds.tsx +++ /dev/null @@ -1,149 +0,0 @@ -import React, { useCallback, useContext, useState } from 'react' -import { formatAmount, Loading } from '@webstollen/react-jtl-plugin/lib' -import { molliePaymentStatusLabel } from '../../../helper' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faChevronDoubleDown, faChevronDoubleLeft } from '@fortawesome/pro-regular-svg-icons' -import Button from '@webstollen/react-jtl-plugin/lib/components/Button' -import { UseMollieReturn } from '../../../hooks/useMollie' -import useErrorSnack from '../../../hooks/useErrorSnack' -import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' -import MollieContext from '../../../context/MollieContext' - -const Refunds = () => { - const { data, refundOrder, refundAmount, cancelRefund, loading } = useContext(MollieContext) - const [showRefunds, setShowRefunds] = useState(false) - const [amountToRefund, setAmountToRefund] = useState(0.0) - const [showError] = useErrorSnack() - - const handleRefundAmount = useCallback( - (amount: number) => { - if ( - window.confirm( - `Möchten Sie wirklich '${amount.toFixed(2)} ${data?.amount.currency}' dieser Zahlung zurück erstatten?` - ) - ) { - refundAmount(amount) - .then(() => setAmountToRefund(0)) - .catch(showError) - } else { - setAmountToRefund(0) - } - }, - [setAmountToRefund, showError, data?.amount.currency, refundAmount] - ) - - const handleCancel = (id: string) => { - if (window.confirm('Diese Erstattung wirklich abbrechen?')) { - cancelRefund(id).catch(showError) - } - } - - const handleRefundOrder = () => { - if (window.confirm('Diese Bestellung bei Mollie wirklich zurück erstatten?')) { - refundOrder().catch(showError) - } - } - - return ( -
-

setShowRefunds((prev) => !prev)}> - Refunds ({data?._embedded?.refunds?.length ?? 0}) - -

- {showRefunds && ( - -
- {data?.id?.substring(0, 3) === 'tr_' && parseFloat(data?.amountRemaining?.value) > 0 && ( -
-
Refund Amount:
-
- setAmountToRefund(parseFloat(e.target.value.replace(',', '.')))} - type="number" - /> -
- {parseFloat(data?.amountRemaining.value) > 0 && ( -
- - - -
- )} -
- )} - {data?._embedded?.refunds?.length ? ( - - {data?._embedded?.refunds?.length && - data?._embedded?.refunds.map((row: Record) => ( - - -
{row.id}
- - {molliePaymentStatusLabel(row.status)} - {row.description} - {formatAmount(row.amount.value, 2, row.amount.currency)} - - {new Date(row.createdAt).toLocaleDateString('de-DE')} {new Date(row.createdAt).toLocaleTimeString('de-DE')} - - - {row.status === 'pending' ? ( - - ) : null} - - - ))} -
- ) : null} -
-
- )} -
- ) -} - -const header: Array = [ - { - title: 'ID', - column: 'id', - }, - { - title: 'Status', - column: 'status', - }, - { - title: 'Beschreibung', - column: 'description', - }, - { - title: 'Betrag', - column: 'amount', - }, - { - title: 'Erstellt', - column: 'created', - }, - { - title: '', - column: '_actions', - }, -] - -export default Refunds diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/Shipments.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/Shipments.tsx deleted file mode 100644 index 2f29544..0000000 --- a/adminmenu/app/src/tabs/Orders/OrderDetails/Shipments.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import React, { useContext, useEffect, useState } from 'react' -import Button from '@webstollen/react-jtl-plugin/lib/components/Button' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faChevronDoubleDown, faChevronDoubleLeft, faShippingFast, faSync } from '@fortawesome/pro-regular-svg-icons' -import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' -import { UseMollieReturn } from '../../../hooks/useMollie' -import useShipments from '../../../hooks/useShipments' -import useErrorSnack from '../../../hooks/useErrorSnack' -import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' -import MollieContext from '../../../context/MollieContext' - -export type ShipmentsProps = { - kBestellung: number -} - -const Shipments = ({ kBestellung }: ShipmentsProps) => { - const mollie = useContext(MollieContext) - const [showShipments, setShowShipments] = useState(false) - const [showError] = useErrorSnack() - const { load, data, loading, sync } = useShipments(kBestellung) - - useEffect(() => { - load() - }, [load]) - - const syncShipping = (kLieferschein: number) => { - sync(mollie.data?.id, kLieferschein) - .then(async (resp) => { - if (resp.data.error) { - showError(resp.data.error.message) - } else { - await load() - } - }) - .catch(showError) - } - - return ( -
-

setShowShipments((prev) => !prev)}> - Lieferungen ({mollie.data?._embedded?.shipments?.length}) - -

- - {showShipments && ( - - {data?.map((row) => ( - - - {row.shipment ? ( - - {row.cLieferscheinNr} - - ) : ( - row.cLieferscheinNr - )} - - {row.shipment?.cShipmentId ? row.shipment?.cShipmentId : '-'} - {row.shipment?.cCarrier ? row.shipment.cCarrier : 'n/a'} - - {row.shipment?.cCode ? ( - - {row.shipment?.cCode} - - ) : ( - 'n/a' - )} - - - {mollie.data?.status !== 'completed' && row.shipment === null && ( - - )} - {row.cUrl && ( - - )} - - - ))} - - )} -
- ) -} - -const header: Array = [ - { - title: 'Lieferschein', - column: 'cLieferschein', - }, - { - title: 'Shipment ID', - column: 'id', - }, - { - title: 'Carrier', - column: 'carrier', - }, - { - title: 'Code', - column: 'code', - }, - { - title: '', - column: '_actions', - }, -] - -export default Shipments diff --git a/adminmenu/app/src/tabs/Orders/OrderDetails/index.tsx b/adminmenu/app/src/tabs/Orders/OrderDetails/index.tsx deleted file mode 100644 index da249ef..0000000 --- a/adminmenu/app/src/tabs/Orders/OrderDetails/index.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import React, { useEffect } from 'react' -import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' -import { faExclamation } from '@fortawesome/pro-solid-svg-icons' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { Loading } from '@webstollen/react-jtl-plugin/lib' -import Details from './Details' -import useMollie from '../../../hooks/useMollie' -import { faSync, faTimes } from '@fortawesome/pro-regular-svg-icons' -import useOrder from '../../../hooks/useOrder' -import OrderLines from './OrderLines' -import Payments from './Payments' -import Shipments from './Shipments' -import Refunds from './Refunds' -import Queue from './Queue' -import Logs from './Logs' -import MollieContext from '../../../context/MollieContext' - -export type OrderDetailsProps = { - id: string - onClose?: (event: React.MouseEvent) => void -} -const OrderDetails = (props: OrderDetailsProps) => { - const mollie = useMollie(props.id, true) - const { loading: orderLoading, load: orderLoad, error: orderError, data: orderData } = useOrder(props.id) - - const reload = () => { - orderLoad() - mollie.load() - } - - useEffect(() => { - orderLoad() - }, [orderLoad]) - - if (mollie.error !== null || orderError !== null) { - return ( -
-
-
- Bestellung: {orderData?.cBestellNr} (
{props.id}
) -
-
- -
-
- -
-
- {orderError != null && ( - - Fehler beim laden der Bestellung "{props.id}": {orderError} - - )} - {mollie.error != null && ( - - Fehler beim Laden von Mollie "{props.id}": {mollie.error} - - )} -
- ) - } - - return ( -
- -
-
- Bestellung: {orderData?.cBestellNr} ( -
{props.id}
) -
-
- -
-
- -
-
-
- - -
- {mollie && mollie?.data?.resource === 'payment' ? ( - <> - ) : ( - <> - - - {orderData && } - - )} - - {mollie?.data && orderData?.kBestellung && ( - - )} - - - -
-
-
- ) -} - -export default OrderDetails diff --git a/adminmenu/app/src/tabs/Orders/index.tsx b/adminmenu/app/src/tabs/Orders/index.tsx deleted file mode 100644 index 6436140..0000000 --- a/adminmenu/app/src/tabs/Orders/index.tsx +++ /dev/null @@ -1,238 +0,0 @@ -import React, { useCallback, useEffect, useState } from 'react' -import { formatAmount, Label, usePluginInfo } from '@webstollen/react-jtl-plugin/lib' -import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' -import OrderDetails from './OrderDetails' -import useErrorSnack from '../../hooks/useErrorSnack' -import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' -import useOrders from '../../hooks/useOrders' -import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' -import { jtlStatus2label, molliePaymentStatusLabel, PaymentMethod2img } from '../../helper' -import Button from '@webstollen/react-jtl-plugin/lib/components/Button' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faBolt, faEnvelopeOpenDollar, faSync, faUnlock } from '@fortawesome/pro-regular-svg-icons' -import useSuccessSnack from '../../hooks/useSuccessSnack' -import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' -import Modal from "@webstollen/react-jtl-plugin/lib/components/Modal"; - - -const Orders = () => { - const [showSuccess] = useSuccessSnack() - const [loading, setLoading] = useState(false) - const api = useApi() - const pluginInfo = usePluginInfo() - const [showError] = useErrorSnack() - - const [openOrderId, setOpenOrderId] = useState(null) - const modalProps = Modal.useModal() - - const { loading: ordersLoading, load: loadOrders, error: ordersError, data: ordersData } = useOrders() - const [ordersState, setOrderState] = useState({ - page: 0, - perPage: 10, - query: '', - }) - - useEffect(() => { - loadOrders(ordersState.page, ordersState.perPage, ordersState.query) - }, [loadOrders, ordersState.perPage, ordersState.page, ordersState.query]) - - const reWebhook = (id: string) => { - setLoading(true) - fetch(pluginInfo.shopURL + `?mollie=1&id=${id}&admin=1`, { - mode: 'no-cors', - method: 'GET', - }) - .then(() => fetch(pluginInfo.shopURL, { mode: 'no-cors' }).then(reload)) - .catch((e) => showError(`${e}`)) - .finally(() => setLoading(false)) - } - - const sendReminder = (id: number) => { - setLoading(true) - api - .run('orders', 'reminder', { id: id }) - .then(async () => { - showSuccess('E-Mail versendet.') - await reload() - }) - .catch(showError) - .finally(() => setLoading(false)) - } - - const makeFetchable = (id: string) => { - setLoading(true) - api - .run('orders', 'fetchable', { - id: id, - }) - .then(reload) - .catch((e) => showError(`${e}`)) - .finally(() => setLoading(false)) - } - - const reload = useCallback( - async () => await loadOrders(ordersState.page, ordersState.perPage, ordersState.query), - [ordersState.page, ordersState.perPage, loadOrders, ordersState.query] - ) - const handleTableChange = async (page: number, perPage: number) => { - if (page === ordersState.page && perPage === ordersState.perPage) { - await reload() - } else { - setOrderState((p) => ({ ...p, page: page, perPage: perPage })) - } - } - - const handleSearch = useCallback( - (query: string) => { - if (query !== ordersState.query) { - setOrderState((p) => ({ ...p, query: query, page: 0 })) - } - }, - [setOrderState, ordersState.query] - ) - - const OrderTable = ordersError ? ( - - {ordersError}{' '} - loadOrders(ordersState.page, ordersState.perPage, ordersState.query)}> - Erneut versuchen! - - - ) : ( - - {ordersData?.items && ordersData?.items.length > 0 - ? ordersData?.items.map((row: Record) => ( - - - { - setOpenOrderId(row.cOrderId) - modalProps.setIsOpen(true) - }} - > - {row.cBestellNr} - - {!parseInt(row.bSynced) ? ( - - * - - ) : null} - - - {parseInt(row.bTest) ? ( - - ) : null} -
{row.cOrderId}
- - - {molliePaymentStatusLabel(row.fAmountRefunded === row.fAmount ? 'refunded' : row.cStatus)} - - {jtlStatus2label(row.cJTLStatus)} - - - - {formatAmount(row.fAmount)} - {row.cCurrency} - - {new Date(row.dCreated).toLocaleDateString('de-DE')} {new Date(row.dCreated).toLocaleTimeString('de-DE')} - - - {!parseInt(row.bSynced) && ( - - )} - - {!['paid', 'authorized', 'completed', 'pending'].includes(row.cStatus) && - parseInt(row.cJTLStatus) > 0 ? ( - - ) : null} - - - - - )) - : null} -
- ) - - return ( -
- - {openOrderId && } - -
{OrderTable}
-
- ) -} - -export default Orders - -const header: Array = [ - { - title: 'BestellNr', - column: 'cBestellNr', - }, - { - title: 'Mollie ID', - column: 'cOrderId', - }, - { - title: 'Mollie Status', - column: 'cStatus', - }, - { - title: 'JTL Status', - column: 'cJTLStatus', - }, - { - title: 'Methode', - column: 'cMethod', - }, - { - title: 'Betrag', - column: 'fAmount', - }, - { - title: 'Währung', - column: 'cCurrency', - }, - { - title: 'Erstellt', - column: 'dCreated', - }, - { - title: '', - column: '_actions', - }, -] diff --git a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGrid.tsx b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGrid.tsx deleted file mode 100644 index 9fc39a3..0000000 --- a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGrid.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import {MergedPaymentMethodObject} from "../../../types/PaymentMethod"; -import React from "react"; -import {usePluginInfo} from "@webstollen/react-jtl-plugin/lib"; -import PaymentMethodGridItem from "./PaymentMethodGridItem"; - -const PaymentMethodGrid = ({paymentMethods}: {paymentMethods: Array}) => { - const pluginInfo = usePluginInfo(); - - return ( -
- {paymentMethods?.map((mergedPaymentMethodObject: MergedPaymentMethodObject) => { - return ( - - ) - })} -
- ) -} - -export default PaymentMethodGrid \ No newline at end of file diff --git a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/AdditionalInformation.tsx b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/AdditionalInformation.tsx deleted file mode 100644 index c766dc1..0000000 --- a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/AdditionalInformation.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; -import {MergedPaymentMethodObject} from "../../../../types/PaymentMethod"; - -const AdditionalInformation = ({mergedPaymentMethodObject}: {mergedPaymentMethodObject: MergedPaymentMethodObject}) => { - - return ( - <> -

Informationen

-

Mollie-API{mergedPaymentMethodObject?.api ? (mergedPaymentMethodObject.api === "payment" ? "Payment-API" : "Order-API") : "Keine"}

-

Fälligkeit in Tagen{mergedPaymentMethodObject.dueDays} Tagen

-

Minimum{mergedPaymentMethodObject?.mollie?.minimumAmount ? (mergedPaymentMethodObject?.mollie?.minimumAmount?.value + " " + mergedPaymentMethodObject?.mollie?.minimumAmount?.currency): "Unbekannt"}

-

Maximum{mergedPaymentMethodObject?.mollie?.maximumAmount ? (mergedPaymentMethodObject?.mollie?.maximumAmount?.value + " " + mergedPaymentMethodObject?.mollie?.maximumAmount?.currency): "Unbekannt"}

- - ) -} - -export default AdditionalInformation \ No newline at end of file diff --git a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/ConfigurationItems.tsx b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/ConfigurationItems.tsx deleted file mode 100644 index 5b0b2aa..0000000 --- a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/ConfigurationItems.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; -import {faCheckCircle, faGear, faLink, faXmarkCircle} from "@fortawesome/pro-solid-svg-icons"; -import React from "react"; -import PluginInfo from "@webstollen/react-jtl-plugin/lib/types/PluginInfo"; -import {MergedPaymentMethodObject} from "../../../../types/PaymentMethod"; - -const ConfigurationItems = ({mergedPaymentMethodObject, pluginInfo}: {mergedPaymentMethodObject: MergedPaymentMethodObject, pluginInfo: PluginInfo}) => { - - const mollieProfileSettingsPageUrl = "https://my.mollie.com/dashboard/settings/profiles/" - - const shippingPageUrl = - pluginInfo.shopVersionEqualOrGreaterThan520 - ? pluginInfo.adminURL + "/shippingmethods" - : pluginInfo.adminURL + "/versandarten.php" - - - const paymentSettingsPageUrl = pluginInfo.shopVersionEqualOrGreaterThan520 - ? pluginInfo.adminURL + "/paymentmethods?kZahlungsart=" + mergedPaymentMethodObject.paymentMethod.kZahlungsart + "&token=" + pluginInfo.token - : pluginInfo.adminURL + "/zahlungsarten.php?kZahlungsart=" + mergedPaymentMethodObject.paymentMethod.kZahlungsart + "&token=" + pluginInfo.token - - return ( - <> -

Konfiguration

-

Bei Mollie aktiv - {mergedPaymentMethodObject.mollie.status === "activated" - ? - : - - - - } -

-

Im Shop aktiv {mergedPaymentMethodObject.paymentMethod.nActive === "1" ? - : - } - -

-

Versandart verknüpft {mergedPaymentMethodObject.linkedShippingMethods.length > 0 - ? - : - - - } - -

- {mergedPaymentMethodObject?.allowDuringCheckout - ?

Zahlung vor Bestellabschluss {mergedPaymentMethodObject.paymentMethod.nWaehrendBestellung === "1" - ? - : <> - - - - } - -

- :

Zahlung nach Bestellabschluss {mergedPaymentMethodObject.paymentMethod.nWaehrendBestellung === "0" - ? - : <> - - - - } - -

- } - - ) -} - -export default ConfigurationItems \ No newline at end of file diff --git a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/index.tsx b/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/index.tsx deleted file mode 100644 index d0414c2..0000000 --- a/adminmenu/app/src/tabs/PaymentMethods/components/PaymentMethodGridItem/index.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import {MergedPaymentMethodObject} from "../../../../types/PaymentMethod"; -import {PaymentMethod2img} from "../../../../helper"; -import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; -import {faCheckCircle, faChevronDown, faChevronUp, faXmarkCircle, faCircleInfo} from "@fortawesome/pro-solid-svg-icons"; -import React, {useState} from "react"; -import PluginInfo from "@webstollen/react-jtl-plugin/lib/types/PluginInfo"; -import ConfigurationItems from "./ConfigurationItems"; -import AdditionalInformation from "./AdditionalInformation"; -import Alert from "@webstollen/react-jtl-plugin/lib/components/Alert"; - -const PaymentMethodGridItem = ({mergedPaymentMethodObject, pluginInfo}: {mergedPaymentMethodObject: MergedPaymentMethodObject, pluginInfo: PluginInfo}) => { - const [isOpen, setIsOpen] = useState(false) - - return ( -
-
setIsOpen(prevState => !prevState)} className="flex items-center cursor-pointer"> - - {mergedPaymentMethodObject.paymentMethod.cName === 'Klarna' ? 'One Klarna' : mergedPaymentMethodObject.paymentMethod.cName} - - -
-
- { mergedPaymentMethodObject?.paymentMethod?.cName === 'Giropay' ? - // TODO remove with Giropay within the next Update - <> - Diese Zahlungsart ist bei Mollie nicht länger verfügbar. Sie wird im Checkout nicht weiter angezeigt und mit dem nächsten Update gelöscht. -
- - : - <> - -
- - - } -
-
- ) -} - - -const StatusIcon = ({mergedPaymentMethodObject}: {mergedPaymentMethodObject: MergedPaymentMethodObject}) => { - - const paymentDuringCheckoutAllowed = ["Creditcard", "Banktransfer"] - - let icon; - if (mergedPaymentMethodObject.paymentMethod.nActive !== "1" || mergedPaymentMethodObject.mollie?.status !== "activated" || (mergedPaymentMethodObject?.linkedShippingMethods?.length ?? 0) === 0) { - icon = - } else if (mergedPaymentMethodObject.paymentMethod.nWaehrendBestellung !== "1" && !paymentDuringCheckoutAllowed.includes(mergedPaymentMethodObject?.paymentMethod?.cName ?? "")) { - icon = - } else { - icon = - if (mergedPaymentMethodObject.paymentMethod.cName === "Giropay") { - icon = - } - } - - return ( - {icon} - ) -} - -export default PaymentMethodGridItem \ No newline at end of file diff --git a/adminmenu/app/src/tabs/PaymentMethods/index.tsx b/adminmenu/app/src/tabs/PaymentMethods/index.tsx deleted file mode 100644 index aa546fb..0000000 --- a/adminmenu/app/src/tabs/PaymentMethods/index.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import React from "react"; -import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; -import {faCircleInfo} from "@fortawesome/pro-solid-svg-icons"; -import {Loading} from "@webstollen/react-jtl-plugin/lib"; -import {MergedPaymentMethodObject} from "../../types/PaymentMethod"; -import PaymentMethodGrid from "./components/PaymentMethodGrid"; -import {usePaymentMethods} from "../../context/PaymentMethodContext"; - - -const PaymentMethods = () => { - const {paymentMethods} = usePaymentMethods() - - // Split into active and inactive payment methods - let activeMethods: Array = [] - let inactiveAndInvalidMethods: Array = [] - - paymentMethods && - Object.values(paymentMethods).forEach((paymentMethod) => { - if ( - paymentMethod.mollie.status === 'activated' && - paymentMethod.linkedShippingMethods.length && - paymentMethod.paymentMethod?.nActive === "1" && - (!paymentMethod.duringCheckout || paymentMethod.allowDuringCheckout) - ) { - activeMethods.push(paymentMethod) - } else { - inactiveAndInvalidMethods.push(paymentMethod) - } - }) - - return ( -
- - {!paymentMethods - ?
- : <> -
-

Aktive Zahlungsarten:

- { activeMethods && activeMethods.length > 0 - ? - :
- -

Momentan ist noch kein Mollie Zahlungsart aktiv. Erfülle bei den gewünschten Zahlungsarten unten die roten markierten Bedingungen um die Zahlungsart zu aktivieren.

-
- } -
-
-

Inaktive Zahlungsarten:

- -
- - } - -
- ); -} - -export default PaymentMethods; - - diff --git a/adminmenu/app/src/tabs/Queue/index.tsx b/adminmenu/app/src/tabs/Queue/index.tsx deleted file mode 100644 index 9e11c59..0000000 --- a/adminmenu/app/src/tabs/Queue/index.tsx +++ /dev/null @@ -1,188 +0,0 @@ -import React, { useCallback, useEffect, useState } from 'react' -import useApi from '@webstollen/react-jtl-plugin/lib/hooks/useAPI' -import useQueues from '../../hooks/useQueues' -import useErrorSnack from '../../hooks/useErrorSnack' -import DataTable, { DataTableHeader } from '@webstollen/react-jtl-plugin/lib/components/DataTable/DataTable' -import Button from '@webstollen/react-jtl-plugin/lib/components/Button' -import { faBolt, faLock, faTrash } from '@fortawesome/pro-regular-svg-icons' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import Alert from '@webstollen/react-jtl-plugin/lib/components/Alert' -import TextLink from '@webstollen/react-jtl-plugin/lib/components/TextLink' - -const Queue = () => { - const [loading, setLoading] = useState(false) - const api = useApi() - const [showError] = useErrorSnack() - const { data, load, error, loading: queueLoading } = useQueues() - const [queuesState, setQueuesState] = useState({ - page: 0, - perPage: 10, - query: '', - }) - - const reload = useCallback( - async () => await load(queuesState.page, queuesState.perPage, queuesState.query), - [load, queuesState.page, queuesState.perPage, queuesState.query] - ) - - useEffect(() => { - load(queuesState.page, queuesState.perPage, queuesState.query) - }, [load, queuesState.page, queuesState.perPage, queuesState.query]) - - const deleteQueue = (id: number) => { - setLoading(true) - api - .run('queue', 'delete', { id: id }) - .then(reload) - .catch(showError) - .finally(() => setLoading(false)) - } - - const unlockQueue = (id: number) => { - setLoading(true) - api - .run('queue', 'unlock', { id: id }) - .then(reload) - .catch(showError) - .finally(() => setLoading(false)) - } - - const runQueue = (id: number) => { - setLoading(true) - api - .run('queue', 'run', { id: id }) - .then(reload) - .catch(showError) - .finally(() => setLoading(false)) - } - - const header: Array = [ - { - title: 'ID', - column: 'kID', - }, - { - title: 'Type', - column: 'cType', - }, - { - title: 'Result?', - column: 'cResult', - }, - { - title: 'Error?', - column: 'cError', - }, - { - title: 'Erledigt', - column: 'dDone', - }, - { - title: 'Erstellt', - column: 'dCreated', - }, - { - title: '', - column: '_actions', - }, - ] - - const handleTableChange = async (page: number, perPage: number) => { - if (page === queuesState.page && perPage === queuesState.perPage) { - await load(queuesState.page, queuesState.perPage) - } else { - setQueuesState((p) => ({ ...p, page: page, perPage: perPage })) - } - } - - const handleSearch = useCallback( - (query: string) => { - if (query !== queuesState.query) { - setQueuesState((p) => ({ ...p, query: query, page: 0 })) - } - }, - [setQueuesState, queuesState.query] - ) - - const table = error ? ( - - {error}{' '} - - Erneut versuchen! - - - ) : ( - - {data?.items?.map((row) => ( - - {row.kId} - - {row.cType} - - -
{row.cResult}
- - -
{row.cError}
- - {row.dDone ? <>{new Date(row.dDone).toLocaleDateString('de-DE')} {new Date(row.dDone).toLocaleTimeString('de-DE')} : '-'} - {row.dCreated ? <>{new Date(row.dCreated).toLocaleDateString('de-DE')} {new Date(row.dCreated).toLocaleTimeString('de-DE')} : '-'} - -
- {row.bLock ? ( -
- - {new Date(row.bLock).toLocaleDateString('de-DE')} {new Date(row.bLock).toLocaleTimeString('de-DE')} -
- ) : ( - - )} - -
- - - ))} -
- ) - - return ( -
-
{table}
-
- ) -} - -export default Queue diff --git a/adminmenu/app/src/types/PaymentMethod.ts b/adminmenu/app/src/types/PaymentMethod.ts deleted file mode 100644 index 3abf438..0000000 --- a/adminmenu/app/src/types/PaymentMethod.ts +++ /dev/null @@ -1,39 +0,0 @@ -export type PaymentMethod = { - kZahlungsart: number - cName?: string - cModulId?: string - cKundengruppen?: string - cZusatzschrittTemplate: string - cPluginTemplate?: string - cBild: string - nSort: "0" | "1" - nMailSenden: number - nActive: "0" | "1" - cAnbieter: string - cTSCode: string - nWaehrendBestellung: "0" | "1" - nCURL: "0" | "1" - nSOAP: "0" | "1" - nSOCKETS: "0" | "1" - nNutzbar: "0" | "1" - shipping: Array> - requirements: string -} - -/** - * Merged object of info from shop and Mollie about payment method - */ - export type MergedPaymentMethodObject = { - log?: number - linkToSettingsPage: string - mollie: Record - duringCheckout?: boolean - allowDuringCheckout?: boolean - paymentMethod: PaymentMethod - linkedShippingMethods: Array> - api?: 'order' | 'payment' - components?: string - dueDays?: number -} - -export type MergedPaymentMethodsMappedByMollieId = Record