From 97721717044c52d3e33d93849dd1823f05674a9b Mon Sep 17 00:00:00 2001 From: Ibraheem Jarrar Date: Tue, 29 Mar 2022 12:29:00 +0300 Subject: [PATCH 1/3] adding zoodpay --- .../Block/Adminhtml/Order/View/Custom.php | 0 Hyperpay/Extension/Block/Display.php | 0 Hyperpay/Extension/Block/Status.php | 0 .../Extension/Controller/Index/Request.php | 0 Hyperpay/Extension/Controller/Index/Sadad.php | 0 .../Controller/Index/ServerToServer.php | 255 +++++++++++ .../Controller/Index/ServerToServerStatus.php | 156 +++++++ .../Extension/Controller/Index/Sstatus.php | 0 .../Extension/Controller/Index/Status.php | 0 .../Extension/Cron/CancelOrderPending.php | 0 Hyperpay/Extension/Helper/Data.php | 361 +++++++++------- Hyperpay/Extension/Model/Adapter.php | 225 ++++++---- .../Extension/Model/MainConfigProvider.php | 3 +- Hyperpay/Extension/Model/Method/Amex.php | 0 Hyperpay/Extension/Model/Method/Applepay.php | 0 Hyperpay/Extension/Model/Method/Mada.php | 0 Hyperpay/Extension/Model/Method/Master.php | 0 .../Extension/Model/Method/MethodAbstract.php | 0 Hyperpay/Extension/Model/Method/PayPal.php | 0 Hyperpay/Extension/Model/Method/SadadNcb.php | 0 .../Extension/Model/Method/SadadPayware.php | 0 Hyperpay/Extension/Model/Method/Stc.php | 0 Hyperpay/Extension/Model/Method/Visa.php | 0 Hyperpay/Extension/Model/Method/Zoodpay.php | 19 + Hyperpay/Extension/Model/Source/BlackBins.php | 0 .../Extension/Model/Source/Connectors.php | 0 Hyperpay/Extension/Model/Source/Mode.php | 0 .../Extension/Model/Source/PaymentAction.php | 0 Hyperpay/Extension/Model/Source/Style.php | 0 .../Observer/BeforeOrderPlaceObserver.php | 0 Hyperpay/Extension/composer.json | 0 Hyperpay/Extension/etc/adminhtml/system.xml | 404 ++++++++++++------ Hyperpay/Extension/etc/config.xml | 208 ++++----- Hyperpay/Extension/etc/cron_groups.xml | 0 Hyperpay/Extension/etc/crontab.xml | 0 Hyperpay/Extension/etc/csp_whitelist.xml | 0 Hyperpay/Extension/etc/events.xml | 0 Hyperpay/Extension/etc/frontend/di.xml | 0 Hyperpay/Extension/etc/frontend/routes.xml | 0 Hyperpay/Extension/etc/module.xml | 0 Hyperpay/Extension/i18n/ar_SA.csv | 0 Hyperpay/Extension/i18n/en_US.csv | 0 Hyperpay/Extension/registration.php | 0 .../adminhtml/layout/sales_order_view.xml | 0 .../templates/order/view/custom.phtml | 0 .../frontend/layout/checkout_index_index.xml | 59 ++- .../layout/hyperpay_index_request.xml | 0 .../layout/hyperpay_index_sstatus.xml | 0 .../frontend/layout/hyperpay_index_status.xml | 0 .../view/frontend/templates/form.phtml | 0 .../view/frontend/templates/status.phtml | 0 .../view/frontend/web/images/amex.svg | 0 .../view/frontend/web/images/apple.svg | 0 .../view/frontend/web/images/mada.svg | 0 .../view/frontend/web/images/master.svg | 0 .../frontend/web/images/maxresdefault.jpg | Bin 0 -> 89112 bytes .../view/frontend/web/images/paypal.svg | 0 .../view/frontend/web/images/sadad.png | Bin .../view/frontend/web/images/stc.png | Bin .../view/frontend/web/images/visa.svg | 0 .../view/frontend/web/images/zoodpay.png | Bin 0 -> 3431 bytes .../web/js/view/payment/method-renderer.js | 6 +- .../method-renderer/DefaultPaymentMethods.js | 0 .../payment/method-renderer/SadadPayware.js | 0 .../view/payment/method-renderer/Zoodpay.js | 27 ++ .../web/template/payment/hyperpay.html | 0 66 files changed, 1230 insertions(+), 493 deletions(-) mode change 100644 => 100755 Hyperpay/Extension/Block/Adminhtml/Order/View/Custom.php mode change 100644 => 100755 Hyperpay/Extension/Block/Display.php mode change 100644 => 100755 Hyperpay/Extension/Block/Status.php mode change 100644 => 100755 Hyperpay/Extension/Controller/Index/Request.php mode change 100644 => 100755 Hyperpay/Extension/Controller/Index/Sadad.php create mode 100755 Hyperpay/Extension/Controller/Index/ServerToServer.php create mode 100644 Hyperpay/Extension/Controller/Index/ServerToServerStatus.php mode change 100644 => 100755 Hyperpay/Extension/Controller/Index/Sstatus.php mode change 100644 => 100755 Hyperpay/Extension/Controller/Index/Status.php mode change 100644 => 100755 Hyperpay/Extension/Cron/CancelOrderPending.php mode change 100644 => 100755 Hyperpay/Extension/Helper/Data.php mode change 100644 => 100755 Hyperpay/Extension/Model/Adapter.php mode change 100644 => 100755 Hyperpay/Extension/Model/MainConfigProvider.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/Amex.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/Applepay.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/Mada.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/Master.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/MethodAbstract.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/PayPal.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/SadadNcb.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/SadadPayware.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/Stc.php mode change 100644 => 100755 Hyperpay/Extension/Model/Method/Visa.php create mode 100755 Hyperpay/Extension/Model/Method/Zoodpay.php mode change 100644 => 100755 Hyperpay/Extension/Model/Source/BlackBins.php mode change 100644 => 100755 Hyperpay/Extension/Model/Source/Connectors.php mode change 100644 => 100755 Hyperpay/Extension/Model/Source/Mode.php mode change 100644 => 100755 Hyperpay/Extension/Model/Source/PaymentAction.php mode change 100644 => 100755 Hyperpay/Extension/Model/Source/Style.php mode change 100644 => 100755 Hyperpay/Extension/Observer/BeforeOrderPlaceObserver.php mode change 100644 => 100755 Hyperpay/Extension/composer.json mode change 100644 => 100755 Hyperpay/Extension/etc/adminhtml/system.xml mode change 100644 => 100755 Hyperpay/Extension/etc/config.xml mode change 100644 => 100755 Hyperpay/Extension/etc/cron_groups.xml mode change 100644 => 100755 Hyperpay/Extension/etc/crontab.xml mode change 100644 => 100755 Hyperpay/Extension/etc/csp_whitelist.xml mode change 100644 => 100755 Hyperpay/Extension/etc/events.xml mode change 100644 => 100755 Hyperpay/Extension/etc/frontend/di.xml mode change 100644 => 100755 Hyperpay/Extension/etc/frontend/routes.xml mode change 100644 => 100755 Hyperpay/Extension/etc/module.xml mode change 100644 => 100755 Hyperpay/Extension/i18n/ar_SA.csv mode change 100644 => 100755 Hyperpay/Extension/i18n/en_US.csv mode change 100644 => 100755 Hyperpay/Extension/registration.php mode change 100644 => 100755 Hyperpay/Extension/view/adminhtml/layout/sales_order_view.xml mode change 100644 => 100755 Hyperpay/Extension/view/adminhtml/templates/order/view/custom.phtml mode change 100644 => 100755 Hyperpay/Extension/view/frontend/layout/checkout_index_index.xml mode change 100644 => 100755 Hyperpay/Extension/view/frontend/layout/hyperpay_index_request.xml mode change 100644 => 100755 Hyperpay/Extension/view/frontend/layout/hyperpay_index_sstatus.xml mode change 100644 => 100755 Hyperpay/Extension/view/frontend/layout/hyperpay_index_status.xml mode change 100644 => 100755 Hyperpay/Extension/view/frontend/templates/form.phtml mode change 100644 => 100755 Hyperpay/Extension/view/frontend/templates/status.phtml mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/images/amex.svg mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/images/apple.svg mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/images/mada.svg mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/images/master.svg create mode 100644 Hyperpay/Extension/view/frontend/web/images/maxresdefault.jpg mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/images/paypal.svg mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/images/sadad.png mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/images/stc.png mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/images/visa.svg create mode 100755 Hyperpay/Extension/view/frontend/web/images/zoodpay.png mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer.js mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/DefaultPaymentMethods.js mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/SadadPayware.js create mode 100755 Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/Zoodpay.js mode change 100644 => 100755 Hyperpay/Extension/view/frontend/web/template/payment/hyperpay.html diff --git a/Hyperpay/Extension/Block/Adminhtml/Order/View/Custom.php b/Hyperpay/Extension/Block/Adminhtml/Order/View/Custom.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Block/Display.php b/Hyperpay/Extension/Block/Display.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Block/Status.php b/Hyperpay/Extension/Block/Status.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Controller/Index/Request.php b/Hyperpay/Extension/Controller/Index/Request.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Controller/Index/Sadad.php b/Hyperpay/Extension/Controller/Index/Sadad.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Controller/Index/ServerToServer.php b/Hyperpay/Extension/Controller/Index/ServerToServer.php new file mode 100755 index 0000000..ed63d07 --- /dev/null +++ b/Hyperpay/Extension/Controller/Index/ServerToServer.php @@ -0,0 +1,255 @@ +_coreRegistry = $coreRegistry; + parent::__construct($context); + $this->_checkoutSession = $checkoutSession; + $this->_helper = $helper; + $this->_pageFactory = $pageFactory; + $this->_adapter = $adapter; + $this->_storeManager = $storeManager; + $this->_resolver = $resolver; + $this->_remote = $remote; + $this->_stockManagement = $stockManagement; + $this->_quoteFactory = $quoteFactory; + + } + + public function execute() + { + try { + if (!($this->_checkoutSession->getLastRealOrderId())) { + $this->_helper->doError(__('Order is not found')); + } + + $order = $this->_checkoutSession->getLastRealOrder(); + } catch (\Exception $e) { + $this->messageManager->addError($e->getMessage()); + return $this->_pageFactory->create(); + } + $quote = $this->_quoteFactory->create()->load($order->getQuoteId()); + $quote->setIsActive(true); + $quote->save(); + $this->_checkoutSession->replaceQuote($quote); + if (($order->getState() !== 'new') && ($order->getState() !== 'pending_payment')) { + $this->messageManager->addError(__("This order has already been processed,Please place a new order")); + $resultRedirect = $this->resultRedirectFactory->create(); + $resultRedirect->setPath('checkout/onepage/failure'); + return $resultRedirect; + } + try { + $base = $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB); + $statusUrl = $base . "hyperpay/index/servertoserverstatus/?method=" . $order->getPayment()->getData('method'); + $urlReq = $this->serverToServer($order, $statusUrl); + + } catch (\Exception $e) { + $this->messageManager->addError($e->getMessage()); + $resultRedirect = $this->resultRedirectFactory->create(); + $resultRedirect->setPath('checkout/onepage/failure'); + return $resultRedirect; + } + + $this->_coreRegistry->register('formurl', $urlReq); + $this->_coreRegistry->register('status', $statusUrl); + + return $this->_pageFactory->create(); + } + + /** + * Build data and make a request to hyperpay payment gateway + * and return url of form + * + * @param $order + * @return string + */ + public function serverToServer($order, $status) + { + $payment = $order->getPayment(); + $method = $payment->getData('method'); + $email = $order->getBillingAddress()->getEmail(); + //order# + $orderId = $order->getIncrementId(); + $amount = $order->getBaseGrandTotal(); + $total = $this->_helper->convertPrice($payment, $amount); + + if ($this->_adapter->getEnv()) { + $grandTotal = (int)$total; + } else { + $grandTotal = number_format($total, 2, '.', ''); + } + + $currency = $this->_adapter->getSupportedCurrencyCode($method); + $paymentType = $this->_adapter->getPaymentType($method); + $this->_adapter->setPaymentTypeAndCurrency($order, $paymentType, $currency); + $entityId = $this->_adapter->getEntity($method); + $baseUrl = $this->_adapter->getServerToServerUrl(); + $data = "entityId=" . $entityId . + "¬ificationUrl=" . $status . + "&shopperResultUrl=" . $status . + "&amount=" . $grandTotal . + "&paymentBrand=ZOODPAY" . + "¤cy=" . $currency . + "&paymentType=" . $paymentType . + "&customer.email=" . $email . + "&testMode=EXTERNAL" . + "&merchantTransactionId=" . $orderId . + "&customParameters[service_code]=ZPI"; // fixed + + $accesstoken = $this->_adapter->getAccessToken(); + $auth = array('Authorization' => 'Bearer ' . $accesstoken); + $this->_helper->setHeaders($auth); + + $data .= $this->_helper->getBillingAndShippingAddress($order); + $data .= $this->buildCartItems(); + + $decodedData = $this->_helper->getCurlServerToServer($baseUrl, $data); + if (!isset($decodedData['id'])) { + $this->_helper->doError(__('Request id is not found')); + return; + } + + if (!isset($decodedData['result']['code']) || $decodedData['result']['code'] != '000.200.000') { + $desc = \Safe\json_decode($decodedData['resultDetails']['ExtendedDescription'],true); + $errors = ''; + if (isset($desc['details'])) { + foreach ($desc['details'] as $detail){ + $errors .= $detail['error'] . ' - '; + } + } + $this->_helper->doError(__($errors)); + return; + } + + $redirectForm = $this->buildRedirectForm($decodedData); + if (!$redirectForm) { + $this->_helper->doError(__($decodedData['result']['description'])); + return; + } + + echo $redirectForm; + } + + private function buildCartItems() + { + $objectManager = ObjectManager::getInstance(); + $cart = $objectManager->get('\Magento\Checkout\Model\Cart'); + // retrieve quote items array + $items = $cart->getQuote()->getAllItems(); + $cartData = ''; + $categories = []; + + foreach ($items as $key => $item) { + $cartData .= "&cart.items[" . $key . "].name=" . $item->getName() . + "&cart.items[" . $key . "].price=" . number_format($item->getPrice(), 2, '.', '') . + "&cart.items[" . $key . "].quantity=" . $item->getQty(); +// "&cart.items[" . $key . "].description=" . $item->getName() . +// "&cart.items[" . $key . "].giftMessage=" . $item->getName(); + + $categories[] = [["test"]]; + } + $cartData .= "&customParameters['categories']=" . (json_encode($categories)); + + return $cartData; + } + + private function buildRedirectForm($data) + { + if (!isset($data['redirect'])) { + return false; + } + + $form = '
'; + foreach ($data['redirect']['parameters'] as $param) { + $form .= ''; + } + $form .= '
'; + $form .= ''; + return $form; + } +} diff --git a/Hyperpay/Extension/Controller/Index/ServerToServerStatus.php b/Hyperpay/Extension/Controller/Index/ServerToServerStatus.php new file mode 100644 index 0000000..3713fa0 --- /dev/null +++ b/Hyperpay/Extension/Controller/Index/ServerToServerStatus.php @@ -0,0 +1,156 @@ +_pageFactory = $pageFactory; + $this->_coreRegistry = $coreRegistry; + $this->_orderFactory = $orderFactory; + $this->_request = $request; + $this->_helper = $helper; + $this->_adapter = $adapter; + $this->_scopeConfig = $scopeConfig; + + } + + public function execute() + { +// die("i am here in ServerToServer.php"); + try { + $data = $this->getStatusRequest(); + + $order = $this->_orderFactory->create()->loadByIncrementId($data['merchantTransactionId']); + if (!$order) { + $this->_helper->doError(__('Order id does not found')); + } + } catch (\Exception $exception) { + $this->messageManager->addError($exception->getMessage()); + $resultRedirect = $this->resultRedirectFactory->create(); + $resultRedirect->setPath('checkout/onepage/failure'); + return $resultRedirect; + } + + try { + if ($order->getState() == 'processing') { + $this->_redirect('checkout/onepage/success'); + } + $this->_adapter->setInfo($order, $data['id']); + $status = $this->_adapter->orderStatus($data, $order); + $this->_coreRegistry->register('status', $status); + if ($status !== 'success') { + $this->messageManager->addError($status); + $this->_redirect('checkout/onepage/failure'); + } else { + $this->_redirect('checkout/onepage/success'); + + } + } catch (\Exception $e) { + $order->addStatusHistoryComment('Exception message: ' . $e->getMessage(), false); + $this->messageManager->addError($e->getMessage()); + $resultRedirect = $this->resultRedirectFactory->create(); + $resultRedirect->setPath('checkout/onepage/failure'); + return $resultRedirect; + } + } + + /** + * Retrieve payment gateway response and set id to payment table + * @return array + */ + + private function getStatusRequest() + { + if (empty($this->_request->getParam('id'))) { + $this->_helper->doError(__('Checkout id does not found')); + } + $id = $this->_request->getParam('id'); + + $method = $this->_request->getParam('method'); + $entityId = $this->_adapter->getEntity($method); + + $baseUrl = $this->_adapter->getUrl(); + $url = $baseUrl . 'payments/' . $id; + $url .= "?entityId=$entityId"; + $accessToken = $this->_adapter->getAccessToken(); + + $auth = array('Authorization' => 'Bearer ' . $accessToken); + $this->_helper->setHeaders($auth); + $decodedData = $this->_helper->getCurlRespData($url); + + if (!isset($decodedData)) { + $this->_helper->doError(__('No response data found')); + } + if (!isset($decodedData['id'])) { + $this->_helper->doError(__('Failed to get response from the payment gateway')); + } + return $decodedData; + } + +} diff --git a/Hyperpay/Extension/Controller/Index/Sstatus.php b/Hyperpay/Extension/Controller/Index/Sstatus.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Controller/Index/Status.php b/Hyperpay/Extension/Controller/Index/Status.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Cron/CancelOrderPending.php b/Hyperpay/Extension/Cron/CancelOrderPending.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Helper/Data.php b/Hyperpay/Extension/Helper/Data.php old mode 100644 new mode 100755 index b6e041e..83b882b --- a/Hyperpay/Extension/Helper/Data.php +++ b/Hyperpay/Extension/Helper/Data.php @@ -1,4 +1,5 @@ _checkoutSession = $checkoutSession; $this->_responseFactory = $responseFactory; $this->_jsonHelper = $jsonHelper; $this->_curlClient = $curl; - $this->_storeManager=$storeManager; + $this->_storeManager = $storeManager; $this->_messageManager = $messageManager; - $this->_adapter =$adapter; + $this->_adapter = $adapter; $this->_assetRepo = $assetRepo; parent::__construct($context); } + /** * Set Headers for curl request * @@ -90,140 +93,144 @@ public function setHeaders($headers) $this->_curlClient->setHeaders($headers); } + /** - * Set Headers for curl request + * Set Headers for curl request * * @param $data - */ + */ public function setSadadHeaders($data) { $headers = array( - 'Content-Type'=>'application/json', - 'Content-Length'=> strlen($data)); + 'Content-Type' => 'application/json', + 'Content-Length' => strlen($data)); $this->_curlClient->setHeaders($headers); } + /** * throw a new error exception * * @param $payment - */ + */ public function doError($string) { throw new \Exception($string); } + /** - * Retrieve payment brand depending on payment method + * Retrieve payment brand depending on payment method * * @return string - */ + */ public function getBrand() - { - try{ - if(!($this->_checkoutSession->getLastRealOrderId())) { + { + try { + if (!($this->_checkoutSession->getLastRealOrderId())) { $this->doError('Order id does not found'); - } + } $order = $this->_checkoutSession->getLastRealOrder(); - $payment= $order->getPayment(); + $payment = $order->getPayment(); $code = $payment->getData('method'); - $paymentMethod=''; + $paymentMethod = ''; switch ($code) { case 'HyperPay_Visa': - $paymentMethod ='VISA'; - break; + $paymentMethod = 'VISA'; + break; case 'HyperPay_Mada': - $paymentMethod ='MADA'; + $paymentMethod = 'MADA'; break; case 'HyperPay_SadadNcb': - $paymentMethod= 'SADAD'; - break; + $paymentMethod = 'SADAD'; + break; case 'HyperPay_PayPal': - $paymentMethod= 'PAYPAL'; - break; + $paymentMethod = 'PAYPAL'; + break; case 'HyperPay_Master': - $paymentMethod= 'MASTER'; - break; + $paymentMethod = 'MASTER'; + break; case 'HyperPay_Amex': - $paymentMethod= 'AMEX'; - break; + $paymentMethod = 'AMEX'; + break; case 'HyperPay_ApplePay': $paymentMethod = 'APPLEPAY'; - break; + break; + case 'HyperPay_Zoodpay': + $paymentMethod = 'ZOODPAY'; + break; case 'HyperPay_stc': - $paymentMethod= 'STC_PAY'; - - break; + $paymentMethod = 'STC_PAY'; + + break; } return $paymentMethod; - } catch(\Exception $e) - { + } catch (\Exception $e) { $this->_messageManager->addError($e->getMessage()); $this->_logger->critical($e->getMessage()); $this->_responseFactory->create()->setRedirect($this->_storeManager-> - getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB))->sendResponse(); - } - + getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB))->sendResponse(); + } + } + /** - * Retrieve payment brand depending on payment method + * Retrieve payment brand depending on payment method * * @param $street * @param $type * @return string */ - public function getStreetAddresses($street,$type) + public function getStreetAddresses($street, $type) { - $streetAdd=""; + $streetAdd = ""; foreach ($street as $key => $value) { - if($key == '2') + if ($key == '2') break; - $end = $key+1; - $streetAdd.="&".$type."."."street".$end."=".$street[$key]; + $end = $key + 1; + $streetAdd .= "&" . $type . "." . "street" . $end . "=" . $street[$key]; } return $streetAdd; } + /** * Retrieve Increment order id to status view * * @return string - */ + */ public function getOrderId() { - try{ - if(!($this->_checkoutSession->getLastRealOrderId())) { + try { + if (!($this->_checkoutSession->getLastRealOrderId())) { $this->doError('Order id does not found'); - } + } - return $this->_checkoutSession->getLastRealOrderId(); - } catch(\Exception $e) - { + return $this->_checkoutSession->getLastRealOrderId(); + } catch (\Exception $e) { $this->_messageManager->addError($e->getMessage()); $this->_logger->critical($e->getMessage()); $this->_responseFactory->create()->setRedirect($this->_storeManager-> getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB))->sendResponse(); } } + /** - * Convert amount of payment from base currency to selected currency + * Convert amount of payment from base currency to selected currency * * @param $payment * @param $amountValue * @return double - */ - public function convertPrice($payment,$amountValue) - { + */ + public function convertPrice($payment, $amountValue) + { $currentCurrency = $this->_adapter->getSupportedCurrencyCode($payment->getData('method')); $baseCurrency = $this->_storeManager->getStore()->getBaseCurrency()->getCode(); if ($currentCurrency != $baseCurrency) { - try - { + try { $amountValue = $this->_storeManager->getStore()->getBaseCurrency()-> convert($amountValue, $currentCurrency); - } - catch (\Exception $e) - { + } catch (\Exception $e) { $this->catchExceptionRedirectAndCancelOrder($payment->getOrder(), $e); return; } @@ -231,12 +238,13 @@ public function convertPrice($payment,$amountValue) return $amountValue; } + /** - * Set curl options depending on server mode - */ + * Set curl options depending on server mode + */ public function setCurlOptions() { - if($this->_adapter->getEnv()) { + if ($this->_adapter->getEnv()) { $this->_curlClient->setOption(CURLOPT_SSL_VERIFYPEER, false); $this->_curlClient->setOption(CURLOPT_SSL_VERIFYHOST, false); } else { @@ -244,155 +252,175 @@ public function setCurlOptions() } } + /** - * method to check if test passed is English + * method to check if test passed is English * - * @param (string) $text to be checked. - * @return (bool) true|false. - */ + * @param (string) $text to be checked. + * @return (bool) true|false. + */ public function isThisEnglishText($text) { - return preg_match("/^[\w\s\.\-\,]*$/", $text); + return preg_match("/^[\w\s\.\-\,]*$/", $text); } + /** * Retrieve billing And shipping Address * * @param $order * @return string - */ + */ public function getBillingAndShippingAddress($order) { - $data=""; + $data = ""; $payment = $order->getPayment(); $method = $payment->getData('method'); - $shippingAddress = $order->getShippingAddress(); - if(isset($shippingAddress) && !empty($shippingAddress)){ - $firstNameShipping = $order->getShippingAddress()->getFirstname(); - $surNameShipping = $order->getShippingAddress()->getLastname(); - $countryShipping = $order->getShippingAddress()->getCountryId(); - $telShipping= $order->getShippingAddress()->getTelephone(); - $postCodeShipping = $order->getShippingAddress()->getPostcode(); - $streetShipping = $order->getShippingAddress()->getStreet(); - $cityShipping = $order->getShippingAddress()->getCity(); - $streetShippingCompare = implode(',', $streetShipping); - - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($cityShipping)==false)) { - $data.="&shipping.city=".$cityShipping; - } + $shippingAddress = $order->getShippingAddress(); + if (isset($shippingAddress) && !empty($shippingAddress)) { + $firstNameShipping = $order->getShippingAddress()->getFirstname(); + $surNameShipping = $order->getShippingAddress()->getLastname(); + $countryShipping = $order->getShippingAddress()->getCountryId(); + $telShipping = $order->getShippingAddress()->getTelephone(); + $postCodeShipping = $order->getShippingAddress()->getPostcode(); + $streetShipping = $order->getShippingAddress()->getStreet(); + $cityShipping = $order->getShippingAddress()->getCity(); + $streetShippingCompare = implode(',', $streetShipping); + + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($cityShipping) == false)) { + $data .= "&shipping.city=" . $cityShipping; + } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($countryShipping)==false)) { - $data.="&shipping.country=".$countryShipping; - } + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($countryShipping) == false)) { + $data .= "&shipping.country=" . $countryShipping; + } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($postCodeShipping)==false)) { - $data.="&shipping.postcode=".$postCodeShipping; - } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($firstNameShipping)==false)) { - $data.="&shipping.customer.givenName=".$firstNameShipping; - } + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($postCodeShipping) == false)) { + $data .= "&shipping.postcode=" . $postCodeShipping; + } + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($firstNameShipping) == false)) { + $data .= "&shipping.customer.givenName=" . $firstNameShipping; + } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($surNameShipping)==false)) { - $data.="&shipping.customer.surname=".$surNameShipping; - } + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($surNameShipping) == false)) { + $data .= "&shipping.customer.surname=" . $surNameShipping; + } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($telShipping)==false)) { - $data.="&shipping.customer.phone=".$telShipping; - } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($streetShippingCompare)==false)) { - $data.=$this->getStreetAddresses($streetShipping, "shipping"); + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($telShipping) == false)) { + $data .= "&shipping.customer.phone=" . $telShipping; + } + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($streetShippingCompare) == false)) { + $data .= $this->getStreetAddresses($streetShipping, "shipping"); + } } - } $firsName = $order->getBillingAddress()->getFirstname(); $surName = $order->getBillingAddress()->getLastname(); $country = $order->getBillingAddress()->getCountryId(); - $tel= $order->getBillingAddress()->getTelephone(); + $tel = $order->getBillingAddress()->getTelephone(); $postCode = $order->getBillingAddress()->getPostcode(); $street = $order->getBillingAddress()->getStreet(); $city = $order->getBillingAddress()->getCity(); $streetCompare = implode(',', $street); - - - + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($city) == false)) { + $data .= "&billing.city=" . $city; + } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($city)==false)) { - $data.="&billing.city=".$city; + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($country) == false)) { + $data .= "&billing.country=" . $country; } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($country)==false)) { - $data.="&billing.country=".$country; + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($firsName) == false)) { + $data .= "&customer.givenName=" . $firsName; } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($firsName)==false)) { - $data.="&customer.givenName=".$firsName; + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($tel) == false)) { + $data .= "&customer.phone=" . $tel; } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($tel)==false)) { - $data.="&customer.phone=".$tel; + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($tel) == false)) { + $data .= "&customer.mobile=" . $tel; } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($postCode)==false)) { - $data.="&billing.postcode=".$postCode; + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($postCode) == false)) { + $data .= "&billing.postcode=" . $postCode; } - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($surName)==false)) { - $data.="&customer.surname=".$surName; + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($surName) == false)) { + $data .= "&customer.surname=" . $surName; } - - if(!($this->_adapter->getConnector($method)=='migs' && $this->isThisEnglishText($streetCompare)==false)) { - $data.=$this->getStreetAddresses($street, "billing"); + if (!($this->_adapter->getConnector($method) == 'migs' && $this->isThisEnglishText($streetCompare) == false)) { + $data .= $this->getStreetAddresses($street, "billing"); } - - return $data; } + /** - * Set order status to cancel, add message, and redirect to home page + * Set order status to cancel, add message, and redirect to home page * * @param $order * @param $e - */ - public function catchExceptionRedirectAndCancelOrder($order,$e) + */ + public function catchExceptionRedirectAndCancelOrder($order, $e) { $order->setState(OrderStatus::STATE_CANCELED); - $order->addStatusHistoryComment('Exception message: '.$e->getMessage(), OrderStatus::STATE_CANCELED); + $order->addStatusHistoryComment('Exception message: ' . $e->getMessage(), OrderStatus::STATE_CANCELED); $order->save(); $this->_messageManager->addError($e->getMessage()); $this->_logger->critical($e->getMessage()); $this->_responseFactory->create()->setRedirect($this->_storeManager-> - getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB))->sendResponse(); + getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB))->sendResponse(); } + /** - * Post a request and retrieve decoded data + * Post a request and retrieve decoded data * * @param $url * @param $data * @return string - */ - public function getCurlReqData($url,$data) + */ + public function getCurlReqData($url, $data) { $this->setCurlOptions(); $this->_curlClient->setOption(CURLOPT_RETURNTRANSFER, true); parse_str($data, $params); - $params = $this->replaceArrayKeys($params); - $this->_curlClient->post($url, $params); + $params = $this->replaceArrayKeys($data); + $this->_curlClient->post($url, $data); $response = $this->_curlClient->getBody(); $decodedData = $this->_jsonHelper->jsonDecode($response); return $decodedData; } + /** - * Post a request and retrieve decoded data + * Post a request and retrieve decoded data * * @param $url + * @param $data * @return string - */ + */ + public function getCurlServerToServer($url, $data) + { + $this->setCurlOptions(); + $this->_curlClient->setOption(CURLOPT_RETURNTRANSFER, true); + $this->_curlClient->post($url, $data); + $response = $this->_curlClient->getBody(); + $decodedData = $this->_jsonHelper->jsonDecode($response); + + return $decodedData; + } + + /** + * Post a request and retrieve decoded data + * + * @param $url + * @return string + */ public function getCurlRespData($url) { $this->setCurlOptions(); @@ -402,49 +430,52 @@ public function getCurlRespData($url) $decodedData = $this->_jsonHelper->jsonDecode($response); return $decodedData; } + /** * Replace _ char with . char * * @param $array * @return array */ - private function replaceArrayKeys( $array ) { + private function replaceArrayKeys($array) + { $replacedKeys = str_replace('_', '.', array_keys($array)); return array_combine($replacedKeys, $array); } + public function getPaymentMarkImageUrl($code) { $paymentImage = ''; switch ($code) { case 'HyperPay_Visa': - $paymentImage =$this->_assetRepo->getUrl("Hyperpay_Extension::images/visa.svg"); + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/visa.svg"); break; case 'HyperPay_Mada': - $paymentImage =$this->_assetRepo->getUrl("Hyperpay_Extension::images/mada.svg");; + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/mada.svg"); break; + case 'HyperPay_SadadPayware': case 'HyperPay_SadadNcb': - $paymentImage= $this->_assetRepo->getUrl("Hyperpay_Extension::images/sadad.png");; + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/sadad.png"); break; case 'HyperPay_PayPal': - $paymentImage= $this->_assetRepo->getUrl("Hyperpay_Extension::images/paypal.svg");; + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/paypal.svg"); break; case 'HyperPay_Master': - $paymentImage= $this->_assetRepo->getUrl("Hyperpay_Extension::images/master.svg");; + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/master.svg"); break; case 'HyperPay_Amex': - $paymentImage= $this->_assetRepo->getUrl("Hyperpay_Extension::images/amex.svg");; - break; - case 'HyperPay_SadadPayware': - $paymentImage= $this->_assetRepo->getUrl("Hyperpay_Extension::images/sadad.png");; + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/amex.svg"); break; case 'HyperPay_ApplePay': - $paymentImage= $this->_assetRepo->getUrl("Hyperpay_Extension::images/apple.svg");; + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/apple.svg"); break; case 'HyperPay_stc': - $paymentImage= $this->_assetRepo->getUrl("Hyperpay_Extension::images/stc.png");; + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/stc.png"); + break; + case 'HyperPay_Zoodpay': + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/zoodpay.png"); break; - } return $paymentImage; } diff --git a/Hyperpay/Extension/Model/Adapter.php b/Hyperpay/Extension/Model/Adapter.php old mode 100644 new mode 100755 index 70e7640..fe3a052 --- a/Hyperpay/Extension/Model/Adapter.php +++ b/Hyperpay/Extension/Model/Adapter.php @@ -1,4 +1,5 @@ _scopeConfig = $scopeConfig; - $this->_storeManager=$storeManager; - $this->blackBins=$blackBins; + $this->_storeManager = $storeManager; + $this->blackBins = $blackBins; $this->_request = $request; $this->_objectManager = $objectManager; $this->_orderManagement = $orderManagement; $this->_invoiceCollectionFactory = $invoiceCollectionFactory; $this->_invoiceService = $invoiceService; $this->_transactionFactory = $transactionFactory; - $this->_stockRegistry = $stockRegistry; + $this->_stockRegistry = $stockRegistry; $this->_productRepository = $productRepository; parent::__construct($context, $registry, $resource, $resourceCollection, $data); } @@ -182,6 +187,7 @@ public function getStockOption() { return $this->_scopeConfig->getValue('cataloginventory/options/can_subtract', $this->_storeScope); } + /** * Retrieve the server mode from configuration * @@ -191,6 +197,7 @@ public function getMode() { return $this->getConfigData(self::MODE); } + /** * Retrieve Webhook key from configuration * @@ -200,6 +207,7 @@ public function getWebhookKey() { return $this->getConfigData(self::WEBHOOK_KEY); } + /** * Retrieve Access token from configuration * @@ -209,6 +217,7 @@ public function getAccessToken() { return $this->getConfigData(self::ACCESS_TOKEN); } + /** * Retrieve risk channel id from configuration * @@ -218,6 +227,7 @@ public function getRiskChannelId() { return $this->getConfigData(self::RISK_CHANNEL_ID); } + /** * Retrieve the style of payment form from configuration * Options : @@ -229,6 +239,7 @@ public function getStyle() { return $this->getConfigData(self::STYLE); } + /** * Retrieve the CSS tags and attributes of payment form from configuration * @@ -239,6 +250,7 @@ public function getCss() return $this->getConfigData(self::CSS); } + /** * Retrieve the Url depending on environment 'server mode' from configuration * @@ -252,12 +264,25 @@ public function getUrl() if ($this->getMode() == "live") { return $this->getConfigData(self::LIVE_URL); - } - else - { + } else { return $this->getConfigData(self::TEST_URL); } } + + + /** + * Retrieve the server to server Url depending on environment 'server mode' from configuration + * + * Options : + * Integrator Test , Connector Test, Live + * + * @return string + */ + public function getServerToServerUrl() + { + return $this->getMode() == 'live' ? $this->liveServerToServerUrl : $this->testServerToServerUrl; + } + /** * Retrieve the Connector from configuration * @@ -270,6 +295,7 @@ public function getConnector($method) { return $this->getConfigDataForSpecificMethod($method, self::CONNECTOR); } + /** * Retrieve the entity id from configuration * @@ -281,6 +307,7 @@ public function getEntity($method) return $this->getConfigDataForSpecificMethod($method, self::ENTITY_ID); } + /** * Retrieve the payment type depending on method code from configuration * @@ -291,6 +318,7 @@ public function getPaymentType($method) { return $this->getConfigDataForSpecificMethod($method, self::PAYMENT_ACTION); } + /** * Retrieve the currency code depending on method code from configuration * @@ -301,6 +329,7 @@ public function getSupportedCurrencyCode($method) { return $this->getConfigDataForSpecificMethod($method, self::CURRENCY_CODE); } + /** * Retrieve the status from configuration * @@ -311,6 +340,7 @@ public function getStatus() return $this->getConfigData(self::ORDER_STATUS); } + /** * Retrieve the Api User Name for sadad depending on method code from configuration * @@ -321,6 +351,7 @@ public function getApiUserName($method) { return $this->getConfigDataForSpecificMethod($method, self::API_USER_NAME); } + /** * Retrieve the api secret for sadad depending on method code from configuration * @@ -331,6 +362,7 @@ public function getApiSecret($method) { return $this->getConfigDataForSpecificMethod($method, self::API_SECRET); } + /** * Retrieve the merchant id for sadad depending on method code from configuration * @@ -341,6 +373,7 @@ public function getMerchantId($method) { return $this->getConfigDataForSpecificMethod($method, self::MERCHANT_ID); } + /** * Add mode to data of curl request depending on server mode * @@ -352,6 +385,7 @@ public function getModeHyperpay() return "&testMode=EXTERNAL"; } } + /** * Retrieve false on live mode and false otherwise * @@ -359,12 +393,13 @@ public function getModeHyperpay() */ public function getEnv() { - if($this->getMode()=="live") { + if ($this->getMode() == "live") { return false; } return true; } + /** * Retrieve sadad request url depending on server mode * @@ -372,13 +407,14 @@ public function getEnv() */ public function getSadadReqUrl() { - if($this->getEnv()) { + if ($this->getEnv()) { return $this->_sadadRequestTestUrl; } - return $this->_sadadRequestLivetUrl; + return $this->_sadadRequestLivetUrl; } + /** * Retrieve sadad redirect url depending on server mode * @@ -386,12 +422,13 @@ public function getSadadReqUrl() */ public function getSadadRedirectUrl() { - if($this->getEnv()) { + if ($this->getEnv()) { return $this->_sadadTestRedirectUrl; } - return $this->_sadadLiveRedirectUrl; + return $this->_sadadLiveRedirectUrl; } + /** * Retrieve sadad Status url depending on server mode * @@ -401,14 +438,15 @@ public function getSadadRedirectUrl() */ public function getSadadStatusUrl() { - if($this->getEnv()) { + if ($this->getEnv()) { return $this->_sadadStatusTestUrl; } - return $this->_sadadStatusLiveUrl; + return $this->_sadadStatusLiveUrl; } + /** * Retrieve url that redirect from checkout page * @@ -418,8 +456,9 @@ public function getSadadUrl() { $base = $this->_storeManager->getStore()-> getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB); - return $base."hyperpay/index/sstatus"; + return $base . "hyperpay/index/sstatus"; } + /** * Set status and state to database after transaction complete * and return sucess or fail to view @@ -428,9 +467,8 @@ public function getSadadUrl() * @param $order * @return string */ - public function orderStatus($decodedData,$order) + public function orderStatus($decodedData, $order) { - if (preg_match('/^(000\.400\.0|000\.400\.100)/', $decodedData['result']['code']) || preg_match('/^(000\.000\.|000\.100\.1|000\.[36])/', $decodedData['result']['code'])) { $order->addStatusHistoryComment($decodedData['result']['description'], false); @@ -439,22 +477,23 @@ public function orderStatus($decodedData,$order) } else { $order->addStatusHistoryComment($decodedData['result']['description'], OrderStatus::STATE_CANCELED); $order->setState(OrderStatus::STATE_CANCELED); - $orderCommentSender = $this->_objectManager - ->create('Magento\Sales\Model\Order\Email\Sender\OrderCommentSender'); - $orderCommentSender->send($order, true, ''); +// $orderCommentSender = $this->_objectManager +// ->create('Magento\Sales\Model\Order\Email\Sender\OrderCommentSender'); +// $orderCommentSender->send($order, true, ''); $this->_orderManagement->cancel($order->getEntityId()); $order->save(); $method = $order->getPayment()->getData('method'); - if($method=='SadadNcb') { + + if ($method == 'SadadNcb') { $this->_status = $decodedData['resultDetails']['ErrorMessage']; } else { $this->_status = $decodedData['result']['description']; } - if ((isset($decodedData['card']['bin'])) && ($method != 'HyperPay_Mada') ) { - $blackBins =$this->blackBins->bins(); + if ((isset($decodedData['card']['bin'])) && ($method != 'HyperPay_Mada')) { + $blackBins = $this->blackBins->bins(); $searchBin = $decodedData['card']['bin']; - if (in_array($searchBin,$blackBins)) { - $this->_status =__('Sorry! Please select mada payment option in order to be able to complete your purchase successfully.'); + if (in_array($searchBin, $blackBins)) { + $this->_status = __('Sorry! Please select mada payment option in order to be able to complete your purchase successfully.'); } } @@ -462,26 +501,25 @@ public function orderStatus($decodedData,$order) return $this->_status; } + /** * Set status and state to database after transaction complete - * and return sucess or fail to view (Sadad payment method) + * and return success or fail to view (Sadad payment method) * - * @param $$decodedData + * @param $decodedData * @param $order * @return string */ - public function orderStatusSadad($decodedData,$order) + public function orderStatusSadad($decodedData, $order) { - if ($decodedData=="0") { + if ($decodedData == "0") { $order->addStatusHistoryComment('Request successfully processed', $this->getStatus()); $order->setState($this->getStatus()); $this->_orderManagement->notify($order->getEntityId()); $order->save(); $this->createInvoice($order); $this->_status = 'success'; - } - else - { + } else { $errorMessage = $this->_request->getParam('ErrorDescription'); $order->addStatusHistoryComment($errorMessage, OrderStatus::STATE_CANCELED); @@ -495,6 +533,7 @@ public function orderStatusSadad($decodedData,$order) return $this->_status; } + /** * Set checkoutId to additionalInformation column in sales_order_payment table * @@ -508,6 +547,7 @@ public function setInfo($order, $checkOutId) $order->save(); } + /** * Get checkoutId from additionalInformation column in sales_order_payment table * @@ -518,6 +558,7 @@ public function getCheckoutId($payment) { return $payment->getAdditionalInformation('checkoutId'); } + /** * Set payment type and currency to additionalInformation column in sales_order_payment table * @@ -525,7 +566,7 @@ public function getCheckoutId($payment) * @param $paymentType * @param $currency */ - public function setPaymentTypeAndCurrency($order, $paymentType,$currency) + public function setPaymentTypeAndCurrency($order, $paymentType, $currency) { $payment = $order->getPayment(); $payment->setAdditionalInformation('payment_type', $paymentType); @@ -533,6 +574,7 @@ public function setPaymentTypeAndCurrency($order, $paymentType,$currency) $order->save(); } + /** * Retrieve configuration from admin panel for hyperpay group * @@ -541,9 +583,10 @@ public function setPaymentTypeAndCurrency($order, $paymentType,$currency) */ public function getConfigData($field) { - return $this->_scopeConfig->getValue('payment/hyperpay/'.$field, $this->_storeScope); + return $this->_scopeConfig->getValue('payment/hyperpay/' . $field, $this->_storeScope); } + /** * Retrieve configuration from admin panel for specific payment method group * @@ -551,11 +594,12 @@ public function getConfigData($field) * @param $field * @return string */ - public function getConfigDataForSpecificMethod($method,$field) + public function getConfigDataForSpecificMethod($method, $field) { - return $this->_scopeConfig->getValue('payment/'.$method.'/'.$field, $this->_storeScope); + return $this->_scopeConfig->getValue('payment/' . $method . '/' . $field, $this->_storeScope); } + /** * Bulid data for capture curl request * @@ -564,15 +608,16 @@ public function getConfigDataForSpecificMethod($method,$field) * @param $grandTotal * @return string */ - public function buildCaptureOrRefundRequest($payment,$currency,$grandTotal,$op) + public function buildCaptureOrRefundRequest($payment, $currency, $grandTotal, $op) { - $data = "entityId=".$this->getEntity($payment->getData('method')). - "¤cy=".$currency. - "&amount=".$grandTotal. - "&paymentType=".$op; + $data = "entityId=" . $this->getEntity($payment->getData('method')) . + "¤cy=" . $currency . + "&amount=" . $grandTotal . + "&paymentType=" . $op; $data .= $this->getModeHyperpay(); return $data; } + /** * Create invoice automatically * **status will be set to processing @@ -582,8 +627,8 @@ public function buildCaptureOrRefundRequest($payment,$currency,$grandTotal,$op) public function createInvoice($order) { - if(!$order->getId()) { - $order->addStatusHistoryComment('The order id is not found',$this->getStatus()); + if (!$order->getId()) { + $order->addStatusHistoryComment('The order id is not found', $this->getStatus()); $order->setState(OrderStatus::STATE_PROCESSING)->setStatus($this->getStatus()); $order->save(); return $this; @@ -596,7 +641,7 @@ public function createInvoice($order) $invoices->getSelect()->limit(1); if ((int)$invoices->count() !== 0) { - $order->addStatusHistoryComment('The order has been invoiced already ',$this->getStatus()); + $order->addStatusHistoryComment('The order has been invoiced already ', $this->getStatus()); $order->setState(OrderStatus::STATE_PROCESSING)->setStatus($this->getStatus()); $this->_orderManagement->notify($order->getEntityId()); $order->setEmailSent(true); @@ -604,8 +649,8 @@ public function createInvoice($order) return null; } - if(!$order->canInvoice()) { - $order->addStatusHistoryComment('Could not create an invoice,Creating invoices is inactive',$this->getStatus()); + if (!$order->canInvoice()) { + $order->addStatusHistoryComment('Could not create an invoice,Creating invoices is inactive', $this->getStatus()); $order->setState(OrderStatus::STATE_PROCESSING)->setStatus($this->getStatus()); $this->_orderManagement->notify($order->getEntityId()); $order->setEmailSent(true); @@ -613,9 +658,8 @@ public function createInvoice($order) return null; } foreach ($order->getAllItems() as $item) { - if($item->getProduct()->getIsVirtual()) - { - $order->addStatusHistoryComment('Could not create an invoice,The items has virtual product',$this->getStatus()); + if ($item->getProduct()->getIsVirtual()) { + $order->addStatusHistoryComment('Could not create an invoice,The items has virtual product', $this->getStatus()); $order->setState(OrderStatus::STATE_PROCESSING)->setStatus($this->getStatus()); $this->_orderManagement->notify($order->getEntityId()); $order->setEmailSent(true); @@ -627,8 +671,7 @@ public function createInvoice($order) $code = $order->getPayment()->getData('method'); if ($this->getPaymentType($code) == "DB") { $invoice->setRequestedCaptureCase(\Magento\Sales\Model\Order\Invoice::CAPTURE_ONLINE); - } - else{ + } else { $invoice->setRequestedCaptureCase(\Magento\Sales\Model\Order\Invoice::NOT_CAPTURE); } $invoice->register(); @@ -641,7 +684,7 @@ public function createInvoice($order) $order->setState(OrderStatus::STATE_PROCESSING)->setStatus($this->getStatus()); $order->save(); } catch (\Exception $e) { - $order->addStatusHistoryComment('Exception message: '.$e->getMessage(), + $order->addStatusHistoryComment('Exception message: ' . $e->getMessage(), false); $this->_orderManagement->notify($order->getEntityId()); $order->setState(OrderStatus::STATE_PROCESSING)->setStatus($this->getStatus()); @@ -655,7 +698,7 @@ public function createInvoice($order) $order->setEmailSent(true); $order->save(); } catch (\Exception $e) { - $order->addStatusHistoryComment('Exception message: '.$e->getMessage(),false); + $order->addStatusHistoryComment('Exception message: ' . $e->getMessage(), false); $order->save(); return null; } diff --git a/Hyperpay/Extension/Model/MainConfigProvider.php b/Hyperpay/Extension/Model/MainConfigProvider.php old mode 100644 new mode 100755 index 83263c3..45cd67c --- a/Hyperpay/Extension/Model/MainConfigProvider.php +++ b/Hyperpay/Extension/Model/MainConfigProvider.php @@ -24,7 +24,8 @@ class MainConfigProvider implements ConfigProviderInterface 'HyperPay_SadadPayware', 'HyperPay_Visa', 'HyperPay_ApplePay', - 'HyperPay_stc' + 'HyperPay_stc', + 'HyperPay_Zoodpay', ]; /** * @var \Magento\Payment\Model\Method\AbstractMethod[] diff --git a/Hyperpay/Extension/Model/Method/Amex.php b/Hyperpay/Extension/Model/Method/Amex.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/Applepay.php b/Hyperpay/Extension/Model/Method/Applepay.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/Mada.php b/Hyperpay/Extension/Model/Method/Mada.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/Master.php b/Hyperpay/Extension/Model/Method/Master.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/MethodAbstract.php b/Hyperpay/Extension/Model/Method/MethodAbstract.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/PayPal.php b/Hyperpay/Extension/Model/Method/PayPal.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/SadadNcb.php b/Hyperpay/Extension/Model/Method/SadadNcb.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/SadadPayware.php b/Hyperpay/Extension/Model/Method/SadadPayware.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/Stc.php b/Hyperpay/Extension/Model/Method/Stc.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/Visa.php b/Hyperpay/Extension/Model/Method/Visa.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/Model/Method/Zoodpay.php b/Hyperpay/Extension/Model/Method/Zoodpay.php new file mode 100755 index 0000000..680aa0d --- /dev/null +++ b/Hyperpay/Extension/Model/Method/Zoodpay.php @@ -0,0 +1,19 @@ + - +
- + - + Hyperpay\Extension\Model\Source\Mode - - - - - - - + + + + + + + Hyperpay\Extension\Model\Source\Style - + Example: body {background-color:#16a085;} - + - + - + Magento\Sales\Model\Config\Source\Order\Status\Processing - + - If risk shield enabled + If risk shield enabled + + + - - - - + - + - + Magento\Config\Model\Config\Source\Yesno - + Hyperpay\Extension\Model\Source\PaymentAction - + Hyperpay\Extension\Model\Source\Connectors - + - + validate-number - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + Magento\Config\Model\Config\Source\Locale\Currency - - - Magento\Config\Model\Config\Source\Yesno - + + + Magento\Config\Model\Config\Source\Yesno + + + + + + + + + + Magento\Config\Model\Config\Source\Yesno + + + + Hyperpay\Extension\Model\Source\PaymentAction + + + + Hyperpay\Extension\Model\Source\Connectors + + + + + + + validate-number + + + + Magento\Payment\Model\Config\Source\Allspecificcountries + + + + Magento\Directory\Model\Config\Source\Country + + + + Magento\Config\Model\Config\Source\Locale\Currency + + + + Magento\Config\Model\Config\Source\Yesno + - + - + - + Magento\Config\Model\Config\Source\Yesno - + Hyperpay\Extension\Model\Source\PaymentAction - + Hyperpay\Extension\Model\Source\Connectors - + - + validate-number - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + Magento\Config\Model\Config\Source\Locale\Currency - + Magento\Config\Model\Config\Source\Yesno - + - + - + Magento\Config\Model\Config\Source\Yesno - + Hyperpay\Extension\Model\Source\PaymentAction - + Hyperpay\Extension\Model\Source\Connectors - + - + validate-number - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + Magento\Config\Model\Config\Source\Locale\Currency - + Magento\Config\Model\Config\Source\Yesno - + - + - + Magento\Config\Model\Config\Source\Yesno - + Hyperpay\Extension\Model\Source\PaymentAction - + Hyperpay\Extension\Model\Source\Connectors - + - + validate-number - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + Magento\Config\Model\Config\Source\Locale\Currency - + Magento\Config\Model\Config\Source\Yesno - + - + - + Magento\Config\Model\Config\Source\Yesno - + Hyperpay\Extension\Model\Source\PaymentAction - + Hyperpay\Extension\Model\Source\Connectors - + - + validate-number - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + Magento\Config\Model\Config\Source\Locale\Currency - + Magento\Config\Model\Config\Source\Yesno - + - + - + Magento\Config\Model\Config\Source\Yesno - + - + - + Hyperpay\Extension\Model\Source\Connectors - + validate-number - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + Magento\Config\Model\Config\Source\Locale\Currency - + - + - + - + - + - + Hyperpay\Extension\Model\Source\Connectors - + Magento\Config\Model\Config\Source\Yesno - + - + validate-number - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + Magento\Config\Model\Config\Source\Locale\Currency - + - + - + Magento\Config\Model\Config\Source\Yesno - + Hyperpay\Extension\Model\Source\PaymentAction - + - + Hyperpay\Extension\Model\Source\Connectors - + validate-number - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + Magento\Config\Model\Config\Source\Locale\Currency - + Magento\Config\Model\Config\Source\Yesno - + - + - + Magento\Config\Model\Config\Source\Yesno - + Hyperpay\Extension\Model\Source\PaymentAction - + - + Hyperpay\Extension\Model\Source\Connectors - + validate-number - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + Magento\Config\Model\Config\Source\Locale\Currency - + Magento\Config\Model\Config\Source\Yesno diff --git a/Hyperpay/Extension/etc/config.xml b/Hyperpay/Extension/etc/config.xml old mode 100644 new mode 100755 index 1ec1dab..c8df3b9 --- a/Hyperpay/Extension/etc/config.xml +++ b/Hyperpay/Extension/etc/config.xml @@ -1,104 +1,116 @@ - + - - VISA - Hyperpay\Extension\Model\Method\Visa - 0 - DB - SAR - Enter your Entity Id - migs - 0 - 2 - - - STCPAY - Hyperpay\Extension\Model\Method\Stc - 0 - DB - SAR - Enter your Entity Id - migs - 0 - 4 - - - ApplePay - Hyperpay\Extension\Model\Method\Applepay - 0 - DB - SAR - Enter your Entity Id - migs - 0 - 5 - - - Mada - Hyperpay\Extension\Model\Method\Mada - 0 - DB - SAR - Enter your Entity Id - migs - 0 - 1 - - - MASTERCARD - Hyperpay\Extension\Model\Method\Master - 0 - DB - SAR - Enter your Entity Id - migs - 0 - 3 - - - SADAD - Hyperpay\Extension\Model\Method\SadadNcb - 0 - DB - SAR - Enter your Entity Id - migs - 8 - - - SADAD - Hyperpay\Extension\Model\Method\SadadPayware - 0 - DB - SAR - Enter your Entity Id - migs - 9 - - - AMEX - Hyperpay\Extension\Model\Method\Amex - 0 - DB - SAR - Enter your Entity Id - migs - 0 - 6 - - - PayPal - Hyperpay\Extension\Model\Method\PayPal - 0 - DB - SAR - Enter your Entity Id - migs - 0 - 7 - + + VISA + Hyperpay\Extension\Model\Method\Visa + 0 + DB + SAR + Enter your Entity Id + migs + 0 + 2 + + + Zoodpay + Hyperpay\Extension\Model\Method\Zoodpay + 0 + DB + SAR + Enter your Entity Id + migs + 0 + 2 + + + STCPAY + Hyperpay\Extension\Model\Method\Stc + 0 + DB + SAR + Enter your Entity Id + migs + 0 + 4 + + + ApplePay + Hyperpay\Extension\Model\Method\Applepay + 0 + DB + SAR + Enter your Entity Id + migs + 0 + 5 + + + Mada + Hyperpay\Extension\Model\Method\Mada + 0 + DB + SAR + Enter your Entity Id + migs + 0 + 1 + + + MASTERCARD + Hyperpay\Extension\Model\Method\Master + 0 + DB + SAR + Enter your Entity Id + migs + 0 + 3 + + + SADAD + Hyperpay\Extension\Model\Method\SadadNcb + 0 + DB + SAR + Enter your Entity Id + migs + 8 + + + SADAD + Hyperpay\Extension\Model\Method\SadadPayware + 0 + DB + SAR + Enter your Entity Id + migs + 9 + + + AMEX + Hyperpay\Extension\Model\Method\Amex + 0 + DB + SAR + Enter your Entity Id + migs + 0 + 6 + + + PayPal + Hyperpay\Extension\Model\Method\PayPal + 0 + DB + SAR + Enter your Entity Id + migs + 0 + 7 + \ No newline at end of file diff --git a/Hyperpay/Extension/etc/cron_groups.xml b/Hyperpay/Extension/etc/cron_groups.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/etc/crontab.xml b/Hyperpay/Extension/etc/crontab.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/etc/csp_whitelist.xml b/Hyperpay/Extension/etc/csp_whitelist.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/etc/events.xml b/Hyperpay/Extension/etc/events.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/etc/frontend/di.xml b/Hyperpay/Extension/etc/frontend/di.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/etc/frontend/routes.xml b/Hyperpay/Extension/etc/frontend/routes.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/etc/module.xml b/Hyperpay/Extension/etc/module.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/i18n/ar_SA.csv b/Hyperpay/Extension/i18n/ar_SA.csv old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/i18n/en_US.csv b/Hyperpay/Extension/i18n/en_US.csv old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/registration.php b/Hyperpay/Extension/registration.php old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/adminhtml/layout/sales_order_view.xml b/Hyperpay/Extension/view/adminhtml/layout/sales_order_view.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/adminhtml/templates/order/view/custom.phtml b/Hyperpay/Extension/view/adminhtml/templates/order/view/custom.phtml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/layout/checkout_index_index.xml b/Hyperpay/Extension/view/frontend/layout/checkout_index_index.xml old mode 100644 new mode 100755 index d4f8de8..9732841 --- a/Hyperpay/Extension/view/frontend/layout/checkout_index_index.xml +++ b/Hyperpay/Extension/view/frontend/layout/checkout_index_index.xml @@ -1,5 +1,6 @@ - + @@ -18,34 +19,60 @@ - Hyperpay_Extension/js/view/payment/method-renderer + + Hyperpay_Extension/js/view/payment/method-renderer + - true + true + - true + true + - true + true + - - true + + true + - - true + + true + - true + true + + + + true + - - true + + true + - - true + + true + - - true + + true + diff --git a/Hyperpay/Extension/view/frontend/layout/hyperpay_index_request.xml b/Hyperpay/Extension/view/frontend/layout/hyperpay_index_request.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/layout/hyperpay_index_sstatus.xml b/Hyperpay/Extension/view/frontend/layout/hyperpay_index_sstatus.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/layout/hyperpay_index_status.xml b/Hyperpay/Extension/view/frontend/layout/hyperpay_index_status.xml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/templates/form.phtml b/Hyperpay/Extension/view/frontend/templates/form.phtml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/templates/status.phtml b/Hyperpay/Extension/view/frontend/templates/status.phtml old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/images/amex.svg b/Hyperpay/Extension/view/frontend/web/images/amex.svg old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/images/apple.svg b/Hyperpay/Extension/view/frontend/web/images/apple.svg old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/images/mada.svg b/Hyperpay/Extension/view/frontend/web/images/mada.svg old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/images/master.svg b/Hyperpay/Extension/view/frontend/web/images/master.svg old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/images/maxresdefault.jpg b/Hyperpay/Extension/view/frontend/web/images/maxresdefault.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3225d076666552980d9e39d57538df18a70571f9 GIT binary patch literal 89112 zcmb4qRahKNwCxP;?(XjH3}kS3cXtmK+#!RzySrO(w=g&)_>U6;1P_73dARrc?&IBE zZ&ls3tGc>t@3mIFZ@ljTuoPt#WC1`R008{B0PjBlkpNg2nEx#w2KQ0mk>KIs;NVdZ z5fPBkP|(m&QBYCQF>tWZF|aXEQLzZHuyOJ5@$u0x35f{sh;Z=m@qn-&?cv~&;o*_- z&{5Ix{=e;g2!M?Qvj`7>1=0Xuuz|4H!1pl#IRF6j;ns(j|JQ&puyBa*2uR2u)w);! zAS?{rhrz;scnpt>4E(qkmKqM8TM7Y3!vc}UBMb>Qr382m=oT ziwFn%(FFLvo#Jpy!NDWo((q_lc!Z_w6KGndmb5_eq{D~t`90sa0B9e>_-Ka>kOYjC zZ*mc+h`3ud$(S%uI7H zY@X7asV?`^u$f~uz*+>?qG7WHng!wEtXuy8(3x=m@L`BcT#w3Ja$bnDml;x-Sf-d_ z+ys^<*8J2rTg7eR(mHD4rHI9P9U|9q=%1f45kQ_u@pz&7yj}xV=w6jnqG50i3$s7Z zti-69%mOzCQl)RgOtyeQNPDYNW2Tl_Ib!m`Jz@JeJDdU(Fd z3k`@`{@)TE#q?Z=wp#KsVy&PQl5FJ6m;TBJc~W1^zEX8gdpTx$c;RjkmTE5*03l1& zYL*u{5)IWClo~jqWxpwpYE%lhDZZL1s6mJ7fJD&zQfzG~dq%Vql)|-nl^5BqT1{T1 z0>#=Z7-G~6|Kzg`=k0r^2}8}H?xXcOMHBch4dI3>;)q%_)dsLl7S3B$eHox~ zuo%Y>KwExi8cY75>KdE2saWic(@QtMxNN_vf(U~~doRTWqnF`LCXJCQZTTr^NyJB+ zhh3BoOleKdk=>h)wh54pR%a8Ty4bYlt2`?QPl5rb6~&Rc=4q|LkDvpqQt=Gm&?OI}fT#c!-X_OFye&V23$9Lp0~4=lz)c~`e#0^$am}B)I1O|14vwWT zJB`={19mUNB>&5e&BFuO$0-wMgJN50fd8#dFhn~R;b2Cj+gs0^K@F@-&VQb- z{2PT(@T}HZ==dGLcNHYF2&bRJ6B^QH10&I#0+G}PCxJ;_>)~9rl_PLb?1Gjc7WT3d zHL#Maism#wJ6ZXt;5M1gtbs>#a}QED#p*evr)Bj{)}$0uWSg|-TJ4Y0t+55_QeG~W zp>)nU6tfB)U;3*(Q*dOb$&YMn%X(P49I9*_oQGkMH$hzsaMH^pwFxdLF@aGjI^~76 zRmey`$aidqJ1%R6fh z`410GWP%;ZAvGN&khd-G86Hmk0Bv)#9XZRlFjX#6s&*Lp%PC&F^7JKb)`cL|<=F3uBeC=}V zz;qx_0QHXb1`^%BbQ7sHw|9W{P)-z%f1K4oc#Gxv{b!Sm;rxx16kvp$E zwS>_??gIHD|K1e9UYkw=M^8ieBN5NTT{T*fl4M}zULwOFJ|K~M&;yhQl!`+S0D*Aw z6$;c{H7Lw&MT^lN+KacGBRuJ((HGfQ%C_ayATX6g+mc^J737{DX zpfY- zua_eI?$Lz7i2a;9Sqj^^jg;6LoAd33_9+(hyOsI^j^19Sl&_ac**<{gluuft7SY4; z?pKvN(Oe|0A@$2P=5Yjw*2YtWR|So-QB0844I?T{E>ea?00bru*9J%lo&rB>5CEkR zX{~x~WQEOZfu$kV^epf+FxKFdE-*TcXmx79dE>Gybpvc^L~g~>l%Pa>Eu54(`w^^< zJ%I)lxelJBzMu}akJtFZdDX|NE-lmH=Yv`cIS8_(GBCQw1##EPFOB*@G(r=T+mMo5 zb~fJ;j`IX;{Uq6o%qX^0D`g89)jWj1di~b z3XZLW19&SFAsde*I5^s)Q*r~=(D!=7#3m|^eF!{$0)5*Q_Ah$LpD4b@6vM4Yoz<^`EMC&55; zkif`UG71>I5f?$7i;5vjg9Sw1q0NN_7f|tR>!SiXuyYSvL9JRl8;eBp@AK9~kZOMf z7uz?c*&-*?YL+jv=IUZtW|a~1^jZ0ymq<+lWn(J7P_(~Qr(rTH zk)~)c>Evnl5s%B@B|3yZ+gxso^!DW19WGG$ZfqDW*WLgs3Ky533}kjKpuAdNfHeF- z+*~9Q;D^sPcRji0&j;mm;3~Lkj*RgiTxic-dcWcy0#rVYHR2nMRL zv2YknnDVxfFpqn!ieHMoy9_{o#-Vkm!3Lma5SE(*I1Ir#p`|!7Uyb{$7ezF%M%!Mb zJoqdjH2wQ?eOz!YFXbxtBS~=q2=t%^4sB*G201y<`p~+k?@Z6hX=6)zW~Yi)Vhomo zoWr(4v_<8m5I0F?5T9eL+rfC#d2m3$OI1r}*=d;|@~&x?46U`jc3GZx)C|n%DnLOr zgwH6e)#L#zo?`8Nl?4Uz*0TGh>$`cw0l-7Bwe;wV53)lvNZaH~g?Vu#6Kun zUO7Ju_N!@yLZ!T{hC_;biv6w$-ob4dL3kJlhk>3MfQ_KtBh|7>)&e(!r0nWkxZaxr zN3IzsTCB^k^`JpJBbfedzGdeC9oHodLtI0bb(h5Ljuv7yBNzYp07kT{M2$c<& zvaTV2i&5)nh#0Vhzb#6=1Ek~)G0vGCm$ak)r4quHS_V)B{4L%3x4g>KSxr&tt*NBJ zbQ+cy5V>X5i%iD=*?4FFRmOln4yD*_9&8^B+&sTE4)4Ajx{U~L%OTI;h5F3aI& z`0tS@G(LjK9WBAjvf$=Qq%fpX&?55`oLXrpSM|iPkaK^8X`2IV-&cmjO>DS0DVO=i z+EL3h%hT5xP8Zpt1BVR1feOcJLSCp4?5egCpAO!1Ob*p&t?V6L1Nksy2m@WM(*g6o zy-0;zyfaD91VG!|%b3C3m}?_iH!S!QOVcR-p!H*%24bn*EGxgoM&dR$qh)vha_sG8 zLH@>^4Ga3)-x7Doja5{w-m{g+C}BvF&KLV%(+T)7(eqs0wUi+OY+ z^|S|eQ|W;m-jUZkph@E$u#4g?l)%{tvgL>qhaD;8H?E=zm1giJVQMXN^h}mQ0TJ{W z6zJ+uneS-90L5`6ZQ_gsM>MJ(w8yk6|M?s5A%ktk%uH*>UM`cp;|NgH8MToT?o@iu z$d?clYdaY-iK8pzJOw>f!ksLa%y&*|k-93QJSJng$kxX-9{uz*=9@cy3UlKXY>44y zFL}>r!@-3$%j+Qgk%-G))?s5l2a=$t(O}J|dby@oQeo_qyC9=RAg*#zv9%&)Zj0Zq z(qM%|5x{!XhKx9u@)g9V0Ak@u212>$$kjh^jx%8Jv`Q4zr>p>Dn8r#)q^cbcVJuEY zAYsIKf=&u42k;SwgIZyzXs&jsaomsy?hOFV%&CSDII6VsVslJwHxl|s7Q=1ew}CTI ztY#{V>{~U_X+*8rJZ>$bB)Igyzv=f#q>rFRTJxNi^j_0pLE>1@sQ&%PBzj`T@=-%cXA=EcnEn_12rz$_qRo|pX;%galgF106svg^*OGmkf)C9={IPU%$WW;4k1B5i@jB~rTnvx z;XB|uLrj*XkR+{E$Ips{t~(EI^<(2rIAiJE==J+7e9wa7;_}~VuK@3u;q$!jo}UrS zzVc=OI&kh%xO?&;;^mP4`n3BD&JBH z-qykceSAMh8)orus7}AXm7wJ;%U(Jad2i*H`FrCGgxD4+;BWN-yKG6(K5LD6?aF74 zuiqw21x=ow26>DIm2I*Tx=0lz6IMl?dmm$ke##mRZ9cG~>#T6&x%-%@miahEC}Z_Z zU;k*Pyu%36TR7umb(omRp*}}qCw4b4oz71#JRLQ2Jj3aVyz-AL_WMNLwo9!4&fJ3cM22`geP{v#p zx7>;1L4yhHar?HMm!!lHWKD;W!c*Z$rm~3eLS;Hcr_59X23NvuI7X)$qgd`G3xGyl zU6`YDNC4V~!t!F%y-Nb;;Tj?}F!JEM@LA+X^2*p6f>wbqbY zBX}BiCSn39W_@Y&lhPLEiCyo*O~RaQxXDsYB!X4$jx>9~RBr%QX<^|hNdO!+0zYJl z(g!w7T$IY_JeeV&67IY@&HJ=`eY!XD8Pu8%N}ScmO&_8%tFj&z5NDGHi8j`Rg9^85 z${d6yovH-Y5wm@Cfi^5iVW-)UR2XXRa=F$HOX-8)I^EY#)`&uTXga!yjvLZjza*mH z0S-o=atTSt3<7zL^9ZA=VK;Tta;5GJCmtHKt|tq=s$p7ro=B(=B6clayk?#SNvTBU z0r**GLoogGp1hJSj&!E&goDY4?r|yoj0VRSxa<(GgL$!*5U770mG3kPpjPD7&#Z_U z9BeB}aP42HSBJoddX$2oYn#8)8&c$<#Nm5EqJ{R54xu=5iv(cM6j#dj(@I z>FGR~PYtLVW!om&*$-vOoxu}|gS(Vb0I(lrG+ee9AzfWH}?VwBS%7VZQlvH&01 z+(vTi@(Y~4)I2&sil@uhu#axS`>~o)U1UJ}RAMjP4M7=*9C(+S?Mvho}Ai!+Lf}C|>YI)Z$jG zv5}$EM=^_v!FY-y;ftOB4r0V@gl-c%nK;933#6+U=%bt#-SWi&QdQsqt0G3LCP2y| zf{_>!JXsG=(d&$=*V#Jhd|B80DcK_B`a6kA{ z$;wZ$E6Oc#8(*{&ni0Dk72`pCsSd7Hqv@&r*4r4218xeur|wHGf4WOCV~=(}^2u+x9!a>vd#u)=l)uVZV@eEFim6 zeXKKV6ku$Oe&oyMJ8J41U4F9PlJ2x(-zLRQ?`eke{j02}t>oufN}W^1>|AHKo?p)B zGdp@ZF&W*cW6pm^6Pbu*y)+w?aUD^7s`dJ67Jjj=^6ju{+Q{ZqUL(2xT_!#B}b-GaO$9TUyf~1$+ zbCba^1|28E)9I&v(?;4i70lx*vTehA4tZLJA)|M|(OJ$mzl)N;Q2O{b<p4ivriq-F#f=9dJ)l z$=mM#ceDu2V}QC1&pkWdTb4+$=vY2y`Oc&X|N3HFI8a5IfFVOJAt^(VpJQRk1lX>t~W^F8o3-@PYoR`0g z_m;Jpwp2fj>R_qyI&JXO@sCo3%t$rx_!18d_R8;&RW54-c01SVY|3e(fzilen!U2% z8X+Q5#wr_*-=uskB=S z$mtx5vz9+G3=0eC9UudDMse2tvskJnh#mPftr43Ec_5E|8(UEAIZ8Vcq{?t6Xa;`x zr!9bSV8ISQLkp!1(ttBO2Z7{!NrNuq!d8`ltf7bX6`Sjb#~X^SUMvF<31p*i*dhP* z91;2-!^P-_cZetPei8LR|H4Uj!1Jm~)1Z6Eghi@xw0NwryBc7ef=wv7>Q9Kb{uFe` zi!Ana^cdUiQeyX2X8!Qlld3_|-glu$l_y?9} zTYoLt?z}H6T1JGvNtC|}ha3v{bjAfiqMXBR zh=aCaq~8g$U+FcinxtSGM30=bWY!ov zlo9C6(Bm(Gtc^CaE`RYaNF>|)xlVB+RV6h%P&s;U8t~*kwcs-Gls{7DpBGVXGADO4 z5K{6|i91QL)ugs$UOu5k!d(n+DoFf^b3}LSfP#6kTsZ&G9Ht*NtQ9JW^V2~KK4#?l zjiSVE!EJsFyUzval{Qo1E*5y0XfsB1V$;vJ4joOK`S}SvQ1v7`?EYj1|MWd>@}Q-( z%s+C0qvI{IA!|=CdgDtO-RMd77VtTm&1)HRaMl*OL+E-aArNd}lB236Z`HPS_~?!B zmGVajsL$1ES-k%!?^+P|DKOiDd1-8=!VK%Q{3pEuhvYu0waga@LJqfB|7#n@`bayJS|5B3?b8`%wiCrTpy_H1jpwmk39l~d8_V*79^C)3tu=oipqOPyWWybodYiZKRr z()g*5>=N=!?42B;$rvSFej3u^EHnW4ZQUnj|{6{f!VO{qN22 znfC@A4?>WhahOlQD zPI@4)V#e1g^yfEtBRgIO!Y_G!p0J56`qdC5A#{{+`}NjD?qh9ZS$T3|sEWeIeI_J0 zZy)rV2Y0Iu)M@-jLFLheyMO*RKdd!QBB8fxL!+cX(c6%4gQ^{}X#zkJTRnX%@fbw8 zWTgN86D}>*{2egTC^(|?aE_QD2AZnIoY*Uhqx@@lr~G0_$U9<&o#C!S9QmE+VR=D`nVgiJDFDcfk!qPFW2)p17XYEBvTDZd(v@LQPx>iV&7-# zvHNpAi4?1v-e26+A{+~&^D5=%AXeie+`pWNG?L!4f$%N%DYu(%SRMC7R?!{Ahn>Ie zE!m~3R5g2pQQrZ^C2!m>jr*}-vQ1BlXB)I{&vLI;_l7TSKT4Y+G3oee) zCC4=U5($`b{Q^@@T?sr_v~%`4!FE}nXeA)th4z(+kC~uoTky0+ z;^v{?>L1%Xpz4i$@Re})zl)3C|3Yp@t8%AJAcr^iNCI z-DVh1d)}!3`YyYBcm&BUTOIN|y#vt4Ul||G8eSS*L&{%%_BT>WZk;!`Jgu3>>D*YufVilfEL=Ub&3*%`EVM5SemL9b3Ii9LJjX3)OwjTxz?P0*C8Vr3iLt4 zQE4oPGVFt3$?-!KXXzMxq9lx9i{)eA976qlK!`w+bj)5rc7_i00XB`Lx(S`U zTGn6D0$oF{pr8O|B6Pxt4JH_2YsGB3pUFBPu?fo=LuA3rG&A&$G#n76cFFyZ(ofO~ zP+WJxC9OC&AAIhX^i=hUd0OP0H;4{x*!beRQb>7w#?)K{9mpT;lZGhqFqO`Rs zzDoADc4d2iHyZy(# zebn?y%kl*Hg1PGX4#3MHcJjJLe7k za24-V^@%p~AHAWp`56v}?4ruL{MimCQ=##`#4omZ_M*p&<>%h|veCnn_ogi)`#-{l z7f0J}mnzpVEl_86F@!OHN$?SMnPl638Bx>Ve$A>=l3I02J$GQd_u0id({38}A7%b7 zxW9}2hSPt4yq6{T=am;jBE~uP?)%6wW>%+sYv#QGEw^jC339?z$V{H$%C_!}p%l z;%|2tr`W1}2X7-7ez9F_jTcTfvg=%};o)XE=j_`nxqEBEV(H5l&+q81I`Aw-3SHrY! zr0vMUUh8v%m7$tD%;}p*(LaKd%4=rK*J0no`i79hj(+y<)@oOBZ{|JUe~O*#PbiEF z_ly@3H|ZwiF0#a{9i_C-)QK)UwV~$?GR?Oc+fwwAkvyzagZjNUT_~f}o_e;crl!wo zFL%WKEQRWrgePE=Xpg|ZaVfP(un-?E<_vV zIHWR4-zdJQ{VS2`=gnD-zms}pmwN}0`npvc&1DNNHj1T>C8j)X`twePlO9}AL8{f? zoYvg7c4ntdC5^`O4K_5&e%JP!t~1v0guGSGz5`z4t=<7h2G+O3sj~a#)*YX2o%>bZ z0hr3~fPGZHZZD@dCE`FwVkadqDrrWe1hrI1p9CXX1fbB->n@+c_zFz3lZIrQm9_KnsRV4c*!A9|=X+*0^M z%hr`UbH{KChK)FyfP3(Wa5llI1^~E9>r|-@D;?L>s^Owh%a2A%CtIW-JB6@Qz1GR0 z+KkH;gr%H7e;)5LP>pZ|BL$?PL_D?4C7^?$C%p+G5ae>#zt$uyQ(4-a7ya6fxihIC&?gFs*#( zb>vquob?T8MCiG&uzOvW!LSy7m$BGL6eB*Mt91F6R^V|Oin?QLYP#%gzPvVVYk&#N z4U0&T3KowuH3=qoF7UGysdKoZ>Vf|Dv^$tKB z*H@m&4*ObG{kH7f#~5eIBo{?2!^Up*IQJc6@lESOYEFnDQAofntbuOw zx_8_@3G>Nukn~2?AQR`rVneCcbgmMusP_JFN4({m?&H(vy|!fczBb3ZXOEmnf`x`k z2Fcn}Gb}Pey{PU{#4&wATZv@$>^Zdl|<0L}J9_%4ARr06nxC9h+Kl<6zmZyZ=IA_n0Tu|8U`c1rNE(q*g z<+D9lrzx?0jNbt`E&Ko73KR&mQzU3n}V* z($;@l{_g<7;L#bL`YNV!Zi5A$1f!TzKJze6Ul1Yfura{`VTJAh^*i9}d<$3-H^Hy( zyXug)iPwlL<>>We8ux@C;W$R=vcCAzi}D*mVwiK4h#)VNM*+zD)^4IS{yS5Q|NDTo z+*I>#8bW6{u8XU7voW_=Z_+Hm=xZGr#nsqg>N&}D)X+-u)kfHTr+g0%Z@AlFihM|= z;$5VFX33NLK1+`z`hl16CsdYW46;^tPWSh*#xG51zuBcu%A&0aF-}Ui-q8HSwIaw~*LeZQoNnv_ zPPadLS9%6aa-N6}Xjv_K3L;ny>K(xI!244;Nlj-x^`2<5c$j_QAEEAnanEJbQ)YXn=pXDBlUymu+#`&b z_D=e$+DQsu)NY%vGyG~q|G|EJ^0OiO`sozvBBj%44i}DA<7bt^JL)`08darzIKfa| zYkd6Lx`9nP(>9TR_KKcj(S|k<#j9IMd(_iZsEIFuWqU97Y3fGkrdtu zE%bF1+hidStXXbO*jGB&FK|!N#;*(v1yG@9nY-a7!&$Vy1Aa?RJBFZi?+V;t#!^Ps zg_Xq&YuJe!uKbs>h-?)2FQ<(1##AEVOMkvW@PCtJWvIAgs!dWWKje=780F=Lq>j#T zEsPzWAtb=gsmU9E|H~^ad7#ajJiN!W$2`v9`N#3F#@J1ef@m{l)|8O7w~5zz|D@z2 z=C)m`-a8~4)tS{R-%)x(M zS7c_N5C1knJ)SR2)Q)}L0d};14E|Mqe+o~iVWemn) zpb+PqZT7iC%Mj^roSw@FT)8-&d=8tiz@o^pw!*yHr65LZ(T*XZz|ijRtwBw@Z>?sx z?||9mtOLve<&b|qdC$M!0ciDFKXm(kZX>JL6a|yLmdIuE0q5sQ1K1{PQUa2&7g;Dr z+w(8h{5{08+y?$lo<4U!z2(JlGADh1a`=ATv^CIo*3&c4b$)Z*^J*5f{o@}Q2QT(h z{ioVnPcKIXT~|Z_ybq*|qt5trF)HV60s0R3A$eIRjE?;d;C~0$JfrpawHEUKqfxGM zWyFsa+IoF$<^y_mi%8O!JtGil(aeu{r+YiO*w4xn}gyf{P>2h47nbaD`fG zG92(}5+Xu%pr=4&bQ%j@v4PXP5PEc?ZiOz2b7?!zWSm$)a$L$PV2E53;hL>=bByRO zGhZB585SHVvjDUjG`A2QQ0Yo_ncV(zUcUCnULDL8gUWn%8g5SfmjU3O8tY*m-Ia-T zNE%pd7--)JsUXZz6`hF=g=b1K!9$}$fq9lM4Z^K;myMmHdDrEplb9A_46!3b8ke2 zTSHhu!|zbik=vHuh)_*md@|wB0`k!-b9F=kPs$cn}CxLBN(%*vyyLFcG0D`l0$djJF#!*da%Pc zangY(fD3&46Rhh%|e2G!Kd1nKn>)o-ub}Oyr=s3955+9p^63{uJF?$Gw>_=l0)LY_CoW=uYFH zZ8rV7FM&Jc?y92(o3(^y|N1?l``&o!7DynTdaNb(cnUY?W5PRuR)=5c=bN{8&1YhU ztDEgaG_R1{mm)S{p$uCO($DH}aEmd;nfEhobmSGISEgLB684{H*1e2##^&wP&RYyC z_0$huYBX@YT%LbpdXmYr&Nuz}Bbuv&QnBsL9gn|EE5x!Z3D)*G+Gljbu_qJzi7il$ z-q8pCKUY!w4J8oneI(?Hd`8-+XG=A#zc68LhyR+vzrZghVPcQx{3#wGilO6@fKKsl z+Iy3iJxq|aCef5N(BBXef^V;BBcMHJxQ3zew=)|epi34KKdPAhXZOFZ7f#I>X+FW% z?JP5)#HRfWEkf^?IISJ?0!Pw-d3AmhnhJ2x+h^#IpklaqQ`aFH_mo!zw+4% z<0I>rTq3OL`7Mf$CmF4F+I2#_yzrC#`XuMj12S&+6eiQi^8mZ>7?AUU%rnez^pKz?M0Ej0@S`p-(j2M@&$T#8;MQ_0*@#jvK9iOQkoCDthaHVUqy!lb zwpDA6s@U}O)E(hEB1qi?dlhhw!ter6SVcIjwf&^B1e^PVX12{bhk1U^wUiNjZ?MQe za4G_a>RNPKY~i@How?E#u_AYnamipa*wPC01_~(riNOZPQ@Y#sS3=H7P(hC zg}N8zNI}oxq8bOtg;*aLF}3G!w4XivmeG$_>*11me;ogEUm=&;){~9kYX6~_CnKVQ zMY0WZk!YB!;$ju+3G9wr-A0Tf{+Q()jXoMrD>sKxZFIQBqua-(-jq_q22?h$4D(#*&( zOLk5ih}5B&D^k^hMM!%P?GbB>h?s2C#6Hg(UqqisvRw7*_M&+COrZ8D=GK|PEW(Zc z;{c02$xDN3>CTSZ4Q^O>Q)G7=_Lxw>eO+!6rz=lvD)e6}fvVmOZIR8Lff9KZbVA#u zXB5H{1jaw}U2^(?0f20|v4%}t6G-KVt&G{|+x2-(Q8WcZEI2U>_^b^IpIB@%+v{_dy$I`Mnu{%CUEu##A#OIm@+T%I99m zc-~_Ui`<#Ze8O0rtMds{=|c+>UAop4TssBN&qdYhJ|@u*U?z{?~Dt1>1Y2SzRu}lMAKBn@GF`Z_0E*Zbbl7eV2IYT zkM1ZP;>cn@EME`w!Ne1jEIB~LSRM83=-&ENgsD|>_7Olw^t*h${vGG|Ur!y2){t)9 z?ap!qNkI_GJsZ)kNfvR!{+BXhlhwMT4abfGFO8L9y1GOY$Ew+6IN_3Ib`g4$HrbM- zz0U)&Rm$8Am5U^6vG$sN4pgE}93EA%w_lFCFg&v7&-Ul-_FMQ__@jrHc8;agkbM4sKw51W_;DJ(>wl?n_vEUu}R~&hXPTgbjI%| zznB)0e}toe`Mt5h^+gOYE#1P}$8t?r#W8o=K`dmf(J9`J1Cy~r=6GnJ#Glf~GX?}%c+B9ru`Rxw>dS3ZMRt0JP)z^H_EQqe3bd@qA(b^R&ct(!H;Z7}B zQsMbKuD_3MOb~YBnZRoJ>5rw;vX3KUcOW>Wa@OHLGQBhpSt3iG{AJYaB^v+c`%j1K zr3-VO{S0o=Le8!vi5wC46((W7B*q6U~NY8?*7*R!hG}Pep8J z|Bd<&(fp>5YUBnp>QydkJlYeDwT^q?4Y6%*Npwork2_EA`xln|{Lc(30oejEIIfmP zk~UDMFG99CWs->bPmlszf7(F_;M@@>IoX?)q)dQQMWS!$_Jq}x{Oz&9jW?yac~BQ0I6vvq z7tl^dKO%mp8A0rwbWih1-JheiQTkQ<0A97~=}f5{w_3FqMTXjZ=ZaF=5~s$Q7s(>< zOG|Tiq9u(-#PTjt_7ZCFH#<-$68!grwf04F%PaIRN7?>h^wTab_iCH*Qs0j#&OdAJ zS=yqZUBM>%n5cVP2RTDumL%gAc=Q?-a7=nnP@f(%?EGf*m32@yL{{bPk8zM6jPyy3 zWR{zQaow-X3Kr*@H`KBWzusb48U-Ebd76h(v7IzU$s4-n$#(UAb;NZBo%hJpNI_-k z9+`XpSa{WXL3QQHK~P4)QeW6rl2}ys2<~lpDZ-ZuNfq2Yr^+cJ#PqOgCIVQ8PbQ45 z&2gkf$<;dIIIP%+yE8Ia9 z+*q`yDT0)>^bTnbe;=g4fo1B&spz>8{WOcVdlmY?7iNB$-eP06_ViL8dD4Zr>~Jjj zrR7!em7x1gAWV?v#7CaqV3hks%9>c!CVp7QmTGmhf7#E42OQOQ0~e3a34@U^WyLaj zV#;>t?w8}klD)JJumr=e6L-3)eEbAvBx4X?`*q#{e@okVLMT1i4tYw#OO&u!bi|5# zG7TgjP)ABhxb8o&xj9x=)@!rq+j<)@U5bctLt8`t>E5+cm)+U2A2y8L!rxw4rhog4 z-soXlJekprS>0fwS17bfo%g7&)gNFm&2~E>T*`{#%%HnH#IN=gjSZMY*B+Z+^WP{_ zP9Qn|(`}#S5aFz2ct)o`O{Q9*YC>34oXtISyk^)?YcWu;sP2~S!PZB^Ya+3fr_?=~ZPmHWto z^V`LqUZwskU-+k1y1YZ_r;`1Y5+Cf5rx$21_FN}&(`>P6cX5%N)rxA?kgya`_fd2}~o$M3#p!jXSo4NZj0|f3n6|2Vay%_sH$n zBtNt7?hAjQk~>O44wSFsPKJ|?zoHIbs2BdLRKP;iMn$J{Y`04sV6)`u*ZV7;w!$`{ z?Yv&kUx^Xw%Sv)v*Y)M#JF%Z{WNofczIj8O!#5JDp3yZzWl7v;p&CTC2~V}-t~1uA zC*SMW%L_y`p6_)l&?Zy^$%=D%$r1_HUJ+!4B+GhZ%8v z)o9MV<>OiOn6@C}UyQdJ_e^iWQo;e)M92FYfg^{Krd6w=aA&`#t7w=UA`ubJ1R27W%2L<7@!vA7afCt{eZ|nIypP0 zg-H{_yqHwqU>rbJCgt&~c5<$b#6TCJlcleR3F;>L^E1%Q^OuD~NSrI5a0uqol>4f` zhj5%EAH+!B_@6U@M_%oZ91OQl64UPfiDV0uxXL;`%S}{y279@szE9^{Y`xqRiM63SbWNw9p8*Ct_ndlS!l8N4a^cu$=d% zohJ>WgnD1G-Z;hh$(EFTortlNdyNNu`_Pn^o)!u{wZu-dyaU>vWz^@qe$1P8ucfJm z`byfY_KRP$;*MwA9{bM+WE=Cl@fx~mR$uV+s!HZ29tYF6Vr$Ey5*hp}9sZ~1zK=;D z6!NuB5IthT^I+RUx=zV7h*4*>Yls3*C|FLtQJ%8sILE-4aBo6uIA_~|ML3zu%q%I|SZ2*ca?lu$XewEjv2}&y{MS`D=&K4^(Rq!a+ zyBOjg=CSA_kAy3r(%1}&lh0PZROiI)g}p5hPvwAUa3k%UwwO3V%2e*jkF2CT#1VB? z)DrUPM$Q(lAH>z}OtOTzQ;!jDx$Y%zGY+o+`%Mqaam|~;jqV5C)$f3uS#Cf9p)>cb za${kx1c!UU)PnoT&kwy%T9#kYsBk7vA}(g${)Hv0Xlj8#8V9RUQM6$|@D}Y-;-F8_ zXc6X0cStPH>zr+6S#ySrTGnk@o(9RI8qvg$xN>X~eCGCq3JM)a_AwsM9J#SBLvck+ z>BwXMCCpLf`dX7}gz&i-m!kq}#fb#Bd#952Qd6#$*F;142azvRCiG*>_+p&x+QwhY zQEN!}XM6L?<#}0M(yd7q^^-%5ZiHFhF(oyW0YdP{^MOIn3|YLTcY_F%>`9W`q&+WB zAjKzU!6{o}-#4E^Algc*<9gM=Fs3TZqGuhksd9tl?ecdXnJ67ALpy8En z!f5wr7sfA>g7X@?TOK`8t~{!_nSFG(BRaLqqsyGN*ArniTrFN-chQq=y7PlMiYuZ^ zckFOmKLA4fo9|dpU1NxxGkH4M(w2oJIf)jl<91}ezZ$w091amt{_80CAe`im1;%(x zC_&nuNkrXRf{j~zUIFZZb3k>1)S!{I9LiC4!xfUtSzZ^!6ow20FS-7D3XyA0%wd0e z=bc2WKW_?7MlyGM-xjC3Hn-@RY?2W7iY;^8;MTNBaoJ<~DLvem*>L%%7Ufwm z{{Vf*(4arQ@Cwm>C-~!-X4#Xnjv9HVOrMr<6vVyf`>Tq{JOkoBB51{CmBtm%yy6|s z_kHZTV~_H~eqj7S;oQonCLcD!)qLnG30;DXc2*qBaB%7uoO2(BT+W3e{3be$dZ0*W zFDX9jt>pZ1#l8|}Ey81kYPeSZY$hP>{nsscPl9Fqy=Gq`2ty*vh~Z8s!Et^|M>D|G z=cQ12fz_v>T*F1zD=ceh>UDy+jL#oe@dle*SQ}#tnQMI4^7mb0zA2d6uCB|m=0RVx z{4K%9%k??s$v3Ij`M;fhH~Ow`r}{2Dc(Sw0F7^GA{9R+MNBvMSHI9#Y_f)Ri;dN?% z?Uow>h#+AzN;R_j#Ox}thM)cJRsA!U9zHxW&%#}H{w=}F&(F(`7v@>zWcPl0b)Ur7 z4dyR=b(9=Md->iyc3Zy(!*sKZs{_E*={2~#k+>Xfc+@(p+;KDL+KeaBblihG9B;+^ zS%wU0JV%DE+%p82_wkpGKiA8D8gwIyuLI8e>2#fltp;B4?zh7*I84hjz~QPjhY7&AmWuBU{M0`S z^BzzC0N$iR*W3?76UUf7D#)Mz0Iz1EmOhXginQv>!1ZI?J(G{>c(cbWzb;9RxBadD z-|qge`X@Ki{ZAJrJXrGEa`M;pxZ~XS{{Ha)01f{DM@cw};laG`lb}JxR{sFnJLR5n@=-+%3Ic<)LWcYrh3o654etP@-Dem7>ANNj*yI^xT|Z zQ7yc3YySQ9{{V0Ear*u~f1}Q0k2T6&*?*a-tMBKz{{YAOq;VC5dEMzKZX&TEq3$Q3 zxm#m|u=I0GuZK9Z62{f1!+3l}EO5{w@Ar)MJ+(H=6#rZ2r>^E&KWJ9e*;q zO>A9yEOBvo{V>Zw_HA9CkLKrSjnN2N%;7BIX5(%<&4gD;>Z*BaO`+ zQl@QGW(<8=yszX|bsv~;wA@-^T5znlri+$&W8*W& z2|CZO>y44uf^uGLxO3&o&n_vyS6Rz%U*-NyNcz?3xV7$kT+%@Ys=EbMwdy=#agM_< zQhS>4!v1H0Eo=^^)1cjQ{8dAUF{dxa=M^y+lZ>l~rGypST=DYi2Dkuj1d$z9cZT?C zm|i2!C|9Ow)}@o?Epr|qwZem>5WP9h8N+!zX6F5WPQQ=-pFa*ysl4-#^DoD}{LRj{ z{8v*I>pZ}7+uP@NOd)mw0o|mo>d_{{WAdtvls@qaUXH z{{YU*dfvW2e}}#M`TowB+(YI=jQ3e=aH&nMJL~GOW>#$xG+FMyKlqpFxN-U~%$UiP zv$yL%1^su_=l2`KmUiQDy?<>72#D2I=p@@kW2AxELBe`>U&>$I818Q@N}<3w8Cfpa zS!0o}L`yc|xH~7Kk?_`Ef}p_0Qlimq%t7Va9(jsKH-eJ8%e>z^nh?15V_bI zkD~QgI0cVHM&DG)CIK@#q9RV-i=A3~_v(Uo+o(j?BSGJAv86M3wUPjn_e4SaDVB+y zw^~YxwYnf~MUKH5y6Qsr>tsYgo?iD-XfSM$+q#hkV0x)qfvp^-Qv`xUSpdWWi6^Q; zq|tHJIl0jwCf{^LimaSTK|Mam6E;W)8X%NS;^^g3n0Kv|_4ZP=1c*e&fejyI!HwY| zNE;dTOm#{k08aZV$%~G?kc}b=R}<9(4w59#bmlp~RJ1X&HJd3~iA}VWzR|KT=%Xa* zWfbpZ<^VD5l=RU9Q~c0F6n}L1h%H_@&2yu}{wQX6@lWO&II`m2x-VklgwT9z%5J=o zPYFjK;~qMOA%dkRV+bre=)3WIO4v^LoR?4RTDLlU!TlF6!hS!0w3+4`FBw%zKREL9 zx}dk&cei+B!z9acsy6OyufX_wkY%`r;xO5DDpi|yxDz0y(=NxOd+xMv#Qt#l8D?9T zF~zLJ)|bZNxBX#nE}hnc_@c{d)WPK#@DIzORn2kfBHyCthwf^-*MV6DET4hsVj2Lc ziX^$+g4m4{8!da_UUf@1;7m0ZxO~hri(cPSwh-5-D_ow~$I@SxcL)$kHyflK5Tp5t zlXZrp%bqXeU&P)kQ@}aJ)Ue@<4A>VzKgoJ;BFd=bxkeWQL7|lCQw@RFb>+_#=)Z@2 zWT}j)W>qw*wZvF}Ie(J%K3$kn%<}v;Dv{@>UYK|zq%PO?qVhvcjfU%@aBDwm_<_W@ z=Lv2Vl<>6AN%J4ocWg~YvkvzI0BTC2maWmIFQTM~sC^PJ37k)2KfsW^^mk{vY^( zm+|IK%vKfQwVP_R3G-7u)x2xL_zpJ7s^Br~5N}SP{LDQ<^9_0#{{VtKU>?#y+28W( zv!a{Y&Yi>Jkk1ojGqoDOs}}3fFVjiNM#UKaGw9+%G8j9giF@;$9aGiadlqrWM8Ae8Fdn(&Y8;C}Tq{ z17Lv{x1dpTv`7;cTvajVY=ORu$v!dVP2kTIYGN>B$F|07~+o zkNJ}`uM+p&E-QqvPRlr7DZ;)(=;7GX4_IA$#y%nc0B1Zr&G8L9wO>!<)9PH}8b4LXU#YnB zJ`X9z_@&0VwM-c1t%<2u5Z-U>v{-!rTTkJejSC-);jByI=C&EG*#7_A6O^dZOSHvw`Z_1V?tUoo9%Gff!*O&zV;lYE zO#P*LST7-DhyKpIartIhM-7j2I)3f{0OaNC$7(>)XObp80}k6&&z$qr$T@BO#K2_s>2V5t5wDuO@+kA zMDW5exPSiuDWCa5t1_T*nRY6M^(j4r+$>*hJeT3_4EU4cl^VF;J8@OtiL4Ly1du*} z1?$in&^cNf#@VeJ0nvFQz$|?{gT&mfmMiyWps9u=+m+m;N7@&z9c?sSbM+zuJ%Twv z(E{K`s1`7|?Q~~dQYO~ukIV>0g4^h@qnowL1QctgiaK;zHEK?>jffJQ*bllO9RTcy zp%N1VX!b$Sbo~(7nfoJh?1kMk9h9}SD4Rfy69xxDr3tptNS)#q9xpS(U>N7(u@vaE zZudg!*^i4E1_8yC@dpy&{{XUSBkHo$mE83zQ5&sCit)}#7<{}2jSWhlu5#XXJw;@jd{agCXOAzc7@2{JaeiDZYKcOH?24S0Fsigm`h-ayrAG2dOc_s*Xd-NYQDkX7kq>idNQmVmunUYO0kf9?MOgoCH?l_&oI$$#`* zmk;>A!<=8z{s-de;`}nn z#WD}eW2v|fq2^b5affy26O*ireHO$Zd+3)m5dz8ccJi)%+l>?PJ;gO}xLm&^r0!aE znrl`aK!{zdz-|kp!`vZ;%qvnKkH@#>z43OoY~P~QzZ5ho4lu(x!2G(HLCSp>p!g3J zOBccUJz7!norPo{W$5*W+^4rTS^@2{=pH4z_O^e*Ss1%<7^h;Z5AIVEKJc~-Pp->e z(<3(Vs}OZ&SC=)Tv#J~Ynz_!}$w!X-8%K!vF1{_a{{Y`|_Wa6k8kWeGu7~iw#MKRK z&m*YrY9XS%7WCJc54Y8BZal@a1HpO4YNi_8Gll!;yz}tQhjaMv5mub?Qo@k$b8pdg zozB>v-lGj`ZxX!e@lIzr$cDeUf9e;az=3t=4~l2TeUdkCkn{Ho9DljG)|L2cH{sl~ zD&k5U^ypU~GL9mj@Q`8(^oN7~EYRbu0K#I+Xy)_>otk{Xvzo5(uO`B0o)6_X9Bn4o z!_~vXn(pOjpAa|;HSnj1X=8Hwk8T`4n+u9&-`y*v)?G2_>TW7|XANeAM1C5i{TG-1 z9l&>qxPI7rr}SG}hCExs@$Ud<6zi7Z^J+L(3bZHle|f!@tN3njH;DAL^5JSq))U53 zy<%y-_?5r zx*epgaxsgB<80-eKf+m_JZ#9y=cR|}Q2#Y}BUaQ^FHt{cLS4k+;lgPENw>;k@K=TxTRE;&z^^j}BlzOS3; za{SI4s`=k>`*+j*&x`Utrya)0;Oxf@#@Q7t(=V(0iiD0=h;vBP5V>qd2<3ENi+&}v zSwMWlP!bDb^0ZIGuM^kd?k2|Y#yFa7uH*9B?W#6pd#>g28OI;7ICYsm9;9Nizn(Q~ z0sd?5W%!fsJJ#|404L@r;Lo%F0J)d^)e-R>mwq!HjirgrA6U1S5sGL$&uNDFoiagz z^j(|7zAnP?ts1$8Nr*QSiTF3|Tix>i0Ga5fQ_NZTqTF>xoLG!R zRCn)(_qytJ>Y;+c<8s>VuY<*$HFn4qDLl2n9c~vP0N+I!GQ7X-FW36MKk~Q!#{H|S zth)aIivIw1tj2iRm1TLhFNYn8#|PBJwv}p3Y58?30w9~-3fOe={8c;53Uknt{PI}5Kye~CW38P|`0(Ze6Xe`)?Q{{Wl) z9BXLfFnByg2ICDpB~i^*n_l3@^4xO`3@v}c-Zo{}jwYjk$uU^^S&dgZlPb^!k_NX2 zOD^}tZ*@Kx&7V$1M&W7}$6ivr&+y>db$my{x})vHm? zb7M#+Mab~}Wm_c0W|+#%{BAcHgsp{bN7XImHCkHty2qHo?R7)1t<---jQ;=;{dRcx zS&qNA`nQkZ@3rHXpX=Yh-ShnVV&%@vvU<*~fyY$ARd9m(6&%7xLkbw?W3xO%u^7x- z@m1YpQng1t#CnyMLElt}A-z_o;%~2)%UJLK0O$Q!zk@#4aPa+l{ye(>0JDu5YlVy3 z?5{NbTN=@z)nqu>^;J8WeDALN$JPDE8HYWZpAu>HzS;PH=zh_i zrw^*R&DIUoZq@)_75YXyfHyWOmk1?fk$dW?d6~KoEckum7GvRtV_PfCs8kqkXmum} z2dG=uDe+T>b6hy8%*vAtU6l_hA60J`cyp6+jX(FiIBj3ys>?VnVUGA|ipAJ$$b7w; z_T77TEphbOlsr)3+(vCjEu)yztB9*$8E_A-i?>*V+$}r9KM#0ppBqaRi^lxtQ+G32 zND(L1ZXnT3fuiAp7d)i+S=OL6}67J(Gcxz2~26Kfmj>eFk}HRQMi$06VOU%IUJ<+O{5X(p|Bd+NJInyk`rzA zgcD#=cR+!lz(mE+TL>6B&C-!7BTH_MVK>*Jm8gw=rz769=x#|*)=zY$aB z7MAJ$p?1RQn%HN=z8afm*it%tz^}sigOFnDvW*!LBB&g~riwpk2#Sk}z;Cew< zaeo2jTxo-K9BmQKKP^_-&02Rh_-Dm7v33hEr%{q%RcsKuTPWQa{y)fazF(i2P+@h1 zxGs8)cGjlal- zM9X*w!yFDH7~}KtH7dHDCW$Y1IiJ;ZTyMjsZa4dfrIls)Y#kQz z(xBc(fx6@PYlX7z6u>tNm(diNySF~2a^=@Es&Zx4psx_lFU z`HJhH-WYCt}_|o%qcme66)fR2GV8|j>+t;$x-Fsn_{}}8*p9&jxuVP z9Ca}|)2cr;H+2i159TiDcT76n7e6gg;(jpT?8AZcs<^mP`z>CL5~k| zR<;QFKg_E5>w&Nwcazk@V%Ql_0%=xg^HX!O|__0 zZ!4JbAce;qw5?&`pN{!{dxE2Y&Z`U#X22WIP{S(s2S9r*pfju)q$&(eGfpHsm_b@| zivAn0Sf{?eON;y`Hnb`ZW`o$SqR)rkDQk^3;#u-^9JQc*C3mu9%V&6rNhn}jx+oKjOb&7jNM&ha5H%vuo!#zr=Fi zVo-B4^%ylYwW>Re`blePqtG?xO$5SPCzXGyxlX!K4d)doV6kS-z zxf20D8+bHvhXi6XhVCC#-izhH%qx~#Ur#Z7N#w^VwDxK9i}N29q)MOuuQTb&CMJed95o7qgNt``RA=0J~!K{5r*G-aYU$H{zZ;%yXPQ zdJLh6bu!ku*YdCf`YFfNW9LofhyMW8Xalu2f8`2)mEi2Fq6;WdY|EI|gX|Ti_xmn) z+oQ`~I&dx{gE*bp{spDEek!-lZB~!?HD*XYrr~V=01Nzc%Q(9OLkXHyZU;DPKznLg zm4Cd`r?S~urdNf|vikTOZ3bd+m4_?o)Dj3Unsw_?kC?_fOJ_-5WU1ia9;FJ-n50tQ_X6d!EMfrN%Dna{=PLPgqzNFNtBX*9BKPz_ z0i=<-3FQ|0r?hOMgJz~?AZgV=jY^YzpokzWud&U`9TVh-dZgj0m;q~!J@IyiNAoaQ zW1EV`i#h)Q!B6^>Zya{+S@#m<{5OVmd~H!pyEj)KWvTd&#@tRIKAu-g@T}A3)Vq(M z*=s!KI>u)hm*O#)hu5m(B)HgrMa9&t8#f+{J9=>9b2*O@VzKoNTupb^c|V!%mB%|W zI!?V86R5oT$YTbxpXaccr+I-uiSUMBYM&KFPz)}`f%pDW^cTpYe695j#f&kS7q<`p} zNGK2h^iFI_HeeS%^{{UxRA>JR3w*LT#{{S`EI0J)t-!J1VuM?R&7;qHa<5WJpxAK^gJyR?s z?IrEMWSh$9-ZAiT;~o&I$_(em;ZMz@)!jnxKq!(!glpY#$1Pp8eLTb9&xtMIEY7}F zn)6c2aSr^){!LD#bSu*MEXNO+P;G2IX4a(fEqhFYwXcaj2jKX>5mPYBT-+95;V)qy zyQq5hT8MC`9`G$!Q^E{g3R@gIxtM*fyWM8baq7cal-oSOdZt|0070={RjGpU4~v`l zYR|{jrt^DzvGxIaD}ivCwgZLmn0)V%`1(x^bJ%7^#P@~EEPPv)(*7X$Df~;rRI?l_ zer6{xl3Lwd!>`eF&jI{a!{s<;@ZN7%4Xqllm^0Wh~WAe799P?5x(BZVnp|bzK94Du?)s$5_|A2GgrX zhdHnTtp5Ntqo`s0L*S$MY(L}h?QMlK6&gJzS7qVsyFB8a1>)*Bf00G&s@s&sgPTRWxzeo>vjlZ8Ucolp-it@iTy!|7hY@lrX+C=QEN8} z>H3A~Fd`%^2k{NU8P5^%4qaC+z*WUlW*yBgrX&JRi#&h1s@Yx)vy;O-ghseinE8CH(YiJ4QcneOIN~ zRkd2zFoF(?Ncg4T3$sjBT+fHv##edfsf9KK^=j9-e--$F;r{^ptIj9oGQyT7mpC4W zRo7D{9fofkH{7%DU86AA12=P-f#W#_~r}8(t)%d>^c>9Q{{u>X^NShzS(DNU1 zxo!pU8#Uq_aL4f(sYZeGKAYVysq1?yG1qjrZ2tg;o(-$`tVa=IDY#SQG-wwMZ{{n| zk>_hc_EhEhejg~o(ZXSAHkBG}EILvMqt0=n=>`UDC zK!GqnMe8W#Y-|RLdEH45Z!-AlkX7KWKf&=H2pVj}yi}I$QL#TzxO|bgzZ*PJqlm>* zBMidV)u%ETz%=(EdIQDI5N{dqRxb+H&MK3BbpyXJynC*>;12`4hPYeyjw+wZ%rWry z2Me{k0=mokShH8A(x-%DaKeaeQ|07=u!ZCf9;$c?#%9xxmroClbtC={MCFvC%MhAxvT%K`k&xAa`_%YMhGz~+e2HN^0aXZvS{a?EK4Yf)(+ zh%*pZE(mwB<9)h3Ylt5=#z%%S%HF%{xyGZTiZMx=67VPl74ym^FvE5bh$Y5c~Sz*jAg?b1KwSFxf!mc8*`!kQd^ zgJvTRTZhf)G>UZ&l^Z{m-^i?CS19h8R&j*Sa1=4vD$T8itkC8?t1y@&PetTRvpwS9 z2s0PqeqBmbL#6my!f89WJ9>rO+3`7zG-25tBU&s)b07IuuOD3(EjbqSy5oXfgG2egi;`rR9jhz8Js4b$cFq6DBIlY(v3 zsFNF`n#iNk7dJ?m5)+wCng(@9*r2;hrQT&`szB`?>L*nYLqrr!x>*!~(cqsA1?- zrH8C(wr82aVvip9tP5ahANz%RJS|PVGHO7)5}B{1f%jT(!k-hfzAw*TgUqm$s8I~& z4q!U1x6RVUaj}--V;m;-|3mOg??r1;boZg5s>TnA{E_ zwW*yz)u*^zp{iO&`>r-=G|Fr50ZK&Q?zsBZ-Aaqx-9V9L=eoZUnefG8D2%%d_S357 z2ziqPj*D1Jk?HAR;9byd3S7_xU3sOy5!^#c3-Wpq)0xBhF5AI>5ZEl=8&3(E;Xh`* z<{MN$nwHjFvy2YoHEOVeGXJ zivBO-yg$z{SS&6MjwQH?PN_8>T0sO3oz}(SEamzC01svPjaCYEF*Nzh8e}%>TGZNa z;m)zq>Cs8958q8y0mK^{1*-g4@q-!R-gAJ#;qWxEY{gP_Qs>kyEg`^c4^*9vxIZ^k z+C&1lUJ%aR#C$WC=8vW*yAw~G(`k?{M!w6K5;s!xBn|KErz4tlTvrfgt;upcZeU0Q z4@uPtK9acK4*0E{X~H-R)N;11W`6a9_#QP1>vL%A=G~OpaRpVl=%m=tsH^pGfhu6Y zK3fIR@_!Jh=KdpQTs26w--E-ppm_c&hVE~$h21%)+p4#rU%FBDDj*RMveAQcWW|SG=#VT?p*;{0WW9766oI^5Jr1hvof*0Xpe3yR zkS_`}TF4_^k_P(es&)d`-5@!=N+<+D6AFyOF~emTN|=mIR?wqNOP=Fky2prKCFLF- zWuHGEQ=YrTQNmNbN{6@gUUkoS-#Ft;Td{eKV@nS+O9s>BXRlJS>5d*%vAFxis=4JS z;IfL3p@MatUq@8*=oYK5SWF8lYhui6?6E6iEN;2i(c{8M$ghj?n6l&QR^3wkNh4d8 zUokVX=eMUEBFELgx`}adl?fZ_tfvIR=at*jCX=OeeZsevM|B!(gK?_7HsfWDx=2C1 zpqN2 zZlzyJp$-dECNCb`wJb!vKQF2CD7g9PKk~SLBE1E` zULobYd6$Z~N`aWB2(5-cnweeYe11+Vjdr%AMKPp8luSWKFm{pjM48zC07b7Rb^H)@ zf=(Bd_C)kpY@MVH5N)!QT`qy9>dT;WT!NxMF_2|ytarpe4`4C1@YN~e%jmqY#VZm! zs+;j2!$#tkFaH42h1bU_&f91m`Y8h!8!danUNmI9U!2m*Fl?^eML=BMdT=eR*1?+| zhqA`5KGfPnfw$Fbj}6)KIOmTr&Hx|BGN2ueFt#%Q-$}aGd44{R5BRmlFRt!dH84~$ zWPvsSgJshXOxDer+TGHSdxNsmnBR$vj*UkQJ`Wd(Wd43o(0;dBSuezI4rW!`PZRU< z^6PU}XP4?FE){m$ZPQ39Cg68i*>+`y&9JP*VQaFz2ahY*WFK{u4TLUz#Q@kKj$!># z5;a{ri#$@uI4d${2Q$SQIEORl04cbFJ%ZM^dL6~KY;7B-W6NoGSkY@S@dd%|AN^wQ zdJiATa(PFLd?}mPZ7Ny4Ayw85e7E%q_*C3?o~kY0>J)1>vwmea{Kg;R8YcvU2UX8X zkmVMecTj#FooiG9?dU|R@z|ey<6ttP$H+~KhX3X@|hl_szN)`pINL@5G!yM(99 z5RPJ{80Rg*nue$0>2u8UatWVRbO`7|kum|@21xYXH@cE`h!F-QC{q3iNb7Qh7`;_&qG6vovXD}Z-}{4#3_pRw@7ldxT+fCkq|`hpgwRty}oCBS7gLoj$sIA)!x zFa?2H;sAmeFF3tSp{@6bjcU<^xp{VA%lL;uN9I+oE|?TQe!^>Z3@?!;#I^Zu^fgB9UJbi@Uw@jaAtjlz-CNq z=w|qL5lz9QL|jbIuEh+S)n_y;B8oE=(q@Qh_*4<%}C<#S5x7<^kXn0i=>ZkAPO zcq5@!7hZa=EzaXw)69G?oaR0gantZPr?^lL4XWLq!=r-r1uRoBRH@abd8yQBdr0V4 zo<1XRl<@i1PmE=%Rc%U6jp7LYYi#&wm{iAbPFYdzm$ikH=t}L$e@@anb}FzKTBaw; zP1lxuET>Bm;(Z2HV_w6Gt7i!Z%vYx|RU-{loB2(blDJbpr^1|T`%0@FR-GJ8LR!s8 z<|}+X%9%ZLS0c-6NPYtj=I=Cu(4IYTZePQ1%kvz%lW@Zl^G>BE3rt8O>GxfRzr>zc z*7kCGX744x&o=QUSPUNj)U3I<*;nwh<4B+ziL47eVBSPb<>lSNrQ6QG66cqT@{>B@Y9IVf zTgSs!M*-w>WAZQcD@J@vx;VQjwT2b;KjI5`_-H@+1CfdU0Fg89S4;aDp52|M%g#R& zXPb*MYg_P@Kl26X;9%W(yW(tt#koIE!c?FA=BdZ+Yj=2BNBx}SJ?MY&723=DuB+jI zANF^UX+MYm0OBjN%)3Q1?zI}z;vYTzm*Mq%D;*Uv)fJNlSv5Lj^VP#PyN^ns`G@GeVZ%AQGyH=s z%vwQiB8y&qV*dc5-z4j7OLpd1U2S~7hsAJDHkJV%W9;?pj@+Lc?Lu2fY{ZMvM zObs_WAX?(xlO%dVgqXIy5H^iOqg~N4Zi(m+MhVb$Nv2vo6C}8ZG5nI}^BERE%n@bM z{7ms91L3ws_{>M|v2|s*Y%@=qtGad_*JaOh%pVS9*sRALRkU!pW*5|X*e@9IZx>^H zNaA|g-ZUC?eS7L?YNJiDeYaONuuKhCJ6&W=q)hCmv~@=)5K|&R-DTE7Zje>% zHy>qCXHR8wK?3(!bdWUMfJp;jrU;9Rs@>&?-C0e9iALeJ97f9h9bk%7dEcZ;$*F}j z+sy)0s;mo$ndq1<7S%)&*c*gC-m6&MIcFt_RdZYjaF+C3RUB?Vg)@2?u2Wdh#nLhh zO`bPvhTyE{RJ15pXniLVC$jI3dU!cF{G-$!8hDYH_>GZ%FAX$tR7j_Z!#nd*fAl*Q z+xe~v@jnakW;4T%DWRQUrSv2-8HN@W>3>$th3veiG{a|kW*;Afs4HQy3>7K8yMnzB zhslM;>6fYMiRF&S8fbz%)6pD+ndq31dZcYBiwT>cMBHo;1V>cCJuZzjK(00ex+7ha zH%N)FI$Z+noNEB5JEgv+5Dt(MXqOF)rtL~iv&Y?Pdmb*Ul~c`pPdRm2{5^cc({vax zO7tN3df{GQ_*jA?{{U)bdG5AmGLI1I<|Usu@YwfMEfyvTvfJn4cL&WMv2ilr@3ng} z^yMqOaL0rB4+-ZKb1Vfat;ACV0_u`4s_$Bx#kwtR;pdFFUl238*>wyBY$Mr6=JV8W zAdbsq^UQ8nn=k6?i>COa;uar(G7p_0`1<}z6wc>zdj+GsFwXNF+mEo=?BbLEBi2fV0Y<3y$%Inm@;zaU?`I<`F z*={zTWq`wC>5%Gmm>$wMm6QjYxm^72^wzt18;AIpKJZ71pM%CR{{Vw)$Irt!%Us{> zxBQo@vaHJwoMqU2b{XQO3e68=hTw&%ekOQsmM?}d*}!DtFtr6YJ95HCs?Uau`S|_~ z#bxzf&Tuu$SP0Rk;asnj+dI>6i1c1q_?&SZdrm)x2qAi$U$XL-#KZn)ACY-(6|wYL z*C%BNE!R=(eM|PUUdCdGO`?Hz>qo@{D7#A0fQvg+{}O9Sp6* z!P(YdONH{L991ta8G<>5thm1rd{D`FcOu3EjHg={Qki8uJu@yO*>$_xMz#2CR@c}sBERyY@ITr%!aITHIJtW z#}4J-{OA7w>D(8az8Zx1hAw1bU3KW*K6ft!=T4u?hjcGHd@|dQYLjx@Df^YKKJlga zdY^TTn%gVJJEa$&vdWk%2Rm_YPmVn(KlEI2_S4Cp3pLO2XDl)Q05Y-tSFgYXkqgM4 z1)hHuvhp_huDbQ?M4i`OR$&)Kx6yg;;#Z3+Vfc$A!C>k|OcDH3fZ5iC=r_1ArO&fO zmE&$Ut&8yw#GK3UZ8fUYdznd%{>wto9y_U%)*Kzgl(@5ouo;yn2Ylv9jh(vX&CQ7b zuRi=UacRS1aojbEd>Q$a1Nz^XFG3h0Gn#5$x_^pXVNZg%Ll=uCF%NIcqB^+lx);M2 z5I-N1X4!pOob_o}`Pbi?XYRUJj$B8G-9h(Na!!RT+l28bzCb$Nfrq>89u3-ha&bnM5qzF z%1{i!P5==pM4%?xDCn7%*(3{2=maKP2d{M-bU+;~bq8PhDUkwHOvxx9Lh2jky~GstYV<-8UKU z-3>A?y6WUjmjVrxfdt0g(i$GA@{r&V0FYrE!XtjDkPhJtfoF9<5J3J&<^*)^rL0b= zHLc&&pkVnxHi$&t2qgrY+BXTd`kfFK{{SSW@|=SpB-@~yt^wT*K5aXsWD6h*X(a@S z7P3uf4hRJ5M#=A>C<1j!!hgh?Wdi;gK)vN7x&^@50~_>&JGqo;5Tf%MpbntwlZcN* zh=NGo$ykv)thEv*K>8@Sh}V6R4%8p|D7b!0xJkwq8c&<3x+drOD#Ppxw@xBZiIM~YbWzrCszOr}5D~Ki-5~_W zs)_YL7w)7)`M#>U$C{gl@TC_QQLaE^qfi!ym7D(n@sAWbV@Li_y;V`IbB&;{D~6Hd zCN6Xs!9Dz;dY%6On8^CCM=k0xiUf2YMO*ZZ{{U4tLt7JdSMZX&R<`oz8{w<)Uy4=n zKo+s}TZv&CgA?~&j%F_l#k@Q!Ft)xQ6;AEi`hvQ*ik==fjqY8AkT}<7l=)0Th zhKraQ-Do;qE#uvpD}}YKy04A7<9M5lu$U|-?;C^!Ixab#7WxIf_$w+oKMLj8SBQHlg5lhmT8qL@ z3@hR><2lWm@0Qndv6VHbZ*sS|xRYqo7Ws0M9~7R@#F)cX-^y&fx#8YhhR%FMW)~Mo zR-pV%K;|6{%JmK~{{XvH?$W%=;XA+dok9t|Ca3;loIkd+pKkHvAB6Z^9#}J6lME>S z7)^Q%zcYG|Mb7vO#rb|=mww898dNhHB3kg!4OaE_3ujfN+SHv+t3^gUK?HRR&AfZV zc;5^7yA7FTrOd)qe?13*W}VnqOf&M97Ck`M4p3~YW36e4U1Nc`zYoTF4IFkHfm8C< zr8i@StFkfBAg?u+T`YO?;!d9@6y**-#fGRoVZ-{Z+2M97o+rcnmDHWg-;!JI99K{A z%YrI#Uk_5o;OUx}?7WvXjn&LC%s-mf-V^x4{>D%_R%c43Ouv}Ao7z0oj`rPp=XmLj zYVGN#QQ!=Un}iXE{YhPk&kbpIz$)-q zN?Cpmh8BmGjTVY+9ROS>9_K@cI6E}VC(S~Gi*Kv8A63u)0CREX_m_Bq<2_>1UrN3= z<&Ml{zxYXBit#&yTgE&gi_6;4^P1n8hdk)g z?d-bSsAEOd#1?zm~KB{1TLK%Hd(Y9>;2i)^!{_(*_Uf&>7QdUQn2@RksA+|Bot zfdCV%?4&GglzE^CQ9&b_MmemQaU@2I4>`=~02@0Q zkHYYd5%WcWVsZSZxGZ7)R-B|mDURsGX4UwcHOA+7pj(N@)pcj~2SMy0DO4ixvtI5j zLyX0fbDJGcWd`V~bx%8QXYz%%BRTCPmrSQwfufb!n zoF9sG(r`GOypyK&8T`k(*Cn#uN4n$inU*7lb9^3if*`=Z9kK#X}iS`g8#keEOnQrkpmG=znW5@hUvkEW@%#9L!@5|odp^i~fXWY|1D zYvO(%2Z^WiXkv2*HlqoN7ygUVU-mP?BL4ugSby)k`mZ{0Xf-@v%TB-V?=jjOy@k#k z=+Sz)FQ+_a>#XD+9^^bRj&?IH%f=TF=9U)+lV#Z&c}|j3ACyd<=r>$#+oQ-{EYN;U z;?6q|_MTQ^sp16g+ZF2iF2iTJBui@HadaYfa3N}ch%XOn=U7Tv_6CuuUk=jB>}b20 zvG!eO!LJ%AWOzz>276GlgFLuwQPHFOF8-^vo>=t9%VzjPjH`yqvAjErar|ygh%^l9 zX`9nONLvA}he=wiiE}(J4e_p3#aKG@>SdXT7#wq$WKaCJ{bYNt>BT&4m2j2~*qp-@ z+D(aT0hd3}E>{}Vy*g*ahG|C$;q$PBkDH6Ez}B5e1#o{0nRQAz262pVA(gQKttWUF zTE~nymo)K{i}3Vtw1}fTn0gy9Zc6nB1#rC{0OLR$zYXE6CRaue%5Ry#erFq#_g!r9 z$5lPoI@1v*SCjrDUp^(*lcfe**?PT=64Jbv@fr{Pq+_H10A);lg3lkd%ec?YJOs^f zd?s^@HZ8c4DGJ7gFhij9U4O!E63e*Ph#i2;amNWz4r)}uyXZaoU?j#GMO$D+7rhI0NC%Nc^p@a>~X zpI08Fu2@)1&t=p6F5~JPeZ!RTQX7n>IV;ls%ewj%+#9Iqy!lSrj=ADTmw@xPfB19y zh3C(P2FDy?j7j_?N4Z{;;;gLaTsfHFn>^L1xuey2N5W1ZZ-?F>FylSaetMNN3 zt>I^in0)63(#$ny{wA2)VD_!y#{MATa&HgaonhV_>{TEz;2m5?@>o7PaB$+j3a;uj z`LUQU-%^37+dShuaN%Tqjp|;idZs6DE8I~`KG3@6Y z#gq$%q|Y(`09_YH<4SJeUm5GyXyt7@TPwHxFNyt1^;Ze-{SFt%aG7=;p{$_54|22z z#U4g*`Tkp(G;)gcT}jUB=ENq_OCFD>S-6UH>apHOv^aVYr#!6(Rn+_{&fA~x22F}_ z=6}lhZ|qt~U9V9l!EnplqCgS4fVj~8RNT@>bqzLI41Q7FF3HHy=!;lxfjS;Vp(kI^ z6s#Pa6FVS@22PTd?_|&AHm2f75|4YG-Y3S;h(GGzp08+)i|gDf3waeUwCm5R2+eq)awWr4zpD2_sn_l^2Ad?t!+$`k?*NFx@ZN z5=iKPB2Tg=>wN{E3VZl$;)#X#Qw07V)F(oBza z7YagPgr-om!79sdA_%y6gX zVXL=RyLs$aX~}O@n;nsm(aPHmo6%Yfw2c>3;Lb4pw#VSHwEqAJoMEkAgO0!69YI~B z5qLe;Gv3!m=8BCiIvXyrmH2Iu_=$or4*>8L8mO~wAKSk5Ho5Btq;);&MRKuJuB$+j6TbTD6F5JuBRqQ@t^<6Q_ z#M4*cejPF@RYR)c@fF#xDQIfhTs^~CZwui601cO6S%+cNv`IdtXE4G0t6LJf`P!OT zeBPmO{8Pf%PA|!-Ww_&0@YM(|6wDI_LgoP_fiUPa?JOdAc7H#-oU z+U(o|>_o_2ABTJy$hd1hqnqHLiKU66_dTuV1-F?VmtEl43v8qbnO0qNGO4^0dMv7L zCv}5F-}PB^-ECE>xasJX=b~}t5R@z?%$-NNWCsXQCtZ4}K>&3`8-t=mOSOnWGi4Ga zdM1}(kX$>hQSmvSJ1Owau3t&TwX<66!uR9^IsX7*9_wttYk}E$lj4^;{h`KLCQ`?F za2RLTdv-3V0DYQ%si#b4+M1IEDj}dvl%`}(sz7zyy(F<})ZCn8(#FUo4GKz)4)&i`ry?1_*_fLMinjP{t7pE`wzM05vPo zisoz7^;b!S0ohD7!~?45UWm1hZrAll)FkSH&QTkv#)U^k)Ern=Q)>s>FWF!NGYZxc z1-DYHWj?83g&|yq;LBuUfmQjVVK#rmo=rw{lQm}J~(gw9`% zp;C<;ORE+Dd5AOpR_Z^Ln1v#BNuu{w<#P6#*JdC!0H0pzN&)hPHlTp!kU%zq2wIbl zejoDwAgxy!l)brjCHHkRdTu|-ZPH{QXtgr4(WjL0J^^ul8fa6XD^PL2%dR<3c$M0j z!4N2ne3S-NsQa4q59K3by#xr@4|US~L*YzTVfbwKCW?9XTjr!fV`X#> z4*`dy?O9E&G1x3VDBSmcc*@ny? zdbFKp)IEDGzD2dVMX>|(DKhb?t-PH}g*-*!vT&GI<`n6+z)`8p-)@ULB=A#;c)KuV zeBz}{Ju-aNaS!Hvb`rfvKqQV?MZh4&u)6+ZGB`dH;XDrrWc0H94KUhlxpwY7O6G_f zl`UF(ZkH|1{g)ee+i~Z=8Tbc@c;k#kd?o?M14WIcO~t}CllEK3hH{oGI@L=n|%KOVS46~%lZNw^v(5skyw4`W-Y69??JY)DEY`J~ISsy-j` zyw@P%+-6ytVIPJx>vPiQ+!>f#R%c5Bq$5}p33FUpI)$5eRsto~kfQVEh|w_ECg_N zQa)qfqFctuArO0YQFKC?j#P-zSexxx3b!=D0a`%yRh12>c87IYzS=9?8y=dfssa9J zZGdf}am#RJv!Wew{E#hZ^$V+*{(GR1C+vaJ5O2`{9k26K(D%@l5CAGd^LRlJY^2a4 z@f}hYB4IzwC)H3m%QW=}o^3>HWREu?(t0M*)X6JCP5gp>iZW%;VKD7C36L8mFQS26 z!Z!sufQE|#4xe=^60#7J*#k?BH$b;((G3wYf(GqP$E}A{YHcPGc92i10!h4mRJDY^ zl8AAUvINlwRVh2D#iL|7!t*kv0X|_cqT?q>ln^6W?4oQ=mQkchne>DbV??>N3MAfj zSpjvlP$ppCRPLe89_ti{xWN(Absypp1xsGt6d&c&eUwlR`yiQg0->zU)Pakepbo+= z6oKX5$^gyI$(;~OoBoM`CUoqgMU<{U5{)GQx(XzN5TJbWQ*k2brw~AtkCs5)F<>X^ zk8oj1gyIT=$Sx&K&;jbGc8fRAt;Q}@M8FcH^Ktqri@8VxqT~YT5>!RObWPCTFj1yU zM4zI_kZI8nU8JYZK#PA=rFns*Da2TYOCYR??;Rr0(h2N{FIRBkbqCAj7f_#)B|s`O)gx*Kmm zJx~dPwO@xmGhws#)4^uW7<_Q@wxg`tpV4hLJUjvjGob});c*iNPjaVB&6Q(W-AT5d zivr+9hW%BOZel(9s!#Bkm1AHLCry=t)&M|*3nH22yh&K?@1nJa_gjoI={O(FrqHhf z_E_}b4#z;QW4Yw$7SVW#5}3ZaY?0HV3Ar*XxA3A#7t^A15TZ?`FzZUJq)f;g^+XsN zg&j$}CpNsGU;||AOJnG`jQ5Ff95;e~Gara$3N*x$FtP1laRWXJy1@qdV_11+NJcxHMwn`iDy z_A_qqHY>v%O^P_qInV02&ptk}_6{I^iu^nAPSn&Pt$;LCytKh9CZj)h*Q&&EJj>5t zPZJJ?-BSHf=Rwt1R;UuN>X?7g0l{(D%-WtB0VBHND{)gAVWxeQ#|v4!k~??KfoEA{ z(Zm71i=orvhJ$lx)o0-|##Oj{4Pk2W+Z)50PMzBih-=R(%%UZr9R`c4;d3|uhYK#j zg3JTj-faTmmKHsja!j0wqa;Sje7;#C{Z-g!HmjO#-CJ3ph}f=rdiLWTvj zpm#QfRZ{oSbQ(N)4fC|fH-ftkS;Ula?AMjsgRp_xX6Gn zx|j1v*tm^1PeOqU-O5BH1SNS0A4In&V42hIkdLYcWQ5{DNZZ*z%Lou3RK$-&8-hVd z8QR@Y69hm`9n1__Jz*F2TN>wzvRqFG=WgPxj*F^Lsch2$PyTC0l^Q>^H|o2lOP%2O zhb^Oyz}9VSJ!XQ}H}qVEKsN!v>Ij)y&p*Id@UtCXh%%NM*$r27W*7i};S>J=F`nk( zbe+b1Hf-NpC)6%8AL4IRvAm`pT#&?9EwVhBY9M`{O%Rsit4@kY! zkz+Q|1YUb3QUNyhQ!T!>?3eKk)Pe*8I&_53Pr6aJRDJKVq9@7%TDr&CNcZ+jNIlRl zSP0bg3Ash3P;!wf1W6lirqE8ORGs$T@hfQ;h|Y)<&NS3JM5tVJ4+RB zAR|aBrwhkKU3S41kZhxAFlV|XnYw!g)y&Bt_XsDL=z!34N>4BVh*U|Vn4XF;Fk(}1 zOTNdy%G9e#PMIcBs_F94JB(+2dByO0s_5MkTE}JR_+e-m;FStX-c#q6NgX4U#6>BW}q!tgJ^+V|5oyKnhPgD%@azPQ4atB1jhd zs+{TW3b2!>+$!AdMxE9h0Qo?Rq~jfXl%sB_zJpMLB;Gov3A#=YP&tq>pqWx0Q98!S zG{7YV#2)?7ISnyB>9pQ-w?v2om~5CfAlVu{$LNg@eb7$5bt&}ffpctKDegvzN3jW* z2KtpKi_DEZ)iqrMO%<|S*d=4uJxm^}7tpSxU#g+UnmeX-jU`3K%a~m(rQSW1HchrG zB1H8h^ir5A8lj|K>WLF1MXjQz8-<~dqf(9{n5#+R9MUX8wqy>8hyiY04Hx1Mf_1Qk z`G!U3rVP6ZKQn*B)o~mX;{IvEPZ&JWl`(i$o>JG^r9bMu7|lB1L->UUvpIxJs;l4J?IHwNUxExbzk|40z&Gieg10b6bxL#l49}GB;g0W7; zU=2$2m}Rx_#t8KbmEn&bGn}KAhHF4$sWitmnDO?yzn3p@oxL5+X$sFM*agwJZ^fP- z;vm+u7Ti5^{{Sktl>Y!l-6&!yR$z5Ehl9|}u2%~WCR0uR(ygXqJE|CVJFACX7Nolw zO`cg6>aSyjg0X{u3g%n|xe=8hbWK2Cd7jA^^60iE(51`fH(Xw6#CdK@NY%#UDB-D% z>No|hxR>G|CcuYN%IP~Yt}GlpjQWtbB~MMUR=qkSndCGLNzrRQJMr5n;m&L}UVmxh z#kpyiV^4Q~MW?fVH{$;Q67eSsOXmEC*kN#j2fMW^yYN55vw)|H;tJf2*YLFU_bacA zp3{4DT6j(=@rOL-s9%Tx+xTfw9lzACKzMQCeg}Z48nSUYjYh>v`bS_FXv%VY9!r8| z8v}=C9}dkL!5>weOz64glBCBCBm9Eg+keOn^FBU>w1Kfw~3nAWDzgQNLJ0V+=y@J!+4{aSmZpZtP7{ z^?R4SD?jB>sCNxEUINM@wmIg1Gu(dVTj}ZJb5%?(2T!(wfebeOC>fXKcZPO_zGk#^OFpOhm4oio?~!*L#ae1#cW<7b?TWV(M3UFL7}_ z76n$~D+pje;b>ix3zUj&=cq@b$`$aKdkAsp7j0^E^W1H8GTcokd6@flS5d~+YprNq z6#ar_Do=+H*Bok#VtsmuEE^_JTVQONa2C zR(@TWzJvZ-{G=O7#l~eFu*&0GLn+M62Ds`MJ4Ul=MdzZ|`F1GOXmC3Hmu0|WNpnuC z$CffauO54h%+DO!9KymERL5}zQ1Sh=9|XrsbcerwF`lBiCoq+QfKbwNa(Oe5`$kZuq)M%Pn(^&IL0>@ zjHm+|=Xcq27#xQjW6jDsE=w-PQKCazOuciIGcHz-+}qV#V>1U4M~CqxlJO1dtfX-{ zeNg7f15mqeA3CG*{{VYQ%>_oj6Az7NJuX*+(Qvjp%yru%hWL?~k|@+Aq}WeY+9_29 z-M3o$rd<3f=3{+3F4vJ_-&&Jpr%hbEx#K;@(BjVeb{;|m#4A}b1PJO=FP64`iPDFA zE)nbZ9bY-NHKuJQ7pQy-uk*Yy$^(tqYE$|>%go$L1uSD^UM9nv)hJixkCrcH*tdt-90`JJ{K&ti_q54T|FUd9}Rq2tHv3R;Bk0HVV>rfQgt^- zBx(xT(n8b6pB>}sf@L(4mW!1flI4%`NZV^5I_Nirtp%(dI)wSROxt}C&}_01hZ2pF z1SgX9;02R~xQ{cM%al>!HVR3H5R%zx81{+hemvOWv7!Ke`TE^;+9&qmz@ehNX zMN)-YZ*36ht%9lfU)&wNSEcwP#7vuyGT~bRh#xo)-cWs>!_qyKoN?jqSI3wmOCL%r zw0`dp-_FDQ*P8gJ!=5DYvo>xw3sRt@!!)s&eGjPqtH0^WG3o2D&?D73nYE>8P6GIj zrBGAB@g+aQKEPt>iD~r%MZ2=x-wB&xnO_H9oq8`GS25BG<8jklW?9-Fbj(M#svyjS z^b0Bl{{Wg`-}Fd+sf~K55@O&b5-nuG-2_M;-I1x*LJoxcAbC$@3<&;+4d(2Y-*o<< zAX5M$IwN02U24?u>@TTMQ)m}1&?_dy`J@O74LLIuOhgd2ED-MbUrOiHz34fJD0qPYGb?7U5K*PNAd9v?REv7(q~l}RMbW?Lf-N#*uE-+Y(+r6}L(v4kss!R>TU8fp z?3lKi1p_xyh!dzw*65OTM@1Tlc7+#-CKZ#fMNLC>mQ}gXExzgxbnCxGV~huORZgud zn`BG?BI%byRAw%ECelGbz~N^mKFBkvRg))6cT;PiPTdhhTnzL(ppP`{P)XN8vWX-OAS}>Susv2KU`wsh zWK=VKRxM&oodj&NeF_{$L?6sWk*I=^fa@+`GHv!oz##g{9A?WQo8Dk|MXq-#N4hMv z1Ctl_Lr9GfJJ~6{y%0@=iQi=+WOOPGBuptcPRB$OXb-XUg1W~M_-l~yFmc7;+REnN zK97~d>8kAP{Z!fkjmqtgS7x@+dDp|vGKq7tymdOw{u*_G4*KZ2v$9?_;Fpm}xXd#f zy(7%eppd;oCu^CM+Q9@7BWV)7QnGPn6Hzl-7Avoev1z+vl7@1_?OU&4MC#kyaWQwRHmxAZG>ENW@dhs3oF@_Mt{ zsQ!t+;$XF>!4MrOWq)=*$O)yg7g))Y!wV6d1%n5MZFl%74pU%yuX%sE5;m4R944RG$h`xGOscET&<77{{RkoW&@I@ zZHs<6?YXB+axrcI05PXj6VvFYlCZL@lL3-ZZ5##`mKlw(6x$Z{S@Cb=kh%!H?77?6 zaUFtO$&)SaHblvet27Y=ZhNe{P8L|Cm63qDTd38+4yn*O}>}KP- zjELx&f-I4?yQ!tpN4Q->#BUKWo*(73t5>A#MSA8bQDK5(QcpoEwum<9wEqCacMkq5 zhOl|tNt^{kPNOGQR3HQFK>Dfa(~e7)s?H7gg336j9Ne!lqH?TNd8bLm+|=Gk(rpLV zRptDn2yi+6D+o+G4O*o#4^ZMiqQ}iJ?$xr>_fg@)Rr&LsUCw<+w7t%Gl228iC%*Aa zZ%)UGFf`S1xRKv6`-cU*tXshT;?=lOVM7(d=seEdBZa)I*?MyzW2ejtX^=H;LambZ1> zIC}?`Hj_YTrv3TXNz)hlI@_`DZ3opDNBow55wgN(6X6`<(}!?75Vj8!;M4y*w$5`$B!_%Ad8#Woi<%}BNo>!M;V64u$na?D6d0lt6eyfkd;SC%$dd?-aY#H3{vD#`EmsA9l=xmM^#eDoIwby#ehn2CetDx|9 z8PxD}@Q@0fxcL&C>z7ZI&Wk*GcGo=pE{59fX_Mx0+^mLE=7&7VRAO+I8B>|2-3qe@LZh4wLoFY} zE9gE}t*%o9*Hmy6!F#$iDdRKKl{_-08O8DZOS*7vT(b`FAIid85<=j-OUh}SMJo7b zinNULa%vUov6RX<+B|hZfrh3P+=o*ul%<|w>M&z+>ZP?A{{Rw!{vf*34l^^t;IOr8 zRmIW5Q~5M0ze;Q-V0*4wpA8C?8)HS_2y+VIl#ZBrSAENC(#^26>Ik@8t^*8c!P#}* z8_H|o99ZWP*_hdPDl|zk7V5ltzLy>>rk-sT^cos_6-buThSf(@7BjI;2m**UpHz+1nf=_paE?amq}V{j(#1o{MFSlSuq$I=H`=(u%6u( zp{bYgpM==rY5pSu$7+PM#k{58ZpqYIkRFC+dPL&)LmR|mx20`TsBT@8qdnyUOwXD+8X+L?_PmBE|4(LsEL!V+oa(-Y@`VnLx~flD$2bNRTE+9x|p&= zZPgl9=WViqKV@N%6dW#Q=qez$O_eUc^jEt2=&EqGivx@(9%;N4Az}nVT%y)pqmXN- z)iUF~(gyKpPWKxXb^;>WT{2|pZ4wubiL}kn)ldQ;Y@aWA^+~OZAF7u3Dq08^>YSMB zQU?C03WZ^PJ1K$nQPimeB=iubf&-UCG+ufp+sZ&(u}TrJ?4;wjRDrdvHwbKPDgcZ2 z-9iM;`UNo926_b;^B#o&966EvUV$kbur7hDG~EPm^igoRP6+_asGDqp1VT}Aq-5@( z9Am1>Q6J0wI;w~Og=4ik1nOl>i3+_6!(}~_8jB#AK(GiHle#Zt z1RY~?fs;PzgAKAm$lm&OK_-xxc#=r5)F?Lk>X|nZVGWo!M2XP?M)ys_V2u`|*JK;s z$S&VR4wDK|O-Du6EmvMYMUhePf11OpeA6~7oxcJHRQc|aGu;P3vKc)9NSg_|Ib|cF zniB`237&57qD(0s&Pv=h0X!K$H_`G8EZxAo{AohJ!aM z#*O9{oSQYg2C1S9_SJE>Jr0I+8k`I+$!Xg$sbk$!- zU(t1iWweM*x3Y_5v~Hv)ZPh~{dZ4-j8f=_fy09q#{{U3Y!6hzP8p%b>$3za>Cek^k zERfYRqR3^}Su_m&RxX+>oIZoLi(@gC5Sg(BL8je1^ivxf6b>Oo+>X~o+F?63Y>kxJ zb>9&(R`C}B=h<_Fnz&b%fz%FR_Y1KBYih9Zgw&+=4IT@AwoNsMSv(Vy;@yn~g<&;V zC!45Q_-sGO;tB*EX*=}_j1C0gv#iq&;6vz_FplBT{FZGO^JB2C{wQ!G=)CW>oSzKL zP?EUn?Ul*aY?EvCSQYJ}<$aj<99|-j5>Ak?TE=rbmDR zQSWpxNsfzqPX-2Oh-;h500*#G_#6SmkX+v=HVc%)WM$3{sd9R*V+(>5Tcjn)JUen( zJwK5}jRQs7FcpJb*IEYatxzz)G;-!}MaPs_731W6ZYikjbxEpO%lTlg6E(p6_C!o9 z=3*Sif_78pW+Y9eaGgCFVdXT}8K)0Cz1119k^BSwjTsP|_DKg}|}UKBX>9&OP4P z6mTW2FdG8U(77BY5PuMuT!V0wnAU*tBUO;fbZL@7<}01a+Htb5^hFv$#A+_NEGH|P z4Bi(KYMRkcWyxVdroa!?d9v-_8Kt#nlEYPQ9-)!NH$Z$xLEyG9*r?GN`F5; zz`UC=kN!)T7-xK!%VfEwaarYW!(wo_n|VPI>kF34^C5`>NYh2uvBNvtllXREZxq(6 zcrADf(=50X(@?Z0fEiEWGfaESZAcM5rptY@*66*MPM;6%SA4*aWa9mhdVr2mqUiZ1 z2FPv3#WSsqqo&GQghHWA17!C*CA^^A#GrNw ziRKnZ)72|Q(NcvI`H3UZJz@=$Z+#I6+fgV6-l!rjf!kC87VHsdLv|Y`0U-on7e~=J zfSCXzeHGY7Z5vq}m*|{A1>tz%dQ%@C~tqful453f`iycImHN<>Km zV4O%3^iFTp9YI*D5Y^ZFAxy@*r7%(|Abk)71pfepAYAhA(NMNVf)mo|N4%+^YcryW z9$-d->S73$9#9WN(raXFdLS5yPnLZU`!!WUNHfY*OJhSeQ<)m2{6SF%A2g`PG3=!R z(qT6d5%vh0Rt3OK(ChsI3~q;L2t`!kCN)TfVd$VxR&8xn54(U@pVd_OnOUQXye98R z>Y@)YDpMvl(RPkS1)$my7m`eFr0F}#Tb-d$Slf9`r0EFfi~j%$b2Fd_6o!F$5T-eS zgK(qGjgJ1vaXL@g2J(UE(;~%H{8F3T zO}Z$&$&?W`QL#EH+tpTXw*@nYiz|fHS?+r%-^O zF27V8gvIR>-6;Uw0|bHm(j-Qg**&EvIC8?3rY(0svc)D%mQEm8!o`^Gxn=Ac7&buq zq~ozkrT_!kWIk93)T8)9k2D=nF{*L6OPi;nB%f3VUsUGd8h}Sl5CNH#4t&aOa3@s; zi>U$Vud!od!C2FC)G8WDJ1biLi*uoKUIV9O6@%p9#-1xC8Nz{)+;ff7XFIBFK=~I3<2n@Hif1@zRE_#DDzE% z3y$Sb5#h zxO#hMrRNOHML3Z?6$b!0Ibca#ZG3H9Ei3N*G2kNjF(PE6dwRSrqV$YkTOYQkZ2w=8Sl-tB)yeozub&W;6t=lW+}{ zxIxO>p?xv)Tmi=6iErirkhsnn#TvM_FdksL2RAJ*F&Y)u_!kd2hg5L#)01`9IPu+X zy&2&?STLC-d`B!h6Ih>NWw9xd0yJG?gYc&Xkl<*#&iP@)cQ^iPvbU#2?UPaYpQ+2s zlGVva(4+K3{SoCcYo)1;(R66wQ8oeqkTyXlbRVJ{B4xw%QjK;>U<9Ph?1sz;XuOot z16|M~n93*`nfj(Dl}6;7sex|D3AaRRt&lDepgY?{QKhy{B}9FciP$0n2-Z*yk`_9n zwx}f*=#*OMi7089K%`G}z>etDfx2WzbO;|dzQ{}@M1%`e^afCDo}nD)NRl+!BGDyC zS~p0Jx+9_Jbd;=b_Ceh-4!Wu}2dX4Rk#G_)45;UOp|Khu9>EbBA_+a!(!d9poys9O zMv%1E$q)!c*ceY+pQ2h6HUnU5bQrf;L6qP{kU)!|v=KX}7eNC3kS!rCH}7=G2#xxq z2$3VAQKT6iWe$xIVh9={qC}LOB%Xme(18gNV>%)eh#kTv(ss}#A|RBSOo9B7P%19E znYfWz#i{8E92v|DsITe=$9BGY8Z1p*du6X+8f?ufS2qF{4aARA~Abi=u}gaAgqiTBw9 zY(X)mfhZH%0DU?lcG&}Qgr>>*!a(VJppomKOLQF)I!|;6*lrXL)DG zMor}e$bguzo@wm}Gd;qBx5z%KKK`mzEL3lPo`@qL+eH_~s#7OU(xT&ameoAo2CA-L zFAC>taVm%0^jKkAqfw_t2{xOlI>|)#SZD`F^+7sX;UjQ^_C-0APnsghYA%3%kUh`n zhR8;f+Ua!kK-&_hp-~gfZILrGWD+DG*!EBarVhlQmZINOo=gLvM$!}Aj}`JK@x$^=x)}P7eO=y4`rTU72dG+%)>BQ#MRQDgg^bN^Kv@ho z)>l|FXqbc1TJJOq+jWmj*j`~+4gEsgWib#pg&=KnDnG;Mf_&b~L5;Va6!ir_l)?wm z5F^uMeyHEs04}mH$CcnJHwxT5nv!)vo)ggMqo=BKBonTvC9sr9f;A|c6cZ8E05AS( zx}13c_LS^_{$(? z5@ZbJ zv)p-^{oocIL8|lKp8PwC0FPBJKy>;iaAIz(cA$1ydNEl|yux)>^2XlE6wH~0n}(;( z0o<%trbQJn{FM2lOD?&@xWAJ{%oinhI^cdCz>Nip*ZJ5r>pI7j8%orjv7b@H`YIu=5Tpt{Y-m?W*nLw}$89*i_!yfZy42nM-MklJf(i z)_G4CgUZ^^0O>2XVY8-&f*uH5^5b{o=EgP^H_;THLDdxM(x`4kiv`h-6f%uC2K^UT z#OHXrxsb#+66Q32%bP;y`BuGG>SS$9^9fD3Hx`NLy1feL1zZvNdaSIwH?NvunNM44 zcUc(Rx1N;57*b=dt5-iRnVCDY+5x3~Q7|qv*Ec`LGxNsEO*02Ep3obwiV2xHb6_N*4 zm@X_=vro+DcXkX-(cK#$j;B;)2=oXs2tiqA21|Hx+V4ruu(e7kz{}+A~~Dw zDy;SzBv}ws0BNFe1GNyc`BFMGMAWZ0ueG$|X^hT)cgK-)as11;xK#1<7bA=y7gLFIX z(HTI&9g=`YK-z5^rr-s@w^YTZ&wuk`8(Mkjq3B(U% z-2}nIGg zgQAp0yYx{a@~7O31f2ju*2U4G!wgPz=h8qExL#4vke$Gri$l zMWIqzao_B@vZ(dChQ&?Y{)#YXTW+&jgZ)BIbQsY)fKG`x-0q@*stB>#=n#h+!UiCV zTqI0c6CiAZeL@B-K^9USV&Oru9kQ0Q*#HkM(-AsCk5jqTGks&(04_VIJOd$1`zasF zrC7zQs95d_>cq;Y^8mS3A@)#>dnp!&Sfp%BEP^Eh!XZVbz#gc$B>~O-QzijBYL$Sx zM&N`JfOXL@1*1g`TX8*;Ch@;S5@<23sS5=gZl5*aSSlg_hT}<3w0?K8e7$hu408I5+RO4-RT?S(; z29m95xPc2An~O+SHROw~k(J|Kibld!ECwt zvwb}rJy%s@_2?Em;2W#y$0M{tNF4tw~!yUYw{F;mmZD!KuaDYzBsb*EpcOUNTvT@my>pX*RMa2OxJFi|i$H&h- zhSd3UI&@uwAfT zVgQI*Hz~$^wzrtW#lZ_=TOJlmD!&yM?#r^C;ws!sI{%{}~llDp8F=L1~_6tqnu0zih=2fWR*063@p*Sxf{{Uxl zdKf}^s>yXiKeTmTo;mXQA5)&NvD)zMhM8A3!A6^TTdHy93()wqA<+%4JIyv zR#aIDNfsAOH|xcvI5QL&Z*F?^S)6o~@(h7s7bwo(O1SmYo^w6hsCvJ%o1~=+~ zNZ)lDf@H#O9HeMae>x%&aylbTQ;xpsE}6I06g&NPP!}GF=-8X;jr~zoxR7KjoMdTj zm5vkWpx}gXlP*%_gZil3P^HX4le+5WB!XhsQWqLoK-|YwCtpqOfri_%EDf%hYzXLx zlQU!tUP-iWQWtH)jB@}D`l%Dmq6Qi-7EgImnN6lWP%t{CV5ABUZBQ^I>2#0f(%bqc zxFXlpCs+}(1}v1tkr$M;9*7?_h>a8-s8TxsV5qyy2Nh5Vj!8eU{D(Ao>bxX{8m5NnS z0M4mzrR5IOqJ+Z2n03FBCQ4Eb)J>hx%8HQ^0%qk#*4zXT2orP!-Y!CLYzkUfCpVN5 z1_w}-z)M7GP)brU8YqHpozJocHS7{Dgp0nYCfyQ|i%`Ll5~(KY+M3*|wcT>PblSOt z=#e&+A}nsJagBWz5Xl6Np(%$Fkph0mi8HW3Nhd_j#jK+<=9#i!$k72HM*Yf^0|1Eh zNFQ|Fc+jAfi1a|Rh;fSvDDzKsMWNcp$$>uV0L!`pm~`K|>Lk+!G*)xmM(Ut;+$lM- zL7kO@AXO6|RdZY{JFGT3G;XQYX7eKg_9mj=XnOsHu=W)ingnY^-aHb^&A5apsR@!zlV#UWvX?0T8aHL2N-C z6$RP?t)?w2osUL2GU&7ido0%Z2D>a=IR&B7y2z_)E+b)O%UXLTT{_nkW6dfrE_Wys zD^zBgi?Ofe2g(<7EzVS4+a>&z@%s74GBo`5f6?s;U@aS&{*Ch?SLr$e+&W zX(MIXGTf<*q#ohQ2Ekod8%G5_BycVeTgGqbloo=E*hQ!vluEHwW0t%iyDqPy$X_N%5E2PWgI>; z3lwSxMZ;HL%<`&~8}lL>Y^LRNxM|E}98&tVKMzpFH(8{e3hh{Da=bmimD?>%g{Jxx zVXlV*Ej<>&;rz$(I3{yl(*VRj#yT-Mw|>iJ3LV@}e!&zeIZ zTXo{G_b|()u6#LE`q1bjUDba)7LrZE$Ej44I;?5ClP8y&ovkPiEt@LnJiEv=g(7sl zw_3(+<Ge^b2nxlOwjMfDj;ypkJ~91V_4J<5E(cU|j%XSU@(I zMuO-cbOAR#6K;p1Ib@{Jpa_dilN}P~f&_?^$TypW(XujA0>K+1JhrhaEIy!Wh=_~8 zNL)<&DGLR3gLF&}L>tT$ND`V^KoQvhT^q*fktCIpqoOCJ%5f*MHan{s*xRB2K|bll z)ls00k`0~Hn;;A5sRodga{BI{ECjzYF48-MhpmbY!L`sN=!isGQGJ4PAqLJR03eA) zfP?|E2q+N(!4~H1Q3;y~Q3%*Vf5|eU+j}aYp3t1_vLZn{gta9D^hrpP41|WIA_pW1 z0Wxkn0LDN$zodFieX;sw<&hV5k)!4qlJ z=%nbKWBH^)u#jV->cRjKWhf=VDI{4oxQ2tE>VbpE$@?S^Ge|dtOt)V&rVlaGLUc&=?ll% zB1oUrWuVeM&C}|U)>4u+HV7p>(-F#NMG!{YBncMVL=yr6BG)!Z+(L*XIu6JrOpu6; z?4!;4rd(Uy1F&iIPs&A#gmVbnRF6<#bU_Nh0AXVrU#iNj`9K9@RPwfAa?851s{S8U z2M&9kRNz31l9AV<%B!C!oplM3F1dvl8_vok`MRhk01cfFMIA~S;Kv<%CHY93Ah5vz zZlZ2R(1KzkQi4UmK_(yJ)F#(KRcQuOvFxd)>Gy-`k=Xw1nPZM`TA+9#^)da2v$>nG|s3p8sK8y>mi22Sy-(i6|8&< z9pz|bG5RUB(sa>L&mM|Y-ds7iR9`kOCKHhmtL8q*lLZ5IhAy<{#D)v!@P-c+{8(&T zO!N*B{TAXT(k!+2jCp76Zx3^tU>7=_Fw-pS_Dbma8)o*#N$ifRG8ak**^&OyhCIg!mME1QN%ffETfR^x;ko*5Ju`mL?VH@ zLC|z422$oEc0l`-_e)!KPQV}Jfof!lK%KSfo|f4=>D2^aCUoeTv?OgP5c1e)q-+8= z35^sdMB7S~LWujP8|?xZe7(&YnW zWD#wCiEj!+`6NZ=QBO}&mf<#w6yoR;ZST=PYo-i@fhYreY?DNFx<4v#KB2=6`;-d=;^aaA*Zo2S;rbxn>5_;7FS;TiNC~?{=1!JIl7b?@ zYM$aycI=5(0wdK#ofNKAUAh|^Bt(r98d(I`D5w!2MedyY!g14Nrq@9inY1M!LVoBb zHq~7w)rk@bASn?Ifpid0r&SVs&;`0CjiLpLP9vm3lnGGKg+v?+wN<*oT@VDSoztSq zxHkwo${HLp{?rQ-3YK%ny{vYXmK2iZZxlt%p)Yf6Znu2pW= zPx4k72USz1O6O7|JfZ@KAjr`>ZK{du7wEFmO?ZgVsRJN)RfFXtL=zB!w1(SYhxF7G zHPRwA>X$cZ5`mWxEuw5bXg{Kev?N~z1MX~r@93f(F)7KLAY}AD;Uf)*pHz<5_UM$` zUqlX}=CpTIKKAOYbEU*=t0MZ@X8YKs`dd|7i%W0ltaNOtHU@ND@@R>J*+iIjsfQD( zl%1}tAxPax$C@L|dZ-XglwVX51T=b}o0}+u)jbeBeM$s~z0_u50`qhdYqX6*usf7Q z$8}SDqWkEHvDtPOw1qJEGu2bg$Zn2*aE#UGPU(k46$!XfkX`Pz1+0Cyy19>qiqp2i zSxn!tL77eZ+hJvOF(CH~1U?GLW+Ei)w<Ni~A`uv}~;ztuUtAoUOKt5Y@lBwU5^8Lo1rvYpSuX1gud~bXHTVB=Rm5isvOw=%b=Mr08zNC4+^13sh0!_OvSv|PcRXT{`QtUJrMGfDF1!oM4d6fo|Q%^E`E>D7oc3l}-X5rljlmSkI&qo!jg8JfPMX2usY zhoAtG+mU%)O9hLn%C&1b-^HNSc8n%DkEL_w?z-PjI9}PnF@$L$6)Itfl04q4ip{aV zhr>P1Bb#N{KWJ2Qn|Ym5V(oL&xw98QpUbAo@tWZQ05{Z<+JWFelc-v|B+g$^<{V|WA#4l=V??!%6+{i!mg8l5aOK?XUl6&qFvJif zTg{^BS!DrErC`BsX`ail@g8INnhy*d@DF9wcuO4YRz9^lh69_v(7H)<^YUdbT|3@Q zh;ta$IBTg3GZ|8-Xl*@C>x{sWLf>_qY5;EUqVnbK-we9a>O=QKo;il#FTu7-d5`;~W?_qlTLA_S5dVS#c~|r@&mB@{h7$ z>l&r0>Y|PHl&v}x#0x@gFw?o&6rglWSQD~c1jMEg1RYRxluR9A8V6Ye*mOzF=N*$5 zGqO{*$N+AfYK=$qM=%yZ$~H)gr*sM~oI(hZ5QD5BcG&C;$t^x*)(n0-TvhPN?-jj^Z^yHXRec{Sa-mc0fgVX}Sf+aUdf`UBePRmRnV$gNDMy|bv=px{3n74Eh4zVf@76k63M@`gZOnneU zwkLk-4%6;b+%7kj2i<10-~&utCLo9i4I&9J5Ogvu3hfyUfI*#gDnO1!3q{NoC(e@{ z0#Mr!03N9jbo-#65w+&ZQ>>^FYbIchgLzaO!Zl2~ z54wwt>LCX9)F20%Z@Oby-9^Jl)O1L9*@JqAl_(vjRKL`xG5}F=vD_?*%Vs(%>PIj#rh6zkoZr!9 zsHxzAeHACTp33)}Dtj@I8qiSmuq zX*q#9iP1MYLGG(*i6>H#G1?GV*ZG8`9WXuBe9~nB+@cUnItnxf^D4JHbaToJIiN(K zI5^o=&2K~#uT&G}ff_2E_Ca}+bC&`1Sw&=#ebrBwxWcjSg^u&oD4-Y`&tjlW=VZ&h z)MRM0<62KrkKs|98|Z-Iv+OW*=$PAO0(4By>d#?~eGot{3N15q;uk>YlxbwP)={)< ziN1Xs{c^H4b{RgGjnEXKaj^ge&qgM$0V{-fxtZ>*y z^79Ub+Lf>Peu2kk*g7w`t6hwbR{*hSblF(jWgVxdC-cB&vI@k<;wK90>mgS9o>1fTSeUFycQoGGD~x8>SHK!?t5!*~ zqt$W_tQ%4QLRI@5`Xu0kP!dGuQ zLzgjE9LB^5vd)|K>-8{Zs~u@^5EX36p6+JuZdX4*Q|6KcpR(mJId{!2sL(l^qy=_( zZPZR@cpG)h#45L+qA*mVCEcIFk|0 z?42+8j&VAwXuQ-gbXja*aS*(9?Zs=z4KcQ<({OPemOV%FOdBY&ux86HtkC}en)6AZ zm$>qPHzjW`5wMw$guVsk8Kw*W0A0#)ba5|f(c+_`qg~jCeV0z~1A<$|9B9l|A)MG8 z1XXz1&c7)8O5J}Hm;sFNLy4&d+)}3T1N$#&UXD55pFfu;CBVE{mvPq(;WK=;sH=v= zFc|(SZXcPXY(bUSa6oJKL_26SLT5}Da-|r8)_pc9U*d8g# zaGADQh;Azbif274tU8bCy;Qq7H=2Gh#B!4Q33$58A=rIJKy6MTiy^uKTpi0Ch3>_ryPzCL(26RU0 zO^P{<_t^s|0uco;B>|)(NJJB+p(~)2Nk~K>7_uxiKpRI?I00ZGGG=qR0xT_iWUaI-*sfzsPEYXNYe71qyc{Z z$k3>gZ|kxHPvzMh(&*dtOvyczW=Jur2($|ivW!EdXq-vhClDb74bN3oUcz=(gXNvo zZtD_NS6}7pWg_bt-6oBWsmTqnTZl#@NrW_n?pyk$4FW+_0B^5k118}_h$=?nP18V_ zY^e{-qhNKi34wpIp}5OU?1JdNw^0UKMCy)V&m9mlOxXZ{q6o5O_Vm?25eC{6q-iNQ z2-Xr7xH1+%V7vLC>Y`ojk#ROa!4W3KDY+o~sFz&;-2>Lib6Ub-SI-R)R82quy~={l zc>*oCOuLj>QtGe;p)O!sXI)K;Iie?Iol&6rs+{-&FWpvp0}`OLyL);l^J{-~S1{E5 zR7`z!S!n87>Zd;XT@G{)x~idv9Rz5zQj?!$7d~cpNVsSW{{S@t?)vpu3>p6bTPPpP zssp5ucj%&BC$frs@)0s@swYX=Hon@d?N%M3BI~N${{U%FFNyS37D$Z@rX3+vNP&G# zk}in-RBKC%ghuH(%8>azlXJ<`f_o;>K6v*>JP0=`qgG9}OXe8pdLd#}9n3qbi3fN` zJcysFfr-@sbc7dc)h!SV5@lxEuybAt0krI*V1Go%_P$?I4C%d0#zA7$v6QRsTL*+Gt|_cg3&lIIu!dDq4diNS$=T&smDHT49x zrehKZW&^LP)_x>>MdzGlm7KITo?V1_{o^p^OZyUbT57f|y~LdcfG*hae7V}?v#un@ zXL!n(yml(CD-`oCsaeIut`fF1yq(UHseMTVm0LlnFc*0wj4q@dRqM8J13q^dyp zQ)ho@bzDp7mX2=0>Unu>b&ZL16Kxd9xcjNNHNdS(mC`eMhYgBxhz?HykLGyZ z%bm@##^Y%l4rsAmM04OPe7b@luJgFzWsYRjE~x{`L77~J9}pVucXgG*vb$XVWt&R0 zv>Ci5hTV#TK6zvro!4~A7|cC7f;ov3FuDd`iF+yXiyetw$1lwVDj=5+%euw(^kb5& z&a*Jo0e6?pC2;tfoQ`XoYl1tf^IXgEVZe}l(zwUtABd_LOvC`BjOCLv82XheIEjz} zmB!*R6(!GOi*{M(6xwwiP4{msE+)NE@`!7tvm`E)PBjOYR}@R2xV9j6UB7|wXYit{ z#2r5CtmOH1Oye+VV@oKs$#U7bei@itH7aa|wwTg8t~{4hr*14+^g~)EA!KvF1b@{~ z2QB{qhIC4N*4=qMz1XKw^X59IMwLuWc2c6!_q>L+t+^!VpwLOZ`YqA$`Qf{>e9UL~ z)_=NT&+Zt1jrYH@)SFE5(|Pzc!3^Mj62oC!(fG=ry~H>TTz2-+Vthz3@9=Ai1u`1* zgt6&xwk8grAOxk^UO-9XA+h!M%6mpQ-cmyL`~YI6jmO2$i<{1o7s#g*ltD z{KKCU!+59jRi-~S8UFzLMveQ0r!cM*=zu3dbyY(yk)ryRZ>sT3pH%Yv(+`_q>0}=StNIb^RL5i9(b$6iVeZ#*wI@pX|@Xz(B=-Xbso!q@UOiEXqY;sx9E-R zu9=2m9_e-(bWG@@L@ZO8{)ujzb?UXIb|gXjBcf>oX<1X71Wu>}>D32Nw3`FWgKf~$ z1F}Sm*)(hoKZ?P(H;5-ifr>bVMQ~cPYmD6d3hNbw$`3N(K8T zx*$msnl@WXQ4Ra1ZL%CL0MH^AvQGe;YL02SH{AsRs&E1IOW70e2oW$8NQFHH$ri?% zAYaAUq%3WDPnLDv5vQUEi?i7xB!SgSSSl_iP(a*4fKd3ABLW9svPX0kJM#7^6C=8^ z$3rvORTht;4giP~BKj!Jqh6`oS+O?>iwgzULL`Le*$y1AP<=JDDk5dlHa7tPNwD2Z zkbCJVwg4LRgbLP3lYaXk{#$iH?X{3DQVs5dZ*qYbJ1Dv28$dxJVhB-r*Q>NhpDwy6 z$<+N;Xk?A;-=Yhxbq7CH66*y6<{`TzPQ4Thpj)ge{%M_1SmyvW_Eqze{{YRdil@~k z=E^@X1FFEVyOpzfQ7`5yvsatYBx+mHW{LA%OP)=ZIdl*tN?$bgg?26^Z=#8*%2h6` zK+#oFpf0g6vaylRut-$qK8p~%lVl2}HHDpv-2Gt6rSIHps;%`13J$1R7Hw`U=CZ7n zQK(4P=@*hYW)^)WlMaT;T;p|Ff0i~;=GK0xwxY)nT4rveXNjMxi;0ogD1&J0_EDWA z_sKU%ROOArk1=sFqEFnS>0zh^(se=Tt0Z-loNp3@SRD;fl(s+v-=fa+sh3Hyg%>!T zR7;}COsaxxEedAfDvi4-c2yECnCrS)LD?YTx9h56#s9}L~>Nc1fl2)cRrq+qj+^GXAq-WkP z@YX@h+PL=Csz2q>9LMas9%u0_ND|z;D|6#RUHreI>yH*!;ddL%5zBNos{?14d);|! zHu39;Gay?<^l)L?e6~sYmDVwQbHq6L7>w5v@z7KteV2Lk_vJjJ*+(*<*50cC>C6>X zGwcN;F2&IUe>h$zc0U_jkC}Ul;D zlo_C_T=P5DG+LjCyi3n`nxS@KnO3egrVlGeuw6yZlVU(ppuA#NPgn5u)y15VxPiULJ4%0E!3fS4IychR*A~csc(7@hgX;{{Xa&f5KG0 zo0^YoVw?M-y52UF7}7UgqN_Q_DO^@zfiQVTW%4uq&rGd*#vC%t>kLasZFXIb{!3Bg zFtsq%pGu=k91X!Sja@S2gh+(EptW`1{5H#6x zSe!H1O*euZH3wq2!ox(ty6GdVvWK!pkhpBuByK97HidJ5lX973O{_+$<8;nlwdHCR zaCJFc+jWI~3|V7@=)0{>%tyAz4p?s?;N%xrE$JSmJRRh-{XbD!N&$I!T9Yx&Hw61+M=9o@3Ev;dl!V zO~Ae7#zDGfg@m+>vq@Y0J2C1%iCipaX{H>zSa| zw2=_8bLp&b?M7FXQp>5elvw}>lDVohfOW#f6?p_~ZKB9^aL_)B&zACfq|)k-4F)Ad zvU-!Ut(?^zYlYglM}%>lRgPvG3ds}asjv$^J8vwt89p8GHY1I*>R4KBb8z7ERjNOP zcJ5cPxN9K8WO;oIE*6t$(xl!{)~*l3?g+wghEq=uMVGfb_i^sK%^G8rfUdP3JoDQ! zlX)qaT4UmCI%ZMfZxK}H<#EHBW88qZSsyN+vht6{rg$iD0l_ieY*s0ZBd{Q^PZm4L z$1hJ4(RVE%2vk&YF1JL>fFA0%yR!OPc+(H%xIwAT$r^=4O1z@MRx3DYZlN5W13JWI z_?A|~)~Q0ZGcBo2#jbC-UWD+w;@ddk>a;MtNatr52@N%f0<|&g{9fzKbzEBc?5?GV z<&DDUmJ+oq>W>O>c2mZgO+3pe##6@ODt{9V+IkVFE19#2Up2ff@l!eQ(>rE6E3FjY z0=^ml0PyQKq3CT__Fg&q;qg`z&^toBSB|<&w%TG%;>g&}s=9Ss zUYlJ_!R#VIX^>Tb5+!o+tpbp76Dnc6;&f4PkL0FVs;f`CfmY^A7Co5aaL;UZ(v0R0gcnf5>sV0KCbo2CzVNXZ5- zvIOH{2^+hzZGvKSNVILf=n*!R69Zd=x@OKv#vKZXyvnKw1Vj~a9Jl+bkLBu`9ew~Y zw&}Ygmj7ZMBG|afYPfbXR-+%QV(Pcf(E@pje|!-3usk|M)uQg>Lt=- zXp@Yn%nqwNREvh1g%=)Tqs`qXIs~b(%YYubsB;OrgPqJZ_f;2?HM*9I1zQ zDvRVq-BnTMB5bp@TKb{e!l=8KTa^IsH0TPCKbi{8)nlCi607I($bhSTO$Sh`BnI?Z zwH7(@XLS)&$R^65;}C-B@7+XNTzPNolb<5$qIwuXA|qQY?R1fKt$0b!xg$gZ06QLv zFLW8!c1?tBa+fy0%|*|@ShBC?N{W-;0ajgevMM}!l}nvAl^Thc3G4k-OX49wo0N(6 zSgL&Sq6>gM6m=tOrs$rkK_?jQqGQ{25$5e0rrmUfpftfUo}%AH5@hs*P4&M;10prL zMnF$(cTpz)0MTY$gMR6`*Kp}%hgb-_t6+&X{%MO@GkCVB*HxX+YY6@xsvyAqQKxm$ zJsCZcCQYoI?v%;0CeN(ykt3E;0t7+>e2`+uBpvz@2N`~ z>dzWeWj9ItE{U4_M^`U!z~CEAn;MRj^o5}?wMb_7y0O(mVS48bX6Msp=AJ)sCN+*_ z8kF$OKiFuI?pI6A_|rJfq~kLR^}*4ueZGr>H6&cXQRcPox=uMh7~a8?V9|+@}5nes`N;cEgCe75^!tX^pUn*3=blPELzN>KT<=s*Uq{DlxT8=N3xRqr}&Tx}; z$5pIZSFu;g>#D@BCgoi+$mS1iln%EG7L8KJK{i>WNCYXMm?25sHbZ{er1L2tsk1T{ zeDG|a`%1_p#9}A^00~_X7+vGR!yY7L7Uur|c+>vrQu=M~dLUHRKfT^~t8Q3-!nQhhZHqo4G zz{48H;xNtSt~-8Zs&RN{QYM?)TJd5Cy7kT@CZ}1qI`&$h#SaVdII3^Va<&IzX^C|$ zo$1gH2{e}MUW~9 z5%ye2uL{QE_GwXE(`tdN2=21!z-RyoU3!)-P0Xy;}oa8CPi%IVRbK(ejQy|f#mrLQ-YTeLkl zUb^$bs(Hv%8%?2F@l{fO3RfqE!l*@=9syQk(fGrEKW%%;yW}Mjd zU0REv3#{xeA`dXxXH3@4;XfC+r-3R4<(a*9QEC4GfmHm;XW0J$CA)Y-<15O_IsREE z_^V-E1o!1D%L1UR(YaXe1*fvdgspjL^fQNkA$TWFdcXV*pFuvy** zGo~Gd#!;tvn;br#mjb6h?ue}%8}4`X%MLFOGs#c;UT*aXG(QqnDT8#qkZ zsc+ZSWk4g@69p?sApigbD-kekgLcAFY=hlaK(qwPL%ow8VhW%(GqNUI8=`G7WQDca zK`8sAC+o6e=deq87AOg|j3aaa02`$jgbv|0SjtzJK(wHgNC_kjk#r62yHBw`4n1p(wPVW)8PN*)w2L0MA4NjBRA1 zPjnmWqJ5A=w&G9^m;~M1WUtH+M1XE=jR#0g!ayAoC;o^NcPYTU=#<_f$&&#B>FA+T zO;pXDF=Yn>ea5QAh`K}t2Ww#pW$u{)K-~U|MRob*>=KC}i9l?GhWo9db6Ugfg6^qv z&bw+9N%I5`_>>%g>k+z-Fg=hyV+sY{>2pBULz-RvRyGQb>GV{+)*zb&Dwol~D#4N4 zMK&C?izpXCkGe+Cqs$E63dN!>d}^z8NIten?t!`56<%IZ>al9GP%Z@ZQRW~*(o~-WqC^li z?xG!N1j-DD7~6D1o%9_OX|hDfB*IP-eULKig9(FeWk3VVb9C*@e^dbK0Yr;_stzzM zWSUOJ1&$+^OQ^C%ft3^dkWVqOB2Y?B%O4$GxNJR2gz~kGE-KlOy5ER-i*nu#&2bMf z8HaiME||^P61~T0Mj$Nt&Zgu-3Fl+7E02>{{S<2OqCM(u&`8z z-8WQ%cb~G-hdxS)Fa_+Bo%QIEH-Zo%O}YfSN<@bqiJ+52Ib9$sOSx5bD;AVyiq&sr zM>m+ACg>(iom3v+$R_J(X4))j=0&~MM=5ydHca6Lgvx`BG)cTH%r7u(I4fIBGe8uz zww+K#{{VGUhcTE}L@38ZSgCf;40B3(FB@ez%FYd^PPNI&9M|&omJ&yh-iBnK)*;_zl5GRVmN*DvaIRn z6P7#3$GYyL{X(zAjugUYxz;-qm%KPWDpMm#A!6f-`BKV0D!A7#c>G0dK0cd&f~64B zeZuc~H^w_EK+LipUap~9e^9)`jG`!6tii>S7_^2yK#XhP0d{JP_lRTjO%4KfO$ z(%IOB-g6!g%{Y3YZaW58(WOfkxOOWS_I?u*0pttIW}caL>LRp9){3C}ymbo6GVAh-qE0S((vT4^O3+S_-!*p8cZYSy#9hTv+*M1^TKor|sLYvwh zGjgqVWk(FjdAh@?S&o0p!_#$V^b5G~AB0%mDWd$xGhx8xtR$M1{GtZ^*5*56=cgIM zxkfjRaiO3-hF-@2?o$Q+>(<;0k<-cYsu)@n#U?f(pe-Rw#lH`HJf>)1-%~ckQ?rI0 zklFP%QK|8e@K5aS9H&j7Ky_;O`T)9qUfi!H-n+|izaoGfw_NrV=+e9=jQGsr$5k!E z;4pNC(JoweBjWpy9$ZCCEk8<9ujJb{=lPGKI5vr$motW84JOOxwh!Z5k23iAhYMT| zwE2HUviJ+*`xjRkOADW64P_@-*TcJ-Jwz_010rvfve2i!n;8mz=QmkifRJZ^9^@izB#Dl zo!T7Qjg(ztN7XI6B4p~jUf76LpXX(ZP|M&fiiD73QM$!-i93abL=qk%(yS+$!WBaC zZ&e~dxHf7F+9KdcSri`zV^zj85a-ml=MDrhpSZq^I z{>|cknymO_)|}i$lN*hYZaVcTLco019g{Z-8fu?3D1z;q*d}!9lVVabOavBv`>68( zWgCf6Fyex7KD`mYK%=*+m+>GFfQ_|48_bOp2sRRpk5mVuWL)|nn|dY9Z)6N3MC?Ye zqD)_+2QrHjs!&QJTOcCI&90Tm9d=J{@PQxE8k?u6NDpKI1FWP;fKxunO{{?!<%9tt z5qVBvKtP6<*+j$;pESWiKST)F#>vh5D2u{zVrJz6KV=9KFQ`*+kv$YkMDc`Qgsjy?&M`Zv7j4s`WbSktC=(=|7En&TQrJejr=d|IZlqI_2mlkRM&Ml< zf)inmscJf+K{~=+lF(0kBupL2PH%M=U1dl(okrTIIozUVN(-*4s7EnCIr2RfWzvT` zKsQjl1(wLeMbdM+1Q$T_XqM zPL_l?fJEugpb3!>lR&(mbcusvf_f+iJEomd51kZApKy?qc~%Q0uI!fjl^H~l+$*3L za_hR*KM*;%!0;7(I6iz;Mp6T}FemI5%_dfw_>!RKX;A#a`>ny@ z^*XtWjW;;Fx{&1sY4)3sRk?f>uGeOC7;XzlS+k{!c#Ffz99MuiicR@hg&!qI8pe_q ztj+ibH_D5g{3Gg8AM+`R3)BY*{?GAS`G@Uul(Q~5hb8J^j$9R8|W18v@pm0_8b2ckpaMfs| zR8(xN`nmow`C~8-sm(=>4g~5uE>Dd3F24xlnNFj{S~W*ADz`)aYp#$adM?uWLvH26 zo-Aj)KR{ur;|?PUz84hHR+08PdoJsi_>aT6%?7tK%LY?az!mV1E^PN{T3!ev3)+T6HI~x}77`txhxYQgqd{^PHfBl;dIa?k2u9r&+2_Whg zK*NE&TI8bZMz%r5n@j|~8NOqH>?TjA#^z~X8CI~45O z6Z}D~8vkQ zQsJB)L6X&~%1p!IFzlFUfV}s`xu4I&<~ggZ*SqCXAKl$?%PrkHNv}?w;x8PG=LMH! zw1E_GWVyuu027MnuY%rPilU`sTN_fbxqGEr2y-W*?~hT*<#Z$M^$yL-4T~gw=cT9RcnV;#{w)B&2%8k<_7U( z5jxL_&o2C~ePbd<;YjBqwX8aqNvmKOUABC>c zJgxkX9UM26?@tN5MZ@@;!PsopnE7~!DlLG$$LJR`Cs7Ki;5voW4ArXH;s$@b(SlI+fg4u~hgxxUMaMHmtduphJ#f z;%B5N5$G(S_jFC}^6T!Zd$d@oQE^cOfNyXR^J^;IV6vdpkablThM!bC%VS`xn+?`& zXq{5ht8pH|6AA>0S*T7ngfvB=5N=Qc%r;~L+@u6e&<(`(OZlWj);lFT`y=#7T}G*k zSnsk3xEd0a$7GysG7KRAk#!1$ZK2&V?{!m&0yaPrpyyd97`m;_v`U*)9P5ptDe0;R zzfzaqvdds^c?k=Y8H9t3 z#_IUc5KH8np!9?vGo+n0Q6v*Ot0siYr6NI_sF~?vk#yLtiG#}HZ7=AQ-qK8{^A_j_ z^+28V*+i*H0{;MI7g&V(fd{HnrLQi9i#jp)E0q|m|TY<#a6{Qa=C?}ySSYK>&HJ-M~~_O%OcAX zxBvGv~+0I2vF`{ZPa#R9j1>3W1wYZu_t3*0BTn!42q~lH2aMI4uV5e!fjUjJ zm7K~Vn3zFbCW!V$daYv!9_khA76@leS0TatEsx_~Aj0K%7IW9G=#nhKyNcE7Z9Tb< z47@qVc#ogc!O;eu5u_YOA}q%A^&uA=QN!*3%_v3 z2mThH&Z-A7M+9(>;c(QdRctuk;_IE_%<`T?l~gStKb8b_Ty9mis_~16{$)Sd_&5IO z58jsUdM`KlyNPa9mf`aHWP%&aW2uF>vElgq#5$v;&v_)B*PXmy&4y>ixSDJ{)ae)r zhw7$ImqDaO)ZI|Q);cB2$O@{ZPMR-!hqX0G)U0>R>#o6A_luIL<^pwC(xUSXLtkh~ z+k^vsB}GZ?`GN=pD*jVJ((2u%K#kB@PMx4`pXGFG2{6FsjV`FCRK82DQI>NaEUs-y z5_VXW%tv*RP0}<7i-SQDrr&i_Uml9)UJq0gZi;dbELm33dj&FWWpphBXcC)1=?bt& zKz8$WG%O^vTIrg;VHzsAyuH+nk_b2Gftr!nc2aFqwxL!C+VGodUiLwf9ta&2!-Ie; z8ILfmW4(|~&kSKFMJyo^COrzH5=STl(1=#bqs=)D{8ZJt%aafWS{7ax_2 zpxUi${{Rz7pVTilQFZj}w*LUbMm5+^7V@^VkSf!wOpdmn+KZ>l)j)lSPBxi4rLax50QEo;AlU*WZgx)IsFSewK&Bx*#>kD4 zsX(WcCV)J*K>bh~_COaCx&WEHB^SD(fIyA60Y9o6WF1rm$TA@Sz(%$yj>r~*bx|h% z$;pI7olq^Lp!7thPb?Tg0@)(aWjPufsYabte%(+2T>!xe6DCcOH$WY%gVR+Oo?=f$ zA_~@*NJuTZTM7E7P!3+{AF`^fz&G;_sw9JPx|84!UDbToHV}-uzcLBBM&PK30>NxV zx^_@7K{}<(8Yg8Jy!$NBInp+cilh;`1Y5Eo1oM<_9(i~8uNC;bIbpiFjxfMGAp zfiuxhl?2S9L`T_1;A<#?1gx|i_!AnW;~M<}9dT=@z0%l?H$WH1q1jS(Ot@^KT`-hJ zKvi>&Xi{-DRo&1>s>?|^!%%lg$Ia=wiH=*@C-3XJ0GOM9l3~`osI-7>?xakhktbMC z{uw}Vk+6@djL99;5+Y?Ow8hc}E+!H-kDydB)TonxRKYPPRDgnax(4D;piH<8KQKs{ zjSb}^eJn~Q%n@UF=$SH2qoE1`#%Dz4=j@5IBt-R0xCs)gC%RK11d2mcOzxC-K_W%F zY@sl1ZPWatTd3<7K`vyEm}rri&?M41f079kBm{}SRJpC|x(#nlw3{IksBSBq;NVtGg{B*7l5-SqhUu~@apcrH4uO6DM*t0JTp z*<)fq;jf`ybcTrL(MFk;DH~k`3$`IJXJ|@qs&aJM1y9$qboNktfE|;j=)c(pLV6pN zlz^3>fZw8+7rdv-5`Kt~bwL*%Yl|#uq808OqGnbtNSQjIp)w}wP5jof3oT_vZ6ZxE zXxT~%u8f*(2I|mYX#qhJqpg*M?cGOTR0ze=Iw8ga8c05f5g>$sQjO6ObfPc@aGX?u(1^RxtMyiuCp>MSJIbr zZZ>GyZt}9|GoaaG4ObzAWuk7XR#gUE9fG!{PnOdO7^c8Svc;(LQP2&FGIVHE#@1yj zRNYpi$ZJ^LN!SJL?*Tj&X8~}#vm9kG?B^2BdXE0UyfiL>@TcHY^IT0XC(S6$Ab;H{ zIBTz%uV!XhRXhez{%C7qW0Nkl+-S}+$Bd^WcRleql6gk(t?;vh9f)%=xQ5K$>xr*I zuN-lqS9#-_S-PjyG4392gvl_<2^IqLn;_K4Ou+DRcYgiVU<1F#{?qTxj6Y}Sj zG%i<;IKkM*I*k_*Oj^s0;Jk?D7>8o(gYs#PVplw`O?q_v-jK@QUGI);JrehJwU?0d z>|f*a%w8fjd@oUWkDj)t2k{1S+cOheY(oVe+S{}58vV( z4=*!-ZiDK&o;IBtc&D<9%}Qa=97IT5jvI|L3_cFM204xS?c{U$WWwRtT;q6@1|hEYZQ0Yqd-=?dC+A_}M&C0NaEx-!XQg}McMOkHBJ*NInyaI6-M zL?DAY${QzC^d72!nI$(7ZInQlPjvMxY@EpMvL7_|^g;AdHcW%feS!(| z7y($<87hXKF}ko2Up5`kELBOU2C%ZQ=gS3g?LRXSCqbg*X}6VFGicfd;cVXkYLTe^r^dMOLSAsQ3_xFs?4?2tf*AU5upF%Y6=OmFs5-2ot(`ym3; zCPFtr7RO|0BdU6cJESx~a_eLPbANP9&C`;BXl<${-5i-Rfub!2f5{LX+oB1z$_A*2 zk56>Ygh#S2i-FW=ffI2FT2s)AZkE1?0st_PiT-G?1F`|Oh!jThf+Iqo*r<{xs@rJK zEy%J7gQsOEyaii`Iv}i#5`MY?=%jQ|a3gs}9Z(eq8+xQ(06T>jyJ9RnL^(Y}8Vg=<)xCeqlTY@z}fg71Xu0#PS z(19_$ra@?#(L|jk0l%O}Fg?4VwghN`(Fm0Gk}c|#*+f7F6osx&q79dq8sIs zMw=w(O~Cd4ruAsOzUffRU!ZorsM%oae#UzPcL-2ywPHUx`cYAN(+as=~Z+B5kQ`C zHtd5op0NthA@ZxHH`!R;_F55f>7t1?Rv$1MDxT;)mrLkY_e83k*-|MT76n8Az<$X; zMI&_*;mSgTD++&hWnCs9tXv(zlColTR7O*f5JVK7rz^od^G0(iX3yqSx+>>F?o9{2K@)~LGWL|Y|c&-#%eTyG8>J_UeWaqTt7DJ zxNmPWXh8fWDR!rz=QPE+RHrbSnx%?a-%6pEPK%G=OT`J11hBR76K*u{;Ry zwy%mDb%nq=jyMWO=HgxjxkiKCYokaQviCRt0ORWulw-JWh;Slb@W-s^0Ubf^<021jI?HAd&7CU*LyMX#b@T@ll&3d0XHtC^yx&o^ajY}6QdmrZWL zSwhPl$C>lpUq(SFGO6ExWpfRJ#%bMN*I5~>*m-WRrcIVLJpox%!2;`17c>$AoLY5J zYoJ|P*e%u-6pd}{i25nSl?a<|r2x3rQSEZ1EhMO$g^-U_a}jkJgMCrX2)IEu5H75I z3S^(EsfU<|QpNc&=qtevWy({S3yi_bK-qF^l7jXE931RwdA7n_6tkX zFlBA;hMd)zcZ#`NUPDD@KAfJhBlKCmmV0~AkXiwWQsC^jSj}lo51?M9sH^0UW-mv`7g7r)1*D0(B>J=EJ&LglK`F-g=~OKUBr- z2mzumc}Um<;@Y5Q!v5)crb12gAS^bzCUh1?kb-xGbhN9SNECu%TRTDbOk#Uf#bFPYdG?Gs09Hv_)N7C>_d zKyW_lE;2yeC8$~qjSj^*0BL!DBv~YZH z#WXlihw&Kt?v7UZS~oi{AZNMGCpgTj<8eD8SK6ug3 z{{SVZu`cFuJxcm~Jbp8E$1Cu~IHS#fx`k$k0!5T+w84+6u9hQ|!-c!AQ<-6jW62^V zWfC2s)j+gr3Y~*MiB>^Cv&d36Dm6qrLXbU@h&Tz-$q)dMs${4<-9b%D6+A0BoKFjMCfRI-pb-OGs+>%fVI8GbM3t*V9A{M+i*BYs)gl7OghH+D z-CRtnYCa@xg3KqBk-3GJ$|BmVOe}MeD=nhhAVgl;AQ3W+(V-Kf1+SusXe7toT143m zrxyq*19;j!4XxihfHNDbpg& z9T%UeT_n}p)4V-E91|R5D!88(C{W}EBxa7%;>P#*e-z(d1Fy{Ef zm}YpKOSP*|xnj3iNP^-@Y!_cs*H1O}%Am5&<3)>wVRuO?=Mz2A47iqCs^0$q1^jXT z$avX-BTmbk;GFRA*BE5Er1Jg~8A_o&xuE@tQu zv7P6RI68&40&cX|1pZ>ac3F1xM-iE3 z4#hr8$)2jLuLf~=rnSGsVPntCbj6o&;9R%ySoXdw46bc$vM{Ef3GkLD7FqzMNS}49 zd>*3XUx;{<5KlcSPH=Jl(Usf0bInd&!uV{uo4~1wcbYl{z~QM574SP1h<}mzvR-?E zb>1Vz-X!LSHREj7w>LagSXECb2XV6Y&ZeGw?L}u> zsg*%-1cf)96;%u!R+0xg-suAZ$|h$?OoJ9MjU_ih+$1&Zr6?7SiM`ycK8R?#uNCE{ zJD|h@O1XyJl}%SR_e5OFLbZZ5RnxpHTN89mvM}`d-yZ8fkTs)nsln5{?p8z3*=ZGX zwOdW&l#On&4aaoa{{Ur1XkmQppjun%6|~>w8`|nM2UP_|BSbjLWX8%49?K#G&hU_M z1SL0!lAA{Q6c$r-I9o+tWmLmhH@do$Oxe5#M5{^Jis5ZE3Suffq7lC!`z0a6LEG|m9esGR&0)d zT>gtA={63h&cU(ZPdh;o=&os*Y-!b3g`@avEh=+7jSc%N2)TC5f7z>X$g&6J$Bv zG*vy@EZU^vKrwWSxu$nYPg_cXnFK5$x?(p~l0lF@ibTwUZZ}Z|(YIBb+Q8i#I&PxS z0MRz;1VSAfpRx&WF|tnCA$x%ZDJJ>_6gmJ9kaUiqc1g~N?2|!+4Em%@9;!1sl@jg1 zMbIYpP;;~eMbDA?sJQJuh`KW9Awk+1{{W&ykT0)98jvrd$Tl`ZPgIVLf|P-IlAv-X z#!@C63Qcv7=!X*Gs8gxvjkUT4;T;dz0svhWgpHsS^qu-5dm8p3A#^(8RA%I%y_qp5 zWNP3gBd1gYCJ)sR6Xv=d-&70#0GbGsGJpa-kHq#y49#QFZ4} zhzj%{#CRrCGhMXLKVc$2n)LAFyt`(#ZflHwJ2J&$Yz9`}&$pt6Z$+5UtwdhBfSw@y2%^{@OSTbrh zS_*A-lb&Y!s5HSnl8Ct8VL*^hQT>Q3=MUe*(JFMCQ7zC^qk1+1J28aV?p=9|= zWPmyq9UG!KwVT^@bej*?^ii9k&M*y>2{H<3*&Es=09!;s2!j?;Q6d7R#B0lClHni) zL&f7_f_N|ZzRQp;mh_F69fTjgfVmK0kbI`t%GZMCkg7oRv&7tG+bz0Vgd7ul*?!FviDqwhu zm&!2LY8Ef0k6&>XN->@uV+}S-nM_m>*n+xkYAyU`O_$-;F7T(ynd3$CrlRZTouZsbbm_$sISqyw_+ zUL;F#Y$h~Vy}{I}Rpt;%)gKWVnWK{BcrfYtwH)$0H~y<MoW<2ujMgp6hdx6S-MXWP?VZ>K2CP=cv@RK*IjPNHSrcXG- zI;{^tDj5A#YQLT2k!guvJ1P2|<1Y>kXY%)3i^F`RFfrx3EmxA^ets#9+>xT+93_Qr z11@z(2;^ZZNYhSuw~Kat$JFxn9%fPHqyW-PO3nC~#tsW8JET;+y{{VTc=SN`+wja4Kr;fC3!p5lUm{z&O5z$jn z+=cCVls&RyVpUEMoy zRZ~PTDSXh|Dl8AMBW22P{(XzcvurM5fU0QXu+J4KR2vYuUzyDy6_HKcjg<$`-vxYX z%e+y^+SfU_Y~qVY&%(It{pR%xW{I74UpIUu!sj`U9c4_&YQCO1l>?1NXx4uhH)1Tl zk74Xj1&giJ^#WlKQ`LMVgkdZl?u zr0EIm*#WRnFeAE=^0b{hsGlhVRdmfk-cdc&Tt=Nx;(Gfe;v`A#tVL&CR1}WBi4b&D zYnMF4ebfuA2v9DxBuI{{%+hXkyQ+)i=_xqgc2Uy(mRT}KHLjvvBwp$z*65R6b8gEm zXcHhG(LG~*lu58EPIoSorK0Qy1+L{03MFy`n=Ccr{dAoM{m%>g28V%nks(@uyk=CT9VM87JD zGMH`skpMQo(Hy|dp(5!sx+YNp^8?T#@{u<^)9w$qR1q%hnHKvb;s^mBlt4fe0#dV} zgJH6AJyZ>lNI3$;i7GQ`0#FQMfd2kNw| z%*c}q>G0#Jw>+=Hr@jiM#vGr_5=HE*b&B>mR7nz(u9@=_(I>H1RW%wH zZ18c!h2gd7k#7ZJN6DlPkr25502SHt{zJ{d5VCSw zM=i$J!#>8HR{`jw;+-#@lv1n(+p?DF8s3#qVoXkp&E78Ke`s;uVGfqk<)%G?-}Gw+ zw7BTed0t@R3~%im{{S6`nH4Iyrwr|!uA`3z0-GHWtAcC_wX=B^vieio&sj9w8bMZ{ zG!P+D&&md>=8{6TCebHkkCZ1eU=7gWJI>1F+L1dY=6PW)DhU3T#+BXAYS2d zKMm~po)qT;ra1nAb8ckfAZshZoYqz8o}IUYFrPmb#~T@iw|Ivb+=GGh3`wzN7z4So z=)N4~q`j^ob`KexCAW4aUKihXD;E~R%-UeTtVbv^_8GLH}hdv zi!xlju7g7iUgrA3^@d-8r(UDeKc4v{Kz7v&qWccvYS9A=!@HLRhNc03l+U)R$d%l zMvGCFeIGI_hc{I!1Ikf}6Q+R&7l|Yu!*x?G^^uAz6|MouIUF&#H-fW^$0EU??;wSg z9RObF6=-mc);Vzmjn$7ZRyi{H-36@@R#OMdXE9jxfh9vRugO3$y151$o%ozlI}H~j zgSM4}Ipyx3x|0O7lVGXmCBQIma-hihqM3ztCmM$1 z%BZ15j2>%~xmj#(kb`o3Gx6;n0pt8Q#nNR=9%4ov?jUnhcks9$QxLuR%pTC@i3ayy zEHHSN;i^-uO#b$hgW7w8A$>LAoaUZ?!g*FV2;E$o^?P4-bh9g)r3{M100o{CzVDi|?ziH7NZh_#a!3Nk-bX<~tM-2;EJlu7^> zDQc9?flEPUrAJY*L=?z~fPgpqC_ox6P<2Xm=$ZqYWHim95Jxb!=^LKikv0c;Mu^oP zmEDnGbXftQ`k;fqRQ1yRJ0hSgOq7M&AvY5}$|B>osDQx-qOIm83S{}AR_W&=-m6JT z!%$QlZD6M7SSp@*uhmp3y!KVNnYOBK6038re#kY4IW3Ne5_BHQ4KhILmaY@3@(U*M zut*U-Eef#m0scyEFbD`2u=RwCn=nD{k#RcNM3S>wiE{zDgVhu6qc%v8B}LZKk+!NP z*VROlJrd?5=!>Hy5N)DG(PE>`?2}ypll4VO#y}Bo(Lza%?Jzo`Z0C5giPaa?BXnf=}!zeNquN!qA9fje0TRAplLHY9*RIocXa^bN$Qw&+;_9gVyO1Avj2nE|=c^QNtc&oXT1v^(M@5f7e(hc+09r*_dwNe~oC zgbe6T$roKqM%z^qEh`P8_&Y3mf&$2Piihf`SbJA(>`LVzS~Xl<0TqJf3r)I0M5fz% zPN|X2=#-Om5eHSKP1XP%lmn&GbVKy+p&+*91x|F5R5?K^Z?Wv5xL9qMhY_;gz75jl z;Y@z~)y4gmjKbW3*>CR$=!S4jXPsYMu3W#hynVeP;Mgw9fD!;IJ|a?f4~a0?#t%D4 zGu$kX1}KArfVm$MFp^mR0O19Ao`pO?gllnlT*i?7-ZGeyHgH@|9aA{27;*l{T>e8( z_Rj~^!_3ygyP1>zy;ldsF8RDSSQ8e}5$EjpFd2SLkEuMRl$=EMh32v5CC5^3w||Nl z@k1iUF{jM(8*fo7Ne$PdiaF;wk%hwz#=8!a3UI#@$1KnB) z5xD58ANr7vUWmIwQe14YrFx6uuAlyivqv2cH2#a5p+wil005bV#C$uvVSE|KJnK^& z{{VZg`M?<)vwY#EJdGfg;LdL+rga-rfO3anuvDDp+<|46#Mx=ixW^>IANV+Cy0iKP z*)a5}<(NkE9zek^J(p3L@*#>#UPP3{v@c3_gEUN66Ga0`T=2*tsg%^Cff8l6f zIs8}5{{UwDWYopDFM9B;U)cNund9nDGceA1Cvyk-ubmmLAmcMURe6(Aqn|#d zcj9u%$IO{KDx5^0vc1EU9_oTUm!*Uv>MkaIm4rfrgpSBXM&&t!WWbaG22n^@C3hZ* zQT9k`u9T}7rmlI?6UDv1Qmn{4$?}4 zk;2r{0?ccyM(dBmZDpR*3W4u|bw~m3)3UYKYILb@3JWR28eHRb$Gn_IBbeSaSL18) zGn5;ZP8wQgK!YuVm6y>))gTVDqQ}HzTE@dxH_fYE(82XVomRY$HK#z6E5ru2$`o*J zbH_2US+wYZqyVTXPcWAK0?nde%Bg}xgJo+}8FU>FfpzYmgx)D`cj1K`1L||)GUvL3 zhxcTb{h@e5oB3)Ei_pIZyin}3#0*wc=fy0-gn|9$Px33DB;GCK?d@www1Ak6EP^17 z(m$1a{b|_as84Gk%!C62x{I&@*X)@@8G)iv0?3;H_D&+nB7NlwcL$<#+Eh!3JyRN@ z0Bkl)Ov*ymDT6v45n-4qZ`KjEsL>FG&Z&(F-6;gw8b$07GGLgPKxh^SnB6X8=ztLI zHAmeCL82ntBT*t}Xi%7OwuxSDP;D|$AqEbrT7?(}{X$L_xmG68eTsvm$R1@UkVH<3 z26c#9L>;PufTrUUIx6Ph$pGRZP)Hootag&Bsd9QC)!gxM?uNTlp;a`3e?-Q*uOOVl zpE$Ct+!CXpK`&H^<&>vU*+I{_5$;x7k!LjQqUXVl(jHstpzUL*`Y6&yNREi+?vtHp z{{Tf+Okbh~@5`x6n1DyJPIa$t;YXfI$ZmXtzp9ITu{}^Ax1xzXFbW#T5GzU}@ z=IoF*k!v6uT>#Q0E>d8&P+&Utl!JiZs<1w74uqo8CTyZlZ4(5Zfn6Y(F1k&)BT`WS zNE2i@c~L{15NAsyvew2@@_PAPvEvXi9G+N)4^|P>_OTz=3rU25gkibevEh z!*opcDLO$Gx{*B)RaT&*NzZYBF1)MaUlAPt0E)47n&Rp-kIJSA>8bjy_u`Kdjve8A zMMk(byT>C3b8qInuUeownI}?Lzv=P$a?bR{sPaMRsCm5gR#bKLR17xV@CLQwnT6(4y-U z=@>Ry9E~7bOb@EEd#c)CM#{kiD+HS9k5td*176B4)7?n45usfeH%6Krm1J{33Ps*h zA`&(bL^T5DgAkB>BqLLFY^IlDri&fcbS#%|X;|;FjUz+;Ggm4k6~$Bk0EibT+2)Bz zl^|oX98v~EByJX&4ijzFZf@Es7Z6o7AI)vhMs7xhUhX_~9&D;kaDf1+w5osr$rn?Lh1t(*ghr~ym;`lHvewyKu^)A$NIRLSwTE4T zO=uUDWjAu`qKmhud=hsjgH$Ou^Hs)Ga0C2BdPl;}8~u}(3{6HwN8Sq2KMR~b?B|1W zrah4n94)3No2U4$f;o>vgMhm4i~ z00T!N;re!HA2z5Pl0xm?A7uv}jCNsIa|RicxmxGM9BIzHNpxM5oGG{1E_>~#A>u|b z@b`h4-BzAgx`<%+E9al_A5B-hekSoJE$}V$!ShzA#{I(ZefM6zIn$nMst!V|lUo0SrDn~>`?t&!sPMbu|scWc&#fL?u+KS{l zp|Y;p9g}_DQh%1oqzw`k&6Ns4T-M%pO$%6OMU_kwA7w*kI)#--Pfd_s$Ab#u>7-58 zD`I=Bh8U)IU45jk9~NvyAMLTQLRgl*}gcdM{tDCQGimEXuva%q7GN84$0O-5V zgW2Eg9}_rp8Xd^i;zc(T(ZIC+tD+48&%#%J7Nt7$%v7e}@JCQ(FQu1Hsp0_+qoNq?I<=Dw4(c> z6kB^D6Xui9lx~1FN+)DmZK5QTZ4qeHMyPhl+D+j^i9{U|2b;I5ZqY7n0J=2*kU~V< z4UxP(R%dcSQ-0U_D$c*6q7E`+qJb(-(^!=PGzcM4(9#O6?*xK= z%1@B#I+41i?$^GkHB(8_ZmkA4R5kv6AzKHmuOOf3ldMWX*F8{4C$g1cg9EaQh*5K` zV|1hw1nIiVqy)@LM$sA*3NESBRStOs?oe3b3BJ8lOcFucWfwfaI>54wnd(%cMbZhp z%7mFnxOjyT!~Bvbl%yTac+o(?ms{B~IZW!HBoKdxWEXQl8uvhR0|!79Pvwo%CfY(e z+tFBsGyZ4-KII}v7SL{vqkU0Cc}dVFEhH$P%LpAhsw59Cnw?U(6Qm?%9MSB8Ga`M^ zG}Q!%Kt5ClG@oS?tRVfANiczu2H)hAOrjDtvIGQ@Zgzx=xjfqdncJ%C{BfVRhd6T= zjBx<6nJw;C@te9z(f&4ZN9}z4U}@CmrG%M{3yRhCP0X2D7~E6wScjsFn5b$5H3Y+NZis>Z_|9sXF^Ev6GNeCOuIR7EMYb69^>A04rdFYoNxOl;Sr> zbp|uUI#xUP-DOs4#dV5bLbn^KVaM+RgN@3S0~G?u;AcumK-+DCQQj+a&3NN<&2=*lbO@sLUcE00klWVMLSzXi;HFI{GSK(OOK}6%|Yp zi?pd3sNRc`5_g5f(I@5z&@NOJG;K0OC^^K7Ad7*mk~X^1AoFc5sy5ImxXVxIsxGzv z0O+RB9eh2-QJ7D^hT=B zup{vgBEof9**H8y!nvkQZ;53hX-`;?v$5DO#A3|0ZxFhMcc1?N+3y@=^=gq%4~m*q zKaxnV2=UL%XA@&+Rt{xa6%9AE>_Y4Av9OT62l0jBxBD~41BmcU{{ZI9@O<88i#DhL z5$~$d1Wb<0-G`@}DcYh$SVFio9hGhemL|nm+W@*btZ5P3vU775P*R=tT13X3RgKw=2tlF8CUMbI*#)4(m17*`VFNno2333dw zhmwsfI5j`K>CtWP3OH?Jh+v(JWt2er^AMqG&-rjqSl-*f&(7cdRcSzT6MpStY6{0F3K>X!mVvR zBl<5B7ahX(FUIwMm%|)4hMivGymb=Lyd5qWy|LRDT26$ z8?IiJl}2I~eJI%Mu&9CnSz*vLP)?;$O`_|Dc{S@7YtmL;I;{C-786`%0;1-Y(;7)v zGMk?1Dij%DNLfrh5Kf&ofC1A;R*%dhL#nTs5vJ-*vu>cg86{ZKs%`z%t++vJEN-o9 zuWc1f1chrF1jUe9OoGs|X&o%FT7Ol2Gk(ZD@9?F>BRcSp0f%$Bt6(1b4jaI6kF+hv z%qGG?UPkyT;%~#}S>8ug*2FQGieU8;9sHNB979~)fEq6cEY?og`bsTfbmmNSM>J}C zltt&N;?aikj>y|vBwflq5wZyh2dG4(-8D>z_dpqR*)1h7cKW5zpkP9m+^EbV2;BhF zx77j(O5|y(0E7~VJ&=@2IlYh(bcv9TZm8SU7Ko8#NQ2cA%G1?F5T-zp=%l0kAOMLr z?yi5kvlIMrd~_Ld#B7v(%n^M+{0J^ zBwuJjXEv}zs5!w_=Sk5V-pdZATxYpUn&j%2HNr%xLwmGQ7c($|cImo6s2zXCs;M|jtfJ{If{7pGpKW&~O#}pv$k+q253Q6-j;et|7Av4gUa|R&7`!#{Cu( zlF?C8!-=RA4vO3u{qR{FgGeKFHjAjY^C^aIwFQRF(ID$wAdwdm5C*N@7Naz|w(gdo zlz^XA9eve6K@B#tTcp2wt#+%hctD^+t5BAIMBjU z5wh=f<@956x<3W8lM7CIF8e~4H~9v zRi;7rh2m_(F2v=S+W1^eGfNXfp{G)twQGTb7R>M`#Twohai$v@Y7v60Lo2Xp9e(R* zd|3EVM=)g{5%_I_wp)#8{Czq?c^zOXe^uUe<9m5|tSxL4HclpO3D1;uOG5xIta>wK z!cidr#4R$g2|d+;kkNSES4`?iK&#kr29(C}tv6$LUGKwO2*G9az}dHz;J)_lKZY-gm3isVq}>L~tnk}o7|$<7&-j>2tFUeg z;&^OxV(IN97+kNmqfC5t;^MaqVZkT&Z*+YZlk{)2uT1=M;{*85B*VAz)55s@VR@QK zZHBAchwX8`)Vu<#w0f%@`8^7RUKY_9)1pKt*Rl=IbP*~s*-BA1D?v3=Uhoyo)m2;m zC$@+y7P(Ue1)z;&A+6m7kP5P!AlNFxwS$_-EoqV6UeKtf!UU{_mAqN0u=%1D&1~vy zs%4xl1FEzMC2eC9GpEmnHe3rX;JYpyCxuyqoOHWcIT};N8 z?t@`?9mPY0{7=Yn&v|VZRrxi0wf6mCeHrHYj1F#=g1%MJd+8AN7<*hC(l#L5?+fWa zguG7PF!1{&%>#p-T7!B20K_bQ>(9-P%ceEk#la^;N!PWK=r>KeFB74ekqFdT2H*`s zE(dfEmtN>Plmlz(m=J*h2eK@JY#^g;5kdx`DY5{(pq9ZQ`Lu{nZIbsyGHw!)KglVZ zCN#FF5FmhdPf(P}2$)5rVnNV#L9%cN0xXk=kTl(EKsItj*#47i3s->>7o6H!{s>zYvSd|K-d;Y5$txM=3 zUiUN$nH^RoS4yn4V;yB{98U4-s9~E*xu>%7S5%9nN8Lfrlifae1L~q}>D6<-z+LU# zBYiYT+78MxNa~|!HblWuZSS%iNZm>#N1`GxvPO4;jT8h=WaOJ{mY>leX2AnKYea5Q z8h@xun0u0m*mXb=2VTi^LDRoPOq2x9p(CM>v2q?wD*F+?8NE%pkY`CQRKefYhU! z2pbTnK!`R#Ee7&?pzpX*akY?2Y-3TfF92y9D3V9A5CljOWQikP&`pHtvO?!g5IEmu z6R)Co9)%-m2ot=-%8?x+A}oU=RT(^_Y<36(5u_ocf_f!32Z~R=RkFYxv@y?^g#%KlYvqu-IPwK5E`W63P5f(QF*e>YAc|B zdG5Ie-%U#6Y1*LLO3#@SC4^Fy-?Fo`_jdV7QzA6AGXqVqoqQ~8(YE`!7)NTLG@v8b`9> z$mxT7aAgztc3Lf>*mw#dtR#ssr$y3uK8X|?3%k~>_)HfuAWz+SSJFj1OkDOF)Q;BXJk9}7(v~sks75J5wW;I&I3>|j@>7SH; zqV!`m?VDQ25zEzjL*d8AYI$WEoFl}~ZX+kfH{~$axB&kE30`@rmg1>d*lMHJnf{9v z{{S|d`JuuNoTYEuoNkX9{vWYiKgATPaGe)snKofiejT)onk4@K3BH}y*6_FB%P*mZ zrH$gsj>ck~C-BtVTE_hi*CX(GUohfM9L8hwN}o3kgQ@ax<@)zq>o($M<+Z~FBU!El z^R$Rwe6zEq*4;+0!;b*g!hDmE;rU`Epo8{WKgM5!-`SW7`L72(_>Ytes%6zok~*=( z>#d6Pt`m(0BB5nWE7;hO>0H)VnYS~;{KHS>ndO3YOmn+kK63a|;LdmAj(jk9Og&6C z5}TtDihE!(H3Pcz-xP7D3j8wgn8>(xojgW-_Hvgr$!oVH`>s#oL&ciD4rRD}uOZ8s zg|C`5?>MFa05gBpc#|2J;&Y63OkOUd>*6Z9UiXYs<^(PE0717Sk+jtQ)xkyPRJ(LsA)o}pUP z1JO{|iv@Ff$_v|K7qUJJ_^@L5V>HNWRF~kZe9CPm{Ew6R%JHiVomSxZX5$a`SH&y? zDm#-4m;;8X(qNW-{{U5-=HqzRzR4W6u}%m94l@H@=$R9`@K;!IvE3ZkB-#>gr>NaB zFB>e-fFo5P=(18wCN=#QK@fF-n7xQdx&Z2eVg~x4LcuU~?1}m(_KnaZ9I?7Vw>u3J zmZ}Lw<3X7sob*8BpI$1@=EPdfk z*66Arkt(u@H&wXI^in1!)7e4JJg2ew;#)AWygompTfY%;~zR z#A~wCDqiqfAjnvcbc;b&)F2IYSk<4)WJa!Qtg;yET^IExG};pe!K*T3ZItQi%YPpK?CP5q0~Z7(3k{NG4)8?1y=D5`Y5U zlVX*d@1R4B$RAX90#PIlQFWXvT(F43dS5)Aaz(6ug%^Rs>UZpk%ej3WsG(AS(tCg7DiKE z8qln3rrQ-%OJwMz&6h}(GU+x$b-F`T!MrNUT+?km6kcY?CrDA!$PeO3h(K~Vd6ca} z5)^7$6vIRlKFSpZ?xLy!9t^C;9hMWU=8vMv1cIO(E=rFlMP{l&vu#z{X^ zaRtn(FQ-3s=HEMMhDe)&O4f04z^Vm(mWyQK&rB+Tqd`JxrqqR^NuEeOoF_%rMn40+TB+)Gg-> z2IO^CnxTSAfRnoI7_K(A3S~79n=ixv0PY3W_=CgTixq*b{{YQ+cNo{@h1}m0TIRxEu~qndLZo4WQ0$V#ZpDn&D&BWB6k{82W54 z!@tW>fK9rt@q)%s%rJq}Tpq^@!t>=j+fmVImq1=m>Q=zR zQ>j9WXttpM4NB`gMVRI|E-T7t)2=@Wh^Y3K0nkc^8)EYerwr_78yU&W;MP#&o?>=c z$Ec&4rM>HUs6voZPl4Gt5nOd?!|w_ESHXjau|{@`F0|({uUBX zrPT1~w@;gXIp!_Q{8Hiy%_Yng`A4t|qBzV-=J?|jar|GKRx(SmFF$p{I7~*1)hA9> zN%Kr7lg$N5%`;^a(L^C)krGKyQ*{zN$P_|E=$xNKm4J}el6O>2>c@y-0YGT98MG!f zx&e};AQc3nLb;Z<{gq4{%Em}^Dl!^NfGSM{=#?R1b!ZSFHfWn6w^Pt40WC!AxaT0(eO5bN7St}pu4xX^SO4oq^RmvLI6eX3S@thIjwyXFl7S-5KnZ6Q?FFJB;znN z3r%Q9YhV=~Vo3U3G5|6xk$ly%nw;rJIyLiFjZvgf-ix# zs;5YDvZQWIDqj7y=(VKU4|(QQxQT&&$-7SaEP9VVU^VKDs;chRSa_PSKa$9(;u~m= ziwdL2AazA*`fh`Db4Z<5BOYa4&7tXVysnFR;FH@_*!dy?q__a29bmAFrae@qW(uvk z4(W&&*eq73N!~jtIq|jBC){*E-ad;hq$cA}MI&PpkdgIEmTfi&hXDH^Kp+$p9W8y( zBl&bgNd`s2LQRt<;th}k_1zPANFOmLO_Fgu(PR<4_d#(62(+mdgQu zO^u2kbVPxu?4xH+;#JTE;Pg=f^EXTh(#aSI0zHv1;c1knPjpxggrB0JP5n{LyrfAH zWC$n%Bq+d}=%j3Y^hlt3ND`t&`br5g2~DgJBV(d{;Ui=L1NtCmK#|nN(RQ~~iPQnU zs3o*?N>EOOs86~H5(|n$O=TwyckGLLAYj-DkqRRB=!1O>LK|cV#6sXW(~0SDwo6|b zQP&Ny>Q_7nE)ukl#3pKaFgP%LuX~*4_7NYd?ZuClOxB{}4Eq_xc>0*UWkTmT*|T7{ zSDr`%*sCkmm%y8MR6NPieSBn*=h?WZm;3ii)jn4BTG_N^5)vB5$;1&ML_NAG0s+xR zM#+QG1lR%I4^=BpuoZedF8@az=c+a<7#lNx^{42Tvopz9`2(LkG^8LsfNXgOiiXf6R| z&<0dzO^M-V9M;d8V@8=?s^FX_Bbnupyyf7A2k|+MCGkA10eX9eDYl(P4Huh}-%hyn z+?+9L4UJbo_=d{sXS_F4E}YxF=G=*2H4!mxop7V}NH;va0yZa{Ri5OiotMonD*% zLmB@7GNT;^4@kP~&e&P^irMZ*k%;m9#oem?yz9h{! zrzEe6%qlmYmL{bU$ZSJQO78$Uq>gWOgOcQ!Oos>fY!xQZrOZzwM&)L?vXyxa`L|!sDr8TE^jt@FxYQ5 z%Z**JT;cq@!2-eokQOZ4a-;dIAO(rVc%Q&eS6K0T8ZbT@XH}<{ z_XV)EBM+L{wPT3Qv6W^;O0IPKtS7izs$iFIbaL9}>(N=N&zSdx7eFd+Z!N-s9Ypq7 z(jroiGLwnwpbdh6`vnmVJE=U}CF-mYt9BSw#DzMBZL&mO7K3Yn35X>?7%D@oC@gH~ zHCECPM@36kLq-1pq6^sWpu(9@ZH~6;k*Tn`-D_JDCK{?ZfYYR^T<6p#YWGRCd-DZmb?yP9? z^;8Q&vTlOm5~fH3N}-N3s-4Svo`^C7$%QslgQ}&jv`ncs?phg)cq%}wc8C(LV`flg zQy`yZYb@ycDrt}iwyPn4k=X>>tn^tFo(9p`P{9RU!C}929+>zt<2K+pk22xT%1u z^0r2HPC2ZXbpRC*<{qHW3t1l`vcKgbZ<>zPNmK470s*9H&|_T^;ryf zF?n7#;_iFt04W1KZmDy_j=ssXxpSmshg^16he@!~%Mp$|y_KzWpLLd*0@~@(5+V=P zLP6B%n~mbiw6mLD=qBf)k2GqX&CZ8qfWzad>=N8agbNAZWW|qjxj+|7Vp0asf@Tlq zJ(3qz2c^lBXgs?2N!E^K7MR^Al)&gzK>*KnA|$0?dIhFIv6FQY?rkiYX`7@?tscq; z%O0u@{NJi_bp2A9cD6tZ8w5M9r39Tc?4kzf0AzJhOnHEvQZi4f2^UE2qpgr9o)QPj zE`ToEWbUKvkK*ZM3D@j^2$-@a5f(sA{SuHPxX{;1v#i9~9Fk|0~zMBSz>v?p%1{S+M{Ncx~vt2UJq=Rk|-ytU&G60<(yik~3O zEI9dK^*gQW;*Syk0JHoph^o>BXO2dCn=dTZ9M3K;=I&R}`h0#|a=Ph>%X^tgzycvy z;sb4}teXYya#wdpQkN-HbE8kHQ){425T~L=)1ZKffPs(7m=;T#5W^0+vIa-ACL7R% zoNXz3U0482i>3_EU6fRT-B6^bFw=B%Ph^Y{J0PX!^;kHE0^)XA)qcwl5l-ka+5?DL zRP5k7EN1>?kjVyCXtldZ(NCHWWlLQ;k9BChmsS=60y)Ph9h4eLFr}c;YAS9%$pU2> z-6FZPLO{A2o~KlSgc2^aBupS&_Dw-eeME(IKgtS)K_f&_FwUU{M!_>0ol@oi1dFG< zDgr>VtiB3-(mSXPZi3covvABVa4=?84Lv7C$ze{Hxld}}-w!w-Fu8^$+6OhW^;_$P zUC)jU1UYGc150q66^N)r8kKB*t8j22`S`ZDP0I6U?Wxmv@cH?8F$8HVSz{>S_>Q(J zrY+P>BZ+vVDvpLEErp84w=Ci8O?iUKM9S6tFNn+Q@NN#iJ*CdXKBLCA1;r;rGQSDn zaTscNcZ?-URLOHe{u9|x_6`p+W(lmrVJeIfKO+ACl$#h>)M@a|D&v}?!^yOgy9F)~ zz~Wtp#bMm)ZEO%2P5oC(bj@*;_%fas1%$%T%IQ<1hN|k+n#UVG( z(FeKFSk5%b9z3~~7f$@k!kK<26`JNl2|?}ycLm-b;r=<8FPh9nUU-=fT&)iE_#__5}RThqq; z#-%?3a!N0J)O`k%CVDO6=bk<{PaL#CAxQctix}!b_|z*Tb57Ds(CY zMTh8=cSVA6Ybin~jZh2;BIvx`K~ujvPSkZ%5L`-)LS%GW5g?FZNv1-qzTRDXs~Eyb zC@c;J>gr^TH7d5S3#)0EL2w+}dZhyL6q9?wS10>Jti3G|bMbHkt!H7;JAf$D$gbS_FbXf!*Zrv22 z4=|gg==a?W7L9r)M8F?ZiwHQ)^+6_LE!9W~Xh_>cDQXDRsMLuFBtX~%6U<2;MNtC& z+9l1rT|}5VM^vUH6ajqoRg-8^CSz$(b?i1lS(jUJ(Nj>tnVnUSbax9Ki6P(Ro)@ zaEq8&l}P4^f}ab3o)S5&B6sc1# z8(8*CePKjfL48mxG=&sIgKZSaQEBp|WSAQ(0PPUb5$m#TyuxuBZm5Y66bwWwPQg}e zj0W7G9c+PP*e9|oCg-|=Q;t`{fxXZGr6>j)DG>`aBoZCk64Ti*If~F)?v(QAq%KN{ zC=P3HDHxCkx+AaEAv~So111n|5i*ey5Dp*agtyi~L0e#s-4Fy?LUAC%j`Fh65hu4r z7Mtm+0WdpiqF;L`By`b6t(xuas7dZ3pc_Q0G1#`@aJ6c@!&(-x_B5Z5*~oq`1%L+4 zny&i+{MM7Ni4y~5*?dXjF~nR+iNvwQ(gZP{fpp^OUssQ;bo1rybE{68DDx=OY>6Vu z)-b!#c4ZPtQfp?#UGktxsp1T(2oYq|Wjz7{BUEzqLv9p?wm`WyMSvkWxP%cTAdf61 zaNf#fLT2tN!B;(_bmcmY9))7KzMHOOO3=C9iyp6;zUem+7In%Td4-T-8#!FbDx>*| zup1~YYopOlV5&xn!r>CEN|-%U4f4vXo@F-QRis`FBua^a2#`XaJnDFHgId<@c00Hu6Hw|q^`fi z-w?QNAImVgZCoLD;o2A+4y(5p9pvgc<(G?p9G?bE{Dxae3o@HqO`tN(8wIAae~5e@ zbBOsgaBejkIf$K?D^JGEADf>CQJ`LBcE3-QWAh_v56yFAgSmQ{TGRg9GO*wuMxZ+Y zC0|R%tdYlBjp_?@Q}S|a^D%6IWNW8Y9$_69L8ao}K~b~w+|ksuteQS4wdWRG;WA585RT>k(r&uz=MWiRid=sq}N zMIQ|Fa&;{N-m9^%j zZE=Gd-Fdk?ud%_cI8P9A2j_q8i@vrvMu( z0u=dst6F610YuA$pcw9`umV-=01Io;Qq6+Bf?M4Lm@O(~+eKSRE`>R=>k?1_0XKn|m*y ze+?W_{?m9#l$X1jwh^ZdQ>?Yb53md86=Oh z2-0;?-2^7#<_b^&0LJ|kL$}d0Eod947efk~7EYt+qJJ!lDNG$DMbjW1?6eV%O)gb; z3ddM!7gadGzMCM6oI5C!2zekR*H|DNW7$?s%%RSi?4WJ@&{F4bs-&A8)vh3r1=cBl zmICP+g!edIQ1=qj18?f2=aOt8RZzW#2A$SMJL&=g!Nf(?)hZjt>k7Mz4|G*kYDJIL WVpXflJ(TJdiB;38>8V)0-~ZXsHF)>{ literal 0 HcmV?d00001 diff --git a/Hyperpay/Extension/view/frontend/web/images/paypal.svg b/Hyperpay/Extension/view/frontend/web/images/paypal.svg old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/images/sadad.png b/Hyperpay/Extension/view/frontend/web/images/sadad.png old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/images/stc.png b/Hyperpay/Extension/view/frontend/web/images/stc.png old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/images/visa.svg b/Hyperpay/Extension/view/frontend/web/images/visa.svg old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/images/zoodpay.png b/Hyperpay/Extension/view/frontend/web/images/zoodpay.png new file mode 100755 index 0000000000000000000000000000000000000000..83f523a013cb4756620413155dade782d30de4a3 GIT binary patch literal 3431 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 literal 0 HcmV?d00001 diff --git a/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer.js b/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer.js old mode 100644 new mode 100755 index a2159f1..c8e3d2d --- a/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer.js +++ b/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer.js @@ -41,9 +41,13 @@ define( type: 'HyperPay_SadadPayware', component: 'Hyperpay_Extension/js/view/payment/method-renderer/SadadPayware' }, - { + { type: 'HyperPay_stc', component: 'Hyperpay_Extension/js/view/payment/method-renderer/DefaultPaymentMethods' + }, + { + type: 'HyperPay_Zoodpay', + component: 'Hyperpay_Extension/js/view/payment/method-renderer/Zoodpay' } ); return Component.extend({}); diff --git a/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/DefaultPaymentMethods.js b/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/DefaultPaymentMethods.js old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/SadadPayware.js b/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/SadadPayware.js old mode 100644 new mode 100755 diff --git a/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/Zoodpay.js b/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/Zoodpay.js new file mode 100755 index 0000000..eb5c204 --- /dev/null +++ b/Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/Zoodpay.js @@ -0,0 +1,27 @@ +define( + [ + 'jquery', + 'Magento_Checkout/js/view/payment/default', + 'mage/url', + 'Magento_Checkout/js/action/place-order' + ], + function ($,Component,url,placeOrderAction) { + 'use strict'; + + return Component.extend( + { + defaults: { + template: 'Hyperpay_Extension/payment/hyperpay', + redirectAfterPlaceOrder: false + }, + afterPlaceOrder: function () { + window.location.replace(url.build('hyperpay/index/servertoserver')); + }, + getPaymentAcceptanceMarkSrc: function () { + return window.checkoutConfig.payment[this.getCode()].paymentAcceptanceMarkSrc; + } + + } + ); + } +); diff --git a/Hyperpay/Extension/view/frontend/web/template/payment/hyperpay.html b/Hyperpay/Extension/view/frontend/web/template/payment/hyperpay.html old mode 100644 new mode 100755 From 4efc2dd8c94222dca5cd875f00a6c320e740bb97 Mon Sep 17 00:00:00 2001 From: Ibraheem Jarrar Date: Tue, 29 Mar 2022 12:49:31 +0300 Subject: [PATCH 2/3] remove image --- .../view/frontend/web/images/maxresdefault.jpg | Bin 89112 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Hyperpay/Extension/view/frontend/web/images/maxresdefault.jpg diff --git a/Hyperpay/Extension/view/frontend/web/images/maxresdefault.jpg b/Hyperpay/Extension/view/frontend/web/images/maxresdefault.jpg deleted file mode 100644 index 3225d076666552980d9e39d57538df18a70571f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89112 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 WVpXflJ(TJdiB;38>8V)0-~ZXsHF)>{ From 3f473b32737865f5b6400c3147b4ccc016678bac Mon Sep 17 00:00:00 2001 From: Ibraheem Jarrar Date: Sun, 3 Apr 2022 11:21:34 +0300 Subject: [PATCH 3/3] adding tabby to magento2 --- .../Controller/Index/ServerToServer.php | 46 ++++++++++++---- Hyperpay/Extension/Helper/Data.php | 3 + .../Extension/Model/MainConfigProvider.php | 1 + Hyperpay/Extension/Model/Method/Tabby.php | 19 +++++++ Hyperpay/Extension/etc/adminhtml/system.xml | 52 ++++++++++++++++++ Hyperpay/Extension/etc/config.xml | 13 ++++- .../frontend/layout/checkout_index_index.xml | 5 ++ .../view/frontend/web/images/tabby.png | Bin 0 -> 14888 bytes .../web/js/view/payment/method-renderer.js | 6 +- .../payment/method-renderer/ServerToServer.js | 27 +++++++++ 10 files changed, 159 insertions(+), 13 deletions(-) create mode 100644 Hyperpay/Extension/Model/Method/Tabby.php create mode 100644 Hyperpay/Extension/view/frontend/web/images/tabby.png create mode 100755 Hyperpay/Extension/view/frontend/web/js/view/payment/method-renderer/ServerToServer.js diff --git a/Hyperpay/Extension/Controller/Index/ServerToServer.php b/Hyperpay/Extension/Controller/Index/ServerToServer.php index ed63d07..165f91d 100755 --- a/Hyperpay/Extension/Controller/Index/ServerToServer.php +++ b/Hyperpay/Extension/Controller/Index/ServerToServer.php @@ -152,6 +152,9 @@ public function serverToServer($order, $status) { $payment = $order->getPayment(); $method = $payment->getData('method'); + + $paymentBrand = $this->getPaymentBrand($method); + $email = $order->getBillingAddress()->getEmail(); //order# $orderId = $order->getIncrementId(); @@ -173,32 +176,37 @@ public function serverToServer($order, $status) "¬ificationUrl=" . $status . "&shopperResultUrl=" . $status . "&amount=" . $grandTotal . - "&paymentBrand=ZOODPAY" . + "&paymentBrand=$paymentBrand" . "¤cy=" . $currency . "&paymentType=" . $paymentType . "&customer.email=" . $email . - "&testMode=EXTERNAL" . - "&merchantTransactionId=" . $orderId . - "&customParameters[service_code]=ZPI"; // fixed + "&merchantTransactionId=" . $orderId; + + if ($method == 'HyperPay_Zoodpay') { + $data .= "&customParameters[service_code]=ZPI"; // fixed + } + $data .= $this->_adapter->getModeHyperpay(); + $accesstoken = $this->_adapter->getAccessToken(); $auth = array('Authorization' => 'Bearer ' . $accesstoken); $this->_helper->setHeaders($auth); $data .= $this->_helper->getBillingAndShippingAddress($order); - $data .= $this->buildCartItems(); + $data .= $this->buildCartItems($method); $decodedData = $this->_helper->getCurlServerToServer($baseUrl, $data); + if (!isset($decodedData['id'])) { $this->_helper->doError(__('Request id is not found')); return; } if (!isset($decodedData['result']['code']) || $decodedData['result']['code'] != '000.200.000') { - $desc = \Safe\json_decode($decodedData['resultDetails']['ExtendedDescription'],true); + $desc = \Safe\json_decode($decodedData['resultDetails']['ExtendedDescription'], true); $errors = ''; if (isset($desc['details'])) { - foreach ($desc['details'] as $detail){ + foreach ($desc['details'] as $detail) { $errors .= $detail['error'] . ' - '; } } @@ -215,7 +223,7 @@ public function serverToServer($order, $status) echo $redirectForm; } - private function buildCartItems() + private function buildCartItems($method) { $objectManager = ObjectManager::getInstance(); $cart = $objectManager->get('\Magento\Checkout\Model\Cart'); @@ -228,13 +236,17 @@ private function buildCartItems() $cartData .= "&cart.items[" . $key . "].name=" . $item->getName() . "&cart.items[" . $key . "].price=" . number_format($item->getPrice(), 2, '.', '') . "&cart.items[" . $key . "].quantity=" . $item->getQty(); -// "&cart.items[" . $key . "].description=" . $item->getName() . -// "&cart.items[" . $key . "].giftMessage=" . $item->getName(); + + if ($method == 'HyperPay_Tabby') { + $cartData .= "&cart.items[" . $key . "].sku=" . $item->getSku(); + } $categories[] = [["test"]]; } - $cartData .= "&customParameters['categories']=" . (json_encode($categories)); + if ($method == 'HyperPay_Zoodpay') { + $cartData .= "&customParameters['categories']=" . (json_encode($categories)); + } return $cartData; } @@ -252,4 +264,16 @@ private function buildRedirectForm($data) $form .= ''; return $form; } + + private function getPaymentBrand($method) + { + switch ($method) { + case 'HyperPay_Zoodpay': + return 'ZOODPAY'; + case 'HyperPay_Tabby': + return 'TABBY'; + } + + return false; + } } diff --git a/Hyperpay/Extension/Helper/Data.php b/Hyperpay/Extension/Helper/Data.php index 83b882b..92671c0 100755 --- a/Hyperpay/Extension/Helper/Data.php +++ b/Hyperpay/Extension/Helper/Data.php @@ -476,6 +476,9 @@ public function getPaymentMarkImageUrl($code) case 'HyperPay_Zoodpay': $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/zoodpay.png"); break; + case 'HyperPay_Tabby': + $paymentImage = $this->_assetRepo->getUrl("Hyperpay_Extension::images/tabby.png"); + break; } return $paymentImage; } diff --git a/Hyperpay/Extension/Model/MainConfigProvider.php b/Hyperpay/Extension/Model/MainConfigProvider.php index 45cd67c..189edfd 100755 --- a/Hyperpay/Extension/Model/MainConfigProvider.php +++ b/Hyperpay/Extension/Model/MainConfigProvider.php @@ -26,6 +26,7 @@ class MainConfigProvider implements ConfigProviderInterface 'HyperPay_ApplePay', 'HyperPay_stc', 'HyperPay_Zoodpay', + 'HyperPay_Tabby', ]; /** * @var \Magento\Payment\Model\Method\AbstractMethod[] diff --git a/Hyperpay/Extension/Model/Method/Tabby.php b/Hyperpay/Extension/Model/Method/Tabby.php new file mode 100644 index 0000000..6e31403 --- /dev/null +++ b/Hyperpay/Extension/Model/Method/Tabby.php @@ -0,0 +1,19 @@ +Magento\Config\Model\Config\Source\Yesno + + + + + + + + Magento\Config\Model\Config\Source\Yesno + + + + Hyperpay\Extension\Model\Source\PaymentAction + + + + Hyperpay\Extension\Model\Source\Connectors + + + + + + + validate-number + + + + Magento\Payment\Model\Config\Source\Allspecificcountries + + + + Magento\Directory\Model\Config\Source\Country + + + + Magento\Config\Model\Config\Source\Locale\Currency + + + + Magento\Config\Model\Config\Source\Yesno + + diff --git a/Hyperpay/Extension/etc/config.xml b/Hyperpay/Extension/etc/config.xml index c8df3b9..fe6e53e 100755 --- a/Hyperpay/Extension/etc/config.xml +++ b/Hyperpay/Extension/etc/config.xml @@ -19,12 +19,23 @@ Hyperpay\Extension\Model\Method\Zoodpay 0 DB - SAR + JOD Enter your Entity Id migs 0 2 + + Tabby + Hyperpay\Extension\Model\Method\Tabby + 0 + DB + SAR + Enter your Entity Id + migs + 0 + 2 + STCPAY Hyperpay\Extension\Model\Method\Stc diff --git a/Hyperpay/Extension/view/frontend/layout/checkout_index_index.xml b/Hyperpay/Extension/view/frontend/layout/checkout_index_index.xml index 9732841..ba80e9a 100755 --- a/Hyperpay/Extension/view/frontend/layout/checkout_index_index.xml +++ b/Hyperpay/Extension/view/frontend/layout/checkout_index_index.xml @@ -74,6 +74,11 @@ xsi:type="boolean">true + + true + + diff --git a/Hyperpay/Extension/view/frontend/web/images/tabby.png b/Hyperpay/Extension/view/frontend/web/images/tabby.png new file mode 100644 index 0000000000000000000000000000000000000000..e50fcd55555d14366cf73777c0110e0b313f7f7f GIT binary patch literal 14888 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 aJ-qMw|K0&zRK)^1K