From bb689bfbe2c375220cf36590a3ff96d281d42f40 Mon Sep 17 00:00:00 2001 From: sofiya02 Date: Thu, 17 Mar 2022 07:34:20 +0530 Subject: [PATCH 1/3] Admin subscription module --- .DS_Store | Bin 0 -> 6148 bytes install.xml | 48 + upload/.DS_Store | Bin 0 -> 6148 bytes upload/admin/.DS_Store | Bin 0 -> 8196 bytes upload/admin/controller/.DS_Store | Bin 0 -> 6148 bytes upload/admin/controller/extension/.DS_Store | Bin 0 -> 6148 bytes .../controller/extension/payment/razorpay.php | 1187 ++++++ upload/admin/language/.DS_Store | Bin 0 -> 6148 bytes upload/admin/language/en-gb/.DS_Store | Bin 0 -> 6148 bytes .../admin/language/en-gb/extension/.DS_Store | Bin 0 -> 6148 bytes .../en-gb/extension/payment/razorpay.php | 213 + upload/admin/model/.DS_Store | Bin 0 -> 6148 bytes upload/admin/model/extension/.DS_Store | Bin 0 -> 6148 bytes .../model/extension/payment/razorpay.php | 200 + upload/admin/view/.DS_Store | Bin 0 -> 6148 bytes upload/admin/view/image/payment/razorpay.png | Bin 0 -> 3937 bytes upload/admin/view/template/.DS_Store | Bin 0 -> 6148 bytes .../admin/view/template/extension/.DS_Store | Bin 0 -> 6148 bytes .../template/extension/payment/razorpay.twig | 139 + .../extension/payment/razorpay_plan_form.twig | 208 + .../extension/payment/razorpay_plan_list.twig | 216 + .../payment/razorpay_subscription.twig | 50 + .../payment/razorpay_subscription_info.twig | 121 + .../payment/razorpay_subscription_list.twig | 239 ++ .../controller/extension/payment/razorpay.php | 353 ++ .../en-gb/extension/payment/razorpay.php | 4 + .../model/extension/payment/razorpay.php | 18 + .../template/extension/payment/razorpay.twig | 92 + upload/system/library/razorpay-sdk/README.md | 145 + .../system/library/razorpay-sdk/Razorpay.php | 55 + .../libs/Requests-1.7.0/.coveralls.yml | 4 + .../libs/Requests-1.7.0/.gitignore | 6 + .../libs/Requests-1.7.0/.travis.yml | 58 + .../libs/Requests-1.7.0/CHANGELOG.md | 315 ++ .../razorpay-sdk/libs/Requests-1.7.0/LICENSE | 49 + .../libs/Requests-1.7.0/README.md | 152 + .../libs/Requests-1.7.0/composer.json | 23 + .../libs/Requests-1.7.0/library/Requests.php | 980 +++++ .../Requests-1.7.0/library/Requests/Auth.php | 33 + .../library/Requests/Auth/Basic.php | 88 + .../library/Requests/Cookie.php | 500 +++ .../library/Requests/Cookie/Jar.php | 175 + .../library/Requests/Exception.php | 62 + .../library/Requests/Exception/HTTP.php | 71 + .../library/Requests/Exception/HTTP/304.php | 27 + .../library/Requests/Exception/HTTP/305.php | 27 + .../library/Requests/Exception/HTTP/306.php | 27 + .../library/Requests/Exception/HTTP/400.php | 27 + .../library/Requests/Exception/HTTP/401.php | 27 + .../library/Requests/Exception/HTTP/402.php | 27 + .../library/Requests/Exception/HTTP/403.php | 27 + .../library/Requests/Exception/HTTP/404.php | 27 + .../library/Requests/Exception/HTTP/405.php | 27 + .../library/Requests/Exception/HTTP/406.php | 27 + .../library/Requests/Exception/HTTP/407.php | 27 + .../library/Requests/Exception/HTTP/408.php | 27 + .../library/Requests/Exception/HTTP/409.php | 27 + .../library/Requests/Exception/HTTP/410.php | 27 + .../library/Requests/Exception/HTTP/411.php | 27 + .../library/Requests/Exception/HTTP/412.php | 27 + .../library/Requests/Exception/HTTP/413.php | 27 + .../library/Requests/Exception/HTTP/414.php | 27 + .../library/Requests/Exception/HTTP/415.php | 27 + .../library/Requests/Exception/HTTP/416.php | 27 + .../library/Requests/Exception/HTTP/417.php | 27 + .../library/Requests/Exception/HTTP/418.php | 29 + .../library/Requests/Exception/HTTP/428.php | 29 + .../library/Requests/Exception/HTTP/429.php | 29 + .../library/Requests/Exception/HTTP/431.php | 29 + .../library/Requests/Exception/HTTP/500.php | 27 + .../library/Requests/Exception/HTTP/501.php | 27 + .../library/Requests/Exception/HTTP/502.php | 27 + .../library/Requests/Exception/HTTP/503.php | 27 + .../library/Requests/Exception/HTTP/504.php | 27 + .../library/Requests/Exception/HTTP/505.php | 27 + .../library/Requests/Exception/HTTP/511.php | 29 + .../Requests/Exception/HTTP/Unknown.php | 44 + .../library/Requests/Exception/Transport.php | 5 + .../Requests/Exception/Transport/cURL.php | 56 + .../library/Requests/Hooker.php | 33 + .../Requests-1.7.0/library/Requests/Hooks.php | 68 + .../library/Requests/IDNAEncoder.php | 388 ++ .../Requests-1.7.0/library/Requests/IPv6.php | 190 + .../Requests-1.7.0/library/Requests/IRI.php | 1084 +++++ .../Requests-1.7.0/library/Requests/Proxy.php | 35 + .../library/Requests/Proxy/HTTP.php | 151 + .../library/Requests/Response.php | 121 + .../library/Requests/Response/Headers.php | 98 + .../Requests-1.7.0/library/Requests/SSL.php | 152 + .../library/Requests/Session.php | 266 ++ .../library/Requests/Transport.php | 41 + .../library/Requests/Transport/cURL.php | 542 +++ .../library/Requests/Transport/cacert.pem | 3554 +++++++++++++++++ .../library/Requests/Transport/fsockopen.php | 444 ++ .../Utility/CaseInsensitiveDictionary.php | 103 + .../Requests/Utility/FilteredIterator.php | 45 + .../libs/Requests-1.7.0/package.xml.tpl | 60 + .../system/library/razorpay-sdk/src/Addon.php | 21 + .../system/library/razorpay-sdk/src/Api.php | 91 + .../razorpay-sdk/src/ArrayableInterface.php | 13 + .../system/library/razorpay-sdk/src/Card.php | 14 + .../library/razorpay-sdk/src/Collection.php | 20 + .../library/razorpay-sdk/src/Customer.php | 40 + .../library/razorpay-sdk/src/Entity.php | 228 ++ .../src/Errors/BadRequestError.php | 20 + .../library/razorpay-sdk/src/Errors/Error.php | 24 + .../razorpay-sdk/src/Errors/ErrorCode.php | 17 + .../razorpay-sdk/src/Errors/GatewayError.php | 7 + .../razorpay-sdk/src/Errors/ServerError.php | 7 + .../src/Errors/SignatureVerificationError.php | 9 + .../library/razorpay-sdk/src/Invoice.php | 115 + .../system/library/razorpay-sdk/src/Order.php | 31 + .../library/razorpay-sdk/src/Payment.php | 89 + .../system/library/razorpay-sdk/src/Plan.php | 21 + .../library/razorpay-sdk/src/Refund.php | 24 + .../library/razorpay-sdk/src/Request.php | 228 ++ .../library/razorpay-sdk/src/Resource.php | 57 + .../library/razorpay-sdk/src/Settlement.php | 42 + .../library/razorpay-sdk/src/Subscription.php | 35 + .../system/library/razorpay-sdk/src/Token.php | 30 + .../library/razorpay-sdk/src/Transfer.php | 62 + .../library/razorpay-sdk/src/Utility.php | 81 + .../razorpay-sdk/src/VirtualAccount.php | 39 + .../system/library/razorpay-sdk/version.txt | 1 + 124 files changed, 15524 insertions(+) create mode 100644 .DS_Store create mode 100644 install.xml create mode 100644 upload/.DS_Store create mode 100644 upload/admin/.DS_Store create mode 100644 upload/admin/controller/.DS_Store create mode 100644 upload/admin/controller/extension/.DS_Store create mode 100755 upload/admin/controller/extension/payment/razorpay.php create mode 100644 upload/admin/language/.DS_Store create mode 100644 upload/admin/language/en-gb/.DS_Store create mode 100644 upload/admin/language/en-gb/extension/.DS_Store create mode 100755 upload/admin/language/en-gb/extension/payment/razorpay.php create mode 100644 upload/admin/model/.DS_Store create mode 100644 upload/admin/model/extension/.DS_Store create mode 100644 upload/admin/model/extension/payment/razorpay.php create mode 100644 upload/admin/view/.DS_Store create mode 100755 upload/admin/view/image/payment/razorpay.png create mode 100644 upload/admin/view/template/.DS_Store create mode 100644 upload/admin/view/template/extension/.DS_Store create mode 100644 upload/admin/view/template/extension/payment/razorpay.twig create mode 100644 upload/admin/view/template/extension/payment/razorpay_plan_form.twig create mode 100644 upload/admin/view/template/extension/payment/razorpay_plan_list.twig create mode 100644 upload/admin/view/template/extension/payment/razorpay_subscription.twig create mode 100644 upload/admin/view/template/extension/payment/razorpay_subscription_info.twig create mode 100644 upload/admin/view/template/extension/payment/razorpay_subscription_list.twig create mode 100755 upload/catalog/controller/extension/payment/razorpay.php create mode 100755 upload/catalog/language/en-gb/extension/payment/razorpay.php create mode 100755 upload/catalog/model/extension/payment/razorpay.php create mode 100755 upload/catalog/view/theme/default/template/extension/payment/razorpay.twig create mode 100755 upload/system/library/razorpay-sdk/README.md create mode 100755 upload/system/library/razorpay-sdk/Razorpay.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/.coveralls.yml create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/.gitignore create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/.travis.yml create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/CHANGELOG.md create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/LICENSE create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/README.md create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/composer.json create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Auth.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Auth/Basic.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Cookie.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Cookie/Jar.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/304.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/305.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/306.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/400.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/401.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/402.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/403.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/404.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/405.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/406.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/407.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/408.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/409.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/410.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/411.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/412.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/413.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/414.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/415.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/416.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/417.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/418.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/428.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/429.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/431.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/500.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/501.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/502.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/503.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/504.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/505.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/511.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/Unknown.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/Transport.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/Transport/cURL.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Hooker.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Hooks.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IDNAEncoder.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IPv6.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IRI.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Proxy.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Proxy/HTTP.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Response.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Response/Headers.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/SSL.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Session.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport/cURL.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport/cacert.pem create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport/fsockopen.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Utility/CaseInsensitiveDictionary.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Utility/FilteredIterator.php create mode 100755 upload/system/library/razorpay-sdk/libs/Requests-1.7.0/package.xml.tpl create mode 100755 upload/system/library/razorpay-sdk/src/Addon.php create mode 100755 upload/system/library/razorpay-sdk/src/Api.php create mode 100755 upload/system/library/razorpay-sdk/src/ArrayableInterface.php create mode 100755 upload/system/library/razorpay-sdk/src/Card.php create mode 100755 upload/system/library/razorpay-sdk/src/Collection.php create mode 100755 upload/system/library/razorpay-sdk/src/Customer.php create mode 100755 upload/system/library/razorpay-sdk/src/Entity.php create mode 100755 upload/system/library/razorpay-sdk/src/Errors/BadRequestError.php create mode 100755 upload/system/library/razorpay-sdk/src/Errors/Error.php create mode 100755 upload/system/library/razorpay-sdk/src/Errors/ErrorCode.php create mode 100755 upload/system/library/razorpay-sdk/src/Errors/GatewayError.php create mode 100755 upload/system/library/razorpay-sdk/src/Errors/ServerError.php create mode 100755 upload/system/library/razorpay-sdk/src/Errors/SignatureVerificationError.php create mode 100755 upload/system/library/razorpay-sdk/src/Invoice.php create mode 100755 upload/system/library/razorpay-sdk/src/Order.php create mode 100755 upload/system/library/razorpay-sdk/src/Payment.php create mode 100755 upload/system/library/razorpay-sdk/src/Plan.php create mode 100755 upload/system/library/razorpay-sdk/src/Refund.php create mode 100755 upload/system/library/razorpay-sdk/src/Request.php create mode 100755 upload/system/library/razorpay-sdk/src/Resource.php create mode 100755 upload/system/library/razorpay-sdk/src/Settlement.php create mode 100755 upload/system/library/razorpay-sdk/src/Subscription.php create mode 100755 upload/system/library/razorpay-sdk/src/Token.php create mode 100755 upload/system/library/razorpay-sdk/src/Transfer.php create mode 100755 upload/system/library/razorpay-sdk/src/Utility.php create mode 100755 upload/system/library/razorpay-sdk/src/VirtualAccount.php create mode 100755 upload/system/library/razorpay-sdk/version.txt diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3a651f3f9cef3890fbe7184258674829c1ae6855 GIT binary patch literal 6148 zcmeHK!EO^V5FMwXIH?dhAkm{Q+@dN8sGK92{eJ3ow|1+WPd z$Z@qbWh<>KZ8h8Lb=vCA?cMpjA#dL5-rGM+Pv6Ym&fmQ^QwD*bxsmIP3;2M> z5+TWP*FVx}z6iM3p6bDXNs#xyeO1HnpNQb4K2jb1F(x1Vew^3-I7@VPjD0WO{oE@# z(=p%}xU3BDh9I{tD*gk=^*&>A$VlLHxyw;$NrTG2jN+CrDMP`u*|@Qt+wd= zf3*JozntW1jseHOf5m{P5BxzNr^ILL%H-&*Rj7xkBotR!JWD~t9K{$*NAWhQ5%eoE W5Ix4qB6?8VkAR`U6^? + + Razorpay Payment Extension + razorpay_payment_extension + 4.0.2 + Razorpay Team + https://github.com/razorpay/razorpay-opencart + Razorpay Subscription Module menu + + + + + user->hasPermission('access', 'extension/payment/razorpay')) { + $adminmenus[] = array( + 'name' => 'Plans', + 'href' => $this->url->link('extension/payment/razorpay', 'user_token=' . $this->session->data['user_token'], true), + 'children' => array() + ); + + } + if ($this->user->hasPermission('access', 'extension/payment/razorpay')) { + $adminmenus[] = array( + 'name' => 'Subscriptions', + 'href' => $this->url->link('extension/payment/razorpay', 'user_token=' . $this->session->data['user_token'], true), + 'children' => array() + ); + + } + + if ($adminmenus) { + $data['menus'][] = array( + 'id' => 'menu-megafooter', + 'icon' => 'fa fa-share-alt fa-fw', + 'name' => 'Razorpay Subscription', + 'href' => '', + 'children' => $adminmenus + ); + } + + /* Admin menu */ ]]> + + + + \ No newline at end of file diff --git a/upload/.DS_Store b/upload/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..81271f816e0d4a1f177401c8219da8b3873a6cb7 GIT binary patch literal 6148 zcmeH~&rjPh6vv;TfZJ(W50l0YlYH4NLQPXKI7|v19Jo!&G!8I9LMn)q#;8eGLDnh% z#g$)bgdOyaAIj9H*CL}yeqmPn zx9B2G@}krE&X$%NE30dqw|MJe>s@dzCqWSwW@+Z&Tm-{Ef%d7Ik^y6nW3t+fgDSKq}mwdrWZI17QQI^W=3|lE<4Nj3%fu4ed zv)W!qtiGbxS|08zR^l6_MkDHimFqYxneM#j_tz4`9>?PIvtp~d@%E7W^O1!pDY1O;J+fk8oR-6AE#u_)`iK@Su4;_(8(yS n(yCIhFvqc~&{4dOt_=GGRZxASl~!y)vp)g~gDot9dnND_kB-1} literal 0 HcmV?d00001 diff --git a/upload/admin/.DS_Store b/upload/admin/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0b8d238aa373d5e041d597e06f87045f3d2d0f68 GIT binary patch literal 8196 zcmeI1&2G~`5XWcRlx_lu9FQo8gD>1tDJCh<1Cj~hzzxX=4uD#_wh~K@H%gpF#RU1r zJMi@woValVaYVcVkHPE*kxA=tsb~c=(e8ia*;!|QS=*Tn0I<#^umLszfMbzbKa157 zCjGJ;vK4dW94f&9$mq2UaQtK&{|mW!T0%K*d-_9izEc6^di(?17n3W>O5M!_jZa?x>E@T&oTT zro(}mGc%K+Fm-l}vs8Crj#jFP01-G$K<4f>*u%U%fwY*v`_u8zkA;u^&;Bru#%Z(p zovo}^*3PVRUgNd%wP$W$Ox@H=C*zJcdLrLF@Y23-+7E?@=WWk_6ou2B`o+5t?Gxn^pOx zYxeE?yMu%0*^AlB*Ls4?+$7+_!i3+H&34}%C9z0)=$Ek^_b@yp(t` zw`;Bp{_W$3@YRn`cd*ZIJ%T^<81|Q)Vc`p?z&=EXe_Fu*<)l~P6}bv;Y~d>0-der} z-VW|L>LW{~!N}X+$DG1WpYBR_VIk4t|_p zKbsdnnas5KR|)(C DrdUCs literal 0 HcmV?d00001 diff --git a/upload/admin/controller/.DS_Store b/upload/admin/controller/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..262a41fcccc435677965bd118d1596eef24ab07e GIT binary patch literal 6148 zcmeHK%}N6?5T4Yk*^1bMpx$!v)29rBEBhS!M!tZr z<4lr@QauSGWdc(i)s5fiMZ~Eh!8u^XJR!wa;n&Yu2*Eao~{fq1ShtcEs>Ddx2@Lx2t;&1{l zXneEQ+pwSZbb5)=N#&%1kr`kHn1R`3!0mQ&X*QR~t6~P2fnP8{`-4Iy3>+2~&DMbp zT^}i4CL}?d-V%h$Vc@W^h!GTFOA&3Ua8C?j%h9h~Uf{5>Xv;yEnQ(t`ttW~HNs3eqE nSo|nK!yLt!OGoiKsuA=nG7tlYg+=tB@I}DTzzs9-rwqIU6&O?; literal 0 HcmV?d00001 diff --git a/upload/admin/controller/extension/.DS_Store b/upload/admin/controller/extension/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3d24e4f87285fa6d28a32d9fb94d49e8329017c4 GIT binary patch literal 6148 zcmeHK%}T>S5T0$T-BiRL1ogHTZ#^`&;7JHo58i}`9#k|TMFTY{ZEDe4$#du%`2xO< zGrQYjtzJBclo^=)X6I*@{Sx*E07PpLxd2rFkf?+O2b*t%;-qs@upUC8$7n+WSvc%> z!_HhbJN_dB^zF*fg#aGl4nBRqG{neT*zLsqtX_W?g<@%Gxh!QxR#q#Q{%tz+vmhJv zTS4!fddER_8(RA$O*>ON2v6ho@T$7LpC(xlC+(gtj-xiFT%5&8lnz_zAc^{V9Nz?_ zbfj}t-5QM=^=3`EO?O;VBe&7msj1yYb3AtB#gCzZh}_{)bxDEKcAR zjW6rG_j^evO>QtUshVUnG6T#2GqBhU*j-PqEcP;ab<6-W@CycLe^97|p2ggt-a4?M z>m$WWgd}LwTY^wo^epBEF@hpYDWWMA_K6`(Ir^2&^DO2DO*sfXGmc|t7WRcA^z7(Y zIvs>(kXvSe8JK0DXu4H8{||qD|IZe2j~QSF7K#B;I`9u#xFmbF&Ml74T7`OzN-f#_Mx4Wb8yF9MndZkT~TW#9wKlanguage->load('extension/payment/razorpay'); + + $this->document->setTitle($this->language->get('heading_title')); + + $this->load->model('setting/setting'); + + if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { + $this->model_setting_setting->editSetting('payment_razorpay', $this->request->post); + + $this->session->data['success'] = $this->language->get('text_success'); + + $this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true)); + } + + $data['heading_title'] = $this->language->get('heading_title'); + + $data['text_edit'] = $this->language->get('text_edit'); + $data['text_enabled'] = $this->language->get('text_enabled'); + $data['text_disabled'] = $this->language->get('text_disabled'); + $data['text_all_zones'] = $this->language->get('text_all_zones'); + $data['text_yes'] = $this->language->get('text_yes'); + $data['text_no'] = $this->language->get('text_no'); + + $data['entry_key_id'] = $this->language->get('entry_key_id'); + $data['entry_key_secret'] = $this->language->get('entry_key_secret'); + $data['entry_order_status'] = $this->language->get('entry_order_status'); + $data['entry_status'] = $this->language->get('entry_status'); + $data['entry_sort_order'] = $this->language->get('entry_sort_order'); + + $data['entry_payment_action'] = $this->language->get('entry_payment_action'); + $data['entry_webhook_secret'] = $this->language->get('entry_webhook_secret'); + $data['entry_webhook_status'] = $this->language->get('entry_webhook_status'); + $data['entry_webhook_url'] = $this->language->get('entry_webhook_url'); + + $data['button_save'] = $this->language->get('button_save'); + $data['button_cancel'] = $this->language->get('button_cancel'); + + $data['help_key_id'] = $this->language->get('help_key_id'); + $data['help_order_status'] = $this->language->get('help_order_status'); + $data['help_webhook_url'] = $this->language->get('help_webhook_url'); + + if (isset($this->error['warning'])) { + $data['error_warning'] = $this->error['warning']; + } else { + $data['error_warning'] = ''; + } + + if (isset($this->error['payment_razorpay_key_id'])) { + $data['error_key_id'] = $this->error['payment_razorpay_key_id']; + } else { + $data['error_key_id'] = ''; + } + + if (isset($this->error['payment_razorpay_key_secret'])) { + $data['error_key_secret'] = $this->error['payment_razorpay_key_secret']; + } else { + $data['error_key_secret'] = ''; + } + + if (isset($this->error['payment_razorpay_webhook_secret'])) { + $data['error_webhook_secret'] = $this->error['payment_razorpay_webhook_secret']; + } else { + $data['error_webhook_secret'] = ''; + } + + $data['breadcrumbs'] = array(); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_home'), + 'href' => $this->url->link('common/dashboard', 'user_token='.$this->session->data['user_token'], 'SSL'), + 'separator' => false, + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_extension'), + 'href' => $this->url->link('marketplace/extension', 'user_token='.$this->session->data['user_token'].'&type=payment', 'SSL'), + 'separator' => ' :: ', + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('heading_title'), + 'href' => $this->url->link('extension/payment/razorpay', 'user_token='.$this->session->data['user_token'], 'SSL'), + 'separator' => ' :: ', + ); + + $data['action'] = $this->url->link('extension/payment/razorpay', 'user_token=' . $this->session->data['user_token'], true); + + $data['cancel'] = $this->url->link('extension/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true); + + if (isset($this->request->post['payment_razorpay_key_id'])) { + $data['razorpay_key_id'] = $this->request->post['payment_razorpay_key_id']; + } else { + $data['razorpay_key_id'] = $this->config->get('payment_razorpay_key_id'); + } + + if (isset($this->request->post['payment_razorpay_key_secret'])) { + $data['razorpay_key_secret'] = $this->request->post['payment_razorpay_key_secret']; + } else { + $data['razorpay_key_secret'] = $this->config->get('payment_razorpay_key_secret'); + } + + if (isset($this->request->post['payment_razorpay_order_status_id'])) { + $data['razorpay_order_status_id'] = $this->request->post['payment_razorpay_order_status_id']; + } else { + $data['razorpay_order_status_id'] = ($this->config->get('payment_razorpay_order_status_id')) ? $this->config->get('payment_razorpay_order_status_id') : 2; + } + + $this->load->model('localisation/order_status'); + + $data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses(); + + if (isset($this->request->post['payment_razorpay_status'])) { + $data['razorpay_status'] = $this->request->post['payment_razorpay_status']; + } else { + $data['razorpay_status'] = $this->config->get('payment_razorpay_status'); + } + + if (isset($this->request->post['payment_razorpay_sort_order'])) { + $data['razorpay_sort_order'] = $this->request->post['payment_razorpay_sort_order']; + } else { + $data['razorpay_sort_order'] = $this->config->get('payment_razorpay_sort_order'); + } + + if (isset($this->request->post['payment_razorpay_payment_action'])) { + $data['razorpay_payment_action'] = $this->request->post['payment_razorpay_payment_action']; + } else { + $data['razorpay_payment_action'] = $this->config->get('payment_razorpay_payment_action'); + } + + if (isset($this->request->post['payment_razorpay_max_capture_delay'])) { + $data['razorpay_max_capture_delay'] = $this->request->post['payment_razorpay_max_capture_delay']; + } else { + $data['razorpay_max_capture_delay'] = $this->config->get('payment_razorpay_max_capture_delay'); + } + + if (isset($this->request->post['payment_razorpay_webhook_status'])) { + $data['razorpay_webhook_status'] = $this->request->post['payment_razorpay_webhook_status']; + } else { + $data['razorpay_webhook_status'] = $this->config->get('payment_razorpay_webhook_status'); + } + + if (isset($this->request->post['payment_razorpay_webhook_secret'])) { + $data['razorpay_webhook_secret'] = $this->request->post['payment_razorpay_webhook_secret']; + } else { + $data['razorpay_webhook_secret'] = $this->config->get('payment_razorpay_webhook_secret'); + } + + $data['razorpay_webhook_url'] = HTTPS_CATALOG . 'index.php?route=extension/payment/razorpay/webhook'; + + + $this->template = 'extension/payment/razorpay'; + $this->children = array( + 'common/header', + 'common/footer', + ); + $data['header'] = $this->load->controller('common/header'); + $data['column_left'] = $this->load->controller('common/column_left'); + $data['footer'] = $this->load->controller('common/footer'); + + $this->response->setOutput($this->load->view('extension/payment/razorpay', $data)); + } + + protected function validate() + { + if (!$this->user->hasPermission('modify', 'extension/payment/razorpay')) { + $this->error['warning'] = $this->language->get('error_permission'); + } + + if (!$this->request->post['payment_razorpay_key_id']) { + $this->error['payment_razorpay_key_id'] = $this->language->get('error_key_id'); + } + + if (!$this->request->post['payment_razorpay_key_secret']) { + $this->error['payment_razorpay_key_secret'] = $this->language->get('error_key_secret'); + } + + if ($this->request->post['payment_razorpay_webhook_status'] and !$this->request->post['payment_razorpay_webhook_secret']) { + $this->error['payment_razorpay_webhook_secret'] = $this->language->get('error_webhook_secret'); + } + + if (!$this->error) { + return true; + } else { + return false; + } + } + + //Subscription Module + + public function getPlan() + { + $this->load->language('extension/payment/razorpay'); + $this->load->model('extension/payment/razorpay'); + if (isset($this->request->get['filter_plan_id'])) { + $filter_plan_id = $this->request->get['filter_plan_id']; + } else { + $filter_plan_id = ''; + } + + if (isset($this->request->get['filter_plan_name'])) { + $filter_plan_name = $this->request->get['filter_plan_name']; + } else { + $filter_plan_name = ''; + } + + if (isset($this->request->get['filter_plan_status'])) { + $filter_plan_status = $this->request->get['filter_plan_status']; + } else { + $filter_plan_status = ''; + } + + if (isset($this->request->get['filter_date_created'])) { + $filter_date_created = $this->request->get['filter_date_created']; + } else { + $filter_date_created = ''; + } + + if (isset($this->request->get['sort'])) { + $sort = $this->request->get['sort']; + } else { + $sort = 'p.entity_id'; + } + + if (isset($this->request->get['entity_id'])) { + $order = $this->request->get['entity_id']; + } else { + $order = 'DESC'; + } + + if (isset($this->request->get['page'])) { + $page = (int)$this->request->get['page']; + } else { + $page = 1; + } + + $url = ''; + + if (isset($this->request->get['filter_plan_id'])) { + $url .= '&filter_plan_id=' . $this->request->get['filter_plan_id']; + } + + if (isset($this->request->get['filter_plan_name'])) { + $url .= '&filter_plan_name=' . urlencode(html_entity_decode($this->request->get['filter_plan_name'], ENT_QUOTES, 'UTF-8')); + } + + if (isset($this->request->get['filter_plan_status'])) { + $url .= '&filter_plan_status=' . $this->request->get['filter_plan_status']; + } + + if (isset($this->request->get['filter_date_created'])) { + $url .= '&filter_date_created=' . $this->request->get['filter_date_created']; + } + + if (isset($this->request->get['sort'])) { + $url .= '&sort=' . $this->request->get['sort']; + } + + if (isset($this->request->get['plan'])) { + $url .= '&plan=' . $this->request->get['plan']; + } + + if (isset($this->request->get['page'])) { + $url .= '&page=' . $this->request->get['page']; + } + + $data['breadcrumbs'] = array(); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_home'), + 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('plan_title'), + 'href' => $this->url->link('extension/payment/razorpay', 'user_token=' . $this->session->data['user_token'] . $url, true) + ); + + + + $data['plans'] = array(); + + $filter_data = array( + 'filter_plan_id' => $filter_plan_id, + 'filter_plan_name' => $filter_plan_name, + 'filter_plan_status' => $filter_plan_status, + 'filter_date_created' => $filter_date_created, + 'sort' => $sort, + 'order' => $order, + 'start' => ($page - 1) * $this->config->get('config_limit_admin'), + 'limit' => $this->config->get('config_limit_admin') + ); + + $results = $this->model_extension_payment_razorpay->getPlans($filter_data); + + foreach ($results as $result) { + $data['plans'][] = array( + 'entity_id' => $result['entity_id'], + 'plan_id' => $result['plan_id'], + 'plan_name' => $result['plan_name'], + 'plan_desc' => $result['plan_desc'], + 'name' => $result['name'], + 'plan_type' => $result['plan_type'], + 'plan_frequency' => $result['plan_frequency'], + 'plan_bill_cycle' => $result['plan_bill_cycle'], + 'plan_trial' => $result['plan_trial'], + 'plan_bill_amount' => $result['plan_bill_amount'], + 'plan_addons' => $result['plan_addons'], + 'plan_status' => $result['plan_status'], + 'created_at' => date($this->language->get('date_format_short'), strtotime($result['created_at'])), + 'view' => $this->url->link('extension/payment/razorpay', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . $url, true), + 'singleEnable' => $this->url->link('extension/payment/razorpay/singleEnable', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . $url, true), + 'singleDisable' => $this->url->link('extension/payment/razorpay/singleDisable', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . $url, true) + ); + } + + + $data['user_token'] = $this->session->data['user_token']; + + if (isset($this->error['warning'])) { + $data['error_warning'] = $this->error['warning']; + } else { + $data['error_warning'] = ''; + } + + if (isset($this->session->data['success'])) { + $data['success'] = $this->session->data['success']; + + unset($this->session->data['success']); + } else { + $data['success'] = ''; + } + + if (isset($this->request->post['selected'])) { + $data['selected'] = (array)$this->request->post['selected']; + } else { + $data['selected'] = array(); + } + + $url = ''; + + if (isset($this->request->get['filter_plan_id'])) { + $url .= '&filter_plan_id=' . $this->request->get['filter_plan_id']; + } + + if (isset($this->request->get['filter_plan_name'])) { + $url .= '&filter_plan_name=' . urlencode(html_entity_decode($this->request->get['filter_plan_name'], ENT_QUOTES, 'UTF-8')); + } + + if (isset($this->request->get['filter_plan_status'])) { + $url .= '&filter_plan_status=' . $this->request->get['filter_plan_status']; + } + + if (isset($this->request->get['filter_total'])) { + $url .= '&filter_total=' . $this->request->get['filter_total']; + } + + if (isset($this->request->get['filter_date_created'])) { + $url .= '&filter_date_created=' . $this->request->get['filter_date_created']; + } + + if ($order == 'ASC') { + $url .= '&order=DESC'; + } else { + $url .= '&order=ASC'; + } + + if (isset($this->request->get['page'])) { + $url .= '&page=' . $this->request->get['page']; + } + $path='extension/payment/razorpay/plan_list'; + $data['sort_order'] = $this->url->link($path, 'user_token=' . $this->session->data['user_token'] . '&sort=p.plan_id' . $url, true); + $data['sort_customer'] = $this->url->link($path, 'user_token=' . $this->session->data['user_token'] . '&sort=plan_name' . $url, true); + $data['sort_status'] = $this->url->link($path, 'user_token=' . $this->session->data['user_token'] . '&sort=plan_status' . $url, true); + + $data['sort_date_added'] = $this->url->link($path, 'user_token=' . $this->session->data['user_token'] . '&sort=o.date_added' . $url, true); + + $url = ''; + + if (isset($this->request->get['filter_plan_id'])) { + $url .= '&filter_plan_id=' . $this->request->get['filter_plan_id']; + } + + if (isset($this->request->get['filter_plan_name'])) { + $url .= '&filter_plan_name=' . urlencode(html_entity_decode($this->request->get['filter_plan_name'], ENT_QUOTES, 'UTF-8')); + } + + if (isset($this->request->get['filter_plan_status'])) { + $url .= '&filter_plan_status=' . $this->request->get['filter_plan_status']; + } + + if (isset($this->request->get['filter_date_created'])) { + $url .= '&filter_date_created=' . $this->request->get['filter_date_created']; + } + + if (isset($this->request->get['sort'])) { + $url .= '&sort=' . $this->request->get['sort']; + } + + if (isset($this->request->get['order'])) { + $url .= '&order=' . $this->request->get['order']; + } + + $data['filter_plan_id'] = $filter_plan_id; + $data['filter_plan_name'] = $filter_plan_name; + $data['filter_plan_status'] = $filter_plan_status; + $data['filter_date_created'] = $filter_date_created; + $data['sort'] = $sort; + $data['order'] = $order; + + $data['add'] = $this->url->link('extension/payment/razorpay/add', 'user_token=' . $this->session->data['user_token'] . $url, true); + $data['status'] = $this->url->link('extension/payment/razorpay/statusPlan', 'user_token=' . $this->session->data['user_token'] . $url, true); + + $data['header'] = $this->load->controller('common/header'); + $data['column_left'] = $this->load->controller('common/column_left'); + $data['footer'] = $this->load->controller('common/footer'); + + $this->response->setOutput($this->load->view('extension/payment/razorpay_plan_list', $data)); + } + public function add() + { + $this->load->language('extension/payment/razorpay'); + + $this->document->setTitle($this->language->get('heading_title')); + + $this->load->model('extension/payment/razorpay'); + + if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) { + $planName=$this->request->post['plan_name']; + $planDesc=$this->request->post['plan_desc']; + $productId=$this->request->post['product_id']; + $planType=$this->request->post['plan_type']; + $frequency=$this->request->post['billing_frequency']; + $billCycle=$this->request->post['billing_cycle']; + $amount=$this->request->post['billing_amount']; + $trial=$this->request->post['plan_trial']; + $addons=$this->request->post['plan_addons']; + $status=$this->request->post['plan_status']; + // Create Plan API + try + { + $api = $this->getApiIntance(); + + $plan_data = array('period' => $planType, + 'interval' => $frequency, + 'item' => array('name' => $planName, 'description' => $planDesc, 'amount' => $amount * 100, 'currency' => 'INR'), + 'notes'=> array('trial'=> 'test','Addons'=> 'addons') + + ); + + $razorpay_plan = $api->plan->create($plan_data); + + $this->log->write("RZP PlanID (:" . $razorpay_plan['id'] . ") created"); + + } + catch(\Razorpay\Api\Errors\Error $e) + { + $this->log->write($e->getMessage()); + $this->session->data['error'] = $e->getMessage(); + echo "
Something went wrong. Unable to create Razorpay Plan Id.
"; + exit; + } + $this->model_extension_payment_razorpay->addPlan($this->request->post, $razorpay_plan['id']); + + + $this->session->data['success'] = $this->language->get('text_plan_success'); + + $url = ''; + + if (isset($this->request->get['sort'])) { + $url .= '&sort=' . $this->request->get['sort']; + } + + if (isset($this->request->get['order'])) { + $url .= '&order=' . $this->request->get['order']; + } + + if (isset($this->request->get['page'])) { + $url .= '&page=' . $this->request->get['page']; + } + + $this->response->redirect($this->url->link('extension/payment/razorpay/getPlan', 'user_token=' . $this->session->data['user_token'] . $url, true)); + } + + $this->getForm(); + } + + //for status change + public function statusPlan() + { + + $this->load->language('extension/payment/razorpay'); + + $this->document->setTitle($this->language->get('heading_title')); + + $this->load->model('extension/payment/razorpay'); + + if ((isset($this->request->post['selected'])) && ($this->request->post['status'])) { + $status = $this->request->post['status']; + if($status==1) { + foreach ($this->request->post['selected'] as $entity_id) { + $this->model_extension_payment_razorpay->enablePlan($entity_id); + + } + + $this->session->data['success'] = $this->language->get('text_enable_success'); + } else if($status==2) { + foreach ($this->request->post['selected'] as $entity_id) { + $this->model_extension_payment_razorpay->disablePlan($entity_id); + } + $this->session->data['success'] = $this->language->get('text_disable_success'); + } else { + $this->session->data['warning'] = $this->language->get('text_select_warning'); + } + $url = ''; + + if (isset($this->request->get['sort'])) { + $url .= '&sort=' . $this->request->get['sort']; + } + + if (isset($this->request->get['order'])) { + $url .= '&order=' . $this->request->get['order']; + } + + if (isset($this->request->get['page'])) { + $url .= '&page=' . $this->request->get['page']; + } + + $this->response->redirect($this->url->link('extension/payment/razorpay/getPlan', 'user_token=' . $this->session->data['user_token'] . $url, true)); + } + + $this->getPlan(); + + + } + protected function validateForm() + { + if (!$this->user->hasPermission('modify', 'extension/payment/razorpay')) { + $this->error['warning'] = $this->language->get('error_permission'); + } + + if ((utf8_strlen($this->request->post['plan_name']) < 1) || (utf8_strlen($this->request->post['plan_name']) > 64)) { + $this->error['plan_name'] = $this->language->get('error_plan_name'); + } + + if ((utf8_strlen($this->request->post['plan_desc']) < 1) || (utf8_strlen($this->request->post['plan_desc']) > 64)) { + $this->error['plan_desc'] = $this->language->get('error_plan_desc'); + } + if ((!isset($this->request->get['billing_frequency'])) && ($this->request->post['billing_frequency'] < 1)) { + $this->error['billing_frequency'] = $this->language->get('error_billing_frequency'); + } + if ((!isset($this->request->get['billing_cycle'])) && ($this->request->post['billing_cycle'] < 1)) { + $this->error['billing_cycle'] = $this->language->get('error_billing_cycle'); + } + if ((!isset($this->request->get['billing_amount'])) && ($this->request->post['billing_amount'] < 1)) { + $this->error['billing_amount'] = $this->language->get('error_billing_amount'); + } + + return !$this->error; + } + protected function getForm() + { + $data['text_form'] = !isset($this->request->get['entity_id']) ? $this->language->get('text_add') : $this->language->get('text_edit'); + + if (isset($this->request->get['entity_id'])) { + $data['entity_id'] = (int)$this->request->get['entity_id']; + } else { + $data['entity_id'] = 0; + } + + if (isset($this->error['warning'])) { + $data['error_warning'] = $this->error['warning']; + } else { + $data['error_warning'] = ''; + } + //fields + if (isset($this->error['plan_name'])) { + $data['error_plan_name'] = $this->error['plan_name']; + } else { + $data['error_plan_name'] = ''; + } + + if (isset($this->error['plan_desc'])) { + $data['error_plan_desc'] = $this->error['plan_desc']; + } else { + $data['error_plan_desc'] = ''; + } + + if (isset($this->error['product-name'])) { + $data['error_product_name'] = $this->error['product-name']; + } else { + $data['error_product_name'] = ''; + } + + if (isset($this->error['billing_frequency'])) { + $data['error_billing_frequency'] = $this->error['billing_frequency']; + } else { + $data['error_billing_frequency'] = ''; + } + + if (isset($this->error['billing_cycle'])) { + $data['error_billing_cycle'] = $this->error['billing_cycle']; + } else { + $data['error_billing_cycle'] = ''; + } + + if (isset($this->error['billing_amount'])) { + $data['error_billing_amount'] = $this->error['billing_amount']; + } else { + $data['error_billing_amount'] = ''; + } + + $url = ''; + + if (isset($this->request->get['sort'])) { + $url .= '&sort=' . $this->request->get['sort']; + } + + if (isset($this->request->get['order'])) { + $url .= '&order=' . $this->request->get['order']; + } + + if (isset($this->request->get['page'])) { + $url .= '&page=' . $this->request->get['page']; + } + + $data['breadcrumbs'] = array(); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_home'), + 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('heading_title'), + 'href' => $this->url->link('extension/payment/razorpay/getPlan', 'user_token=' . $this->session->data['user_token'] . $url, true) + ); + + if (!isset($this->request->get['entity_id'])) { + $data['action'] = $this->url->link('extension/payment/razorpay/add', 'user_token=' . $this->session->data['user_token'] . $url, true); + } else { + $data['action'] = $this->url->link('extension/payment/razorpay/edit', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $this->request->get['entity_id'] . $url, true); + } + + $data['cancel'] = $this->url->link('extension/payment/razorpay/getPlan', 'user_token=' . $this->session->data['user_token'] . $url, true); + + $data['user_token'] = $this->session->data['user_token']; + //fields + if (isset($this->request->post['code'])) { + $data['code'] = $this->request->post['code']; + } elseif (!empty($voucher_info)) { + $data['code'] = $voucher_info['code']; + } else { + $data['code'] = ''; + } + + if (isset($this->request->post['from_name'])) { + $data['from_name'] = $this->request->post['from_name']; + } elseif (!empty($voucher_info)) { + $data['from_name'] = $voucher_info['from_name']; + } else { + $data['from_name'] = ''; + } + + if (isset($this->request->post['from_email'])) { + $data['from_email'] = $this->request->post['from_email']; + } elseif (!empty($voucher_info)) { + $data['from_email'] = $voucher_info['from_email']; + } else { + $data['from_email'] = ''; + } + + if (isset($this->request->post['to_name'])) { + $data['to_name'] = $this->request->post['to_name']; + } elseif (!empty($voucher_info)) { + $data['to_name'] = $voucher_info['to_name']; + } else { + $data['to_name'] = ''; + } + + if (isset($this->request->post['to_email'])) { + $data['to_email'] = $this->request->post['to_email']; + } elseif (!empty($voucher_info)) { + $data['to_email'] = $voucher_info['to_email']; + } else { + $data['to_email'] = ''; + } + + $this->load->model('sale/voucher_theme'); + + $data['voucher_themes'] = $this->model_sale_voucher_theme->getVoucherThemes(); + + if (isset($this->request->post['voucher_theme_id'])) { + $data['voucher_theme_id'] = $this->request->post['voucher_theme_id']; + } elseif (!empty($voucher_info)) { + $data['voucher_theme_id'] = $voucher_info['voucher_theme_id']; + } else { + $data['voucher_theme_id'] = ''; + } + + if (isset($this->request->post['message'])) { + $data['message'] = $this->request->post['message']; + } elseif (!empty($voucher_info)) { + $data['message'] = $voucher_info['message']; + } else { + $data['message'] = ''; + } + + if (isset($this->request->post['amount'])) { + $data['amount'] = $this->request->post['amount']; + } elseif (!empty($voucher_info)) { + $data['amount'] = $voucher_info['amount']; + } else { + $data['amount'] = ''; + } + + if (isset($this->request->post['status'])) { + $data['status'] = $this->request->post['status']; + } elseif (!empty($voucher_info)) { + $data['status'] = $voucher_info['status']; + } else { + $data['status'] = true; + } + + $data['header'] = $this->load->controller('common/header'); + $data['column_left'] = $this->load->controller('common/column_left'); + $data['footer'] = $this->load->controller('common/footer'); + + $this->response->setOutput($this->load->view('extension/payment/razorpay_plan_form', $data)); + } + public function getSubscription() + { + $this->load->language('extension/payment/razorpay'); + $this->load->model('extension/payment/razorpay'); + if (isset($this->request->get['filter_subscription_id'])) { + $filter_subscription_id = $this->request->get['filter_subscription_id']; + } else { + $filter_subscription_id = ''; + } + + if (isset($this->request->get['filter_plan_name'])) { + $filter_plan_name = $this->request->get['filter_plan_name']; + } else { + $filter_plan_name = ''; + } + + if (isset($this->request->get['filter_subscription_status'])) { + $filter_subscription_status = $this->request->get['filter_subscription_status']; + } else { + $filter_subscription_status = ''; + } + + if (isset($this->request->get['filter_date_created'])) { + $filter_date_created = $this->request->get['filter_date_created']; + } else { + $filter_date_created = ''; + } + + if (isset($this->request->get['sort'])) { + $sort = $this->request->get['sort']; + } else { + $sort = 'p.entity_id'; + } + + if (isset($this->request->get['entity_id'])) { + $order = $this->request->get['entity_id']; + } else { + $order = 'DESC'; + } + + if (isset($this->request->get['page'])) { + $page = (int)$this->request->get['page']; + } else { + $page = 1; + } + + $url = ''; + + if (isset($this->request->get['filter_subscription_id'])) { + $url .= '&filter_subscription_id=' . $this->request->get['filter_subscription_id']; + } + + if (isset($this->request->get['filter_plan_name'])) { + $url .= '&filter_plan_name=' . urlencode(html_entity_decode($this->request->get['filter_plan_name'], ENT_QUOTES, 'UTF-8')); + } + + if (isset($this->request->get['filter_subscription_status'])) { + $url .= '&filter_subscription_status=' . $this->request->get['filter_subscription_status']; + } + + if (isset($this->request->get['filter_date_created'])) { + $url .= '&filter_date_created=' . $this->request->get['filter_date_created']; + } + + if (isset($this->request->get['sort'])) { + $url .= '&sort=' . $this->request->get['sort']; + } + + + if (isset($this->request->get['page'])) { + $url .= '&page=' . $this->request->get['page']; + } + + $data['breadcrumbs'] = array(); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_home'), + 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('subscription_title'), + 'href' => $this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true) + ); + + + + $data['subscriptions'] = array(); + + $filter_data = array( + 'filter_subscription_id' => $filter_subscription_id, + 'filter_plan_name' => $filter_plan_name, + 'filter_subscription_status' => $filter_subscription_status, + 'filter_date_created' => $filter_date_created, + 'sort' => $sort, + 'order' => $order, + 'start' => ($page - 1) * $this->config->get('config_limit_admin'), + 'limit' => $this->config->get('config_limit_admin') + ); + + $results = $this->model_extension_payment_razorpay->getSubscription($filter_data); + + foreach ($results as $result) { + $data['subscriptions'][] = array( + 'entity_id' => $result['entity_id'], + 'subscription_id' => $result['subscription_id'], + 'plan_id' =>$result['plan_id'], + 'customer_fname' => $result['firstname'], + 'customer_lname' => $result['lastname'], + 'product_name' => $result['name'], + 'status' => $result['status'], + 'cancel_by' => $result['updated_by'], + 'total_count' => $result['total_count'], + 'paid_count' => $result['paid_count'], + 'remaining_count' => $result['remaining_count'], + 'start_at' => $result['start_at'], + 'end_at' => $result['end_at'], + 'subscription_created_at' => $result['subscription_created_at'], + 'next_charge_at' => $result['next_charge_at'], + 'view' => $this->url->link('extension/payment/razorpay/subscriptionInfo', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . $url, true), + 'singleResume' => $this->url->link('extension/payment/razorpay/changeSingleStatus', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . '&status=1'. $url, true), + 'singlePause' => $this->url->link('extension/payment/razorpay/changeSingleStatus', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . '&status=2'. $url, true), + 'singleCancel' => $this->url->link('extension/payment/razorpay/changeSingleStatus', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . '&status=3'. $url, true) + ); + } + + + $data['user_token'] = $this->session->data['user_token']; + + if (isset($this->error['warning'])) { + $data['error_warning'] = $this->error['warning']; + } else { + $data['error_warning'] = ''; + } + + if (isset($this->session->data['success'])) { + $data['success'] = $this->session->data['success']; + + unset($this->session->data['success']); + } else { + $data['success'] = ''; + } + + if (isset($this->request->post['selected'])) { + $data['selected'] = (array)$this->request->post['selected']; + } else { + $data['selected'] = array(); + } + + $url = ''; + + if (isset($this->request->get['filter_subscription_status'])) { + $url .= '&filter_subscription_status=' . $this->request->get['filter_subscription_status']; + } + + if (isset($this->request->get['filter_subscription_id'])) { + $url .= '&filter_subscription_id=' . urlencode(html_entity_decode($this->request->get['filter_subscription_id'], ENT_QUOTES, 'UTF-8')); + } + + if (isset($this->request->get['filter_plan_name'])) { + $url .= '&filter_plan_name=' . $this->request->get['filter_plan_name']; + } + + // if (isset($this->request->get['filter_total'])) { + // $url .= '&filter_total=' . $this->request->get['filter_total']; + // } + + if (isset($this->request->get['filter_date_created'])) { + $url .= '&filter_date_created=' . $this->request->get['filter_date_created']; + } + + if ($order == 'ASC') { + $url .= '&order=DESC'; + } else { + $url .= '&order=ASC'; + } + + + $url = ''; + + if (isset($this->request->get['filter_subscription_id'])) { + $url .= '&filter_subscription_id=' . $this->request->get['filter_subscription_id']; + } + + if (isset($this->request->get['filter_plan_name'])) { + $url .= '&filter_plan_name=' . urlencode(html_entity_decode($this->request->get['filter_plan_name'], ENT_QUOTES, 'UTF-8')); + } + + if (isset($this->request->get['filter_plan_status'])) { + $url .= '&filter_plan_status=' . $this->request->get['filter_plan_status']; + } + + if (isset($this->request->get['filter_date_created'])) { + $url .= '&filter_date_created=' . $this->request->get['filter_date_created']; + } + + if (isset($this->request->get['sort'])) { + $url .= '&sort=' . $this->request->get['sort']; + } + + $data['filter_subscription_id'] = $filter_subscription_id; + $data['filter_plan_name'] = $filter_plan_name; + $data['filter_subscription_status'] = $filter_subscription_status; + $data['filter_date_created'] = $filter_date_created; + $data['sort'] = $sort; + $data['order'] = $order; + + $data['status'] = $this->url->link('extension/payment/razorpay/changeStatus', 'user_token=' . $this->session->data['user_token'] . $url, true); + + $data['header'] = $this->load->controller('common/header'); + $data['column_left'] = $this->load->controller('common/column_left'); + $data['footer'] = $this->load->controller('common/footer'); + + $this->response->setOutput($this->load->view('extension/payment/razorpay_subscription_list', $data)); + } + //for Subscription status change + public function changeStatus() + { + + $this->load->language('extension/payment/razorpay'); + + $this->document->setTitle($this->language->get('heading_title')); + + $this->load->model('extension/payment/razorpay'); + + // single status change + if (isset($this->request->get['status'])) { + $status = $this->request->get['status']; + } else { + $status = 0; + } + if ((isset($this->request->post['selected'])) && ($this->request->post['status'])) { + $status = $this->request->post['status']; + if($status==1) { + $this->resumeSubscription($this->request->post['selected']); + } else if($status==2) { + $this->pauseSubscription($this->request->post['selected']); + } + else if($status==3) { + $this->cancelSubscription($this->request->post['selected']); + } + else { + return; + } + + + } + + + + + } + public function changeSingleStatus() + { + $status = $this->request->get['status']; + $eid= str_split($this->request->get['entity_id']); + if($status==1) { + + + $this->resumeSubscription($eid); + $this->session->data['success'] = $this->language->get('text_resume_success'); + return $this->response->redirect($this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true)); + } + else if($status==2){ + $this->pauseSubscription($eid); + $this->session->data['success'] = $this->language->get('text_pause_success'); + return $this->response->redirect($this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true)); + }else if($status==3){ + $this->cancelSubscription($eid); + $this->session->data['success'] = $this->language->get('text_pause_success'); + return $this->response->redirect($this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true)); + } else { + return; + } + + + + + + } + public function resumeSubscription($entity_id) + { + + $this->load->language('extension/payment/razorpay'); + + $this->document->setTitle($this->language->get('heading_title')); + + $this->load->model('extension/payment/razorpay'); + try + { + foreach ($entity_id as $entityId) { + $subscriptionData = $this->model_extension_payment_razorpay->getSingleSubscription($entityId); + if($subscriptionData['status'] == "paused") { + $api = $this->getApiIntance(); + // $razopay_plan = $api->plan->create($plan_data); + $api->subscription->fetch($subscriptionData['subscription_id'])->resume(array('resume_at'=>'now')); + + + $this->model_extension_payment_razorpay->resumeSubscription($entityId, "admin"); + } + + } + $this->session->data['success'] = $this->language->get('text_resume_success'); + return $this->response->redirect($this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true)); + + } + catch(\Razorpay\Api\Errors\Error $e) + { + $this->log->write($e->getMessage()); + $this->session->data['error_warning'] = $e->getMessage(); + echo "
Unable to Resume Razorpay Subscription ".$subscriptionData['subscription_id']. ". ".$e->getMessage()."
"; + + return; + } + } + public function pauseSubscription($entity_id) + { + $this->load->language('extension/payment/razorpay'); + + $this->document->setTitle($this->language->get('heading_title')); + + $this->load->model('extension/payment/razorpay'); + try + { + foreach ($entity_id as $entityId) { + $subscriptionData = $this->model_extension_payment_razorpay->getSingleSubscription($entityId); + if($subscriptionData['status'] == "active") { + $api = $this->getApiIntance(); + // $razopay_plan = $api->plan->create($plan_data); + $api->subscription->fetch($subscriptionData['subscription_id'])->pause(["pause_at"=>"now"]); + + + $this->model_extension_payment_razorpay->pauseSubscription($entityId, "admin"); + } + + } + $this->session->data['success'] = $this->language->get('text_pause_success'); + return $this->response->redirect($this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true)); + + } + catch(\Razorpay\Api\Errors\Error $e) + { + $this->log->write($e->getMessage()); + $this->session->data['error_warning'] = $e->getMessage(); + echo "
Unable to Pause Razorpay Subscription ".$subscriptionData['subscription_id']. ". ".$e->getMessage()."
"; + + return; + } + } + public function cancelSubscription($entity_id) + { + $this->load->language('extension/payment/razorpay'); + + $this->document->setTitle($this->language->get('heading_title')); + + $this->load->model('extension/payment/razorpay'); + try + { + foreach ($entity_id as $entityId) { + $subscriptionData = $this->model_extension_payment_razorpay->getSingleSubscription($entityId); + if(($subscriptionData['status'] == "active") || ($subscriptionData['status'] == "paused")) { + $api = $this->getApiIntance(); + // $razopay_plan = $api->plan->create($plan_data); + $api->subscription->fetch($subscriptionData['subscription_id'])->cancel(["cancel_at_cycle_end" => 0]); + + + $this->model_extension_payment_razorpay->cancelSubscription($entityId, "admin"); + } + + } + $this->session->data['success'] = $this->language->get('text_cancel_success'); + return $this->response->redirect($this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true)); + + } + catch(\Razorpay\Api\Errors\Error $e) + { + $this->log->write($e->getMessage()); + $this->session->data['error_warning'] = $e->getMessage(); + echo "
Unable to Pause Razorpay Subscription ".$subscriptionData['subscription_id']. ". ".$e->getMessage()."
"; + + return; + } + } + + public function subscriptionInfo(){ + $this->load->language('extension/payment/razorpay'); + $this->load->model('extension/payment/razorpay'); + + + + if (isset($this->request->get['entity_id'])) { + $entity_id = $this->request->get['entity_id']; + } else { + $entity_id = 0; + } + + $order_info = $this->model_extension_payment_razorpay->getSubscription(array('entity_id'=>$entity_id)); + + if ($order_info) { + $url = ''; + + + if (isset($this->request->get['filter_entity_id'])) { + $url .= '&filter_entity_id=' . $this->request->get['filter_entity_id']; + } + $data['breadcrumbs'] = array(); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('text_home'), + 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) + ); + + $data['breadcrumbs'][] = array( + 'text' => $this->language->get('subscription_title'), + 'href' => $this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true) + ); + $data['header'] = $this->load->controller('common/header'); + $data['column_left'] = $this->load->controller('common/column_left'); + $data['footer'] = $this->load->controller('common/footer'); + + $this->response->setOutput($this->load->view('extension/payment/razorpay_subscription_info', $data)); + + } + else { + return new Action('error/not_found'); + } + } + + public function install() + { + $this->load->model('extension/payment/razorpay'); + + $this->model_extension_payment_razorpay->createTables(); + } + + public function uninstall() + { + $this->load->model('extension/payment/razorpay'); + + $this->model_extension_payment_razorpay->dropTables(); + } + + protected function getApiIntance() + { + return new Api($this->config->get('payment_razorpay_key_id'), $this->config->get('payment_razorpay_key_secret')); + } + +} diff --git a/upload/admin/language/.DS_Store b/upload/admin/language/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3e8b33d3705b59fd0e28c0044f594d2cdd5049ab GIT binary patch literal 6148 zcmeHK%}xR_5N`R=f-!P1(SwIxyg|YWiFz>EARfG#tkHuS*bM|W!CeB28%4~%h`y0$ zU&ooY5D0qkVvNir({DPRY13~vot81iYonIMSb;GnKoL_pXuc2}M_rPX@gQq6v3elvgPbi>$*+-Nkc zxq}<*UAR%#GxlW|_GY&0UHR>}QP@5WgUI!R_CO{3tu}<*Ui(2SjBDX2Xbsgojvf#q zCvuI#-gsQHs^#ONELlgDNl}iiO68y^4=dHlBqw(Et&{WS{o~X4dGhkA+2!yXD%mnP zg*Pzfw)x-;f?gPOz&p*DMiLSO!~ij{0t}d=Pi(BfUTKTO05R}02Jn24poq4?M58)7 zpuy`Sj%N^2z{a-(qBLk5Of

2-m5AI+dFz2G{A}mnP0Om}u1LjH{Jl9RF^PJ_05R~d7~q+@Q?J36Ol@7-9M)P1+5|OaK4? literal 0 HcmV?d00001 diff --git a/upload/admin/language/en-gb/.DS_Store b/upload/admin/language/en-gb/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..157e7451d226705211db2844c1ff49fee0beb555 GIT binary patch literal 6148 zcmeHK&1%~~5T3Q2X5|p-Lm@fzu$SI!uxdlwLqRynp|^ladPsvUAyW%nt+C{~t)rqB zY2T>lzD{O#*CxTqsStvhf!S|%esJwG&;kI7N?7x-xko5Yx+OK|Arxke z401?8Ll!T$vf1$z8K7_H!5F?nf$gpDm(SviBPaWm~QMUhj2Vz3KJK(vwH8{P!P5Uw`~uU6;Rp zTaE?(jz*q4T*DtU?pf})aGp(d_64Ks%5?=JGr$Zm13Soo+v?=O4z7)t#0)S4|HlCB z4+@nqa9CM1TL(6DeWZAUkOXadOAsoDfy2roMo@$;MYN^DJu!qWN567;fy2t8EeBy{ z#&O)t!o5(0nH~Mgq=N`7a?1=b19usy+ir`_|FehR|96YH#|$t7JH>!#oQ9_ZT#`Fm yw-!fdtwJ54l2Be{aZ`eZIf^ltj^blfBj{ITAO;RAi|9e&i-4hl8)o298Mpy)DpbD! literal 0 HcmV?d00001 diff --git a/upload/admin/language/en-gb/extension/.DS_Store b/upload/admin/language/en-gb/extension/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..350c2a76d4af19d22cdef5127a37ff3b8b59ed4d GIT binary patch literal 6148 zcmeHKPfG$p6n~>uqY-%s>d;{>-4xsmszb1t9l8Y@b*RW)lv=P|(KRVE_KVav>fG1q zy_r!m>(U`Y-h(&4H}B63^V?yf-I~QuDsiL;3a<2 z@74V71@%t+p`gBU>(rWDbX3j4$mrX2ms=D8MAgQgsWo*BonGYk7d z5qfs?E1eF)HOMV9zzj??kTu;Ro&QHazyGI;xW^1I19QcI$kn}i4VPrk)|ti8S*uVR rs3eq^8l04%p^swBrK5NQRSWtR8HldM)F66L_#&Wb;D#CaQwBZ&EHqQj literal 0 HcmV?d00001 diff --git a/upload/admin/language/en-gb/extension/payment/razorpay.php b/upload/admin/language/en-gb/extension/payment/razorpay.php new file mode 100755 index 0000000..1a77549 --- /dev/null +++ b/upload/admin/language/en-gb/extension/payment/razorpay.php @@ -0,0 +1,213 @@ +Razorpay'; +$_['text_authorize'] = 'Authorize Only'; +$_['text_capture'] = 'Authorize and Capture'; + +// Entry +$_['entry_key_id'] = 'Razorpay Key Id'; +$_['entry_key_secret'] = 'Razorpay Key Secret'; +$_['entry_order_status'] = 'Order Status'; +$_['entry_status'] = 'Status'; +$_['entry_sort_order'] = 'Sort Order'; +$_['entry_webhook_secret'] = 'Razorpay Webhook Secret'; +$_['entry_webhook_status'] = 'Webhook Status'; +$_['entry_webhook_url'] = 'Webhook URL:'; +$_['entry_payment_action'] = 'Payment Action'; +$_['entry_max_capture_delay'] = 'Max Delay in Payment Capture'; +$_['entry_max_capture_delay1'] = 'Max Delay in Payment Capture in minutes'; + +//tooltips +$_['help_key_id'] = 'The Api Key Id and Key Secret you will recieve from the API keys section of Razorpay Dashboard. Use test Key for testing purposes.'; +$_['help_order_status'] = 'The status of the order to be marked on completion of payment.'; +$_['help_webhook_url'] = 'Set Razorpay \'order.paid\' webhooks to call this URL with the below secret.'; +$_['help_max_delay'] = 'It will gets used by \'payment.authorized\' webhooks to capture the payment after this much time, in case of Authorize Only Pament Action.'; + +// Error +$_['error_permission'] = 'Warning: You do not have permission to modify payment Razorpay!'; +$_['error_key_id'] = 'Key Id Required!'; +$_['error_key_secret'] = 'Key Secret Required!'; +$_['error_webhook_secret'] = 'Webhook Secret Required!'; + +//Subscription + +// Heading +//$_['heading_title'] = 'Razorpay Subscription'; +$_['heading_title_transaction'] = 'View Transaction #%s'; + +// Plan Column +$_['column_plan_id'] = 'Plan ID'; +$_['column_plan_name'] = 'Plan Name'; +$_['column_plan_desc'] = 'Plan Description'; +$_['column_product_name'] = 'Product Name'; +$_['column_plan_type'] = 'Plan Type'; +$_['column_billing_frequence'] = 'Billing Frequency'; +$_['column_billing_cycle'] = 'Billing Cycle'; +$_['column_trial'] = 'Trial'; +$_['column_billing_amount'] = 'Billing Amount'; +$_['column_plan_addons'] = 'Addons'; +$_['column_status'] = 'Status'; +$_['column_created_at'] = 'Created At'; +$_['column_action'] = 'Action'; + +// Subscription Column +$_['column_subscription_id'] = 'Subscription ID'; +$_['column_customer'] = 'Customer'; +$_['column_subscription_status'] = 'Status'; +$_['column_total_count'] = 'Total Count'; +$_['column_paid_count'] = 'Paid Count'; +$_['column_remaining_count'] = 'Remaining Count'; +$_['column_subscription_created_at'] = 'Created At'; +$_['column_next_charge_at'] = 'Next Charge At'; +$_['column_start_at'] = 'Start At'; +$_['column_end_at'] = 'Ends At'; + +//Breadcrumbs +$_['text_extension'] = 'Extensions'; +$_['plan_title'] = 'Razorpay Plans'; +$_['subscription_title'] = 'Razorpay Subscriptions'; +$_['text_daily'] = 'Daily'; +$_['text_weekly'] = 'Weekly'; +$_['text_monthly'] = 'Monthly'; +$_['text_yearly'] = 'Yearly'; + +//text +$_['text_add'] = 'Add Plan'; +$_['text_enabled'] = 'Enable'; +$_['text_disabled'] = 'Disable'; +$_['text_success'] = 'Success: You have modified Plan!'; +$_['text_list'] = 'Plan List'; +$_['text_subscription_list'] = 'Subscription List'; +$_['text_add'] = 'Add Plan'; +$_['text_edit'] = 'Edit Plan'; +$_['text_plan_success'] = 'Plan add successfully'; +$_['text_enable_success'] = 'Plan enabled successfully'; +$_['text_disable_success'] = 'Plan disabled successfully'; +$_['text_select_warning'] = 'Select plan for enable and disable'; +$_['text_subscription'] = 'Subscription View'; +$_['text_resume_success'] = 'Subscription resume successfully'; +$_['text_pause_success'] = 'Subscription pause successfully'; +$_['text_cancel_success'] = 'Subscription cancelled successfully'; +$_['text_cancel_warning'] = 'Once cancelled, the subscription cannot be renewed or reactivated.'; +$_['text_select'] = ' --- Please Select --- '; +$_['text_active'] = 'Active'; +$_['text_cancelled'] = 'Cancel'; +$_['text_pause'] = 'Pause'; +$_['text_resume'] = 'Resume'; +$_['text_invoice'] = 'Invoice Details'; + + +//tooltip +$_['help_product_name'] = 'Autocomplete'; +$_['help_plan_type'] = 'Used together with interval to define how often the customer should be charged'; +$_['help_billing_frequency'] = 'Used together with plan type to define how often the customer should be charged. For daily plans, the minimum interval is 7.'; + +//entry - Filters +$_['entry_plan_id'] = 'Plan ID'; +$_['entry_plan_name'] = 'Plan Name'; +$_['entry_plan_desc'] = 'Plan Description'; +$_['entry_product_name'] = 'Product Name'; +$_['entry_plan_type'] = 'Plan Type'; +$_['entry_billing_frequency'] = 'Billing Frequency'; +$_['entry_billing_cycle'] = 'Billing Cycle'; +$_['entry_trial'] = 'Trial'; +$_['entry_billing_amount'] = 'Billing Amount'; +$_['entry_plan_addons'] = 'Addons'; +$_['entry_plan_status'] = 'Plan Status'; +$_['entry_subscription_id'] = 'Subscription ID'; +$_['entry_customer_name'] = 'Customer Name'; + + +// Button +$_['button_save'] = 'Save'; +$_['button_enable'] = 'Enable'; +$_['button_disable'] = 'Disable'; +$_['button_resume'] = 'Resume'; +$_['button_pause'] = 'Pause'; +$_['button_cancel'] = 'Cancel'; + + +// Error +$_['error_plan_name'] = 'Enter Plan Name!'; +$_['error_plan_desc'] = 'Enter Plan Description'; +$_['error_product_name'] = 'Please Select Product Name'; +$_['error_plan_type'] = 'Please Select Plan Type'; +$_['error_billing_frequency'] = 'Enter Billing Frequency and it should be an integer.'; +$_['error_billing_cycle'] = 'Enter Billing Cycle and it should be an integer.'; +$_['error_billing_amount'] = 'Enter Billing Amount'; +$_['entry_plan_status'] = 'Select Status'; +$_['error_permission'] = 'Warning: You do not have permission to modify Plan!'; +$_['error_plan_exists'] = 'Warning: Plan already exists!'; + +// Statuses +$_['razorpay_subscription_status_comment_authorized'] = 'The card transaction has been authorized but not yet captured.'; +$_['razorpay_subscription_status_comment_captured'] = 'The card transaction was authorized and subsequently captured (i.e., completed).'; +$_['razorpay_subscription_status_comment_voided'] = 'The card transaction was authorized and subsequently voided (i.e., canceled). '; +$_['razorpay_subscription_status_comment_failed'] = 'The card transaction failed.'; + +// Entry +$_['entry_plan_id'] = 'Plan ID'; +$_['entry_plan_name'] = 'Plan Name'; +$_['entry_plan_status'] = 'Status'; +$_['entry_date_created'] = 'Date Created'; + + +$_['entry_total'] = 'Total'; +$_['entry_geo_zone'] = 'Geo Zone'; +$_['entry_sort_order'] = 'Sort Order'; +$_['entry_merchant'] = 'Merchant ID'; +$_['entry_transaction_id'] = 'Transaction ID'; +$_['entry_order_id'] = 'Order ID'; +$_['entry_partner_solution_id'] = 'Partner Solution ID'; +$_['entry_type'] = 'Transaction Type'; +$_['entry_currency'] = 'Currency'; +$_['entry_amount'] = 'Amount'; +$_['entry_browser'] = 'Customer User Agent'; +$_['entry_ip'] = 'Customer IP'; + +$_['entry_billing_address_company'] = 'Billing Company'; +$_['entry_billing_address_street'] = 'Billing Street'; +$_['entry_billing_address_city'] = 'Billing City'; +$_['entry_billing_address_postcode'] = 'Billing ZIP'; +$_['entry_billing_address_province'] = 'Billing Province/State'; +$_['entry_billing_address_country'] = 'Billing Country'; +$_['entry_status_authorized'] = 'Authorized'; +$_['entry_status_captured'] = 'Captured'; +$_['entry_status_voided'] = 'Voided'; +$_['entry_status_failed'] = 'Failed'; +$_['entry_setup_confirmation'] = 'Setup confirmation:'; + +// Error +$_['error_permission'] = 'Warning: You do not have permission to modify payment Razorpay Subscription!'; +$_['error_permission_recurring'] = 'Warning: You do not have permission to modify recurring payments!'; +$_['error_transaction_missing'] = 'Transaction not found!'; +$_['error_no_ssl'] = 'Warning: SSL is not enabled on your admin panel. Please enable it to finish your configuration.'; +$_['error_user_rejected_connect_attempt'] = 'Connection attempt was canceled by the user.'; +$_['error_possible_xss'] = 'We detected a possible cross site attack and have terminated your connection attempt. Please verify your application ID and secret and try again using the buttons in the admin panel.'; +$_['error_invalid_email'] = 'The provided e-mail address is not valid!'; +$_['error_cron_acknowledge'] = 'Please confirm you have set up a CRON job.'; +$_['error_client_id'] = 'The app client ID is a required field'; +$_['error_client_secret'] = 'The app client secret is a required field'; +$_['error_sandbox_client_id'] = 'The sandbox client ID is a required field when sandbox mode is enabled'; +$_['error_sandbox_token'] = 'The sandbox token is a required field when sandbox mode is enabled'; +$_['error_no_location_selected'] = 'The location is a required field'; +$_['error_refresh_access_token'] = "An error occurred when trying to refresh the extension's connection to your Razorpay Subscription account. Please verify your application credentials and try again."; +$_['error_form'] = 'Please check the form for errors and try to save agian.'; +$_['error_token'] = 'An error was encountered while refreshing the token: %s'; +$_['error_no_refund'] = 'Refund failed.'; + +// Button +$_['button_void'] = 'Void'; +$_['button_refund'] = 'Refund'; +$_['button_capture'] = 'Capture'; +$_['button_connect'] = 'Connect'; +$_['button_reconnect'] = 'Reconnect'; +$_['button_refresh'] = 'Refresh token'; diff --git a/upload/admin/model/.DS_Store b/upload/admin/model/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b824173ce4f8d53218df0107745801a0835de6aa GIT binary patch literal 6148 zcmeHK%}(1u5S|Tzu7fIaKxz*??1fv9;syygAeoRJdP6d_2S8xsh!{EED0T>KNM)&q zK1F$%o_ppM`WT)42?8ZZa6t&oNVDJU?98tBv$g910M;BtEfJfehD*q?z4QLEUYN)bNB@SsB+l}B{f3q1%JU0v zIIr-^+scvOkwZTZ@hg|E^B_*!eVrUfZ45d5 z8mEyQHsv6VGChxP1~_-Pb6ou}8m+o(_05`CbvGL0ni#o_#>bjiZ>){S4u7}eZhb!K ze)~SU8vpohIA-`cYFV;4fon8oY&SV`{ZrZPO~PhJb!Dq%N#XlH56*x6`?LK}Wc0|$ zUgt3@U-8W>;pmLScG! zoL}g0V4gv0i2-8ZJ_B>6TUGb}r-$qR`$^Oz28e-I#Q-a}{8kgUWbf9g&8fRqpq`*A qQE`RA+Y~hPRgAIfDt?cu1^q%9h@Qp5AbL>fM?lj+4KeVn4EzUI?0Cii literal 0 HcmV?d00001 diff --git a/upload/admin/model/extension/.DS_Store b/upload/admin/model/extension/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e313f9987f03797eeaa6e2f9f35756f093134591 GIT binary patch literal 6148 zcmeHK%}OId5U!3{?L-!H5Zr@@zU(bR#t14RjM;eDn=s4nK}BbrU&sQKT3;EBN_^q7v-$O~ zb9y%XIr{a-@XPR1)G}vr4CiP(+G>34ct^66jzcCRI@6pI428aP-;H4O_M+~2RsR?NwVt^QUHw>urL7*yhE#?OG z(SeOF0T7Gm)`GUGB~*^E=vvGT;s^>esfZ?(*%E`9bo2`w=UU7Snsi{c_+WNrW-An? zSI7B<4hQBMq?Q;U1|BjnWx5r0|8M`h{(qQ6Jz{_ucvlRtV$*9ja7*@Xo!FeZYX#~d rsuC5K8@x+FLtn)htFGcts9Ml3l!544%nhOkg?db->query( + "CREATE TABLE IF NOT EXISTS `".DB_PREFIX."razorpay_plans` ( + `entity_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `plan_id` varchar(40) NOT NULL, + `opencart_product_id` int(11) NOT NULL, + `plan_name` varchar(255) NOT NULL, + `plan_desc` varchar(255) NOT NULL, + `plan_type` varchar(30) NOT NULL, + `plan_frequency` int(11) NOT NULL DEFAULT 1, + `plan_bill_cycle` varchar(255) NOT NULL, + `plan_trial` decimal(10,0) NOT NULL DEFAULT 0, + `plan_bill_amount` decimal(10,0) NOT NULL DEFAULT 0, + `plan_addons` decimal(10,0) NOT NULL DEFAULT 0, + `plan_status` int(11) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`entity_id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" + ); + + $this->db->query( + "CREATE TABLE IF NOT EXISTS `".DB_PREFIX."razorpay_subscriptions` ( + `entity_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, + `plan_entity_id` int(11) NOT NULL, + `subscription_id` varchar(30) NOT NULL, + `product_id` int(11) NOT NULL, + `razorpay_customer_id` varchar(30) NOT NULL, + `opencart_user_id` int(11) NOT NULL, + `status` varchar(30) NOT NULL, + `updated_by` varchar(30) NOT NULL, + `total_count` int(11) NOT NULL DEFAULT '0', + `paid_count` int(11) NOT NULL DEFAULT '0', + `remaining_count` int(11) NOT NULL DEFAULT '0', + `auth_attempts` int(11) NOT NULL DEFAULT '0', + `start_at` timestamp NULL, + `end_at` timestamp NULL, + `subscription_created_at` timestamp NULL, + `next_charge_at` timestamp NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`entity_id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" + ); + + } + public function dropTables() + { + $this->db->query("DROP TABLE IF EXISTS `".DB_PREFIX."razorpay_plans`"); + $this->db->query("DROP TABLE IF EXISTS `".DB_PREFIX."razorpay_subscriptions`"); + + } + + public function getPlans($data = array()) + { + $sql = "SELECT * FROM `" . DB_PREFIX . "razorpay_plans` p"; + $sql .=" LEFT JOIN " . DB_PREFIX . "product_description op ON (op.product_id = p.opencart_product_id)"; + $sql .= " WHERE entity_id > '0'"; + if (!empty($data['filter_plan_id'])) { + $sql .= " AND p.plan_id = '" . $data['filter_plan_id'] . "'"; + } + if (!empty($data['filter_plan_status'])) { + $sql .= " AND p.plan_status = '" . (int)$data['filter_plan_status'] . "'"; + } + if (!empty($data['filter_plan_name'])) { + $sql .= " AND p.plan_name LIKE '%" . $this->db->escape($data['filter_plan_name']) . "%'"; + } + + if (!empty($data['filter_date_created'])) { + $sql .= " AND DATE(p.created_at) = DATE('" . $this->db->escape($data['filter_date_created']) . "')"; + } + + $sort_data = array( + 'p.plan_id', + 'p.created_at', + 'p.plan_status' + ); + + if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { + $sql .= " ORDER BY " . $data['sort']; + } else { + $sql .= " ORDER BY p.entity_id"; + } + + if (isset($data['order']) && ($data['order'] == 'DESC')) { + $sql .= " DESC"; + } else { + $sql .= " ASC"; + } + + if (isset($data['start']) || isset($data['limit'])) { + if ($data['start'] < 0) { + $data['start'] = 0; + } + + if ($data['limit'] < 1) { + $data['limit'] = 20; + } + + $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; + } + + $query = $this->db->query($sql); + + return $query->rows; + } + + public function addPlan($data,$plan_id) + { + $this->db->query("INSERT INTO " . DB_PREFIX . "razorpay_plans SET plan_name = '" . $this->db->escape($data['plan_name']) . "', plan_desc = '" . $this->db->escape($data['plan_desc']) . "', plan_id = '" . $this->db->escape($plan_id) . "',opencart_product_id = '" . $this->db->escape($data['product_id']) . "', plan_type = '" . $this->db->escape($data['plan_type']) . "', plan_frequency = '" . $this->db->escape($data['billing_frequency']) . "', plan_bill_cycle = '" . (int)$data['billing_cycle'] . "', plan_trial = '" . $this->db->escape($data['plan_trial']) . "', plan_bill_amount = '" . $data['billing_amount'] . "',plan_addons = '" . $data['plan_addons'] . "',plan_status = '" . (int)$data['plan_status'] . "', created_at = NOW()"); + + return $this->db->getLastId(); + } + + + public function enablePlan($entity_id) + { + $this->db->query("UPDATE " . DB_PREFIX . "razorpay_plans SET plan_status = '" . 1 . "' WHERE entity_id = '" .$entity_id . "'"); + } + + public function disablePlan($entity_id) + { + $this->db->query("UPDATE " . DB_PREFIX . "razorpay_plans SET plan_status = '" . 0 . "' WHERE entity_id = '" .$entity_id . "'"); + } + + public function getSubscription($data = array()) + { + $sql = "SELECT s.*,p.plan_id,op.name,c.firstname,c.lastname FROM `" . DB_PREFIX . "razorpay_subscriptions` s"; + $sql .=" LEFT JOIN " . DB_PREFIX . "razorpay_plans p ON (p.entity_id = s.plan_entity_id)"; + $sql .=" LEFT JOIN " . DB_PREFIX . "product_description op ON (op.product_id = p.opencart_product_id)"; + $sql .=" LEFT JOIN " . DB_PREFIX . "customer c ON (s.opencart_user_id = c.customer_id )"; + + $sql .= " WHERE s.entity_id > '0'"; + + if (!empty($data['filter_subscription_id'])) { + $sql .= " AND s.subscription_id LIKE '%" . $this->db->escape($data['filter_subscription_id']) . "%'"; + } + if (!empty($data['filter_plan_name'])) { + $sql .= " AND p.plan_id LIKE '%" . $this->db->escape($data['filter_plan_name']) . "%'"; + } + if (!empty($data['filter_subscription_status'])) { + $sql .= " AND s.status LIKE '%" . $this->db->escape($data['filter_subscription_status']) . "%'"; + } + if (!empty($data['filter_date_created'])) { + $sql .= " AND DATE(s.created_at) = DATE('" . $this->db->escape($data['filter_date_created']) . "')"; + } + + $sort_data = array( + 's.subscription_id', + 's.created_at', + 's.status' + ); + + if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { + $sql .= " ORDER BY " . $data['sort']; + } else { + $sql .= " ORDER BY p.entity_id"; + } + + if (isset($data['order']) && ($data['order'] == 'DESC')) { + $sql .= " DESC"; + } else { + $sql .= " ASC"; + } + + // if (isset($data['start']) || isset($data['limit'])) { + // if ($data['start'] < 0) { + // $data['start'] = 0; + // } + + // if ($data['limit'] < 1) { + // $data['limit'] = 20; + // } + + // $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; + // } + + $query = $this->db->query($sql); + + return $query->rows; + } + public function resumeSubscription($entity_id,$updated_by) + { + $this->db->query("UPDATE " . DB_PREFIX . "razorpay_subscriptions SET status = 'active',updated_by = '".$updated_by. "' WHERE entity_id = '" .$entity_id . "'"); + } + public function pauseSubscription($entity_id) + { + $this->db->query("UPDATE " . DB_PREFIX . "razorpay_subscriptions SET status = 'paused',updated_by = '".$updated_by. "' WHERE entity_id = '" .$entity_id . "'"); + } + public function cancelSubscription($entity_id) + { + $this->db->query("UPDATE " . DB_PREFIX . "razorpay_subscriptions SET status = 'cancelled' ,updated_by = '".$updated_by. "' WHERE entity_id = '" .$entity_id . "'"); + } + public function getSingleSubscription($entity_id) + { + + return $this->db->query("SELECT * FROM `" . DB_PREFIX . "razorpay_subscriptions` WHERE entity_id='" . (int)$entity_id . "'")->row; + + } +} diff --git a/upload/admin/view/.DS_Store b/upload/admin/view/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a17d347a98d227c962001eb0a043f1e0f9873de5 GIT binary patch literal 6148 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 literal 0 HcmV?d00001 diff --git a/upload/admin/view/template/extension/.DS_Store b/upload/admin/view/template/extension/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..350c2a76d4af19d22cdef5127a37ff3b8b59ed4d GIT binary patch literal 6148 zcmeHKPfG$p6n~>uqY-%s>d;{>-4xsmszb1t9l8Y@b*RW)lv=P|(KRVE_KVav>fG1q zy_r!m>(U`Y-h(&4H}B63^V?yf-I~QuDsiL;3a<2 z@74V71@%t+p`gBU>(rWDbX3j4$mrX2ms=D8MAgQgsWo*BonGYk7d z5qfs?E1eF)HOMV9zzj??kTu;Ro&QHazyGI;xW^1I19QcI$kn}i4VPrk)|ti8S*uVR rs3eq^8l04%p^swBrK5NQRSWtR8HldM)F66L_#&Wb;D#CaQwBZ&EHqQj literal 0 HcmV?d00001 diff --git a/upload/admin/view/template/extension/payment/razorpay.twig b/upload/admin/view/template/extension/payment/razorpay.twig new file mode 100644 index 0000000..87a7988 --- /dev/null +++ b/upload/admin/view/template/extension/payment/razorpay.twig @@ -0,0 +1,139 @@ +{{ header }}{{ column_left }} +

+ +
+ {% if error_warning %} +
{{ error_warning }} + +
+ {% endif %} +
+
+

{{ text_edit }}

+
+
+
+
+ +
+ + {% if error_key_id %} +
{{ error_key_id }}
+ {% endif %} +
+
+
+ +
+ + {% if error_key_secret %} +
{{ error_key_secret }}
+ {% endif %} +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+
+
+ +
+ + {% if error_webhook_secret %} +
{{ error_webhook_secret }}
+ {% endif %} +
+
+
+
+
+
+
+{{ footer }} \ No newline at end of file diff --git a/upload/admin/view/template/extension/payment/razorpay_plan_form.twig b/upload/admin/view/template/extension/payment/razorpay_plan_form.twig new file mode 100644 index 0000000..b0946f4 --- /dev/null +++ b/upload/admin/view/template/extension/payment/razorpay_plan_form.twig @@ -0,0 +1,208 @@ +{{ header }}{{ column_left }} +
+ +
+
+
+

{{ text_form }}

+
+
+
+
+
+
+ +
+ + + {% if error_plan_name %} +
{{ error_plan_name }}
+ {% endif %} +
+
+
+ +
+ + {% if error_plan_desc %} +
{{ error_plan_desc }}
+ {% endif %} +
+
+
+
+ + +
+ + + {% if error_product_name %} +
{{ error_product_name }}
+ {% endif %} +
+
+
+
+ +
+ + + +
+
+
+ +
+ + {% if error_billing_frequency %} +
{{ error_billing_frequency }}
+ {% endif %} +
+
+ +
+ +
+ + {% if error_billing_cycle %} +
{{ error_billing_cycle }}
+ {% endif %} +
+
+
+ +
+ + {% if error_billing_amount %} +
{{ error_billing_amount }}
+ {% endif %} +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ + + {{ button_cancel }} +
+
+ + +
+
+
+
+
+ + +{{ footer }} diff --git a/upload/admin/view/template/extension/payment/razorpay_plan_list.twig b/upload/admin/view/template/extension/payment/razorpay_plan_list.twig new file mode 100644 index 0000000..5cbd405 --- /dev/null +++ b/upload/admin/view/template/extension/payment/razorpay_plan_list.twig @@ -0,0 +1,216 @@ +{{ header }}{{ column_left }} +
+ +
{% if error_warning %} +
{{ error_warning }} + +
+ {% endif %} + {% if success %} +
{{ success }} + +
+ {% endif %} +
+ +
+
+
+

{{ text_list }}

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + {% if plans %} + {% for plan in plans %} + + + + + + + + + + + + + + + + + + {% endfor %} + {% else %} + + + + {% endif %} + + + +
{% if sort == 'p.plan_id' %} {{ column_plan_id }} {% else %} {{ column_plan_id }} {% endif %}{% if sort == 'customer' %} {{ column_plan_name }} {% else %} {{ column_plan_name }} {% endif %}{% if sort == 'customer' %} {{ column_plan_desc }} {% else %} {{ column_plan_desc }} {% endif %}{% if sort == 'order_status' %} {{ column_product_name }} {% else %} {{ column_product_name }} {% endif %}{% if sort == 'o.total' %} {{ column_plan_type }} {% else %} {{ column_plan_type }} {% endif %}{% if sort == 'o.date_added' %} {{ column_billing_frequence }} {% else %} {{ column_billing_frequence }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_billing_cycle }} {% else %} {{ column_billing_cycle }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_trial }} {% else %} {{ column_trial }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_billing_amount }} {% else %} {{ column_billing_amount }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_plan_addons }} {% else %} {{ column_plan_addons }} {% endif %}{% if sort == 'p.plan_status' %} {{ column_status }} {% else %} {{ column_status }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_created_at }} {% else %} {{ column_created_at }} {% endif %}
{% if plan.plan_id in selected %} + + {% else %} + + {% endif %} + {{ plan.plan_id }}{{ plan.plan_name }}{{ plan.plan_desc }} {{ plan.name }}{{ plan.plan_type }}{{ plan.plan_frequency}}{{ plan.plan_bill_cycle}}{{ plan.plan_trial }}{{ plan.plan_bill_amount }}{{ plan.plan_addons }}{% if plan.plan_status =='1' %} {{text_enabled}} {% else %} {{text_disabled}} {% endif %} {{ plan.created_at }}
{{ text_no_results }}
+
+
+
+
{{ pagination }}
+
{{ results }}
+
+
+
+
+
+ + + + + + + + + + +
+{{ footer }} diff --git a/upload/admin/view/template/extension/payment/razorpay_subscription.twig b/upload/admin/view/template/extension/payment/razorpay_subscription.twig new file mode 100644 index 0000000..3b4102d --- /dev/null +++ b/upload/admin/view/template/extension/payment/razorpay_subscription.twig @@ -0,0 +1,50 @@ +{{ header }} +{{ column_left }} +
+ +
+ {% for alert in alerts %} +
 {{ alert.text }} + +
+ {% endfor %} + +
+
+

 {{ text_edit_heading }}

+
+
+
+ +
+ +
+ +
+
+ + +
+ +
+
+
+ +
+ +{{ footer }} diff --git a/upload/admin/view/template/extension/payment/razorpay_subscription_info.twig b/upload/admin/view/template/extension/payment/razorpay_subscription_info.twig new file mode 100644 index 0000000..782cf8b --- /dev/null +++ b/upload/admin/view/template/extension/payment/razorpay_subscription_info.twig @@ -0,0 +1,121 @@ +{{ header }}{{ column_left }} +
+ +
+ +
+
+

{{ text_subscription}}

+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {# + + + + + #} + + +
{{ column_customer }} : {{ sub.customer_fname }} {{ sub.customer_lname }}{{ column_product_name }} :{{ column_status }} : {{ column_start_at }} :
{{ column_subscription_id }} :{{ column_billing_amount }} :{{ column_total_count }} :{{ column_end_at }} :
{{ column_plan_id }} :{{ column_billing_frequence }} :{{ column_paid_count }} :{{ column_next_charge_at }} :
{{ column_plan_name }} :{{ column_billing_cycle }} :{{ column_remaining_count }} :{{ column_created_at }} :
{{ column_subscription_id }} :{{ column_subscription_id }} :{{ column_subscription_id }} :K{{ column_subscription_id }} :
+
+
+ +
+ + + + + + + + + + + + + {% for product in products %} + + + + + + + + {% endfor %} + {% for voucher in vouchers %} + + + + + + + + {% endfor %} + {% for total in totals %} + + + + + {% endfor %} + + +
{{ text_invoice }} : {{ column_model }}{{ column_quantity }}{{ column_price }}{{ column_total }}
{{ product.name }} {% for option in product.option %} +
+ {% if option.type != 'file' %} +   + - {{ option.name }}: {{ option.value }} {% else %} +   + - {{ option.name }}: {{ option.value }} {% endif %} + {% endfor %}
{{ product.model }}{{ product.quantity }}{{ product.price }}{{ product.total }}
{{ voucher.description }}1{{ voucher.amount }}{{ voucher.amount }}
{{ total.title }}{{ total.text }}
+
+
+ +
+ +
+{{ footer }} diff --git a/upload/admin/view/template/extension/payment/razorpay_subscription_list.twig b/upload/admin/view/template/extension/payment/razorpay_subscription_list.twig new file mode 100644 index 0000000..c577da7 --- /dev/null +++ b/upload/admin/view/template/extension/payment/razorpay_subscription_list.twig @@ -0,0 +1,239 @@ +{{ header }}{{ column_left }} +
+ +
{% if error_warning %} +
{{ error_warning }} + +
+ {% endif %} + {% if success %} +
{{ success }} + +
+ {% endif %} +
+ +
+
+
+

{{ text_subscription_list }}

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + {% if subscriptions %} + {% for sub in subscriptions %} + + + + + + + + + + + + + + + + + + + + {% endfor %} + {% else %} + + + + {% endif %} + + + + +
{% if sort == 'p.plan_id' %} {{ column_subscription_id }} {% else %} {{ column_subscription_id }} {% endif %}{% if sort == 'p.plan_id' %} {{ column_plan_id }} {% else %} {{ column_plan_id }} {% endif %}{% if sort == 'customer' %} {{ column_customer }} {% else %} {{ column_customer }} {% endif %}{% if sort == 'customer' %} {{ column_product_name }} {% else %} {{ column_product_name }} {% endif %}{% if sort == 'order_status' %} {{ column_subscription_status }} {% else %} {{ column_subscription_status }} {% endif %}{% if sort == 'o.total' %} {{ column_total_count }} {% else %} {{ column_total_count }} {% endif %}{% if sort == 'o.date_added' %} {{ column_paid_count }} {% else %} {{ column_paid_count }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_remaining_count }} {% else %} {{ column_remaining_count }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_next_charge_at }} {% else %} {{ column_next_charge_at }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_start_at }} {% else %} {{ column_start_at }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_end_at }} {% else %} {{ column_end_at }} {% endif %}{% if sort == 'p.plan_status' %} {{ column_subscription_created_at }} {% else %} {{ column_subscription_created_at }} {% endif %}{% if sort == 'o.date_modified' %} {{ column_action }} {% else %} {{ column_action }} {% endif %}
{% if sub.entity_id in selected %} + + {% else %} + + {% endif %} + {{ sub.subscription_id }}{{ sub.plan_id }}{{ sub.customer_fname }} {{ sub.customer_lname }} {{ sub.product_name }} {{ sub.status }}{{ sub.total_count }}{{ sub.paid_count}}{{ sub.remaining_count}}{{ sub.next_charge_at }}{{ sub.start_at }}{{ sub.end_at }}{{ sub.created_at }}
{{ text_no_results }}
+
+
+
+
{{ pagination }}
+
{{ results }}
+
+
+
+
+
+ + + + + + + + + + +
+{{ footer }} diff --git a/upload/catalog/controller/extension/payment/razorpay.php b/upload/catalog/controller/extension/payment/razorpay.php new file mode 100755 index 0000000..d443886 --- /dev/null +++ b/upload/catalog/controller/extension/payment/razorpay.php @@ -0,0 +1,353 @@ +language->get('button_confirm'); + + $this->load->model('checkout/order'); + + $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']); + + // Orders API with payment autocapture + try + { + $api = $this->getApiIntance(); + + $order_data = $this->get_order_creation_data($this->session->data['order_id']); + + if(empty($this->session->data["razorpay_order_id_" . $this->session->data['order_id']]) === true) + { + $razorpay_order = $api->order->create($order_data); + + $this->session->data["razorpay_order_id_" . $this->session->data['order_id']] = $razorpay_order['id']; + + $this->log->write("RZP orderID (:" . $razorpay_order['id'] . ") created for Opencart OrderID (:" . $this->session->data['order_id'] . ")"); + } + + } + catch(\Razorpay\Api\Errors\Error $e) + { + $this->log->write($e->getMessage()); + $this->session->data['error'] = $e->getMessage(); + echo "
Something went wrong. Unable to create Razorpay Order Id.
"; + exit; + } + + + $data['key_id'] = $this->config->get('payment_razorpay_key_id'); + $data['currency_code'] = $order_info['currency_code']; + $data['total'] = $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false) * 100; + $data['merchant_order_id'] = $this->session->data['order_id']; + $data['card_holder_name'] = $order_info['payment_firstname'].' '.$order_info['payment_lastname']; + $data['email'] = $order_info['email']; + $data['phone'] = $order_info['telephone']; + $data['name'] = $this->config->get('config_name'); + $data['lang'] = $this->session->data['language']; + $data['return_url'] = $this->url->link('extension/payment/razorpay/callback', '', 'true'); + $data['razorpay_order_id'] = $this->session->data["razorpay_order_id_" . $this->session->data['order_id']]; + $data['version'] = $this->version; + $data['oc_version'] = VERSION; + + //varify if 'hosted' checkout required and set related data + $this->getMerchantPreferences($data); + + $data['api_url'] = $api->getBaseUrl(); + $data['cancel_url'] = $this->url->link('checkout/checkout', '', 'true'); + + if (file_exists(DIR_TEMPLATE.$this->config->get('config_template').'/template/extension/payment/razorpay')) + { + return $this->load->view($this->config->get('config_template').'/template/extension/payment/razorpay', $data); + } + else + { + return $this->load->view('extension/payment/razorpay', $data); + } + } + + private function get_order_creation_data($order_id) + { + $order = $this->model_checkout_order->getOrder($this->session->data['order_id']); + + $data = [ + 'receipt' => $order_id, + 'amount' => $this->currency->format($order['total'], $order['currency_code'], $order['currency_value'], false) * 100, + 'currency' => $order['currency_code'], + 'payment_capture' => ($this->config->get('payment_razorpay_payment_action') === 'authorize') ? 0 : 1 + ]; + + return $data; + } + + + public function callback() + { + $this->load->model('checkout/order'); + + if (isset($this->request->request['razorpay_payment_id']) === true) + { + $razorpay_payment_id = $this->request->request['razorpay_payment_id']; + $merchant_order_id = $this->session->data['order_id']; + $razorpay_order_id = $this->session->data["razorpay_order_id_" . $this->session->data['order_id']]; + $razorpay_signature = $this->request->request['razorpay_signature']; + + $order_info = $this->model_checkout_order->getOrder($merchant_order_id); + $amount = $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false) * 100; + + //validate Rzp signature + $api = $this->getApiIntance(); + try + { + $attributes = array( + 'razorpay_order_id' => $razorpay_order_id, + 'razorpay_payment_id' => $razorpay_payment_id, + 'razorpay_signature' => $razorpay_signature + ); + + $api->utility->verifyPaymentSignature($attributes); + + $this->model_checkout_order->addOrderHistory($merchant_order_id, $this->config->get('payment_razorpay_order_status_id'), 'Payment Successful. Razorpay Payment Id:'.$razorpay_payment_id, true); + $this->response->redirect($this->url->link('checkout/success', '', true)); + } + catch(\Razorpay\Api\Errors\SignatureVerificationError $e) + { + $this->model_checkout_order->addOrderHistory($merchant_order_id, 10, $e->getMessage() .' Payment Failed! Check Razorpay dashboard for details of Payment Id:'.$razorpay_payment_id); + + $this->session->data['error'] = $e->getMessage() .' Payment Failed! Check Razorpay dashboard for details of Payment Id:'.$razorpay_payment_id; + $this->response->redirect($this->url->link('checkout/checkout', '', true)); + } + } + else + { + if (isset($_POST['error']) === true) + { + $error = $_POST['error']; + + $message = 'An error occured. Description : ' . $error['description'] . '. Code : ' . $error['code']; + + if (isset($error['field']) === true) + { + $message .= 'Field : ' . $error['field']; + } + } + else + { + $message = 'An error occured. Please contact administrator for assistance'; + } + $this->session->data['error'] = $message; + $this->response->redirect($this->url->link('checkout/checkout', '', true)); + } + } + + + public function webhook() + { + $post = file_get_contents('php://input'); + $data = json_decode($post, true); + + if (json_last_error() !== 0) + { + return; + } + $this->load->model('checkout/order'); + $enabled = $this->config->get('payment_razorpay_webhook_status'); + + if (($enabled === '1') and + (empty($data['event']) === false)) + { + + if (isset($_SERVER['HTTP_X_RAZORPAY_SIGNATURE']) === true) + { + try + { + $this->validateSignature($post , $_SERVER['HTTP_X_RAZORPAY_SIGNATURE']); + } + catch (\Razorpay\Api\Errors\SignatureVerificationError $e) + { + $this->log->write($e->getMessage()); + header('Status: 400 Signature Verification failed', true, 400); + exit; + } + + switch ($data['event']) + { + case self::PAYMENT_AUTHORIZED: + return $this->paymentAuthorized($data); + + case self::PAYMENT_FAILED: + return $this->paymentFailed($data); + + case self::ORDER_PAID: + return $this->orderPaid($data); + + default: + return; + } + } + } + } + + /** + * Handling order.paid event + * @param array $data Webook Data + */ + protected function orderPaid(array $data) + { + // reference_no (opencart_order_id) should be passed in payload + $merchant_order_id = $data['payload']['payment']['entity']['notes']['opencart_order_id']; + $razorpay_payment_id = $data['payload']['payment']['entity']['id']; + if(isset($merchant_order_id) === true) + { + $order_info = $this->model_checkout_order->getOrder($merchant_order_id); + + if($order_info['payment_code'] === 'razorpay' and + !$order_info['order_status_id']) + { + + $this->model_checkout_order->addOrderHistory($merchant_order_id, $this->config->get('payment_razorpay_order_status_id'), 'Payment Successful. Razorpay Payment Id:'.$razorpay_payment_id); + } + } + // Graceful exit since payment is now processed. + $this->response->addHeader('HTTP/1.1 200 OK'); + $this->response->addHeader('Content-Type: application/json'); + } + + /** + * Handling payment.failed event + * @param array $data Webook Data + */ + protected function paymentFailed(array $data) + { + exit; + } + + /** + * Handling payment.authorized event + * @param array $data Webook Data + */ + protected function paymentAuthorized(array $data) + { + //verify if we need to consume it as late authorized + $max_capture_delay = $this->config->get('payment_razorpay_max_capture_delay') * 60; + $payment_created_time = $data['payload']['payment']['entity']['created_at']; + + $api = $this->getApiIntance(); + + if((time() - $payment_created_time) < $max_capture_delay) + { + // reference_no (opencart_order_id) should be passed in payload + $merchant_order_id = $data['payload']['payment']['entity']['notes']['opencart_order_id']; + $razorpay_payment_id = $data['payload']['payment']['entity']['id']; + + //update the order + if(isset($merchant_order_id) === true) + { + $order_info = $this->model_checkout_order->getOrder($merchant_order_id); + + if($order_info['payment_code'] === 'razorpay' and + !$order_info['order_status_id']) + { + try + { + $capture_amount = $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false) * 100; + + //fetch the payment + $payment = $api->payment->fetch($razorpay_payment_id); + + //capture only if payment status is 'authorized' + if($payment->status === 'authorized') + { + $payment->capture(array('amount' => $capture_amount, + 'currency' => $order_info['currency_code'] + )); + } + + //update the order status in store + $this->model_checkout_order->addOrderHistory($merchant_order_id, $this->config->get('payment_razorpay_order_status_id'), 'Payment Successful. Razorpay Payment Id:'.$razorpay_payment_id); + } + catch(\Razorpay\Api\Errors\Error $e) + { + $this->log->write($e->getMessage()); + header('Status: 400 Payment Capture failed', true, 400); + exit; + } + + } + } + } + // Graceful exit since payment is now processed. + $this->response->addHeader('HTTP/1.1 200 OK'); + $this->response->addHeader('Content-Type: application/json'); + exit; + } + + + /** + * @param $payloadRawData + * @param $actualSignature + */ + public function validateSignature($payloadRawData, $actualSignature) + { + $api = $this->getApiIntance(); + + $webhookSecret = $this->config->get('payment_razorpay_webhook_secret'); + + if (empty($webhookSecret) === false) + { + $api->utility + ->verifyWebhookSignature($payloadRawData, $actualSignature, $webhookSecret); + } + + } + + public function getMerchantPreferences(array &$preferences) + { + $api = $this->getApiIntance(); + + try + { + $response = Requests::get($api->getBaseUrl() . 'preferences?key_id=' . $api->getKey()); + } + catch (Exception $e) + { + $this->log->write($e->getMessage()); + throw new Exception($e->getMessage(), $e->getHttpCode()); + } + + $preferences['is_hosted'] = false; + + if($response->status_code === 200) + { + + $jsonResponse = json_decode($response->body, true); + + $preferences['image'] = $jsonResponse['options']['image']; + if(empty($jsonResponse['options']['redirect']) === false) + { + $preferences['is_hosted'] = $jsonResponse['options']['redirect']; + } + } + + } + + protected function getApiIntance() + { + return new Api($this->config->get('payment_razorpay_key_id'), $this->config->get('payment_razorpay_key_secret')); + } + +} diff --git a/upload/catalog/language/en-gb/extension/payment/razorpay.php b/upload/catalog/language/en-gb/extension/payment/razorpay.php new file mode 100755 index 0000000..e99b67c --- /dev/null +++ b/upload/catalog/language/en-gb/extension/payment/razorpay.php @@ -0,0 +1,4 @@ + Razorpay'; + diff --git a/upload/catalog/model/extension/payment/razorpay.php b/upload/catalog/model/extension/payment/razorpay.php new file mode 100755 index 0000000..6f117b8 --- /dev/null +++ b/upload/catalog/model/extension/payment/razorpay.php @@ -0,0 +1,18 @@ +language->load('extension/payment/razorpay'); + + $method_data = array( + 'code' => 'razorpay', + 'title' => $this->language->get('text_title'), + 'terms' => '', + 'sort_order' => $this->config->get('payment_razorpay_sort_order'), + ); + + return $method_data; + } +} diff --git a/upload/catalog/view/theme/default/template/extension/payment/razorpay.twig b/upload/catalog/view/theme/default/template/extension/payment/razorpay.twig new file mode 100755 index 0000000..18c7719 --- /dev/null +++ b/upload/catalog/view/theme/default/template/extension/payment/razorpay.twig @@ -0,0 +1,92 @@ +{% if is_hosted %} + +
+ + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+ +{% else %} + + + +
+ + +
+
+
+ +
+
+ +{% endif %} diff --git a/upload/system/library/razorpay-sdk/README.md b/upload/system/library/razorpay-sdk/README.md new file mode 100755 index 0000000..f0f415a --- /dev/null +++ b/upload/system/library/razorpay-sdk/README.md @@ -0,0 +1,145 @@ +# razorpay-php + +[![Build Status](https://travis-ci.org/razorpay/razorpay-php.svg?branch=master)](https://travis-ci.org/razorpay/razorpay-php) [![Latest Stable Version](https://poser.pugx.org/razorpay/razorpay/v/stable.svg)](https://packagist.org/packages/razorpay/razorpay) [![License](https://poser.pugx.org/razorpay/razorpay/license.svg)](https://packagist.org/packages/razorpay/razorpay) + +Razorpay client PHP API. The Api follows the following practices: + +- Namespaced under `Razorpay\Api` +- Call `$api->class->function()` to access the API +- API throws exceptions instead of returning errors +- Options are passed as an array instead of multiple arguments wherever possible +- All requests and responses are communicated over JSON +- A minimum of PHP 5.3 is required + +# Installation + +- If your project uses composer, run the below command + +``` +composer require razorpay/razorpay:2.* +``` + +- If you are not using composer, download the latest release from [the releases section](https://github.com/razorpay/razorpay-php/releases). + **You should download the `razorpay-php.zip` file**. + After that, include `Razorpay.php` in your application and you can use the API as usual. + +# Usage + +```php +use Razorpay\Api\Api; + +$api = new Api($api_key, $api_secret); + +// Orders +$order = $api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR')); // Creates order +$order = $api->order->fetch($orderId); // Returns a particular order +$orders = $api->order->all($options); // Returns array of order objects +$payments = $api->order->fetch($orderId)->payments(); // Returns array of payment objects against an order + +// Payments +$payments = $api->payment->all($options); // Returns array of payment objects +$payment = $api->payment->fetch($id); // Returns a particular payment +$payment = $api->payment->fetch($id)->capture(array('amount'=>$amount)); // Captures a payment + +// To get the payment details +echo $payment->amount; +echo $payment->currency; +// And so on for other attributes + +// Refunds +$refund = $api->refund->create(array('payment_id' => $id)); // Creates refund for a payment +$refund = $api->refund->create(array('payment_id' => $id, 'amount'=>$refundAmount)); // Creates partial refund for a payment +$refund = $api->refund->fetch($refundId); // Returns a particular refund + +// Cards +$card = $api->card->fetch($cardId); // Returns a particular card + +// Customers +$customer = $api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com')); // Creates customer +$customer = $api->customer->fetch($customerId); // Returns a particular customer +$customer = $api->customer->edit(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com')); // Edits customer + +// Tokens +$token = $api->customer->token()->fetch($tokenId); // Returns a particular token +$tokens = $api->customer->token()->all($options); // Returns array of token objects +$api->customer->token()->delete($tokenId); // Deletes a token + + +// Transfers +$transfer = $api->payment->fetch($paymentId)->transfer(array('transfers' => [ ['account' => $accountId, 'amount' => 100, 'currency' => 'INR']])); // Create transfer +$transfers = $api->transfer->all(); // Fetch all transfers +$transfers = $api->payment->fetch($paymentId)->transfers(); // Fetch all transfers created on a payment +$transfer = $api->transfer->fetch($transferId)->edit($options); // Edit a transfer +$reversal = $api->transfer->fetch($transferId)->reverse(); // Reverse a transfer + +// Payment Links +$links = $api->invoice->all(); +$link = $api->invoice->fetch('inv_00000000000001'); +$link = $api->invoice->create(arary('type' => 'link', 'amount' => 500, 'description' => 'For XYZ purpose', 'customer' => array('email' => 'test@test.test'))); +$link->cancel(); +$link->notifyBy('sms'); + +// Invoices +$invoices = $api->invoice->all(); +$invoice = $api->invoice->fetch('inv_00000000000001'); +$invoice = $api->invoice->create($params); // Ref: razorpay.com/docs/invoices for request params example +$invoice = $invoice->edit($params); +$invoice->issue(); +$invoice->notifyBy('email'); +$invoice->cancel(); +$invoice->delete(); + +// Virtual Accounts +$virtualAccount = $api->virtualAccount->create(array('receiver_types' => array('bank_account'), 'description' => 'First Virtual Account', 'notes' => array('receiver_key' => 'receiver_value'))); +$virtualAccounts = $api->virtualAccount->all(); +$virtualAccount = $api->virtualAccount->fetch('va_4xbQrmEoA5WJ0G'); +$virtualAccount = $virtualAccount->close(); +$payments = $virtualAccount->payments(); +$bankTransfer = $api->payment->fetch('pay_8JpVEWsoNPKdQh')->bankTransfer(); + +// Bharat QR +$bharatQR = $api->virtualAccount->create(array('receivers' => array('types' => array('qr_code')), 'description' => 'First QR code', 'amount_expected' => 100, 'notes' => array('receiver_key' => 'receiver_value'))); // Create Static QR +$bharatQR = $api->virtualAccount->create(array('receivers' => array('types' => array('qr_code')), 'description' => 'First QR code', 'notes' => array('receiver_key' => 'receiver_value'))); // Create Dynamic QR + +// Subscriptions +$plan = $api->plan->create(array('period' => 'weekly', 'interval' => 1, 'item' => array('name' => 'Test Weekly 1 plan', 'description' => 'Description for the weekly 1 plan', 'amount' => 600, 'currency' => 'INR'))); +$plan = $api->plan->fetch('plan_7wAosPWtrkhqZw'); +$plans = $api->plan->all(); +$subscription = $api->subscription->create(array('plan_id' => 'plan_7wAosPWtrkhqZw', 'customer_notify' => 1, 'total_count' => 6, 'start_at' => 1495995837, 'addons' => array(array('item' => array('name' => 'Delivery charges', 'amount' => 30000, 'currency' => 'INR'))))); +$subscription = $api->subscription->fetch('sub_82uBGfpFK47AlA'); +$subscriptions = $api->subscription->all(); +$subscription = $api->subscription->fetch('sub_82uBGfpFK47AlA')->cancel($options); //$options = ['cancel_at_cycle_end' => 1]; +$addon = $api->subscription->fetch('sub_82uBGfpFK47AlA')->createAddon(array('item' => array('name' => 'Extra Chair', 'amount' => 30000, 'currency' => 'INR'), 'quantity' => 2)); +$addon = $api->addon->fetch('ao_8nDvQYYGQI5o4H'); +$addon = $api->addon->fetch('ao_8nDvQYYGQI5o4H')->delete(); + +// Settlements +$settlement = $api->settlement->fetch('setl_7IZKKI4Pnt2kEe'); +$settlements = $api->settlement->all(); +$reports = $api->settlement->reports(array('year' => 2018, 'month' => 2)); +``` + +For further help, see our documentation on . + +[composer-install]: https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx + +## Developing + +See the [doc.md](doc.md) file for getting started with development. + +## License + +The Razorpay PHP SDK is released under the MIT License. See [LICENSE](LICENSE) file for more details. + +## Release + +Steps to follow for a release: + +0. Merge the branch with the new code to master. +1. Bump the Version in `src/Api.php`. +1. Rename Unreleased to the new tag in `CHANGELOG.md` +1. Add a new empty "Unreleased" section at the top of `CHANGELOG.md` +1. Fix links at bottom in `CHANGELOG.md` +1. Commit +1. Tag the release and push to GitHub +1. A release should automatically be created once the travis build passes. Edit the release to add some description. diff --git a/upload/system/library/razorpay-sdk/Razorpay.php b/upload/system/library/razorpay-sdk/Razorpay.php new file mode 100755 index 0000000..8347083 --- /dev/null +++ b/upload/system/library/razorpay-sdk/Razorpay.php @@ -0,0 +1,55 @@ + /dev/null + +script: + - phpunit --coverage-clover clover.xml + +after_script: + - utils/proxy/stop.sh + - cd .. + - phpenv local 5.5 + - PATH=$PATH vendor/bin/stop.sh + - test $TEST_COVERAGE && bash <(curl -s https://codecov.io/bash) + - phpenv local --unset diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/CHANGELOG.md b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/CHANGELOG.md new file mode 100755 index 0000000..1d62a4c --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/CHANGELOG.md @@ -0,0 +1,315 @@ +Changelog +========= + +1.7.0 +----- + +- Add support for HHVM and PHP 7 + + Requests is now tested against both HHVM and PHP 7, and they are supported as + first-party platforms. + + (props @rmccue, [#106][gh-106], [#176][gh-176]) + +- Transfer & connect timeouts, in seconds & milliseconds + + cURL is unable to handle timeouts under a second in DNS lookups, so we round + those up to ensure 1-999ms isn't counted as an instant failure. + + (props @ozh, @rmccue, [#97][gh-97], [#216][gh-216]) + +- Rework cookie handling to be more thorough. + + Cookies are now restricted to the same-origin by default, expiration is checked. + + (props @catharsisjelly, @rmccue, [#120][gh-120], [#124][gh-124], [#130][gh-130], [#132][gh-132], [#156][gh-156]) + +- Improve testing + + Tests are now run locally to speed them up, as well as further general + improvements to the quality of the testing suite. There are now also + comprehensive proxy tests to ensure coverage there. + + (props @rmccue, [#75][gh-75], [#107][gh-107], [#170][gh-170], [#177][gh-177], [#181][gh-181], [#183][gh-183], [#185][gh-185], [#196][gh-196], [#202][gh-202], [#203][gh-203]) + +- Support custom HTTP methods + + Previously, custom HTTP methods were only supported on sockets; they are now + supported across all transports. + + (props @ocean90, [#227][gh-227]) + +- Add byte limit option + + (props @rmccue, [#172][gh-172]) + +- Support a Requests_Proxy_HTTP() instance for the proxy setting. + + (props @ocean90, [#223][gh-223]) + +- Add progress hook + + (props @rmccue, [#180][gh-180]) + +- Add a before_redirect hook to alter redirects + + (props @rmccue, [#205][gh-205]) + +- Pass cURL info to after_request + + (props @rmccue, [#206][gh-206]) + +- Remove explicit autoload in Composer installation instructions + + (props @SlikNL, [#86][gh-86]) + +- Restrict CURLOPT_PROTOCOLS on `defined()` instead of `version_compare()` + + (props @ozh, [#92][gh-92]) + +- Fix doc - typo in "Authentication" + + (props @remik, [#99][gh-99]) + +- Contextually check for a valid transport + + (props @ozh, [#101][gh-101]) + +- Follow relative redirects correctly + + (props @ozh, [#103][gh-103]) + +- Use cURL's version_number + + (props @mishan, [#104][gh-104]) + +- Removed duplicated option docs + + (props @staabm, [#112][gh-112]) + +- code styling fixed + + (props @imsaintx, [#113][gh-113]) + +- Fix IRI "normalization" + + (props @ozh, [#128][gh-128]) + +- Mention two PHP extension dependencies in the README. + + (props @orlitzky, [#136][gh-136]) + +- Ignore coverage report files + + (props @ozh, [#148][gh-148]) + +- drop obsolete "return" after throw + + (props @staabm, [#150][gh-150]) + +- Updated exception message to specify both http + https + + (props @beutnagel, [#162][gh-162]) + +- Sets `stream_headers` method to public to allow calling it from other +places. + + (props @adri, [#158][gh-158]) + +- Remove duplicated stream_get_meta_data call + + (props @rmccue, [#179][gh-179]) + +- Transmits $errno from stream_socket_client in exception + + (props @laurentmartelli, [#174][gh-174]) + +- Correct methods to use snake_case + + (props @rmccue, [#184][gh-184]) + +- Improve code quality + + (props @rmccue, [#186][gh-186]) + +- Update Build Status image + + (props @rmccue, [#187][gh-187]) + +- Fix/Rationalize transports (v2) + + (props @rmccue, [#188][gh-188]) + +- Surface cURL errors + + (props @ifwe, [#194][gh-194]) + +- Fix for memleak and curl_close() never being called + + (props @kwuerl, [#200][gh-200]) + +- addex how to install with composer + + (props @royopa, [#164][gh-164]) + +- Uppercase the method to ensure compatibility + + (props @rmccue, [#207][gh-207]) + +- Store default certificate path + + (props @rmccue, [#210][gh-210]) + +- Force closing keep-alive connections on old cURL + + (props @rmccue, [#211][gh-211]) + +- Docs: Updated HTTP links with HTTPS links where applicable + + (props @ntwb, [#215][gh-215]) + +- Remove the executable bit + + (props @ocean90, [#224][gh-224]) + +- Change more links to HTTPS + + (props @rmccue, [#217][gh-217]) + +- Bail from cURL when either `curl_init()` OR `curl_exec()` are unavailable + + (props @dd32, [#230][gh-230]) + +- Disable OpenSSL's internal peer_name checking when `verifyname` is disabled. + + (props @dd32, [#239][gh-239]) + +- Only include the port number in the `Host` header when it differs from +default + + (props @dd32, [#238][gh-238]) + +- Respect port if specified for HTTPS connections + + (props @dd32, [#237][gh-237]) + +- Allow paths starting with a double-slash + + (props @rmccue, [#240][gh-240]) + +- Fixes bug in rfc2616 #3.6.1 implementation. + + (props @stephenharris, [#236][gh-236], [#3][gh-3]) + +- CURLOPT_HTTPHEADER在php7接受空数组导致php-fpm奔溃 + + (props @qibinghua, [#219][gh-219]) + +[gh-3]: https://github.com/rmccue/Requests/issues/3 +[gh-75]: https://github.com/rmccue/Requests/issues/75 +[gh-86]: https://github.com/rmccue/Requests/issues/86 +[gh-92]: https://github.com/rmccue/Requests/issues/92 +[gh-97]: https://github.com/rmccue/Requests/issues/97 +[gh-99]: https://github.com/rmccue/Requests/issues/99 +[gh-101]: https://github.com/rmccue/Requests/issues/101 +[gh-103]: https://github.com/rmccue/Requests/issues/103 +[gh-104]: https://github.com/rmccue/Requests/issues/104 +[gh-106]: https://github.com/rmccue/Requests/issues/106 +[gh-107]: https://github.com/rmccue/Requests/issues/107 +[gh-112]: https://github.com/rmccue/Requests/issues/112 +[gh-113]: https://github.com/rmccue/Requests/issues/113 +[gh-120]: https://github.com/rmccue/Requests/issues/120 +[gh-124]: https://github.com/rmccue/Requests/issues/124 +[gh-128]: https://github.com/rmccue/Requests/issues/128 +[gh-130]: https://github.com/rmccue/Requests/issues/130 +[gh-132]: https://github.com/rmccue/Requests/issues/132 +[gh-136]: https://github.com/rmccue/Requests/issues/136 +[gh-148]: https://github.com/rmccue/Requests/issues/148 +[gh-150]: https://github.com/rmccue/Requests/issues/150 +[gh-156]: https://github.com/rmccue/Requests/issues/156 +[gh-158]: https://github.com/rmccue/Requests/issues/158 +[gh-162]: https://github.com/rmccue/Requests/issues/162 +[gh-164]: https://github.com/rmccue/Requests/issues/164 +[gh-170]: https://github.com/rmccue/Requests/issues/170 +[gh-172]: https://github.com/rmccue/Requests/issues/172 +[gh-174]: https://github.com/rmccue/Requests/issues/174 +[gh-176]: https://github.com/rmccue/Requests/issues/176 +[gh-177]: https://github.com/rmccue/Requests/issues/177 +[gh-179]: https://github.com/rmccue/Requests/issues/179 +[gh-180]: https://github.com/rmccue/Requests/issues/180 +[gh-181]: https://github.com/rmccue/Requests/issues/181 +[gh-183]: https://github.com/rmccue/Requests/issues/183 +[gh-184]: https://github.com/rmccue/Requests/issues/184 +[gh-185]: https://github.com/rmccue/Requests/issues/185 +[gh-186]: https://github.com/rmccue/Requests/issues/186 +[gh-187]: https://github.com/rmccue/Requests/issues/187 +[gh-188]: https://github.com/rmccue/Requests/issues/188 +[gh-194]: https://github.com/rmccue/Requests/issues/194 +[gh-196]: https://github.com/rmccue/Requests/issues/196 +[gh-200]: https://github.com/rmccue/Requests/issues/200 +[gh-202]: https://github.com/rmccue/Requests/issues/202 +[gh-203]: https://github.com/rmccue/Requests/issues/203 +[gh-205]: https://github.com/rmccue/Requests/issues/205 +[gh-206]: https://github.com/rmccue/Requests/issues/206 +[gh-207]: https://github.com/rmccue/Requests/issues/207 +[gh-210]: https://github.com/rmccue/Requests/issues/210 +[gh-211]: https://github.com/rmccue/Requests/issues/211 +[gh-215]: https://github.com/rmccue/Requests/issues/215 +[gh-216]: https://github.com/rmccue/Requests/issues/216 +[gh-217]: https://github.com/rmccue/Requests/issues/217 +[gh-219]: https://github.com/rmccue/Requests/issues/219 +[gh-223]: https://github.com/rmccue/Requests/issues/223 +[gh-224]: https://github.com/rmccue/Requests/issues/224 +[gh-227]: https://github.com/rmccue/Requests/issues/227 +[gh-230]: https://github.com/rmccue/Requests/issues/230 +[gh-236]: https://github.com/rmccue/Requests/issues/236 +[gh-237]: https://github.com/rmccue/Requests/issues/237 +[gh-238]: https://github.com/rmccue/Requests/issues/238 +[gh-239]: https://github.com/rmccue/Requests/issues/239 +[gh-240]: https://github.com/rmccue/Requests/issues/240 + +1.6.0 +----- +- [Add multiple request support][#23] - Send multiple HTTP requests with both + fsockopen and cURL, transparently falling back to synchronous when + not supported. + +- [Add proxy support][#70] - HTTP proxies are now natively supported via a + [high-level API][docs/proxy]. Major props to Ozh for his fantastic work + on this. + +- [Verify host name for SSL requests][#63] - Requests is now the first and only + standalone HTTP library to fully verify SSL hostnames even with socket + connections. Thanks to Michael Adams, Dion Hulse, Jon Cave, and Pádraic Brady + for reviewing the crucial code behind this. + +- [Add cookie support][#64] - Adds built-in support for cookies (built entirely + as a high-level API) + +- [Add sessions][#62] - To compliment cookies, [sessions][docs/usage-advanced] + can be created with a base URL and default options, plus a shared cookie jar. + +- Add [PUT][#1], [DELETE][#3], and [PATCH][#2] request support + +- [Add Composer support][#6] - You can now install Requests via the + `rmccue/requests` package on Composer + +[docs/proxy]: http://requests.ryanmccue.info/docs/proxy.html +[docs/usage-advanced]: http://requests.ryanmccue.info/docs/usage-advanced.html + +[#1]: https://github.com/rmccue/Requests/issues/1 +[#2]: https://github.com/rmccue/Requests/issues/2 +[#3]: https://github.com/rmccue/Requests/issues/3 +[#6]: https://github.com/rmccue/Requests/issues/6 +[#9]: https://github.com/rmccue/Requests/issues/9 +[#23]: https://github.com/rmccue/Requests/issues/23 +[#62]: https://github.com/rmccue/Requests/issues/62 +[#63]: https://github.com/rmccue/Requests/issues/63 +[#64]: https://github.com/rmccue/Requests/issues/64 +[#70]: https://github.com/rmccue/Requests/issues/70 + +[View all changes][https://github.com/rmccue/Requests/compare/v1.5.0...v1.6.0] + +1.5.0 +----- +Initial release! \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/LICENSE b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/LICENSE new file mode 100755 index 0000000..d61ae7b --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/LICENSE @@ -0,0 +1,49 @@ +Requests +======== + +Copyright (c) 2010-2012 Ryan McCue and contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +ComplexPie IRI Parser +===================== + +Copyright (c) 2007-2010, Geoffrey Sneddon and Steve Minutillo. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of the SimplePie Team nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/README.md b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/README.md new file mode 100755 index 0000000..8e99a20 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/README.md @@ -0,0 +1,152 @@ +Requests for PHP +================ + +[![Build Status](https://travis-ci.org/rmccue/Requests.svg?branch=master)](https://travis-ci.org/rmccue/Requests) +[![codecov.io](http://codecov.io/github/rmccue/Requests/coverage.svg?branch=master)](http://codecov.io/github/rmccue/Requests?branch=master) + +Requests is a HTTP library written in PHP, for human beings. It is roughly +based on the API from the excellent [Requests Python +library](http://python-requests.org/). Requests is [ISC +Licensed](https://github.com/rmccue/Requests/blob/master/LICENSE) (similar to +the new BSD license) and has no dependencies, except for PHP 5.2+. + +Despite PHP's use as a language for the web, its tools for sending HTTP requests +are severely lacking. cURL has an +[interesting API](http://php.net/manual/en/function.curl-setopt.php), to say the +least, and you can't always rely on it being available. Sockets provide only low +level access, and require you to build most of the HTTP response parsing +yourself. + +We all have better things to do. That's why Requests was born. + +```php +$headers = array('Accept' => 'application/json'); +$options = array('auth' => array('user', 'pass')); +$request = Requests::get('https://api.github.com/gists', $headers, $options); + +var_dump($request->status_code); +// int(200) + +var_dump($request->headers['content-type']); +// string(31) "application/json; charset=utf-8" + +var_dump($request->body); +// string(26891) "[...]" +``` + +Requests allows you to send **HEAD**, **GET**, **POST**, **PUT**, **DELETE**, +and **PATCH** HTTP requests. You can add headers, form data, multipart files, +and parameters with simple arrays, and access the response data in the same way. +Requests uses cURL and fsockopen, depending on what your system has available, +but abstracts all the nasty stuff out of your way, providing a consistent API. + + +Features +-------- + +- International Domains and URLs +- Browser-style SSL Verification +- Basic/Digest Authentication +- Automatic Decompression +- Connection Timeouts + + +Installation +------------ + +### Install with Composer +If you're using [Composer](https://github.com/composer/composer) to manage +dependencies, you can add Requests with it. + +```sh +composer require rmccue/requests +``` + +or + + { + "require": { + "rmccue/requests": ">=1.0" + } + } + +### Install source from GitHub +To install the source code: + + $ git clone git://github.com/rmccue/Requests.git + +And include it in your scripts: + + require_once '/path/to/Requests/library/Requests.php'; + +You'll probably also want to register an autoloader: + + Requests::register_autoloader(); + + +### Install source from zip/tarball +Alternatively, you can fetch a [tarball][] or [zipball][]: + + $ curl -L https://github.com/rmccue/Requests/tarball/master | tar xzv + (or) + $ wget https://github.com/rmccue/Requests/tarball/master -O - | tar xzv + +[tarball]: https://github.com/rmccue/Requests/tarball/master +[zipball]: https://github.com/rmccue/Requests/zipball/master + + +### Using a Class Loader +If you're using a class loader (e.g., [Symfony Class Loader][]) for +[PSR-0][]-style class loading: + + $loader->registerPrefix('Requests', 'path/to/vendor/Requests/library'); + +[Symfony Class Loader]: https://github.com/symfony/ClassLoader +[PSR-0]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md + + +Documentation +------------- +The best place to start is our [prose-based documentation][], which will guide +you through using Requests. + +After that, take a look at [the documentation for +`Requests::request()`][request_method], where all the parameters are fully +documented. + +Requests is [100% documented with PHPDoc](http://requests.ryanmccue.info/api/). +If you find any problems with it, [create a new +issue](https://github.com/rmccue/Requests/issues/new)! + +[prose-based documentation]: https://github.com/rmccue/Requests/blob/master/docs/README.md +[request_method]: http://requests.ryanmccue.info/api/class-Requests.html#_request + +Testing +------- + +Requests strives to have 100% code-coverage of the library with an extensive +set of tests. We're not quite there yet, but [we're getting close][codecov]. + +[codecov]: http://codecov.io/github/rmccue/Requests + +To run the test suite, first check that you have the [PHP +JSON extension ](http://php.net/manual/en/book.json.php) enabled. Then +simply: + + $ cd tests + $ phpunit + +If you'd like to run a single set of tests, specify just the name: + + $ phpunit Transport/cURL + +Contribute +---------- + +1. Check for open issues or open a new issue for a feature request or a bug +2. Fork [the repository][] on Github to start making your changes to the + `master` branch (or branch off of it) +3. Write a test which shows that the bug was fixed or that the feature works as expected +4. Send a pull request and bug me until I merge it + +[the repository]: https://github.com/rmccue/Requests diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/composer.json b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/composer.json new file mode 100755 index 0000000..79744ce --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/composer.json @@ -0,0 +1,23 @@ +{ + "name": "rmccue/requests", + "description": "A HTTP library written in PHP, for human beings.", + "homepage": "http://github.com/rmccue/Requests", + "license": "ISC", + "keywords": ["http", "idna", "iri", "ipv6", "curl", "sockets", "fsockopen"], + "authors": [ + { + "name": "Ryan McCue", + "homepage": "http://ryanmccue.info" + } + ], + "require": { + "php": ">=5.2" + }, + "require-dev": { + "requests/test-server": "dev-master" + }, + "type": "library", + "autoload": { + "psr-0": {"Requests": "library/"} + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests.php new file mode 100755 index 0000000..bb26618 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests.php @@ -0,0 +1,980 @@ +dispatch('requests.before_request', array(&$url, &$headers, &$data, &$type, &$options)); + + if (!empty($options['transport'])) { + $transport = $options['transport']; + + if (is_string($options['transport'])) { + $transport = new $transport(); + } + } + else { + $need_ssl = (0 === stripos($url, 'https://')); + $capabilities = array('ssl' => $need_ssl); + $transport = self::get_transport($capabilities); + } + $response = $transport->request($url, $headers, $data, $options); + + $options['hooks']->dispatch('requests.before_parse', array(&$response, $url, $headers, $data, $type, $options)); + + return self::parse_response($response, $url, $headers, $data, $options); + } + + /** + * Send multiple HTTP requests simultaneously + * + * The `$requests` parameter takes an associative or indexed array of + * request fields. The key of each request can be used to match up the + * request with the returned data, or with the request passed into your + * `multiple.request.complete` callback. + * + * The request fields value is an associative array with the following keys: + * + * - `url`: Request URL Same as the `$url` parameter to + * {@see Requests::request} + * (string, required) + * - `headers`: Associative array of header fields. Same as the `$headers` + * parameter to {@see Requests::request} + * (array, default: `array()`) + * - `data`: Associative array of data fields or a string. Same as the + * `$data` parameter to {@see Requests::request} + * (array|string, default: `array()`) + * - `type`: HTTP request type (use Requests constants). Same as the `$type` + * parameter to {@see Requests::request} + * (string, default: `Requests::GET`) + * - `cookies`: Associative array of cookie name to value, or cookie jar. + * (array|Requests_Cookie_Jar) + * + * If the `$options` parameter is specified, individual requests will + * inherit options from it. This can be used to use a single hooking system, + * or set all the types to `Requests::POST`, for example. + * + * In addition, the `$options` parameter takes the following global options: + * + * - `complete`: A callback for when a request is complete. Takes two + * parameters, a Requests_Response/Requests_Exception reference, and the + * ID from the request array (Note: this can also be overridden on a + * per-request basis, although that's a little silly) + * (callback) + * + * @param array $requests Requests data (see description for more information) + * @param array $options Global and default options (see {@see Requests::request}) + * @return array Responses (either Requests_Response or a Requests_Exception object) + */ + public static function request_multiple($requests, $options = array()) { + $options = array_merge(self::get_default_options(true), $options); + + if (!empty($options['hooks'])) { + $options['hooks']->register('transport.internal.parse_response', array('Requests', 'parse_multiple')); + if (!empty($options['complete'])) { + $options['hooks']->register('multiple.request.complete', $options['complete']); + } + } + + foreach ($requests as $id => &$request) { + if (!isset($request['headers'])) { + $request['headers'] = array(); + } + if (!isset($request['data'])) { + $request['data'] = array(); + } + if (!isset($request['type'])) { + $request['type'] = self::GET; + } + if (!isset($request['options'])) { + $request['options'] = $options; + $request['options']['type'] = $request['type']; + } + else { + if (empty($request['options']['type'])) { + $request['options']['type'] = $request['type']; + } + $request['options'] = array_merge($options, $request['options']); + } + + self::set_defaults($request['url'], $request['headers'], $request['data'], $request['type'], $request['options']); + + // Ensure we only hook in once + if ($request['options']['hooks'] !== $options['hooks']) { + $request['options']['hooks']->register('transport.internal.parse_response', array('Requests', 'parse_multiple')); + if (!empty($request['options']['complete'])) { + $request['options']['hooks']->register('multiple.request.complete', $request['options']['complete']); + } + } + } + unset($request); + + if (!empty($options['transport'])) { + $transport = $options['transport']; + + if (is_string($options['transport'])) { + $transport = new $transport(); + } + } + else { + $transport = self::get_transport(); + } + $responses = $transport->request_multiple($requests, $options); + + foreach ($responses as $id => &$response) { + // If our hook got messed with somehow, ensure we end up with the + // correct response + if (is_string($response)) { + $request = $requests[$id]; + self::parse_multiple($response, $request); + $request['options']['hooks']->dispatch('multiple.request.complete', array(&$response, $id)); + } + } + + return $responses; + } + + /** + * Get the default options + * + * @see Requests::request() for values returned by this method + * @param boolean $multirequest Is this a multirequest? + * @return array Default option values + */ + protected static function get_default_options($multirequest = false) { + $defaults = array( + 'timeout' => 10, + 'connect_timeout' => 10, + 'useragent' => 'php-requests/' . self::VERSION, + 'protocol_version' => 1.1, + 'redirected' => 0, + 'redirects' => 10, + 'follow_redirects' => true, + 'blocking' => true, + 'type' => self::GET, + 'filename' => false, + 'auth' => false, + 'proxy' => false, + 'cookies' => false, + 'max_bytes' => false, + 'idn' => true, + 'hooks' => null, + 'transport' => null, + 'verify' => Requests::get_certificate_path(), + 'verifyname' => true, + ); + if ($multirequest !== false) { + $defaults['complete'] = null; + } + return $defaults; + } + + /** + * Get default certificate path. + * + * @return string Default certificate path. + */ + public static function get_certificate_path() { + if ( ! empty( Requests::$certificate_path ) ) { + return Requests::$certificate_path; + } + + return dirname(__FILE__) . '/Requests/Transport/cacert.pem'; + } + + /** + * Set default certificate path. + * + * @param string $path Certificate path, pointing to a PEM file. + */ + public static function set_certificate_path( $path ) { + Requests::$certificate_path = $path; + } + + /** + * Set the default values + * + * @param string $url URL to request + * @param array $headers Extra headers to send with the request + * @param array|null $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests + * @param string $type HTTP request type + * @param array $options Options for the request + * @return array $options + */ + protected static function set_defaults(&$url, &$headers, &$data, &$type, &$options) { + if (!preg_match('/^http(s)?:\/\//i', $url, $matches)) { + throw new Requests_Exception('Only HTTP(S) requests are handled.', 'nonhttp', $url); + } + + if (empty($options['hooks'])) { + $options['hooks'] = new Requests_Hooks(); + } + + if (is_array($options['auth'])) { + $options['auth'] = new Requests_Auth_Basic($options['auth']); + } + if ($options['auth'] !== false) { + $options['auth']->register($options['hooks']); + } + + if (is_string($options['proxy']) || is_array($options['proxy'])) { + $options['proxy'] = new Requests_Proxy_HTTP($options['proxy']); + } + if ($options['proxy'] !== false) { + $options['proxy']->register($options['hooks']); + } + + if (is_array($options['cookies'])) { + $options['cookies'] = new Requests_Cookie_Jar($options['cookies']); + } + elseif (empty($options['cookies'])) { + $options['cookies'] = new Requests_Cookie_Jar(); + } + if ($options['cookies'] !== false) { + $options['cookies']->register($options['hooks']); + } + + if ($options['idn'] !== false) { + $iri = new Requests_IRI($url); + $iri->host = Requests_IDNAEncoder::encode($iri->ihost); + $url = $iri->uri; + } + + // Massage the type to ensure we support it. + $type = strtoupper($type); + + if (!isset($options['data_format'])) { + if (in_array($type, array(self::HEAD, self::GET, self::DELETE))) { + $options['data_format'] = 'query'; + } + else { + $options['data_format'] = 'body'; + } + } + } + + /** + * HTTP response parser + * + * @throws Requests_Exception On missing head/body separator (`requests.no_crlf_separator`) + * @throws Requests_Exception On missing head/body separator (`noversion`) + * @throws Requests_Exception On missing head/body separator (`toomanyredirects`) + * + * @param string $headers Full response text including headers and body + * @param string $url Original request URL + * @param array $req_headers Original $headers array passed to {@link request()}, in case we need to follow redirects + * @param array $req_data Original $data array passed to {@link request()}, in case we need to follow redirects + * @param array $options Original $options array passed to {@link request()}, in case we need to follow redirects + * @return Requests_Response + */ + protected static function parse_response($headers, $url, $req_headers, $req_data, $options) { + $return = new Requests_Response(); + if (!$options['blocking']) { + return $return; + } + + $return->raw = $headers; + $return->url = $url; + + if (!$options['filename']) { + if (($pos = strpos($headers, "\r\n\r\n")) === false) { + // Crap! + throw new Requests_Exception('Missing header/body separator', 'requests.no_crlf_separator'); + } + + $headers = substr($return->raw, 0, $pos); + $return->body = substr($return->raw, $pos + strlen("\n\r\n\r")); + } + else { + $return->body = ''; + } + // Pretend CRLF = LF for compatibility (RFC 2616, section 19.3) + $headers = str_replace("\r\n", "\n", $headers); + // Unfold headers (replace [CRLF] 1*( SP | HT ) with SP) as per RFC 2616 (section 2.2) + $headers = preg_replace('/\n[ \t]/', ' ', $headers); + $headers = explode("\n", $headers); + preg_match('#^HTTP/(1\.\d)[ \t]+(\d+)#i', array_shift($headers), $matches); + if (empty($matches)) { + throw new Requests_Exception('Response could not be parsed', 'noversion', $headers); + } + $return->protocol_version = (float) $matches[1]; + $return->status_code = (int) $matches[2]; + if ($return->status_code >= 200 && $return->status_code < 300) { + $return->success = true; + } + + foreach ($headers as $header) { + list($key, $value) = explode(':', $header, 2); + $value = trim($value); + preg_replace('#(\s+)#i', ' ', $value); + $return->headers[$key] = $value; + } + if (isset($return->headers['transfer-encoding'])) { + $return->body = self::decode_chunked($return->body); + unset($return->headers['transfer-encoding']); + } + if (isset($return->headers['content-encoding'])) { + $return->body = self::decompress($return->body); + } + + //fsockopen and cURL compatibility + if (isset($return->headers['connection'])) { + unset($return->headers['connection']); + } + + $options['hooks']->dispatch('requests.before_redirect_check', array(&$return, $req_headers, $req_data, $options)); + + if ($return->is_redirect() && $options['follow_redirects'] === true) { + if (isset($return->headers['location']) && $options['redirected'] < $options['redirects']) { + if ($return->status_code === 303) { + $options['type'] = self::GET; + } + $options['redirected']++; + $location = $return->headers['location']; + if (strpos($location, 'http://') !== 0 && strpos($location, 'https://') !== 0) { + // relative redirect, for compatibility make it absolute + $location = Requests_IRI::absolutize($url, $location); + $location = $location->uri; + } + + $hook_args = array( + &$location, + &$req_headers, + &$req_data, + &$options, + $return + ); + $options['hooks']->dispatch('requests.before_redirect', $hook_args); + $redirected = self::request($location, $req_headers, $req_data, $options['type'], $options); + $redirected->history[] = $return; + return $redirected; + } + elseif ($options['redirected'] >= $options['redirects']) { + throw new Requests_Exception('Too many redirects', 'toomanyredirects', $return); + } + } + + $return->redirects = $options['redirected']; + + $options['hooks']->dispatch('requests.after_request', array(&$return, $req_headers, $req_data, $options)); + return $return; + } + + /** + * Callback for `transport.internal.parse_response` + * + * Internal use only. Converts a raw HTTP response to a Requests_Response + * while still executing a multiple request. + * + * @param string $response Full response text including headers and body (will be overwritten with Response instance) + * @param array $request Request data as passed into {@see Requests::request_multiple()} + * @return null `$response` is either set to a Requests_Response instance, or a Requests_Exception object + */ + public static function parse_multiple(&$response, $request) { + try { + $url = $request['url']; + $headers = $request['headers']; + $data = $request['data']; + $options = $request['options']; + $response = self::parse_response($response, $url, $headers, $data, $options); + } + catch (Requests_Exception $e) { + $response = $e; + } + } + + /** + * Decoded a chunked body as per RFC 2616 + * + * @see https://tools.ietf.org/html/rfc2616#section-3.6.1 + * @param string $data Chunked body + * @return string Decoded body + */ + protected static function decode_chunked($data) { + if (!preg_match('/^([0-9a-f]+)(?:;(?:[\w-]*)(?:=(?:(?:[\w-]*)*|"(?:[^\r\n])*"))?)*\r\n/i', trim($data))) { + return $data; + } + + + + $decoded = ''; + $encoded = $data; + + while (true) { + $is_chunked = (bool) preg_match('/^([0-9a-f]+)(?:;(?:[\w-]*)(?:=(?:(?:[\w-]*)*|"(?:[^\r\n])*"))?)*\r\n/i', $encoded, $matches); + if (!$is_chunked) { + // Looks like it's not chunked after all + return $data; + } + + $length = hexdec(trim($matches[1])); + if ($length === 0) { + // Ignore trailer headers + return $decoded; + } + + $chunk_length = strlen($matches[0]); + $decoded .= substr($encoded, $chunk_length, $length); + $encoded = substr($encoded, $chunk_length + $length + 2); + + if (trim($encoded) === '0' || empty($encoded)) { + return $decoded; + } + } + + // We'll never actually get down here + // @codeCoverageIgnoreStart + } + // @codeCoverageIgnoreEnd + + /** + * Convert a key => value array to a 'key: value' array for headers + * + * @param array $array Dictionary of header values + * @return array List of headers + */ + public static function flatten($array) { + $return = array(); + foreach ($array as $key => $value) { + $return[] = sprintf('%s: %s', $key, $value); + } + return $return; + } + + /** + * Convert a key => value array to a 'key: value' array for headers + * + * @codeCoverageIgnore + * @deprecated Misspelling of {@see Requests::flatten} + * @param array $array Dictionary of header values + * @return array List of headers + */ + public static function flattern($array) { + return self::flatten($array); + } + + /** + * Decompress an encoded body + * + * Implements gzip, compress and deflate. Guesses which it is by attempting + * to decode. + * + * @param string $data Compressed data in one of the above formats + * @return string Decompressed string + */ + public static function decompress($data) { + if (substr($data, 0, 2) !== "\x1f\x8b" && substr($data, 0, 2) !== "\x78\x9c") { + // Not actually compressed. Probably cURL ruining this for us. + return $data; + } + + if (function_exists('gzdecode') && ($decoded = @gzdecode($data)) !== false) { + return $decoded; + } + elseif (function_exists('gzinflate') && ($decoded = @gzinflate($data)) !== false) { + return $decoded; + } + elseif (($decoded = self::compatible_gzinflate($data)) !== false) { + return $decoded; + } + elseif (function_exists('gzuncompress') && ($decoded = @gzuncompress($data)) !== false) { + return $decoded; + } + + return $data; + } + + /** + * Decompression of deflated string while staying compatible with the majority of servers. + * + * Certain Servers will return deflated data with headers which PHP's gzinflate() + * function cannot handle out of the box. The following function has been created from + * various snippets on the gzinflate() PHP documentation. + * + * Warning: Magic numbers within. Due to the potential different formats that the compressed + * data may be returned in, some "magic offsets" are needed to ensure proper decompression + * takes place. For a simple progmatic way to determine the magic offset in use, see: + * https://core.trac.wordpress.org/ticket/18273 + * + * @since 2.8.1 + * @link https://core.trac.wordpress.org/ticket/18273 + * @link https://secure.php.net/manual/en/function.gzinflate.php#70875 + * @link https://secure.php.net/manual/en/function.gzinflate.php#77336 + * + * @param string $gzData String to decompress. + * @return string|bool False on failure. + */ + public static function compatible_gzinflate($gzData) { + // Compressed data might contain a full zlib header, if so strip it for + // gzinflate() + if (substr($gzData, 0, 3) == "\x1f\x8b\x08") { + $i = 10; + $flg = ord(substr($gzData, 3, 1)); + if ($flg > 0) { + if ($flg & 4) { + list($xlen) = unpack('v', substr($gzData, $i, 2)); + $i = $i + 2 + $xlen; + } + if ($flg & 8) { + $i = strpos($gzData, "\0", $i) + 1; + } + if ($flg & 16) { + $i = strpos($gzData, "\0", $i) + 1; + } + if ($flg & 2) { + $i = $i + 2; + } + } + $decompressed = self::compatible_gzinflate(substr($gzData, $i)); + if (false !== $decompressed) { + return $decompressed; + } + } + + // If the data is Huffman Encoded, we must first strip the leading 2 + // byte Huffman marker for gzinflate() + // The response is Huffman coded by many compressors such as + // java.util.zip.Deflater, Ruby’s Zlib::Deflate, and .NET's + // System.IO.Compression.DeflateStream. + // + // See https://decompres.blogspot.com/ for a quick explanation of this + // data type + $huffman_encoded = false; + + // low nibble of first byte should be 0x08 + list(, $first_nibble) = unpack('h', $gzData); + + // First 2 bytes should be divisible by 0x1F + list(, $first_two_bytes) = unpack('n', $gzData); + + if (0x08 == $first_nibble && 0 == ($first_two_bytes % 0x1F)) { + $huffman_encoded = true; + } + + if ($huffman_encoded) { + if (false !== ($decompressed = @gzinflate(substr($gzData, 2)))) { + return $decompressed; + } + } + + if ("\x50\x4b\x03\x04" == substr($gzData, 0, 4)) { + // ZIP file format header + // Offset 6: 2 bytes, General-purpose field + // Offset 26: 2 bytes, filename length + // Offset 28: 2 bytes, optional field length + // Offset 30: Filename field, followed by optional field, followed + // immediately by data + list(, $general_purpose_flag) = unpack('v', substr($gzData, 6, 2)); + + // If the file has been compressed on the fly, 0x08 bit is set of + // the general purpose field. We can use this to differentiate + // between a compressed document, and a ZIP file + $zip_compressed_on_the_fly = (0x08 == (0x08 & $general_purpose_flag)); + + if (!$zip_compressed_on_the_fly) { + // Don't attempt to decode a compressed zip file + return $gzData; + } + + // Determine the first byte of data, based on the above ZIP header + // offsets: + $first_file_start = array_sum(unpack('v2', substr($gzData, 26, 4))); + if (false !== ($decompressed = @gzinflate(substr($gzData, 30 + $first_file_start)))) { + return $decompressed; + } + return false; + } + + // Finally fall back to straight gzinflate + if (false !== ($decompressed = @gzinflate($gzData))) { + return $decompressed; + } + + // Fallback for all above failing, not expected, but included for + // debugging and preventing regressions and to track stats + if (false !== ($decompressed = @gzinflate(substr($gzData, 2)))) { + return $decompressed; + } + + return false; + } + + public static function match_domain($host, $reference) { + // Check for a direct match + if ($host === $reference) { + return true; + } + + // Calculate the valid wildcard match if the host is not an IP address + // Also validates that the host has 3 parts or more, as per Firefox's + // ruleset. + $parts = explode('.', $host); + if (ip2long($host) === false && count($parts) >= 3) { + $parts[0] = '*'; + $wildcard = implode('.', $parts); + if ($wildcard === $reference) { + return true; + } + } + + return false; + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Auth.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Auth.php new file mode 100755 index 0000000..bca4109 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Auth.php @@ -0,0 +1,33 @@ +user, $this->pass) = $args; + } + } + + /** + * Register the necessary callbacks + * + * @see curl_before_send + * @see fsockopen_header + * @param Requests_Hooks $hooks Hook system + */ + public function register(Requests_Hooks &$hooks) { + $hooks->register('curl.before_send', array(&$this, 'curl_before_send')); + $hooks->register('fsockopen.after_headers', array(&$this, 'fsockopen_header')); + } + + /** + * Set cURL parameters before the data is sent + * + * @param resource $handle cURL resource + */ + public function curl_before_send(&$handle) { + curl_setopt($handle, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); + curl_setopt($handle, CURLOPT_USERPWD, $this->getAuthString()); + } + + /** + * Add extra headers to the request before sending + * + * @param string $out HTTP header string + */ + public function fsockopen_header(&$out) { + $out .= sprintf("Authorization: Basic %s\r\n", base64_encode($this->getAuthString())); + } + + /** + * Get the authentication string (user:pass) + * + * @return string + */ + public function getAuthString() { + return $this->user . ':' . $this->pass; + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Cookie.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Cookie.php new file mode 100755 index 0000000..00fbbc7 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Cookie.php @@ -0,0 +1,500 @@ +name = $name; + $this->value = $value; + $this->attributes = $attributes; + $default_flags = array( + 'creation' => time(), + 'last-access' => time(), + 'persistent' => false, + 'host-only' => true, + ); + $this->flags = array_merge($default_flags, $flags); + + $this->reference_time = time(); + if ($reference_time !== null) { + $this->reference_time = $reference_time; + } + + $this->normalize(); + } + + /** + * Check if a cookie is expired. + * + * Checks the age against $this->reference_time to determine if the cookie + * is expired. + * + * @return boolean True if expired, false if time is valid. + */ + public function is_expired() { + // RFC6265, s. 4.1.2.2: + // If a cookie has both the Max-Age and the Expires attribute, the Max- + // Age attribute has precedence and controls the expiration date of the + // cookie. + if (isset($this->attributes['max-age'])) { + $max_age = $this->attributes['max-age']; + return $max_age < $this->reference_time; + } + + if (isset($this->attributes['expires'])) { + $expires = $this->attributes['expires']; + return $expires < $this->reference_time; + } + + return false; + } + + /** + * Check if a cookie is valid for a given URI + * + * @param Requests_IRI $uri URI to check + * @return boolean Whether the cookie is valid for the given URI + */ + public function uri_matches(Requests_IRI $uri) { + if (!$this->domain_matches($uri->host)) { + return false; + } + + if (!$this->path_matches($uri->path)) { + return false; + } + + return empty($this->attributes['secure']) || $uri->scheme === 'https'; + } + + /** + * Check if a cookie is valid for a given domain + * + * @param string $string Domain to check + * @return boolean Whether the cookie is valid for the given domain + */ + public function domain_matches($string) { + if (!isset($this->attributes['domain'])) { + // Cookies created manually; cookies created by Requests will set + // the domain to the requested domain + return true; + } + + $domain_string = $this->attributes['domain']; + if ($domain_string === $string) { + // The domain string and the string are identical. + return true; + } + + // If the cookie is marked as host-only and we don't have an exact + // match, reject the cookie + if ($this->flags['host-only'] === true) { + return false; + } + + if (strlen($string) <= strlen($domain_string)) { + // For obvious reasons, the string cannot be a suffix if the domain + // is shorter than the domain string + return false; + } + + if (substr($string, -1 * strlen($domain_string)) !== $domain_string) { + // The domain string should be a suffix of the string. + return false; + } + + $prefix = substr($string, 0, strlen($string) - strlen($domain_string)); + if (substr($prefix, -1) !== '.') { + // The last character of the string that is not included in the + // domain string should be a %x2E (".") character. + return false; + } + + // The string should be a host name (i.e., not an IP address). + return !preg_match('#^(.+\.)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$#', $string); + } + + /** + * Check if a cookie is valid for a given path + * + * From the path-match check in RFC 6265 section 5.1.4 + * + * @param string $request_path Path to check + * @return boolean Whether the cookie is valid for the given path + */ + public function path_matches($request_path) { + if (empty($request_path)) { + // Normalize empty path to root + $request_path = '/'; + } + + if (!isset($this->attributes['path'])) { + // Cookies created manually; cookies created by Requests will set + // the path to the requested path + return true; + } + + $cookie_path = $this->attributes['path']; + + if ($cookie_path === $request_path) { + // The cookie-path and the request-path are identical. + return true; + } + + if (strlen($request_path) > strlen($cookie_path) && substr($request_path, 0, strlen($cookie_path)) === $cookie_path) { + if (substr($cookie_path, -1) === '/') { + // The cookie-path is a prefix of the request-path, and the last + // character of the cookie-path is %x2F ("/"). + return true; + } + + if (substr($request_path, strlen($cookie_path), 1) === '/') { + // The cookie-path is a prefix of the request-path, and the + // first character of the request-path that is not included in + // the cookie-path is a %x2F ("/") character. + return true; + } + } + + return false; + } + + /** + * Normalize cookie and attributes + * + * @return boolean Whether the cookie was successfully normalized + */ + public function normalize() { + foreach ($this->attributes as $key => $value) { + $orig_value = $value; + $value = $this->normalize_attribute($key, $value); + if ($value === null) { + unset($this->attributes[$key]); + continue; + } + + if ($value !== $orig_value) { + $this->attributes[$key] = $value; + } + } + + return true; + } + + /** + * Parse an individual cookie attribute + * + * Handles parsing individual attributes from the cookie values. + * + * @param string $name Attribute name + * @param string|boolean $value Attribute value (string value, or true if empty/flag) + * @return mixed Value if available, or null if the attribute value is invalid (and should be skipped) + */ + protected function normalize_attribute($name, $value) { + switch (strtolower($name)) { + case 'expires': + // Expiration parsing, as per RFC 6265 section 5.2.1 + if (is_int($value)) { + return $value; + } + + $expiry_time = strtotime($value); + if ($expiry_time === false) { + return null; + } + + return $expiry_time; + + case 'max-age': + // Expiration parsing, as per RFC 6265 section 5.2.2 + if (is_int($value)) { + return $value; + } + + // Check that we have a valid age + if (!preg_match('/^-?\d+$/', $value)) { + return null; + } + + $delta_seconds = (int) $value; + if ($delta_seconds <= 0) { + $expiry_time = 0; + } + else { + $expiry_time = $this->reference_time + $delta_seconds; + } + + return $expiry_time; + + case 'domain': + // Domain normalization, as per RFC 6265 section 5.2.3 + if ($value[0] === '.') { + $value = substr($value, 1); + } + + return $value; + + default: + return $value; + } + } + + /** + * Format a cookie for a Cookie header + * + * This is used when sending cookies to a server. + * + * @return string Cookie formatted for Cookie header + */ + public function format_for_header() { + return sprintf('%s=%s', $this->name, $this->value); + } + + /** + * Format a cookie for a Cookie header + * + * @codeCoverageIgnore + * @deprecated Use {@see Requests_Cookie::format_for_header} + * @return string + */ + public function formatForHeader() { + return $this->format_for_header(); + } + + /** + * Format a cookie for a Set-Cookie header + * + * This is used when sending cookies to clients. This isn't really + * applicable to client-side usage, but might be handy for debugging. + * + * @return string Cookie formatted for Set-Cookie header + */ + public function format_for_set_cookie() { + $header_value = $this->format_for_header(); + if (!empty($this->attributes)) { + $parts = array(); + foreach ($this->attributes as $key => $value) { + // Ignore non-associative attributes + if (is_numeric($key)) { + $parts[] = $value; + } + else { + $parts[] = sprintf('%s=%s', $key, $value); + } + } + + $header_value .= '; ' . implode('; ', $parts); + } + return $header_value; + } + + /** + * Format a cookie for a Set-Cookie header + * + * @codeCoverageIgnore + * @deprecated Use {@see Requests_Cookie::format_for_set_cookie} + * @return string + */ + public function formatForSetCookie() { + return $this->format_for_set_cookie(); + } + + /** + * Get the cookie value + * + * Attributes and other data can be accessed via methods. + */ + public function __toString() { + return $this->value; + } + + /** + * Parse a cookie string into a cookie object + * + * Based on Mozilla's parsing code in Firefox and related projects, which + * is an intentional deviation from RFC 2109 and RFC 2616. RFC 6265 + * specifies some of this handling, but not in a thorough manner. + * + * @param string Cookie header value (from a Set-Cookie header) + * @return Requests_Cookie Parsed cookie object + */ + public static function parse($string, $name = '', $reference_time = null) { + $parts = explode(';', $string); + $kvparts = array_shift($parts); + + if (!empty($name)) { + $value = $string; + } + elseif (strpos($kvparts, '=') === false) { + // Some sites might only have a value without the equals separator. + // Deviate from RFC 6265 and pretend it was actually a blank name + // (`=foo`) + // + // https://bugzilla.mozilla.org/show_bug.cgi?id=169091 + $name = ''; + $value = $kvparts; + } + else { + list($name, $value) = explode('=', $kvparts, 2); + } + $name = trim($name); + $value = trim($value); + + // Attribute key are handled case-insensitively + $attributes = new Requests_Utility_CaseInsensitiveDictionary(); + + if (!empty($parts)) { + foreach ($parts as $part) { + if (strpos($part, '=') === false) { + $part_key = $part; + $part_value = true; + } + else { + list($part_key, $part_value) = explode('=', $part, 2); + $part_value = trim($part_value); + } + + $part_key = trim($part_key); + $attributes[$part_key] = $part_value; + } + } + + return new Requests_Cookie($name, $value, $attributes, array(), $reference_time); + } + + /** + * Parse all Set-Cookie headers from request headers + * + * @param Requests_Response_Headers $headers Headers to parse from + * @param Requests_IRI|null $origin URI for comparing cookie origins + * @param int|null $time Reference time for expiration calculation + * @return array + */ + public static function parse_from_headers(Requests_Response_Headers $headers, Requests_IRI $origin = null, $time = null) { + $cookie_headers = $headers->getValues('Set-Cookie'); + if (empty($cookie_headers)) { + return array(); + } + + $cookies = array(); + foreach ($cookie_headers as $header) { + $parsed = self::parse($header, '', $time); + + // Default domain/path attributes + if (empty($parsed->attributes['domain']) && !empty($origin)) { + $parsed->attributes['domain'] = $origin->host; + $parsed->flags['host-only'] = true; + } + else { + $parsed->flags['host-only'] = false; + } + + $path_is_valid = (!empty($parsed->attributes['path']) && $parsed->attributes['path'][0] === '/'); + if (!$path_is_valid && !empty($origin)) { + $path = $origin->path; + + // Default path normalization as per RFC 6265 section 5.1.4 + if (substr($path, 0, 1) !== '/') { + // If the uri-path is empty or if the first character of + // the uri-path is not a %x2F ("/") character, output + // %x2F ("/") and skip the remaining steps. + $path = '/'; + } + elseif (substr_count($path, '/') === 1) { + // If the uri-path contains no more than one %x2F ("/") + // character, output %x2F ("/") and skip the remaining + // step. + $path = '/'; + } + else { + // Output the characters of the uri-path from the first + // character up to, but not including, the right-most + // %x2F ("/"). + $path = substr($path, 0, strrpos($path, '/')); + } + $parsed->attributes['path'] = $path; + } + + // Reject invalid cookie domains + if (!empty($origin) && !$parsed->domain_matches($origin->host)) { + continue; + } + + $cookies[$parsed->name] = $parsed; + } + + return $cookies; + } + + /** + * Parse all Set-Cookie headers from request headers + * + * @codeCoverageIgnore + * @deprecated Use {@see Requests_Cookie::parse_from_headers} + * @return string + */ + public static function parseFromHeaders(Requests_Response_Headers $headers) { + return self::parse_from_headers($headers); + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Cookie/Jar.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Cookie/Jar.php new file mode 100755 index 0000000..69be0fb --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Cookie/Jar.php @@ -0,0 +1,175 @@ +cookies = $cookies; + } + + /** + * Normalise cookie data into a Requests_Cookie + * + * @param string|Requests_Cookie $cookie + * @return Requests_Cookie + */ + public function normalize_cookie($cookie, $key = null) { + if ($cookie instanceof Requests_Cookie) { + return $cookie; + } + + return Requests_Cookie::parse($cookie, $key); + } + + /** + * Normalise cookie data into a Requests_Cookie + * + * @codeCoverageIgnore + * @deprecated Use {@see Requests_Cookie_Jar::normalize_cookie} + * @return Requests_Cookie + */ + public function normalizeCookie($cookie, $key = null) { + return $this->normalize_cookie($cookie, $key); + } + + /** + * Check if the given item exists + * + * @param string $key Item key + * @return boolean Does the item exist? + */ + public function offsetExists($key) { + return isset($this->cookies[$key]); + } + + /** + * Get the value for the item + * + * @param string $key Item key + * @return string Item value + */ + public function offsetGet($key) { + if (!isset($this->cookies[$key])) { + return null; + } + + return $this->cookies[$key]; + } + + /** + * Set the given item + * + * @throws Requests_Exception On attempting to use dictionary as list (`invalidset`) + * + * @param string $key Item name + * @param string $value Item value + */ + public function offsetSet($key, $value) { + if ($key === null) { + throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset'); + } + + $this->cookies[$key] = $value; + } + + /** + * Unset the given header + * + * @param string $key + */ + public function offsetUnset($key) { + unset($this->cookies[$key]); + } + + /** + * Get an iterator for the data + * + * @return ArrayIterator + */ + public function getIterator() { + return new ArrayIterator($this->cookies); + } + + /** + * Register the cookie handler with the request's hooking system + * + * @param Requests_Hooker $hooks Hooking system + */ + public function register(Requests_Hooker $hooks) { + $hooks->register('requests.before_request', array($this, 'before_request')); + $hooks->register('requests.before_redirect_check', array($this, 'before_redirect_check')); + } + + /** + * Add Cookie header to a request if we have any + * + * As per RFC 6265, cookies are separated by '; ' + * + * @param string $url + * @param array $headers + * @param array $data + * @param string $type + * @param array $options + */ + public function before_request($url, &$headers, &$data, &$type, &$options) { + if (!$url instanceof Requests_IRI) { + $url = new Requests_IRI($url); + } + + if (!empty($this->cookies)) { + $cookies = array(); + foreach ($this->cookies as $key => $cookie) { + $cookie = $this->normalize_cookie($cookie, $key); + + // Skip expired cookies + if ($cookie->is_expired()) { + continue; + } + + if ($cookie->domain_matches($url->host)) { + $cookies[] = $cookie->format_for_header(); + } + } + + $headers['Cookie'] = implode('; ', $cookies); + } + } + + /** + * Parse all cookies from a response and attach them to the response + * + * @var Requests_Response $response + */ + public function before_redirect_check(Requests_Response &$return) { + $url = $return->url; + if (!$url instanceof Requests_IRI) { + $url = new Requests_IRI($url); + } + + $cookies = Requests_Cookie::parse_from_headers($return->headers, $url); + $this->cookies = array_merge($this->cookies, $cookies); + $return->cookies = $this; + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception.php new file mode 100755 index 0000000..37d4711 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception.php @@ -0,0 +1,62 @@ +type = $type; + $this->data = $data; + } + + /** + * Like {@see getCode()}, but a string code. + * + * @codeCoverageIgnore + * @return string + */ + public function getType() { + return $this->type; + } + + /** + * Gives any relevant data + * + * @codeCoverageIgnore + * @return mixed + */ + public function getData() { + return $this->data; + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP.php new file mode 100755 index 0000000..9ac6a87 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP.php @@ -0,0 +1,71 @@ +reason = $reason; + } + + $message = sprintf('%d %s', $this->code, $this->reason); + parent::__construct($message, 'httpresponse', $data, $this->code); + } + + /** + * Get the status message + */ + public function getReason() { + return $this->reason; + } + + /** + * Get the correct exception class for a given error code + * + * @param int|bool $code HTTP status code, or false if unavailable + * @return string Exception class name to use + */ + public static function get_class($code) { + if (!$code) { + return 'Requests_Exception_HTTP_Unknown'; + } + + $class = sprintf('Requests_Exception_HTTP_%d', $code); + if (class_exists($class)) { + return $class; + } + + return 'Requests_Exception_HTTP_Unknown'; + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/304.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/304.php new file mode 100755 index 0000000..6799033 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/HTTP/304.php @@ -0,0 +1,27 @@ +code = $data->status_code; + } + + parent::__construct($reason, $data); + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/Transport.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/Transport.php new file mode 100755 index 0000000..e60b488 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Exception/Transport.php @@ -0,0 +1,5 @@ +type = $type; + } + + if ($code !== null) { + $this->code = $code; + } + + if ($message !== null) { + $this->reason = $message; + } + + $message = sprintf('%d %s', $this->code, $this->reason); + parent::__construct($message, $this->type, $data, $this->code); + } + + /** + * Get the error message + */ + public function getReason() { + return $this->reason; + } + +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Hooker.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Hooker.php new file mode 100755 index 0000000..f667ae9 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Hooker.php @@ -0,0 +1,33 @@ +0 is executed later + */ + public function register($hook, $callback, $priority = 0); + + /** + * Dispatch a message + * + * @param string $hook Hook name + * @param array $parameters Parameters to pass to callbacks + * @return boolean Successfulness + */ + public function dispatch($hook, $parameters = array()); +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Hooks.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Hooks.php new file mode 100755 index 0000000..2e61c73 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Hooks.php @@ -0,0 +1,68 @@ +0 is executed later + */ + public function register($hook, $callback, $priority = 0) { + if (!isset($this->hooks[$hook])) { + $this->hooks[$hook] = array(); + } + if (!isset($this->hooks[$hook][$priority])) { + $this->hooks[$hook][$priority] = array(); + } + + $this->hooks[$hook][$priority][] = $callback; + } + + /** + * Dispatch a message + * + * @param string $hook Hook name + * @param array $parameters Parameters to pass to callbacks + * @return boolean Successfulness + */ + public function dispatch($hook, $parameters = array()) { + if (empty($this->hooks[$hook])) { + return false; + } + + foreach ($this->hooks[$hook] as $priority => $hooked) { + foreach ($hooked as $callback) { + call_user_func_array($callback, $parameters); + } + } + + return true; + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IDNAEncoder.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IDNAEncoder.php new file mode 100755 index 0000000..ebbe211 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IDNAEncoder.php @@ -0,0 +1,388 @@ + 0) { + if ($position + $length > $strlen) { + throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character); + } + for ($position++; $remaining > 0; $position++) { + $value = ord($input[$position]); + + // If it is invalid, count the sequence as invalid and reprocess the current byte: + if (($value & 0xC0) !== 0x80) { + throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character); + } + + $character |= ($value & 0x3F) << (--$remaining * 6); + } + $position--; + } + + if ( + // Non-shortest form sequences are invalid + $length > 1 && $character <= 0x7F + || $length > 2 && $character <= 0x7FF + || $length > 3 && $character <= 0xFFFF + // Outside of range of ucschar codepoints + // Noncharacters + || ($character & 0xFFFE) === 0xFFFE + || $character >= 0xFDD0 && $character <= 0xFDEF + || ( + // Everything else not in ucschar + $character > 0xD7FF && $character < 0xF900 + || $character < 0x20 + || $character > 0x7E && $character < 0xA0 + || $character > 0xEFFFD + ) + ) { + throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character); + } + + $codepoints[] = $character; + } + + return $codepoints; + } + + /** + * RFC3492-compliant encoder + * + * @internal Pseudo-code from Section 6.3 is commented with "#" next to relevant code + * @throws Requests_Exception On character outside of the domain (never happens with Punycode) (`idna.character_outside_domain`) + * + * @param string $input UTF-8 encoded string to encode + * @return string Punycode-encoded string + */ + public static function punycode_encode($input) { + $output = ''; +# let n = initial_n + $n = self::BOOTSTRAP_INITIAL_N; +# let delta = 0 + $delta = 0; +# let bias = initial_bias + $bias = self::BOOTSTRAP_INITIAL_BIAS; +# let h = b = the number of basic code points in the input + $h = $b = 0; // see loop +# copy them to the output in order + $codepoints = self::utf8_to_codepoints($input); + $extended = array(); + + foreach ($codepoints as $char) { + if ($char < 128) { + // Character is valid ASCII + // TODO: this should also check if it's valid for a URL + $output .= chr($char); + $h++; + } + // Check if the character is non-ASCII, but below initial n + // This never occurs for Punycode, so ignore in coverage + // @codeCoverageIgnoreStart + elseif ($char < $n) { + throw new Requests_Exception('Invalid character', 'idna.character_outside_domain', $char); + } + // @codeCoverageIgnoreEnd + else { + $extended[$char] = true; + } + } + $extended = array_keys($extended); + sort($extended); + $b = $h; +# [copy them] followed by a delimiter if b > 0 + if (strlen($output) > 0) { + $output .= '-'; + } +# {if the input contains a non-basic code point < n then fail} +# while h < length(input) do begin + while ($h < count($codepoints)) { +# let m = the minimum code point >= n in the input + $m = array_shift($extended); + //printf('next code point to insert is %s' . PHP_EOL, dechex($m)); +# let delta = delta + (m - n) * (h + 1), fail on overflow + $delta += ($m - $n) * ($h + 1); +# let n = m + $n = $m; +# for each code point c in the input (in order) do begin + for ($num = 0; $num < count($codepoints); $num++) { + $c = $codepoints[$num]; +# if c < n then increment delta, fail on overflow + if ($c < $n) { + $delta++; + } +# if c == n then begin + elseif ($c === $n) { +# let q = delta + $q = $delta; +# for k = base to infinity in steps of base do begin + for ($k = self::BOOTSTRAP_BASE; ; $k += self::BOOTSTRAP_BASE) { +# let t = tmin if k <= bias {+ tmin}, or +# tmax if k >= bias + tmax, or k - bias otherwise + if ($k <= ($bias + self::BOOTSTRAP_TMIN)) { + $t = self::BOOTSTRAP_TMIN; + } + elseif ($k >= ($bias + self::BOOTSTRAP_TMAX)) { + $t = self::BOOTSTRAP_TMAX; + } + else { + $t = $k - $bias; + } +# if q < t then break + if ($q < $t) { + break; + } +# output the code point for digit t + ((q - t) mod (base - t)) + $digit = $t + (($q - $t) % (self::BOOTSTRAP_BASE - $t)); + $output .= self::digit_to_char($digit); +# let q = (q - t) div (base - t) + $q = floor(($q - $t) / (self::BOOTSTRAP_BASE - $t)); +# end + } +# output the code point for digit q + $output .= self::digit_to_char($q); +# let bias = adapt(delta, h + 1, test h equals b?) + $bias = self::adapt($delta, $h + 1, $h === $b); +# let delta = 0 + $delta = 0; +# increment h + $h++; +# end + } +# end + } +# increment delta and n + $delta++; + $n++; +# end + } + + return $output; + } + + /** + * Convert a digit to its respective character + * + * @see https://tools.ietf.org/html/rfc3492#section-5 + * @throws Requests_Exception On invalid digit (`idna.invalid_digit`) + * + * @param int $digit Digit in the range 0-35 + * @return string Single character corresponding to digit + */ + protected static function digit_to_char($digit) { + // @codeCoverageIgnoreStart + // As far as I know, this never happens, but still good to be sure. + if ($digit < 0 || $digit > 35) { + throw new Requests_Exception(sprintf('Invalid digit %d', $digit), 'idna.invalid_digit', $digit); + } + // @codeCoverageIgnoreEnd + $digits = 'abcdefghijklmnopqrstuvwxyz0123456789'; + return substr($digits, $digit, 1); + } + + /** + * Adapt the bias + * + * @see https://tools.ietf.org/html/rfc3492#section-6.1 + * @param int $delta + * @param int $numpoints + * @param bool $firsttime + * @return int New bias + */ + protected static function adapt($delta, $numpoints, $firsttime) { +# function adapt(delta,numpoints,firsttime): +# if firsttime then let delta = delta div damp + if ($firsttime) { + $delta = floor($delta / self::BOOTSTRAP_DAMP); + } +# else let delta = delta div 2 + else { + $delta = floor($delta / 2); + } +# let delta = delta + (delta div numpoints) + $delta += floor($delta / $numpoints); +# let k = 0 + $k = 0; +# while delta > ((base - tmin) * tmax) div 2 do begin + $max = floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN) * self::BOOTSTRAP_TMAX) / 2); + while ($delta > $max) { +# let delta = delta div (base - tmin) + $delta = floor($delta / (self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN)); +# let k = k + base + $k += self::BOOTSTRAP_BASE; +# end + } +# return k + (((base - tmin + 1) * delta) div (delta + skew)) + return $k + floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN + 1) * $delta) / ($delta + self::BOOTSTRAP_SKEW)); + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IPv6.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IPv6.php new file mode 100755 index 0000000..204dbd7 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IPv6.php @@ -0,0 +1,190 @@ + FF01:0:0:0:0:0:0:101 + * ::1 -> 0:0:0:0:0:0:0:1 + * + * @author Alexander Merz + * @author elfrink at introweb dot nl + * @author Josh Peck + * @copyright 2003-2005 The PHP Group + * @license http://www.opensource.org/licenses/bsd-license.php + * @param string $ip An IPv6 address + * @return string The uncompressed IPv6 address + */ + public static function uncompress($ip) { + if (substr_count($ip, '::') !== 1) { + return $ip; + } + + list($ip1, $ip2) = explode('::', $ip); + $c1 = ($ip1 === '') ? -1 : substr_count($ip1, ':'); + $c2 = ($ip2 === '') ? -1 : substr_count($ip2, ':'); + + if (strpos($ip2, '.') !== false) { + $c2++; + } + // :: + if ($c1 === -1 && $c2 === -1) { + $ip = '0:0:0:0:0:0:0:0'; + } + // ::xxx + else if ($c1 === -1) { + $fill = str_repeat('0:', 7 - $c2); + $ip = str_replace('::', $fill, $ip); + } + // xxx:: + else if ($c2 === -1) { + $fill = str_repeat(':0', 7 - $c1); + $ip = str_replace('::', $fill, $ip); + } + // xxx::xxx + else { + $fill = ':' . str_repeat('0:', 6 - $c2 - $c1); + $ip = str_replace('::', $fill, $ip); + } + return $ip; + } + + /** + * Compresses an IPv6 address + * + * RFC 4291 allows you to compress consecutive zero pieces in an address to + * '::'. This method expects a valid IPv6 address and compresses consecutive + * zero pieces to '::'. + * + * Example: FF01:0:0:0:0:0:0:101 -> FF01::101 + * 0:0:0:0:0:0:0:1 -> ::1 + * + * @see uncompress() + * @param string $ip An IPv6 address + * @return string The compressed IPv6 address + */ + public static function compress($ip) { + // Prepare the IP to be compressed + $ip = self::uncompress($ip); + $ip_parts = self::split_v6_v4($ip); + + // Replace all leading zeros + $ip_parts[0] = preg_replace('/(^|:)0+([0-9])/', '\1\2', $ip_parts[0]); + + // Find bunches of zeros + if (preg_match_all('/(?:^|:)(?:0(?::|$))+/', $ip_parts[0], $matches, PREG_OFFSET_CAPTURE)) { + $max = 0; + $pos = null; + foreach ($matches[0] as $match) { + if (strlen($match[0]) > $max) { + $max = strlen($match[0]); + $pos = $match[1]; + } + } + + $ip_parts[0] = substr_replace($ip_parts[0], '::', $pos, $max); + } + + if ($ip_parts[1] !== '') { + return implode(':', $ip_parts); + } + else { + return $ip_parts[0]; + } + } + + /** + * Splits an IPv6 address into the IPv6 and IPv4 representation parts + * + * RFC 4291 allows you to represent the last two parts of an IPv6 address + * using the standard IPv4 representation + * + * Example: 0:0:0:0:0:0:13.1.68.3 + * 0:0:0:0:0:FFFF:129.144.52.38 + * + * @param string $ip An IPv6 address + * @return string[] [0] contains the IPv6 represented part, and [1] the IPv4 represented part + */ + protected static function split_v6_v4($ip) { + if (strpos($ip, '.') !== false) { + $pos = strrpos($ip, ':'); + $ipv6_part = substr($ip, 0, $pos); + $ipv4_part = substr($ip, $pos + 1); + return array($ipv6_part, $ipv4_part); + } + else { + return array($ip, ''); + } + } + + /** + * Checks an IPv6 address + * + * Checks if the given IP is a valid IPv6 address + * + * @param string $ip An IPv6 address + * @return bool true if $ip is a valid IPv6 address + */ + public static function check_ipv6($ip) { + $ip = self::uncompress($ip); + list($ipv6, $ipv4) = self::split_v6_v4($ip); + $ipv6 = explode(':', $ipv6); + $ipv4 = explode('.', $ipv4); + if (count($ipv6) === 8 && count($ipv4) === 1 || count($ipv6) === 6 && count($ipv4) === 4) { + foreach ($ipv6 as $ipv6_part) { + // The section can't be empty + if ($ipv6_part === '') { + return false; + } + + // Nor can it be over four characters + if (strlen($ipv6_part) > 4) { + return false; + } + + // Remove leading zeros (this is safe because of the above) + $ipv6_part = ltrim($ipv6_part, '0'); + if ($ipv6_part === '') { + $ipv6_part = '0'; + } + + // Check the value is valid + $value = hexdec($ipv6_part); + if (dechex($value) !== strtolower($ipv6_part) || $value < 0 || $value > 0xFFFF) { + return false; + } + } + if (count($ipv4) === 4) { + foreach ($ipv4 as $ipv4_part) { + $value = (int) $ipv4_part; + if ((string) $value !== $ipv4_part || $value < 0 || $value > 0xFF) { + return false; + } + } + } + return true; + } + else { + return false; + } + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IRI.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IRI.php new file mode 100755 index 0000000..8dc2fa2 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/IRI.php @@ -0,0 +1,1084 @@ + array( + 'port' => 674 + ), + 'dict' => array( + 'port' => 2628 + ), + 'file' => array( + 'ihost' => 'localhost' + ), + 'http' => array( + 'port' => 80, + ), + 'https' => array( + 'port' => 443, + ), + ); + + /** + * Return the entire IRI when you try and read the object as a string + * + * @return string + */ + public function __toString() { + return $this->get_iri(); + } + + /** + * Overload __set() to provide access via properties + * + * @param string $name Property name + * @param mixed $value Property value + */ + public function __set($name, $value) { + if (method_exists($this, 'set_' . $name)) { + call_user_func(array($this, 'set_' . $name), $value); + } + elseif ( + $name === 'iauthority' + || $name === 'iuserinfo' + || $name === 'ihost' + || $name === 'ipath' + || $name === 'iquery' + || $name === 'ifragment' + ) { + call_user_func(array($this, 'set_' . substr($name, 1)), $value); + } + } + + /** + * Overload __get() to provide access via properties + * + * @param string $name Property name + * @return mixed + */ + public function __get($name) { + // isset() returns false for null, we don't want to do that + // Also why we use array_key_exists below instead of isset() + $props = get_object_vars($this); + + if ( + $name === 'iri' || + $name === 'uri' || + $name === 'iauthority' || + $name === 'authority' + ) { + $method = 'get_' . $name; + $return = $this->$method(); + } + elseif (array_key_exists($name, $props)) { + $return = $this->$name; + } + // host -> ihost + elseif (($prop = 'i' . $name) && array_key_exists($prop, $props)) { + $name = $prop; + $return = $this->$prop; + } + // ischeme -> scheme + elseif (($prop = substr($name, 1)) && array_key_exists($prop, $props)) { + $name = $prop; + $return = $this->$prop; + } + else { + trigger_error('Undefined property: ' . get_class($this) . '::' . $name, E_USER_NOTICE); + $return = null; + } + + if ($return === null && isset($this->normalization[$this->scheme][$name])) { + return $this->normalization[$this->scheme][$name]; + } + else { + return $return; + } + } + + /** + * Overload __isset() to provide access via properties + * + * @param string $name Property name + * @return bool + */ + public function __isset($name) { + return (method_exists($this, 'get_' . $name) || isset($this->$name)); + } + + /** + * Overload __unset() to provide access via properties + * + * @param string $name Property name + */ + public function __unset($name) { + if (method_exists($this, 'set_' . $name)) { + call_user_func(array($this, 'set_' . $name), ''); + } + } + + /** + * Create a new IRI object, from a specified string + * + * @param string|null $iri + */ + public function __construct($iri = null) { + $this->set_iri($iri); + } + + /** + * Create a new IRI object by resolving a relative IRI + * + * Returns false if $base is not absolute, otherwise an IRI. + * + * @param IRI|string $base (Absolute) Base IRI + * @param IRI|string $relative Relative IRI + * @return IRI|false + */ + public static function absolutize($base, $relative) { + if (!($relative instanceof Requests_IRI)) { + $relative = new Requests_IRI($relative); + } + if (!$relative->is_valid()) { + return false; + } + elseif ($relative->scheme !== null) { + return clone $relative; + } + + if (!($base instanceof Requests_IRI)) { + $base = new Requests_IRI($base); + } + if ($base->scheme === null || !$base->is_valid()) { + return false; + } + + if ($relative->get_iri() !== '') { + if ($relative->iuserinfo !== null || $relative->ihost !== null || $relative->port !== null) { + $target = clone $relative; + $target->scheme = $base->scheme; + } + else { + $target = new Requests_IRI; + $target->scheme = $base->scheme; + $target->iuserinfo = $base->iuserinfo; + $target->ihost = $base->ihost; + $target->port = $base->port; + if ($relative->ipath !== '') { + if ($relative->ipath[0] === '/') { + $target->ipath = $relative->ipath; + } + elseif (($base->iuserinfo !== null || $base->ihost !== null || $base->port !== null) && $base->ipath === '') { + $target->ipath = '/' . $relative->ipath; + } + elseif (($last_segment = strrpos($base->ipath, '/')) !== false) { + $target->ipath = substr($base->ipath, 0, $last_segment + 1) . $relative->ipath; + } + else { + $target->ipath = $relative->ipath; + } + $target->ipath = $target->remove_dot_segments($target->ipath); + $target->iquery = $relative->iquery; + } + else { + $target->ipath = $base->ipath; + if ($relative->iquery !== null) { + $target->iquery = $relative->iquery; + } + elseif ($base->iquery !== null) { + $target->iquery = $base->iquery; + } + } + $target->ifragment = $relative->ifragment; + } + } + else { + $target = clone $base; + $target->ifragment = null; + } + $target->scheme_normalization(); + return $target; + } + + /** + * Parse an IRI into scheme/authority/path/query/fragment segments + * + * @param string $iri + * @return array + */ + protected function parse_iri($iri) { + $iri = trim($iri, "\x20\x09\x0A\x0C\x0D"); + $has_match = preg_match('/^((?P[^:\/?#]+):)?(\/\/(?P[^\/?#]*))?(?P[^?#]*)(\?(?P[^#]*))?(#(?P.*))?$/', $iri, $match); + if (!$has_match) { + throw new Requests_Exception('Cannot parse supplied IRI', 'iri.cannot_parse', $iri); + } + + if ($match[1] === '') { + $match['scheme'] = null; + } + if (!isset($match[3]) || $match[3] === '') { + $match['authority'] = null; + } + if (!isset($match[5])) { + $match['path'] = ''; + } + if (!isset($match[6]) || $match[6] === '') { + $match['query'] = null; + } + if (!isset($match[8]) || $match[8] === '') { + $match['fragment'] = null; + } + return $match; + } + + /** + * Remove dot segments from a path + * + * @param string $input + * @return string + */ + protected function remove_dot_segments($input) { + $output = ''; + while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..') { + // A: If the input buffer begins with a prefix of "../" or "./", + // then remove that prefix from the input buffer; otherwise, + if (strpos($input, '../') === 0) { + $input = substr($input, 3); + } + elseif (strpos($input, './') === 0) { + $input = substr($input, 2); + } + // B: if the input buffer begins with a prefix of "/./" or "/.", + // where "." is a complete path segment, then replace that prefix + // with "/" in the input buffer; otherwise, + elseif (strpos($input, '/./') === 0) { + $input = substr($input, 2); + } + elseif ($input === '/.') { + $input = '/'; + } + // C: if the input buffer begins with a prefix of "/../" or "/..", + // where ".." is a complete path segment, then replace that prefix + // with "/" in the input buffer and remove the last segment and its + // preceding "/" (if any) from the output buffer; otherwise, + elseif (strpos($input, '/../') === 0) { + $input = substr($input, 3); + $output = substr_replace($output, '', strrpos($output, '/')); + } + elseif ($input === '/..') { + $input = '/'; + $output = substr_replace($output, '', strrpos($output, '/')); + } + // D: if the input buffer consists only of "." or "..", then remove + // that from the input buffer; otherwise, + elseif ($input === '.' || $input === '..') { + $input = ''; + } + // E: move the first path segment in the input buffer to the end of + // the output buffer, including the initial "/" character (if any) + // and any subsequent characters up to, but not including, the next + // "/" character or the end of the input buffer + elseif (($pos = strpos($input, '/', 1)) !== false) { + $output .= substr($input, 0, $pos); + $input = substr_replace($input, '', 0, $pos); + } + else { + $output .= $input; + $input = ''; + } + } + return $output . $input; + } + + /** + * Replace invalid character with percent encoding + * + * @param string $string Input string + * @param string $extra_chars Valid characters not in iunreserved or + * iprivate (this is ASCII-only) + * @param bool $iprivate Allow iprivate + * @return string + */ + protected function replace_invalid_with_pct_encoding($string, $extra_chars, $iprivate = false) { + // Normalize as many pct-encoded sections as possible + $string = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array(&$this, 'remove_iunreserved_percent_encoded'), $string); + + // Replace invalid percent characters + $string = preg_replace('/%(?![A-Fa-f0-9]{2})/', '%25', $string); + + // Add unreserved and % to $extra_chars (the latter is safe because all + // pct-encoded sections are now valid). + $extra_chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~%'; + + // Now replace any bytes that aren't allowed with their pct-encoded versions + $position = 0; + $strlen = strlen($string); + while (($position += strspn($string, $extra_chars, $position)) < $strlen) { + $value = ord($string[$position]); + + // Start position + $start = $position; + + // By default we are valid + $valid = true; + + // No one byte sequences are valid due to the while. + // Two byte sequence: + if (($value & 0xE0) === 0xC0) { + $character = ($value & 0x1F) << 6; + $length = 2; + $remaining = 1; + } + // Three byte sequence: + elseif (($value & 0xF0) === 0xE0) { + $character = ($value & 0x0F) << 12; + $length = 3; + $remaining = 2; + } + // Four byte sequence: + elseif (($value & 0xF8) === 0xF0) { + $character = ($value & 0x07) << 18; + $length = 4; + $remaining = 3; + } + // Invalid byte: + else { + $valid = false; + $length = 1; + $remaining = 0; + } + + if ($remaining) { + if ($position + $length <= $strlen) { + for ($position++; $remaining; $position++) { + $value = ord($string[$position]); + + // Check that the byte is valid, then add it to the character: + if (($value & 0xC0) === 0x80) { + $character |= ($value & 0x3F) << (--$remaining * 6); + } + // If it is invalid, count the sequence as invalid and reprocess the current byte: + else { + $valid = false; + $position--; + break; + } + } + } + else { + $position = $strlen - 1; + $valid = false; + } + } + + // Percent encode anything invalid or not in ucschar + if ( + // Invalid sequences + !$valid + // Non-shortest form sequences are invalid + || $length > 1 && $character <= 0x7F + || $length > 2 && $character <= 0x7FF + || $length > 3 && $character <= 0xFFFF + // Outside of range of ucschar codepoints + // Noncharacters + || ($character & 0xFFFE) === 0xFFFE + || $character >= 0xFDD0 && $character <= 0xFDEF + || ( + // Everything else not in ucschar + $character > 0xD7FF && $character < 0xF900 + || $character < 0xA0 + || $character > 0xEFFFD + ) + && ( + // Everything not in iprivate, if it applies + !$iprivate + || $character < 0xE000 + || $character > 0x10FFFD + ) + ) { + // If we were a character, pretend we weren't, but rather an error. + if ($valid) { + $position--; + } + + for ($j = $start; $j <= $position; $j++) { + $string = substr_replace($string, sprintf('%%%02X', ord($string[$j])), $j, 1); + $j += 2; + $position += 2; + $strlen += 2; + } + } + } + + return $string; + } + + /** + * Callback function for preg_replace_callback. + * + * Removes sequences of percent encoded bytes that represent UTF-8 + * encoded characters in iunreserved + * + * @param array $match PCRE match + * @return string Replacement + */ + protected function remove_iunreserved_percent_encoded($match) { + // As we just have valid percent encoded sequences we can just explode + // and ignore the first member of the returned array (an empty string). + $bytes = explode('%', $match[0]); + + // Initialize the new string (this is what will be returned) and that + // there are no bytes remaining in the current sequence (unsurprising + // at the first byte!). + $string = ''; + $remaining = 0; + + // Loop over each and every byte, and set $value to its value + for ($i = 1, $len = count($bytes); $i < $len; $i++) { + $value = hexdec($bytes[$i]); + + // If we're the first byte of sequence: + if (!$remaining) { + // Start position + $start = $i; + + // By default we are valid + $valid = true; + + // One byte sequence: + if ($value <= 0x7F) { + $character = $value; + $length = 1; + } + // Two byte sequence: + elseif (($value & 0xE0) === 0xC0) { + $character = ($value & 0x1F) << 6; + $length = 2; + $remaining = 1; + } + // Three byte sequence: + elseif (($value & 0xF0) === 0xE0) { + $character = ($value & 0x0F) << 12; + $length = 3; + $remaining = 2; + } + // Four byte sequence: + elseif (($value & 0xF8) === 0xF0) { + $character = ($value & 0x07) << 18; + $length = 4; + $remaining = 3; + } + // Invalid byte: + else { + $valid = false; + $remaining = 0; + } + } + // Continuation byte: + else { + // Check that the byte is valid, then add it to the character: + if (($value & 0xC0) === 0x80) { + $remaining--; + $character |= ($value & 0x3F) << ($remaining * 6); + } + // If it is invalid, count the sequence as invalid and reprocess the current byte as the start of a sequence: + else { + $valid = false; + $remaining = 0; + $i--; + } + } + + // If we've reached the end of the current byte sequence, append it to Unicode::$data + if (!$remaining) { + // Percent encode anything invalid or not in iunreserved + if ( + // Invalid sequences + !$valid + // Non-shortest form sequences are invalid + || $length > 1 && $character <= 0x7F + || $length > 2 && $character <= 0x7FF + || $length > 3 && $character <= 0xFFFF + // Outside of range of iunreserved codepoints + || $character < 0x2D + || $character > 0xEFFFD + // Noncharacters + || ($character & 0xFFFE) === 0xFFFE + || $character >= 0xFDD0 && $character <= 0xFDEF + // Everything else not in iunreserved (this is all BMP) + || $character === 0x2F + || $character > 0x39 && $character < 0x41 + || $character > 0x5A && $character < 0x61 + || $character > 0x7A && $character < 0x7E + || $character > 0x7E && $character < 0xA0 + || $character > 0xD7FF && $character < 0xF900 + ) { + for ($j = $start; $j <= $i; $j++) { + $string .= '%' . strtoupper($bytes[$j]); + } + } + else { + for ($j = $start; $j <= $i; $j++) { + $string .= chr(hexdec($bytes[$j])); + } + } + } + } + + // If we have any bytes left over they are invalid (i.e., we are + // mid-way through a multi-byte sequence) + if ($remaining) { + for ($j = $start; $j < $len; $j++) { + $string .= '%' . strtoupper($bytes[$j]); + } + } + + return $string; + } + + protected function scheme_normalization() { + if (isset($this->normalization[$this->scheme]['iuserinfo']) && $this->iuserinfo === $this->normalization[$this->scheme]['iuserinfo']) { + $this->iuserinfo = null; + } + if (isset($this->normalization[$this->scheme]['ihost']) && $this->ihost === $this->normalization[$this->scheme]['ihost']) { + $this->ihost = null; + } + if (isset($this->normalization[$this->scheme]['port']) && $this->port === $this->normalization[$this->scheme]['port']) { + $this->port = null; + } + if (isset($this->normalization[$this->scheme]['ipath']) && $this->ipath === $this->normalization[$this->scheme]['ipath']) { + $this->ipath = ''; + } + if (isset($this->ihost) && empty($this->ipath)) { + $this->ipath = '/'; + } + if (isset($this->normalization[$this->scheme]['iquery']) && $this->iquery === $this->normalization[$this->scheme]['iquery']) { + $this->iquery = null; + } + if (isset($this->normalization[$this->scheme]['ifragment']) && $this->ifragment === $this->normalization[$this->scheme]['ifragment']) { + $this->ifragment = null; + } + } + + /** + * Check if the object represents a valid IRI. This needs to be done on each + * call as some things change depending on another part of the IRI. + * + * @return bool + */ + public function is_valid() { + $isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null; + if ($this->ipath !== '' && + ( + $isauthority && $this->ipath[0] !== '/' || + ( + $this->scheme === null && + !$isauthority && + strpos($this->ipath, ':') !== false && + (strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/')) + ) + ) + ) { + return false; + } + + return true; + } + + /** + * Set the entire IRI. Returns true on success, false on failure (if there + * are any invalid characters). + * + * @param string $iri + * @return bool + */ + protected function set_iri($iri) { + static $cache; + if (!$cache) { + $cache = array(); + } + + if ($iri === null) { + return true; + } + if (isset($cache[$iri])) { + list($this->scheme, + $this->iuserinfo, + $this->ihost, + $this->port, + $this->ipath, + $this->iquery, + $this->ifragment, + $return) = $cache[$iri]; + return $return; + } + + $parsed = $this->parse_iri((string) $iri); + + $return = $this->set_scheme($parsed['scheme']) + && $this->set_authority($parsed['authority']) + && $this->set_path($parsed['path']) + && $this->set_query($parsed['query']) + && $this->set_fragment($parsed['fragment']); + + $cache[$iri] = array($this->scheme, + $this->iuserinfo, + $this->ihost, + $this->port, + $this->ipath, + $this->iquery, + $this->ifragment, + $return); + return $return; + } + + /** + * Set the scheme. Returns true on success, false on failure (if there are + * any invalid characters). + * + * @param string $scheme + * @return bool + */ + protected function set_scheme($scheme) { + if ($scheme === null) { + $this->scheme = null; + } + elseif (!preg_match('/^[A-Za-z][0-9A-Za-z+\-.]*$/', $scheme)) { + $this->scheme = null; + return false; + } + else { + $this->scheme = strtolower($scheme); + } + return true; + } + + /** + * Set the authority. Returns true on success, false on failure (if there are + * any invalid characters). + * + * @param string $authority + * @return bool + */ + protected function set_authority($authority) { + static $cache; + if (!$cache) { + $cache = array(); + } + + if ($authority === null) { + $this->iuserinfo = null; + $this->ihost = null; + $this->port = null; + return true; + } + if (isset($cache[$authority])) { + list($this->iuserinfo, + $this->ihost, + $this->port, + $return) = $cache[$authority]; + + return $return; + } + + $remaining = $authority; + if (($iuserinfo_end = strrpos($remaining, '@')) !== false) { + $iuserinfo = substr($remaining, 0, $iuserinfo_end); + $remaining = substr($remaining, $iuserinfo_end + 1); + } + else { + $iuserinfo = null; + } + if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false) { + $port = substr($remaining, $port_start + 1); + if ($port === false || $port === '') { + $port = null; + } + $remaining = substr($remaining, 0, $port_start); + } + else { + $port = null; + } + + $return = $this->set_userinfo($iuserinfo) && + $this->set_host($remaining) && + $this->set_port($port); + + $cache[$authority] = array($this->iuserinfo, + $this->ihost, + $this->port, + $return); + + return $return; + } + + /** + * Set the iuserinfo. + * + * @param string $iuserinfo + * @return bool + */ + protected function set_userinfo($iuserinfo) { + if ($iuserinfo === null) { + $this->iuserinfo = null; + } + else { + $this->iuserinfo = $this->replace_invalid_with_pct_encoding($iuserinfo, '!$&\'()*+,;=:'); + $this->scheme_normalization(); + } + + return true; + } + + /** + * Set the ihost. Returns true on success, false on failure (if there are + * any invalid characters). + * + * @param string $ihost + * @return bool + */ + protected function set_host($ihost) { + if ($ihost === null) { + $this->ihost = null; + return true; + } + if (substr($ihost, 0, 1) === '[' && substr($ihost, -1) === ']') { + if (Requests_IPv6::check_ipv6(substr($ihost, 1, -1))) { + $this->ihost = '[' . Requests_IPv6::compress(substr($ihost, 1, -1)) . ']'; + } + else { + $this->ihost = null; + return false; + } + } + else { + $ihost = $this->replace_invalid_with_pct_encoding($ihost, '!$&\'()*+,;='); + + // Lowercase, but ignore pct-encoded sections (as they should + // remain uppercase). This must be done after the previous step + // as that can add unescaped characters. + $position = 0; + $strlen = strlen($ihost); + while (($position += strcspn($ihost, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ%', $position)) < $strlen) { + if ($ihost[$position] === '%') { + $position += 3; + } + else { + $ihost[$position] = strtolower($ihost[$position]); + $position++; + } + } + + $this->ihost = $ihost; + } + + $this->scheme_normalization(); + + return true; + } + + /** + * Set the port. Returns true on success, false on failure (if there are + * any invalid characters). + * + * @param string $port + * @return bool + */ + protected function set_port($port) { + if ($port === null) { + $this->port = null; + return true; + } + + if (strspn($port, '0123456789') === strlen($port)) { + $this->port = (int) $port; + $this->scheme_normalization(); + return true; + } + + $this->port = null; + return false; + } + + /** + * Set the ipath. + * + * @param string $ipath + * @return bool + */ + protected function set_path($ipath) { + static $cache; + if (!$cache) { + $cache = array(); + } + + $ipath = (string) $ipath; + + if (isset($cache[$ipath])) { + $this->ipath = $cache[$ipath][(int) ($this->scheme !== null)]; + } + else { + $valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/'); + $removed = $this->remove_dot_segments($valid); + + $cache[$ipath] = array($valid, $removed); + $this->ipath = ($this->scheme !== null) ? $removed : $valid; + } + $this->scheme_normalization(); + return true; + } + + /** + * Set the iquery. + * + * @param string $iquery + * @return bool + */ + protected function set_query($iquery) { + if ($iquery === null) { + $this->iquery = null; + } + else { + $this->iquery = $this->replace_invalid_with_pct_encoding($iquery, '!$&\'()*+,;=:@/?', true); + $this->scheme_normalization(); + } + return true; + } + + /** + * Set the ifragment. + * + * @param string $ifragment + * @return bool + */ + protected function set_fragment($ifragment) { + if ($ifragment === null) { + $this->ifragment = null; + } + else { + $this->ifragment = $this->replace_invalid_with_pct_encoding($ifragment, '!$&\'()*+,;=:@/?'); + $this->scheme_normalization(); + } + return true; + } + + /** + * Convert an IRI to a URI (or parts thereof) + * + * @param string|bool IRI to convert (or false from {@see get_iri}) + * @return string|false URI if IRI is valid, false otherwise. + */ + protected function to_uri($string) { + if (!is_string($string)) { + return false; + } + + static $non_ascii; + if (!$non_ascii) { + $non_ascii = implode('', range("\x80", "\xFF")); + } + + $position = 0; + $strlen = strlen($string); + while (($position += strcspn($string, $non_ascii, $position)) < $strlen) { + $string = substr_replace($string, sprintf('%%%02X', ord($string[$position])), $position, 1); + $position += 3; + $strlen += 2; + } + + return $string; + } + + /** + * Get the complete IRI + * + * @return string + */ + protected function get_iri() { + if (!$this->is_valid()) { + return false; + } + + $iri = ''; + if ($this->scheme !== null) { + $iri .= $this->scheme . ':'; + } + if (($iauthority = $this->get_iauthority()) !== null) { + $iri .= '//' . $iauthority; + } + $iri .= $this->ipath; + if ($this->iquery !== null) { + $iri .= '?' . $this->iquery; + } + if ($this->ifragment !== null) { + $iri .= '#' . $this->ifragment; + } + + return $iri; + } + + /** + * Get the complete URI + * + * @return string + */ + protected function get_uri() { + return $this->to_uri($this->get_iri()); + } + + /** + * Get the complete iauthority + * + * @return string + */ + protected function get_iauthority() { + if ($this->iuserinfo === null && $this->ihost === null && $this->port === null) { + return null; + } + + $iauthority = ''; + if ($this->iuserinfo !== null) { + $iauthority .= $this->iuserinfo . '@'; + } + if ($this->ihost !== null) { + $iauthority .= $this->ihost; + } + if ($this->port !== null) { + $iauthority .= ':' . $this->port; + } + return $iauthority; + } + + /** + * Get the complete authority + * + * @return string + */ + protected function get_authority() { + $iauthority = $this->get_iauthority(); + if (is_string($iauthority)) { + return $this->to_uri($iauthority); + } + else { + return $iauthority; + } + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Proxy.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Proxy.php new file mode 100755 index 0000000..ac7c1d6 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Proxy.php @@ -0,0 +1,35 @@ +proxy = $args; + } + elseif (is_array($args)) { + if (count($args) == 1) { + list($this->proxy) = $args; + } + elseif (count($args) == 3) { + list($this->proxy, $this->user, $this->pass) = $args; + $this->use_authentication = true; + } + else { + throw new Requests_Exception('Invalid number of arguments', 'proxyhttpbadargs'); + } + } + } + + /** + * Register the necessary callbacks + * + * @since 1.6 + * @see curl_before_send + * @see fsockopen_remote_socket + * @see fsockopen_remote_host_path + * @see fsockopen_header + * @param Requests_Hooks $hooks Hook system + */ + public function register(Requests_Hooks &$hooks) { + $hooks->register('curl.before_send', array(&$this, 'curl_before_send')); + + $hooks->register('fsockopen.remote_socket', array(&$this, 'fsockopen_remote_socket')); + $hooks->register('fsockopen.remote_host_path', array(&$this, 'fsockopen_remote_host_path')); + if ($this->use_authentication) { + $hooks->register('fsockopen.after_headers', array(&$this, 'fsockopen_header')); + } + } + + /** + * Set cURL parameters before the data is sent + * + * @since 1.6 + * @param resource $handle cURL resource + */ + public function curl_before_send(&$handle) { + curl_setopt($handle, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); + curl_setopt($handle, CURLOPT_PROXY, $this->proxy); + + if ($this->use_authentication) { + curl_setopt($handle, CURLOPT_PROXYAUTH, CURLAUTH_ANY); + curl_setopt($handle, CURLOPT_PROXYUSERPWD, $this->get_auth_string()); + } + } + + /** + * Alter remote socket information before opening socket connection + * + * @since 1.6 + * @param string $remote_socket Socket connection string + */ + public function fsockopen_remote_socket(&$remote_socket) { + $remote_socket = $this->proxy; + } + + /** + * Alter remote path before getting stream data + * + * @since 1.6 + * @param string $path Path to send in HTTP request string ("GET ...") + * @param string $url Full URL we're requesting + */ + public function fsockopen_remote_host_path(&$path, $url) { + $path = $url; + } + + /** + * Add extra headers to the request before sending + * + * @since 1.6 + * @param string $out HTTP header string + */ + public function fsockopen_header(&$out) { + $out .= sprintf("Proxy-Authorization: Basic %s\r\n", base64_encode($this->get_auth_string())); + } + + /** + * Get the authentication string (user:pass) + * + * @since 1.6 + * @return string + */ + public function get_auth_string() { + return $this->user . ':' . $this->pass; + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Response.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Response.php new file mode 100755 index 0000000..3152fb6 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Response.php @@ -0,0 +1,121 @@ +headers = new Requests_Response_Headers(); + $this->cookies = new Requests_Cookie_Jar(); + } + + /** + * Response body + * + * @var string + */ + public $body = ''; + + /** + * Raw HTTP data from the transport + * + * @var string + */ + public $raw = ''; + + /** + * Headers, as an associative array + * + * @var Requests_Response_Headers Array-like object representing headers + */ + public $headers = array(); + + /** + * Status code, false if non-blocking + * + * @var integer|boolean + */ + public $status_code = false; + + /** + * Protocol version, false if non-blocking + * @var float|boolean + */ + public $protocol_version = false; + + /** + * Whether the request succeeded or not + * + * @var boolean + */ + public $success = false; + + /** + * Number of redirects the request used + * + * @var integer + */ + public $redirects = 0; + + /** + * URL requested + * + * @var string + */ + public $url = ''; + + /** + * Previous requests (from redirects) + * + * @var array Array of Requests_Response objects + */ + public $history = array(); + + /** + * Cookies from the request + * + * @var Requests_Cookie_Jar Array-like object representing a cookie jar + */ + public $cookies = array(); + + /** + * Is the response a redirect? + * + * @return boolean True if redirect (3xx status), false if not. + */ + public function is_redirect() { + $code = $this->status_code; + return in_array($code, array(300, 301, 302, 303, 307)) || $code > 307 && $code < 400; + } + + /** + * Throws an exception if the request was not successful + * + * @throws Requests_Exception If `$allow_redirects` is false, and code is 3xx (`response.no_redirects`) + * @throws Requests_Exception_HTTP On non-successful status code. Exception class corresponds to code (e.g. {@see Requests_Exception_HTTP_404}) + * @param boolean $allow_redirects Set to false to throw on a 3xx as well + */ + public function throw_for_status($allow_redirects = true) { + if ($this->is_redirect()) { + if (!$allow_redirects) { + throw new Requests_Exception('Redirection not allowed', 'response.no_redirects', $this); + } + } + elseif (!$this->success) { + $exception = Requests_Exception_HTTP::get_class($this->status_code); + throw new $exception(null, $this); + } + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Response/Headers.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Response/Headers.php new file mode 100755 index 0000000..cc6a208 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Response/Headers.php @@ -0,0 +1,98 @@ +data[$key])) { + return null; + } + + return $this->flatten($this->data[$key]); + } + + /** + * Set the given item + * + * @throws Requests_Exception On attempting to use dictionary as list (`invalidset`) + * + * @param string $key Item name + * @param string $value Item value + */ + public function offsetSet($key, $value) { + if ($key === null) { + throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset'); + } + + $key = strtolower($key); + + if (!isset($this->data[$key])) { + $this->data[$key] = array(); + } + + $this->data[$key][] = $value; + } + + /** + * Get all values for a given header + * + * @param string $key + * @return array Header values + */ + public function getValues($key) { + $key = strtolower($key); + if (!isset($this->data[$key])) { + return null; + } + + return $this->data[$key]; + } + + /** + * Flattens a value into a string + * + * Converts an array into a string by imploding values with a comma, as per + * RFC2616's rules for folding headers. + * + * @param string|array $value Value to flatten + * @return string Flattened value + */ + public function flatten($value) { + if (is_array($value)) { + $value = implode(',', $value); + } + + return $value; + } + + /** + * Get an iterator for the data + * + * Converts the internal + * @return ArrayIterator + */ + public function getIterator() { + return new Requests_Utility_FilteredIterator($this->data, array($this, 'flatten')); + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/SSL.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/SSL.php new file mode 100755 index 0000000..2b03768 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/SSL.php @@ -0,0 +1,152 @@ +useragent = 'X';` + * + * @var array + */ + public $options = array(); + + /** + * Create a new session + * + * @param string|null $url Base URL for requests + * @param array $headers Default headers for requests + * @param array $data Default data for requests + * @param array $options Default options for requests + */ + public function __construct($url = null, $headers = array(), $data = array(), $options = array()) { + $this->url = $url; + $this->headers = $headers; + $this->data = $data; + $this->options = $options; + + if (empty($this->options['cookies'])) { + $this->options['cookies'] = new Requests_Cookie_Jar(); + } + } + + /** + * Get a property's value + * + * @param string $key Property key + * @return mixed|null Property value, null if none found + */ + public function __get($key) { + if (isset($this->options[$key])) { + return $this->options[$key]; + } + + return null; + } + + /** + * Set a property's value + * + * @param string $key Property key + * @param mixed $value Property value + */ + public function __set($key, $value) { + $this->options[$key] = $value; + } + + /** + * Remove a property's value + * + * @param string $key Property key + */ + public function __isset($key) { + return isset($this->options[$key]); + } + + /** + * Remove a property's value + * + * @param string $key Property key + */ + public function __unset($key) { + if (isset($this->options[$key])) { + unset($this->options[$key]); + } + } + + /**#@+ + * @see request() + * @param string $url + * @param array $headers + * @param array $options + * @return Requests_Response + */ + /** + * Send a GET request + */ + public function get($url, $headers = array(), $options = array()) { + return $this->request($url, $headers, null, Requests::GET, $options); + } + + /** + * Send a HEAD request + */ + public function head($url, $headers = array(), $options = array()) { + return $this->request($url, $headers, null, Requests::HEAD, $options); + } + + /** + * Send a DELETE request + */ + public function delete($url, $headers = array(), $options = array()) { + return $this->request($url, $headers, null, Requests::DELETE, $options); + } + /**#@-*/ + + /**#@+ + * @see request() + * @param string $url + * @param array $headers + * @param array $data + * @param array $options + * @return Requests_Response + */ + /** + * Send a POST request + */ + public function post($url, $headers = array(), $data = array(), $options = array()) { + return $this->request($url, $headers, $data, Requests::POST, $options); + } + + /** + * Send a PUT request + */ + public function put($url, $headers = array(), $data = array(), $options = array()) { + return $this->request($url, $headers, $data, Requests::PUT, $options); + } + + /** + * Send a PATCH request + * + * Note: Unlike {@see post} and {@see put}, `$headers` is required, as the + * specification recommends that should send an ETag + * + * @link https://tools.ietf.org/html/rfc5789 + */ + public function patch($url, $headers, $data = array(), $options = array()) { + return $this->request($url, $headers, $data, Requests::PATCH, $options); + } + /**#@-*/ + + /** + * Main interface for HTTP requests + * + * This method initiates a request and sends it via a transport before + * parsing. + * + * @see Requests::request() + * + * @throws Requests_Exception On invalid URLs (`nonhttp`) + * + * @param string $url URL to request + * @param array $headers Extra headers to send with the request + * @param array|null $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests + * @param string $type HTTP request type (use Requests constants) + * @param array $options Options for the request (see {@see Requests::request}) + * @return Requests_Response + */ + public function request($url, $headers = array(), $data = array(), $type = Requests::GET, $options = array()) { + $request = $this->merge_request(compact('url', 'headers', 'data', 'options')); + + return Requests::request($request['url'], $request['headers'], $request['data'], $type, $request['options']); + } + + /** + * Send multiple HTTP requests simultaneously + * + * @see Requests::request_multiple() + * + * @param array $requests Requests data (see {@see Requests::request_multiple}) + * @param array $options Global and default options (see {@see Requests::request}) + * @return array Responses (either Requests_Response or a Requests_Exception object) + */ + public function request_multiple($requests, $options = array()) { + foreach ($requests as $key => $request) { + $requests[$key] = $this->merge_request($request, false); + } + + $options = array_merge($this->options, $options); + + // Disallow forcing the type, as that's a per request setting + unset($options['type']); + + return Requests::request_multiple($requests, $options); + } + + /** + * Merge a request's data with the default data + * + * @param array $request Request data (same form as {@see request_multiple}) + * @param boolean $merge_options Should we merge options as well? + * @return array Request data + */ + protected function merge_request($request, $merge_options = true) { + if ($this->url !== null) { + $request['url'] = Requests_IRI::absolutize($this->url, $request['url']); + $request['url'] = $request['url']->uri; + } + + if (empty($request['headers'])) { + $request['headers'] = array(); + } + $request['headers'] = array_merge($this->headers, $request['headers']); + + if (empty($request['data'])) { + if (is_array($this->data)) { + $request['data'] = $this->data; + } + } + elseif (is_array($request['data']) && is_array($this->data)) { + $request['data'] = array_merge($this->data, $request['data']); + } + + if ($merge_options !== false) { + $request['options'] = array_merge($this->options, $request['options']); + + // Disallow forcing the type, as that's a per request setting + unset($request['options']['type']); + } + + return $request; + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport.php new file mode 100755 index 0000000..7e4a262 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport.php @@ -0,0 +1,41 @@ +version = $curl['version_number']; + $this->handle = curl_init(); + + curl_setopt($this->handle, CURLOPT_HEADER, false); + curl_setopt($this->handle, CURLOPT_RETURNTRANSFER, 1); + if ($this->version >= self::CURL_7_10_5) { + curl_setopt($this->handle, CURLOPT_ENCODING, ''); + } + if (defined('CURLOPT_PROTOCOLS')) { + curl_setopt($this->handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); + } + if (defined('CURLOPT_REDIR_PROTOCOLS')) { + curl_setopt($this->handle, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); + } + } + + /** + * Destructor + */ + public function __destruct() { + if (is_resource($this->handle)) { + curl_close($this->handle); + } + } + + /** + * Perform a request + * + * @throws Requests_Exception On a cURL error (`curlerror`) + * + * @param string $url URL to request + * @param array $headers Associative array of request headers + * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD + * @param array $options Request options, see {@see Requests::response()} for documentation + * @return string Raw HTTP result + */ + public function request($url, $headers = array(), $data = array(), $options = array()) { + $this->hooks = $options['hooks']; + + $this->setup_handle($url, $headers, $data, $options); + + $options['hooks']->dispatch('curl.before_send', array(&$this->handle)); + + if ($options['filename'] !== false) { + $this->stream_handle = fopen($options['filename'], 'wb'); + } + + $this->response_data = ''; + $this->response_bytes = 0; + $this->response_byte_limit = false; + if ($options['max_bytes'] !== false) { + $this->response_byte_limit = $options['max_bytes']; + } + + if (isset($options['verify'])) { + if ($options['verify'] === false) { + curl_setopt($this->handle, CURLOPT_SSL_VERIFYHOST, 0); + curl_setopt($this->handle, CURLOPT_SSL_VERIFYPEER, 0); + } + elseif (is_string($options['verify'])) { + curl_setopt($this->handle, CURLOPT_CAINFO, $options['verify']); + } + } + + if (isset($options['verifyname']) && $options['verifyname'] === false) { + curl_setopt($this->handle, CURLOPT_SSL_VERIFYHOST, 0); + } + + curl_exec($this->handle); + $response = $this->response_data; + + $options['hooks']->dispatch('curl.after_send', array()); + + if (curl_errno($this->handle) === 23 || curl_errno($this->handle) === 61) { + // Reset encoding and try again + curl_setopt($this->handle, CURLOPT_ENCODING, 'none'); + + $this->response_data = ''; + $this->response_bytes = 0; + curl_exec($this->handle); + $response = $this->response_data; + } + + $this->process_response($response, $options); + + // Need to remove the $this reference from the curl handle. + // Otherwise Requests_Transport_cURL wont be garbage collected and the curl_close() will never be called. + curl_setopt($this->handle, CURLOPT_HEADERFUNCTION, null); + curl_setopt($this->handle, CURLOPT_WRITEFUNCTION, null); + + return $this->headers; + } + + /** + * Send multiple requests simultaneously + * + * @param array $requests Request data + * @param array $options Global options + * @return array Array of Requests_Response objects (may contain Requests_Exception or string responses as well) + */ + public function request_multiple($requests, $options) { + // If you're not requesting, we can't get any responses ¯\_(ツ)_/¯ + if (empty($requests)) { + return array(); + } + + $multihandle = curl_multi_init(); + $subrequests = array(); + $subhandles = array(); + + $class = get_class($this); + foreach ($requests as $id => $request) { + $subrequests[$id] = new $class(); + $subhandles[$id] = $subrequests[$id]->get_subrequest_handle($request['url'], $request['headers'], $request['data'], $request['options']); + $request['options']['hooks']->dispatch('curl.before_multi_add', array(&$subhandles[$id])); + curl_multi_add_handle($multihandle, $subhandles[$id]); + } + + $completed = 0; + $responses = array(); + + $request['options']['hooks']->dispatch('curl.before_multi_exec', array(&$multihandle)); + + do { + $active = false; + + do { + $status = curl_multi_exec($multihandle, $active); + } + while ($status === CURLM_CALL_MULTI_PERFORM); + + $to_process = array(); + + // Read the information as needed + while ($done = curl_multi_info_read($multihandle)) { + $key = array_search($done['handle'], $subhandles, true); + if (!isset($to_process[$key])) { + $to_process[$key] = $done; + } + } + + // Parse the finished requests before we start getting the new ones + foreach ($to_process as $key => $done) { + $options = $requests[$key]['options']; + if (CURLE_OK !== $done['result']) { + //get error string for handle. + $reason = curl_error($done['handle']); + $exception = new Requests_Exception_Transport_cURL( + $reason, + Requests_Exception_Transport_cURL::EASY, + $done['handle'], + $done['result'] + ); + $responses[$key] = $exception; + $options['hooks']->dispatch('transport.internal.parse_error', array(&$responses[$key], $requests[$key])); + } + else { + $responses[$key] = $subrequests[$key]->process_response($subrequests[$key]->response_data, $options); + + $options['hooks']->dispatch('transport.internal.parse_response', array(&$responses[$key], $requests[$key])); + } + + curl_multi_remove_handle($multihandle, $done['handle']); + curl_close($done['handle']); + + if (!is_string($responses[$key])) { + $options['hooks']->dispatch('multiple.request.complete', array(&$responses[$key], $key)); + } + $completed++; + } + } + while ($active || $completed < count($subrequests)); + + $request['options']['hooks']->dispatch('curl.after_multi_exec', array(&$multihandle)); + + curl_multi_close($multihandle); + + return $responses; + } + + /** + * Get the cURL handle for use in a multi-request + * + * @param string $url URL to request + * @param array $headers Associative array of request headers + * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD + * @param array $options Request options, see {@see Requests::response()} for documentation + * @return resource Subrequest's cURL handle + */ + public function &get_subrequest_handle($url, $headers, $data, $options) { + $this->setup_handle($url, $headers, $data, $options); + + if ($options['filename'] !== false) { + $this->stream_handle = fopen($options['filename'], 'wb'); + } + + $this->response_data = ''; + $this->response_bytes = 0; + $this->response_byte_limit = false; + if ($options['max_bytes'] !== false) { + $this->response_byte_limit = $options['max_bytes']; + } + $this->hooks = $options['hooks']; + + return $this->handle; + } + + /** + * Setup the cURL handle for the given data + * + * @param string $url URL to request + * @param array $headers Associative array of request headers + * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD + * @param array $options Request options, see {@see Requests::response()} for documentation + */ + protected function setup_handle($url, $headers, $data, $options) { + $options['hooks']->dispatch('curl.before_request', array(&$this->handle)); + + // Force closing the connection for old versions of cURL (<7.22). + if ( ! isset( $headers['Connection'] ) ) { + $headers['Connection'] = 'close'; + } + + $headers = Requests::flatten($headers); + + if (!empty($data)) { + $data_format = $options['data_format']; + + if ($data_format === 'query') { + $url = self::format_get($url, $data); + $data = ''; + } + elseif (!is_string($data)) { + $data = http_build_query($data, null, '&'); + } + } + + switch ($options['type']) { + case Requests::POST: + curl_setopt($this->handle, CURLOPT_POST, true); + curl_setopt($this->handle, CURLOPT_POSTFIELDS, $data); + break; + case Requests::HEAD: + curl_setopt($this->handle, CURLOPT_CUSTOMREQUEST, $options['type']); + curl_setopt($this->handle, CURLOPT_NOBODY, true); + break; + case Requests::TRACE: + curl_setopt($this->handle, CURLOPT_CUSTOMREQUEST, $options['type']); + break; + case Requests::PATCH: + case Requests::PUT: + case Requests::DELETE: + case Requests::OPTIONS: + default: + curl_setopt($this->handle, CURLOPT_CUSTOMREQUEST, $options['type']); + if (!empty($data)) { + curl_setopt($this->handle, CURLOPT_POSTFIELDS, $data); + } + } + + // cURL requires a minimum timeout of 1 second when using the system + // DNS resolver, as it uses `alarm()`, which is second resolution only. + // There's no way to detect which DNS resolver is being used from our + // end, so we need to round up regardless of the supplied timeout. + // + // https://github.com/curl/curl/blob/4f45240bc84a9aa648c8f7243be7b79e9f9323a5/lib/hostip.c#L606-L609 + $timeout = max($options['timeout'], 1); + + if (is_int($timeout) || $this->version < self::CURL_7_16_2) { + curl_setopt($this->handle, CURLOPT_TIMEOUT, ceil($timeout)); + } + else { + curl_setopt($this->handle, CURLOPT_TIMEOUT_MS, round($timeout * 1000)); + } + + if (is_int($options['connect_timeout']) || $this->version < self::CURL_7_16_2) { + curl_setopt($this->handle, CURLOPT_CONNECTTIMEOUT, ceil($options['connect_timeout'])); + } + else { + curl_setopt($this->handle, CURLOPT_CONNECTTIMEOUT_MS, round($options['connect_timeout'] * 1000)); + } + curl_setopt($this->handle, CURLOPT_URL, $url); + curl_setopt($this->handle, CURLOPT_REFERER, $url); + curl_setopt($this->handle, CURLOPT_USERAGENT, $options['useragent']); + if (!empty($headers)) { + curl_setopt($this->handle, CURLOPT_HTTPHEADER, $headers); + } + if ($options['protocol_version'] === 1.1) { + curl_setopt($this->handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); + } + else { + curl_setopt($this->handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); + } + + if (true === $options['blocking']) { + curl_setopt($this->handle, CURLOPT_HEADERFUNCTION, array(&$this, 'stream_headers')); + curl_setopt($this->handle, CURLOPT_WRITEFUNCTION, array(&$this, 'stream_body')); + curl_setopt($this->handle, CURLOPT_BUFFERSIZE, Requests::BUFFER_SIZE); + } + } + + /** + * Process a response + * + * @param string $response Response data from the body + * @param array $options Request options + * @return string HTTP response data including headers + */ + public function process_response($response, $options) { + if ($options['blocking'] === false) { + $fake_headers = ''; + $options['hooks']->dispatch('curl.after_request', array(&$fake_headers)); + return false; + } + if ($options['filename'] !== false) { + fclose($this->stream_handle); + $this->headers = trim($this->headers); + } + else { + $this->headers .= $response; + } + + if (curl_errno($this->handle)) { + $error = sprintf( + 'cURL error %s: %s', + curl_errno($this->handle), + curl_error($this->handle) + ); + throw new Requests_Exception($error, 'curlerror', $this->handle); + } + $this->info = curl_getinfo($this->handle); + + $options['hooks']->dispatch('curl.after_request', array(&$this->headers, &$this->info)); + return $this->headers; + } + + /** + * Collect the headers as they are received + * + * @param resource $handle cURL resource + * @param string $headers Header string + * @return integer Length of provided header + */ + public function stream_headers($handle, $headers) { + // Why do we do this? cURL will send both the final response and any + // interim responses, such as a 100 Continue. We don't need that. + // (We may want to keep this somewhere just in case) + if ($this->done_headers) { + $this->headers = ''; + $this->done_headers = false; + } + $this->headers .= $headers; + + if ($headers === "\r\n") { + $this->done_headers = true; + } + return strlen($headers); + } + + /** + * Collect data as it's received + * + * @since 1.6.1 + * + * @param resource $handle cURL resource + * @param string $data Body data + * @return integer Length of provided data + */ + public function stream_body($handle, $data) { + $this->hooks->dispatch('request.progress', array($data, $this->response_bytes, $this->response_byte_limit)); + $data_length = strlen($data); + + // Are we limiting the response size? + if ($this->response_byte_limit) { + if ($this->response_bytes === $this->response_byte_limit) { + // Already at maximum, move on + return $data_length; + } + + if (($this->response_bytes + $data_length) > $this->response_byte_limit) { + // Limit the length + $limited_length = ($this->response_byte_limit - $this->response_bytes); + $data = substr($data, 0, $limited_length); + } + } + + if ($this->stream_handle) { + fwrite($this->stream_handle, $data); + } + else { + $this->response_data .= $data; + } + + $this->response_bytes += strlen($data); + return $data_length; + } + + /** + * Format a URL given GET data + * + * @param string $url + * @param array|object $data Data to build query using, see {@see https://secure.php.net/http_build_query} + * @return string URL with data + */ + protected static function format_get($url, $data) { + if (!empty($data)) { + $url_parts = parse_url($url); + if (empty($url_parts['query'])) { + $query = $url_parts['query'] = ''; + } + else { + $query = $url_parts['query']; + } + + $query .= '&' . http_build_query($data, null, '&'); + $query = trim($query, '&'); + + if (empty($url_parts['query'])) { + $url .= '?' . $query; + } + else { + $url = str_replace($url_parts['query'], $query, $url); + } + } + return $url; + } + + /** + * Whether this transport is valid + * + * @codeCoverageIgnore + * @return boolean True if the transport is valid, false otherwise. + */ + public static function test($capabilities = array()) { + if (!function_exists('curl_init') || !function_exists('curl_exec')) { + return false; + } + + // If needed, check that our installed curl version supports SSL + if (isset($capabilities['ssl']) && $capabilities['ssl']) { + $curl_version = curl_version(); + if (!(CURL_VERSION_SSL & $curl_version['features'])) { + return false; + } + } + + return true; + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport/cacert.pem b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport/cacert.pem new file mode 100755 index 0000000..56ece1a --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport/cacert.pem @@ -0,0 +1,3554 @@ +## +## ca-bundle.crt -- Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Sat Dec 29 20:03:40 2012 +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1 +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## + +# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.87 $ $Date: 2012/12/29 16:32:45 $ + +EE Certification Centre Root CA +=============================== +-----BEGIN CERTIFICATE----- +MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG +EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy +dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw +MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB +UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy +ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM +TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 +rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw +93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN +P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ +MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF +BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj +xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM +lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u +uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU +3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM +dcGWxZ0= +-----END CERTIFICATE----- + +GTE CyberTrust Global Root +========================== +-----BEGIN CERTIFICATE----- +MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg +Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG +A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz +MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL +Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0 +IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u +sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql +HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID +AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW +M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF +NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ +-----END CERTIFICATE----- + +Thawte Server CA +================ +-----BEGIN CERTIFICATE----- +MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE +AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j +b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV +BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u +c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG +A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0 +ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl +/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7 +1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J +GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ +GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc= +-----END CERTIFICATE----- + +Thawte Premium Server CA +======================== +-----BEGIN CERTIFICATE----- +MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE +AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl +ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT +AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU +VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 +aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ +cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2 +aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh +Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/ +qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm +SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf +8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t +UCemDaYj+bvLpgcUQg== +-----END CERTIFICATE----- + +Equifax Secure CA +================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE +ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT +B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR +fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW +8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE +CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS +spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 +zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB +BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 +70+sB3c4 +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 1 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy +MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE +NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i +o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq +kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4 +RbyhkwS7hp86W0N6w4pl +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 3 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy +MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD +VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS +xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi +up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1 +mPnHfxsb1gYgAlihw6ID +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 +f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol +hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA +TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah +WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf +Tqj/ZA1k +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO +FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71 +lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT +1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD +Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9 +-----END CERTIFICATE----- + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +GlobalSign Root CA - R2 +======================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 +ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp +s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN +S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL +TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C +ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i +YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN +BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp +9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu +01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 +9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +ValiCert Class 1 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy +MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi +GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm +DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG +lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX +icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP +Orf1LXLI +-----END CERTIFICATE----- + +ValiCert Class 2 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC +CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf +ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ +SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV +UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8 +W9ViH0Pd +-----END CERTIFICATE----- + +RSA Root Certificate 1 +====================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td +3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H +BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs +3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF +V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r +on+jjBXu +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 +EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc +cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw +EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj +055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f +j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 +xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa +t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +Verisign Class 4 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS +tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM +8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW +Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX +Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt +mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm +fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd +RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG +UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== +-----END CERTIFICATE----- + +Entrust.net Secure Server CA +============================ +-----BEGIN CERTIFICATE----- +MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg +cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl +ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG +A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi +eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p +dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ +aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5 +gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw +ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw +CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l +dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF +bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu +dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw +NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow +HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA +BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN +Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9 +n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC +AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER +gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B +AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo +oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS +o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z +2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX +OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ== +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +Equifax Secure Global eBusiness CA +================================== +-----BEGIN CERTIFICATE----- +MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp +bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx +HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds +b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV +PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN +qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn +hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j +BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs +MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN +I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY +NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 1 +============================= +-----BEGIN CERTIFICATE----- +MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB +LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE +ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz +IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ +1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a +IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk +MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW +Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF +AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5 +lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+ +KpYrtWKmpj29f5JZzVoqgrI3eQ== +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 2 +============================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE +ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y +MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT +DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn +2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5 +BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx +JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e +uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1 +jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia +78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm +V+GRMOrN +-----END CERTIFICATE----- + +AddTrust Low-Value Services Root +================================ +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU +cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw +CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO +ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 +54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr +oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 +Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui +GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w +HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT +RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw +HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt +ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph +iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr +mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj +ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- + +AddTrust External Root +====================== +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +AddTrust Public Services Root +============================= +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU +cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ +BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l +dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu +nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i +d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG +Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw +HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G +A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G +A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 +JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL ++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao +GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 +Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H +EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= +-----END CERTIFICATE----- + +AddTrust Qualified Certificates Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU +cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx +CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ +IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx +64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 +KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o +L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR +wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU +MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE +BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y +azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG +GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X +dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze +RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB +iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +RSA Security 2048 v3 +==================== +-----BEGIN CERTIFICATE----- +MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK +ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy +MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb +BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 +Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb +WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH +KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP ++Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ +MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E +FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY +v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj +0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj +VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 +nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA +pKnXwiJPZ9d37CAFYd4= +-----END CERTIFICATE----- + +GeoTrust Global CA +================== +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw +MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo +BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet +8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc +T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU +vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk +DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q +zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 +d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 +mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p +XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm +Mw== +-----END CERTIFICATE----- + +GeoTrust Global CA 2 +==================== +-----BEGIN CERTIFICATE----- +MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw +MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ +NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k +LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA +Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b +HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH +K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 +srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh +ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL +OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC +x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF +H4z1Ir+rzoPz4iIprn2DQKi6bA== +-----END CERTIFICATE----- + +GeoTrust Universal CA +===================== +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 +MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu +Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t +JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e +RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs +7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d +8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V +qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga +Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB +Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu +KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 +ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 +XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 +qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL +oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK +xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF +KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 +DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK +xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU +p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI +P/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +GeoTrust Universal CA 2 +======================= +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 +MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg +SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 +DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 +j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q +JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a +QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 +WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP +20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn +ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC +SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG +8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 ++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E +BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ +4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ +mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq +A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg +Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP +pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d +FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp +gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm +X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +America Online Root Certification Authority 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG +v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z +DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh +sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP +8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z +o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf +GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF +VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft +3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g +Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds +sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 +-----END CERTIFICATE----- + +America Online Root Certification Authority 2 +============================================= +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en +fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8 +f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO +qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN +RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0 +gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn +6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid +FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6 +Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj +B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op +aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY +T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p ++DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg +JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy +zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO +ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh +1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf +GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff +Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP +cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk= +-----END CERTIFICATE----- + +Visa eCommerce Root +=================== +-----BEGIN CERTIFICATE----- +MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG +EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug +QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 +WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm +VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv +bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL +F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b +RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 +TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI +/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs +GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG +MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc +CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW +YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz +zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu +YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt +398znM/jra6O1I7mT1GvFpLgXPYHDw== +-----END CERTIFICATE----- + +Certum Root CA +============== +-----BEGIN CERTIFICATE----- +MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK +ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla +Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u +by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x +wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL +kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ +89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K +Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P +NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ +GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg +GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ +0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS +qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +Comodo Secure Services root +=========================== +-----BEGIN CERTIFICATE----- +MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw +MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu +Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi +BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP +9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc +rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC +oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V +p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E +FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj +YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm +aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm +4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj +Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL +DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw +pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H +RR3B7Hzs/Sk= +-----END CERTIFICATE----- + +Comodo Trusted Services root +============================ +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw +MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h +bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw +IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 +3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y +/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 +juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS +ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud +DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp +ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl +cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw +uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 +pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA +BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l +R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O +9y5Xt5hwXsjEeLBi +-----END CERTIFICATE----- + +QuoVadis Root CA +================ +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE +ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz +MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp +cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD +EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk +J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL +F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL +YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen +AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w +PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y +ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 +MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW +Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu +BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw +FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 +tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo +fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul +LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x +gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi +5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi +5nrQNiOKSnQ2+Q== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +Sonera Class 2 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw +NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 +/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT +dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG +f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P +tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH +nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT +XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt +0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI +cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph +Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx +EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH +llpwrN9M +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA +============================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE +ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w +HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh +bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt +vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P +jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca +C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth +vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6 +22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV +HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v +dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN +BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR +EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw +MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y +nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR +iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== +-----END CERTIFICATE----- + +TDC Internet Root CA +==================== +-----BEGIN CERTIFICATE----- +MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE +ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx +NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu +ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j +xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL +znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc +5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6 +otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI +AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM +VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM +MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC +AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe +UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G +CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m +gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+ +2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb +O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU +Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l +-----END CERTIFICATE----- + +UTN DATACorp SGC Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ +BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa +MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w +HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy +dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys +raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo +wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA +9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv +33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud +DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9 +BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD +LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3 +DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft +Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0 +I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx +EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP +DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI +-----END CERTIFICATE----- + +UTN USERFirst Hardware Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd +BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx +OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 +eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz +ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI +wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd +tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 +i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf +Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw +gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF +lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF +UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF +BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW +XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 +lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn +iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 +nfhmqA== +-----END CERTIFICATE----- + +Camerfirma Chambers of Commerce Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx +NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp +cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn +MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC +AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU +xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH +NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW +DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV +d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud +EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v +cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P +AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh +bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD +VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz +aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi +fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD +L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN +UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n +ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 +erfutGWaIZDgqtCYvDi1czyL+Nw= +-----END CERTIFICATE----- + +Camerfirma Global Chambersign Root +================================== +-----BEGIN CERTIFICATE----- +MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx +NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt +YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg +MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw +ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J +1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O +by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl +6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c +8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ +BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j +aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B +Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj +aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y +ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh +bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA +PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y +gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ +PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 +IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes +t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== +-----END CERTIFICATE----- + +NetLock Notary (Class A) Root +============================= +-----BEGIN CERTIFICATE----- +MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI +EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j +ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX +DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH +EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD +VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz +cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM +D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ +z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC +/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7 +tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6 +4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG +A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC +Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv +bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu +IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn +LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0 +ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz +IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh +IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu +b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh +bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg +Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp +bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5 +ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP +ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB +CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr +KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM +8CgHrTwXZoi1/baI +-----END CERTIFICATE----- + +NetLock Business (Class B) Root +=============================== +-----BEGIN CERTIFICATE----- +MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg +VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD +VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv +bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg +VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S +o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr +1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV +HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ +RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh +dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0 +ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv +c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg +YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh +c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz +Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA +bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl +IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2 +YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj +cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM +43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR +stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI +-----END CERTIFICATE----- + +NetLock Express (Class C) Root +============================== +-----BEGIN CERTIFICATE----- +MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD +KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ +BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j +ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB +jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z +W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63 +euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw +DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN +RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn +YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB +IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i +aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0 +ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs +ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo +dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y +emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k +IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ +UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg +YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2 +xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW +gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A== +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE +FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 +Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj +YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH +AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw +Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg +U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 +LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh +cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT +dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC +AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh +3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm +vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk +fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 +fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ +EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq +yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl +1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ +lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro +g14= +-----END CERTIFICATE----- + +Taiwan GRCA +=========== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG +EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X +DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv +dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN +w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 +BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O +1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO +htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov +J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 +Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t +B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB +O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 +lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV +HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 +09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj +Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 +Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU +D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz +DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk +Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk +7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ +CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy ++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS +-----END CERTIFICATE----- + +Firmaprofesional Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT +GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp +Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA +ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL +MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT +OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2 +ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V +j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH +lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf +3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8 +NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww +KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG +AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD +ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq +u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf +wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm +7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG +VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA= +-----END CERTIFICATE----- + +Wells Fargo Root CA +=================== +-----BEGIN CERTIFICATE----- +MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl +bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv +MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX +x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3 +E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5 +OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j +sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj +YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF +BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD +ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv +m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R +OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx +x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023 +tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s= +-----END CERTIFICATE----- + +Swisscom Root CA 1 +================== +-----BEGIN CERTIFICATE----- +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 +NY6E0F/6MBr1mmz0DlP5OlvRHA== +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +Certplus Class 2 Primary CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE +BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN +OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy +dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR +5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ +Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO +YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e +e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME +CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ +YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t +L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD +P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R +TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ +7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW +//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 +l7+ijrRU +-----END CERTIFICATE----- + +DST Root CA X3 +============== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK +ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X +DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 +cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT +rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 +UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy +xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d +utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ +MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug +dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE +GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw +RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS +fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +DST ACES CA X6 +============== +-----BEGIN CERTIFICATE----- +MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT +MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha +MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE +CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI +DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa +pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow +GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy +MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu +Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy +dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU +CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 +5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t +Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq +nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs +vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 +oKfN5XozNmr6mis= +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 1 +============================================== +-----BEGIN CERTIFICATE----- +MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP +MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0 +acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx +MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg +U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB +TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC +aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX +yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i +Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ +8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4 +W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME +BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46 +sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE +q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy +B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY +nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 2 +============================================== +-----BEGIN CERTIFICATE----- +MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP +MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg +QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN +MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr +dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G +A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls +acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe +LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI +x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g +QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr +5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB +AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt +Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 +Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+ +hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P +9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5 +UrbnBEI= +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN +b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 +nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge +RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt +tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI +hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K +Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN +NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa +Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG +1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +thawte Primary Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 +MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg +SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv +KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT +FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs +oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ +1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc +q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K +aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p +afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF +AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE +uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 +jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH +z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G5 +============================================================ +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln +biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh +dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz +j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD +Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ +Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r +fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv +Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG +SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ +X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE +KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC +Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE +ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +WellsSecure Public Root Certificate Authority +============================================= +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM +F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw +NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl +bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD +VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 +iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 +i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 +bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB +K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB +AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu +cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm +lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB +i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww +GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI +K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 +bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj +qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es +E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ +tylv2G0xffX8oRAHh84vWdw+WNs= +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +IGC/A +===== +-----BEGIN CERTIFICATE----- +MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD +VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE +Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy +MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI +EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT +STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2 +TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW +So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy +HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd +frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ +tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB +egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC +iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK +q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q +MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg +Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI +lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF +0mBWWg== +-----END CERTIFICATE----- + +Security Communication EV RootCA1 +================================= +-----BEGIN CERTIFICATE----- +MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE +BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl +Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO +/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX +WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z +ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4 +bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK +9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG +SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm +iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG +Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW +mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW +T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GA CA +=============================== +-----BEGIN CERTIFICATE----- +MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE +BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG +A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH +bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD +VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw +IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 +IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 +Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg +Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD +d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ +/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R +LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm +MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 ++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa +hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY +okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA +========================= +-----BEGIN CERTIFICATE----- +MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE +BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL +EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0 +MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz +dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT +GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG +d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N +oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc +QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ +PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb +MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG +IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD +VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3 +LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A +dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn +AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA +4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg +AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA +egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6 +Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO +PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv +c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h +cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw +IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT +WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV +MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER +MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp +Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal +HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT +nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE +aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a +86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK +yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB +S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +AC Ra\xC3\xADz Certic\xC3\xA1mara S.A. +====================================== +-----BEGIN CERTIFICATE----- +MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT +AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg +LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w +HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+ +U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh +IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN +yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU +2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3 +4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP +2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm +8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf +HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa +Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK +5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b +czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g +ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF +BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug +cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf +AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX +EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v +/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3 +MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4 +3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk +eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f +/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h +RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU +Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ== +-----END CERTIFICATE----- + +TC TrustCenter Class 2 CA II +============================ +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy +IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw +MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 +c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE +AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw +IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2 +xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ +Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u +SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB +7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 +Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU +cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i +SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G +dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ +KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj +TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP +JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk +vQ== +-----END CERTIFICATE----- + +TC TrustCenter Class 3 CA II +============================ +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy +IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw +MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 +c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE +AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W +yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo +6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ +uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk +2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB +7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 +Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU +cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i +SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE +O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8 +yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9 +IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal +092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc +5A== +-----END CERTIFICATE----- + +TC TrustCenter Universal CA I +============================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy +IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN +MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg +VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw +JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC +qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv +xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw +ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O +gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j +BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG +1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy +vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3 +ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT +ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a +7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY +-----END CERTIFICATE----- + +Deutsche Telekom Root CA 2 +========================== +-----BEGIN CERTIFICATE----- +MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT +RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG +A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 +MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G +A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS +b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 +bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI +KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY +AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK +Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV +jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV +HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr +E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy +zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 +rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G +dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU +Cm26OWMohpLzGITY+9HPBVZkVw== +-----END CERTIFICATE----- + +ComSign Secured CA +================== +-----BEGIN CERTIFICATE----- +MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE +AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w +NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD +QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs +49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH +7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB +kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1 +9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw +AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t +U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA +j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC +AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a +BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp +FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP +51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz +OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw== +-----END CERTIFICATE----- + +Cybertrust Global Root +====================== +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li +ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 +MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD +ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA ++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW +0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL +AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin +89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT +8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 +MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G +A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO +lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi +5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 +hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T +X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3 +============================================================================================================================= +-----BEGIN CERTIFICATE----- +MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH +DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q +aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry +b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV +BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg +S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4 +MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl +IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF +n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl +IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft +dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl +cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO +Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1 +xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR +6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL +hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd +BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4 +N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT +y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh +LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M +dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI= +-----END CERTIFICATE----- + +Buypass Class 2 CA 1 +==================== +-----BEGIN CERTIFICATE----- +MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2 +MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh +c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M +cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83 +0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4 +0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R +uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P +AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV +1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt +7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2 +fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w +wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho +-----END CERTIFICATE----- + +Buypass Class 3 CA 1 +==================== +-----BEGIN CERTIFICATE----- +MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1 +MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh +c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx +ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0 +n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia +AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c +1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P +AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7 +pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA +EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5 +htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj +el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915 +-----END CERTIFICATE----- + +EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 +========================================================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +CNNIC ROOT +========== +-----BEGIN CERTIFICATE----- +MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE +ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw +OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD +o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz +VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT +VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or +czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK +y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC +wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S +lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5 +Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM +O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8 +BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2 +G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m +mxE= +-----END CERTIFICATE----- + +ApplicationCA - Japanese Government +=================================== +-----BEGIN CERTIFICATE----- +MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT +SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw +MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl +cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4 +fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN +wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE +jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu +nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU +WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV +BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD +vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs +o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g +/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD +io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW +dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL +rosot4LKGAfmt1t06SAZf7IbiVQ= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G3 +============================================= +-----BEGIN CERTIFICATE----- +MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE +BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 +IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz +NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo +YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT +LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j +K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE +c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C +IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu +dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr +2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 +cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE +Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD +AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s +t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt +-----END CERTIFICATE----- + +thawte Primary Root CA - G2 +=========================== +-----BEGIN CERTIFICATE----- +MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC +VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu +IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg +Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV +MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG +b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt +IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS +LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 +8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU +mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN +G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K +rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== +-----END CERTIFICATE----- + +thawte Primary Root CA - G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w +ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh +d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD +VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG +A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At +P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC ++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY +7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW +vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ +KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK +A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu +t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC +8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm +er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G2 +============================================= +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu +Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 +OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg +MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl +b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG +BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc +KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ +EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m +ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 +npaqBA+K +-----END CERTIFICATE----- + +VeriSign Universal Root Certification Authority +=============================================== +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj +1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP +MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 +9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I +AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR +tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G +CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O +a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 +Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx +Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx +P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P +wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 +mJO37M2CYfE45k+XmCpajQ== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G4 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC +VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 +b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz +ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU +cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo +b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 +Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz +rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw +HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u +Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD +A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx +AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) FÅ‘tanúsítvány +============================================ +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G2 +================================== +-----BEGIN CERTIFICATE----- +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 +66+KAQ== +-----END CERTIFICATE----- + +CA Disig +======== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK +QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw +MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz +bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm +GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD +Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo +hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt +ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w +gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P +AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz +aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff +ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa +BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t +WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3 +mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/ +CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K +ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA +4Z7CRneC9VkGjCFMhwnN5ag= +-----END CERTIFICATE----- + +Juur-SK +======= +-----BEGIN CERTIFICATE----- +MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA +c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw +DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG +SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy +aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf +TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC ++Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw +UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa +Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF +MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD +HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh +AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA +cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr +AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw +cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE +FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G +A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo +ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL +abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678 +IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh +Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2 +yyqcjg== +-----END CERTIFICATE----- + +Hongkong Post Root CA 1 +======================= +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT +DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx +NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n +IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 +ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr +auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh +qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY +V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV +HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i +h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio +l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei +IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps +T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT +c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +ACEDICOM Root +============= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 +f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol +hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky +CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX +bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/ +D/xwzoiQ +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi +=================================================== +-----BEGIN CERTIFICATE----- +MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG +EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz +ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3 +MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0 +cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u +aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY +8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y +jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI +JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk +9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD +AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG +SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d +F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq +D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4 +Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq +fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +TC TrustCenter Universal CA III +=============================== +-----BEGIN CERTIFICATE----- +MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy +IFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAe +Fw0wOTA5MDkwODE1MjdaFw0yOTEyMzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNU +QyBUcnVzdENlbnRlciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0Ex +KDAmBgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF5+cvAqBNLaT6hdqbJYUt +QCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYvDIRlzg9uwliT6CwLOunBjvvya8o84pxO +juT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8vzArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+Eut +CHnNaYlAJ/Uqwa1D7KRTyGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1 +M4BDj5yjdipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBhMB8G +A1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI4jANBgkqhkiG9w0BAQUFAAOCAQEA +g8ev6n9NCjw5sWi+e22JLumzCecYV42FmhfzdkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+ +KGwWaODIl0YgoGhnYIg5IFHYaAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhK +BgePxLcHsU0GDeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV +CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPHLQNjO9Po5KIq +woIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg== +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud +EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH +DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA +bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx +ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx +51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk +R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP +T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f +Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl +osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR +crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR +saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD +KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi +6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Chambers of Commerce Root - 2008 +================================ +-----BEGIN CERTIFICATE----- +MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy +Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl +ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF +EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl +cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA +XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj +h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ +ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk +NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g +D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 +lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ +0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj +ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 +EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI +G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ +BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh +bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh +bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC +CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH +AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 +wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH +3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU +RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 +M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 +YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF +9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK +zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG +nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg +OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ +-----END CERTIFICATE----- + +Global Chambersign Root - 2008 +============================== +-----BEGIN CERTIFICATE----- +MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx +NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg +Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ +QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD +aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf +VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf +XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 +ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB +/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA +TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M +H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe +Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF +HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh +wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB +AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT +BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE +BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm +aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm +aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp +1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 +dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG +/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 +ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s +dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg +9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH +foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du +qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr +P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq +c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z +09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +Certinomis - Autorité Racine +============================= +-----BEGIN CERTIFICATE----- +MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK +Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg +LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG +A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw +JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa +wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly +Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw +2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N +jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q +c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC +lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb +xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g +530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna +4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ +KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x +WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva +R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40 +nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B +CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv +JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE +qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b +WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE +wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/ +vgt2Fl43N+bYdJeimUV5 +-----END CERTIFICATE----- + +Root CA Generalitat Valenciana +============================== +-----BEGIN CERTIFICATE----- +MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE +ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290 +IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3 +WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE +CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2 +F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B +ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ +D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte +JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB +AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n +dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB +ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl +AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA +YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy +AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA +aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt +AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA +YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu +AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA +OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0 +dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV +BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G +A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S +b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh +TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz +Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63 +NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH +iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt ++GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM= +-----END CERTIFICATE----- + +A-Trust-nQual-03 +================ +-----BEGIN CERTIFICATE----- +MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE +Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy +a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R +dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw +RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0 +ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1 +c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA +zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n +yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE +SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4 +iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V +cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV +eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40 +ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr +sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd +JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS +mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6 +ahq97BvIxYSazQ== +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +EC-ACC +====== +-----BEGIN CERTIFICATE----- +MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE +BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w +ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD +VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE +CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT +BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 +MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt +SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl +Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh +cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK +w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT +ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 +HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a +E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw +0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD +VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 +Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l +dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ +lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa +Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe +l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 +E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D +5EI= +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2011 +======================================================= +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT +O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y +aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT +AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo +IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI +1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa +71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u +8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH +3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ +MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 +MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu +b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt +XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD +/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N +7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Trustis FPS Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 +IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV +BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ +RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk +H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa +cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt +o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA +AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd +BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c +GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC +yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P +8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV +l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl +iB6XzCGcKQENZetX2fNXlrtIzYE= +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ +Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0 +dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu +c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv +bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0 +aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t +L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG +cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5 +fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm +N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN +Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T +tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX +e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA +2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs +HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE +JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib +D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8= +-----END CERTIFICATE----- + +StartCom Certification Authority G2 +=================================== +-----BEGIN CERTIFICATE----- +MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE +ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O +o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG +4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi +Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul +Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs +O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H +vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L +nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS +FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa +z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ +KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K +2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk +J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+ +JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG +/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc +nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld +blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc +l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm +7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm +obp573PYtlNXLfbQ4ddI +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport/fsockopen.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport/fsockopen.php new file mode 100755 index 0000000..21cb56d --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Transport/fsockopen.php @@ -0,0 +1,444 @@ +dispatch('fsockopen.before_request'); + + $url_parts = parse_url($url); + if (empty($url_parts)) { + throw new Requests_Exception('Invalid URL.', 'invalidurl', $url); + } + $host = $url_parts['host']; + $context = stream_context_create(); + $verifyname = false; + $case_insensitive_headers = new Requests_Utility_CaseInsensitiveDictionary($headers); + + // HTTPS support + if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https') { + $remote_socket = 'ssl://' . $host; + if (!isset($url_parts['port'])) { + $url_parts['port'] = 443; + } + + $context_options = array( + 'verify_peer' => true, + // 'CN_match' => $host, + 'capture_peer_cert' => true + ); + $verifyname = true; + + // SNI, if enabled (OpenSSL >=0.9.8j) + if (defined('OPENSSL_TLSEXT_SERVER_NAME') && OPENSSL_TLSEXT_SERVER_NAME) { + $context_options['SNI_enabled'] = true; + if (isset($options['verifyname']) && $options['verifyname'] === false) { + $context_options['SNI_enabled'] = false; + } + } + + if (isset($options['verify'])) { + if ($options['verify'] === false) { + $context_options['verify_peer'] = false; + } + elseif (is_string($options['verify'])) { + $context_options['cafile'] = $options['verify']; + } + } + + if (isset($options['verifyname']) && $options['verifyname'] === false) { + $context_options['verify_peer_name'] = false; + $verifyname = false; + } + + stream_context_set_option($context, array('ssl' => $context_options)); + } + else { + $remote_socket = 'tcp://' . $host; + } + + $this->max_bytes = $options['max_bytes']; + + if (!isset($url_parts['port'])) { + $url_parts['port'] = 80; + } + $remote_socket .= ':' . $url_parts['port']; + + set_error_handler(array($this, 'connect_error_handler'), E_WARNING | E_NOTICE); + + $options['hooks']->dispatch('fsockopen.remote_socket', array(&$remote_socket)); + + $socket = stream_socket_client($remote_socket, $errno, $errstr, ceil($options['connect_timeout']), STREAM_CLIENT_CONNECT, $context); + + restore_error_handler(); + + if ($verifyname && !$this->verify_certificate_from_context($host, $context)) { + throw new Requests_Exception('SSL certificate did not match the requested domain name', 'ssl.no_match'); + } + + if (!$socket) { + if ($errno === 0) { + // Connection issue + throw new Requests_Exception(rtrim($this->connect_error), 'fsockopen.connect_error'); + } + + throw new Requests_Exception($errstr, 'fsockopenerror', null, $errno); + } + + $data_format = $options['data_format']; + + if ($data_format === 'query') { + $path = self::format_get($url_parts, $data); + $data = ''; + } + else { + $path = self::format_get($url_parts, array()); + } + + $options['hooks']->dispatch('fsockopen.remote_host_path', array(&$path, $url)); + + $request_body = ''; + $out = sprintf("%s %s HTTP/%.1f\r\n", $options['type'], $path, $options['protocol_version']); + + if ($options['type'] !== Requests::TRACE) { + if (is_array($data)) { + $request_body = http_build_query($data, null, '&'); + } + else { + $request_body = $data; + } + + if (!empty($data)) { + if (!isset($case_insensitive_headers['Content-Length'])) { + $headers['Content-Length'] = strlen($request_body); + } + + if (!isset($case_insensitive_headers['Content-Type'])) { + $headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; + } + } + } + + if (!isset($case_insensitive_headers['Host'])) { + $out .= sprintf('Host: %s', $url_parts['host']); + + if (( 'http' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 80 ) || ( 'https' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 443 )) { + $out .= ':' . $url_parts['port']; + } + $out .= "\r\n"; + } + + if (!isset($case_insensitive_headers['User-Agent'])) { + $out .= sprintf("User-Agent: %s\r\n", $options['useragent']); + } + + $accept_encoding = $this->accept_encoding(); + if (!isset($case_insensitive_headers['Accept-Encoding']) && !empty($accept_encoding)) { + $out .= sprintf("Accept-Encoding: %s\r\n", $accept_encoding); + } + + $headers = Requests::flatten($headers); + + if (!empty($headers)) { + $out .= implode($headers, "\r\n") . "\r\n"; + } + + $options['hooks']->dispatch('fsockopen.after_headers', array(&$out)); + + if (substr($out, -2) !== "\r\n") { + $out .= "\r\n"; + } + + if (!isset($case_insensitive_headers['Connection'])) { + $out .= "Connection: Close\r\n"; + } + + $out .= "\r\n" . $request_body; + + $options['hooks']->dispatch('fsockopen.before_send', array(&$out)); + + fwrite($socket, $out); + $options['hooks']->dispatch('fsockopen.after_send', array($out)); + + if (!$options['blocking']) { + fclose($socket); + $fake_headers = ''; + $options['hooks']->dispatch('fsockopen.after_request', array(&$fake_headers)); + return ''; + } + + $timeout_sec = (int) floor($options['timeout']); + if ($timeout_sec == $options['timeout']) { + $timeout_msec = 0; + } + else { + $timeout_msec = self::SECOND_IN_MICROSECONDS * $options['timeout'] % self::SECOND_IN_MICROSECONDS; + } + stream_set_timeout($socket, $timeout_sec, $timeout_msec); + + $response = $body = $headers = ''; + $this->info = stream_get_meta_data($socket); + $size = 0; + $doingbody = false; + $download = false; + if ($options['filename']) { + $download = fopen($options['filename'], 'wb'); + } + + while (!feof($socket)) { + $this->info = stream_get_meta_data($socket); + if ($this->info['timed_out']) { + throw new Requests_Exception('fsocket timed out', 'timeout'); + } + + $block = fread($socket, Requests::BUFFER_SIZE); + if (!$doingbody) { + $response .= $block; + if (strpos($response, "\r\n\r\n")) { + list($headers, $block) = explode("\r\n\r\n", $response, 2); + $doingbody = true; + } + } + + // Are we in body mode now? + if ($doingbody) { + $options['hooks']->dispatch('request.progress', array($block, $size, $this->max_bytes)); + $data_length = strlen($block); + if ($this->max_bytes) { + // Have we already hit a limit? + if ($size === $this->max_bytes) { + continue; + } + if (($size + $data_length) > $this->max_bytes) { + // Limit the length + $limited_length = ($this->max_bytes - $size); + $block = substr($block, 0, $limited_length); + } + } + + $size += strlen($block); + if ($download) { + fwrite($download, $block); + } + else { + $body .= $block; + } + } + } + $this->headers = $headers; + + if ($download) { + fclose($download); + } + else { + $this->headers .= "\r\n\r\n" . $body; + } + fclose($socket); + + $options['hooks']->dispatch('fsockopen.after_request', array(&$this->headers, &$this->info)); + return $this->headers; + } + + /** + * Send multiple requests simultaneously + * + * @param array $requests Request data (array of 'url', 'headers', 'data', 'options') as per {@see Requests_Transport::request} + * @param array $options Global options, see {@see Requests::response()} for documentation + * @return array Array of Requests_Response objects (may contain Requests_Exception or string responses as well) + */ + public function request_multiple($requests, $options) { + $responses = array(); + $class = get_class($this); + foreach ($requests as $id => $request) { + try { + $handler = new $class(); + $responses[$id] = $handler->request($request['url'], $request['headers'], $request['data'], $request['options']); + + $request['options']['hooks']->dispatch('transport.internal.parse_response', array(&$responses[$id], $request)); + } + catch (Requests_Exception $e) { + $responses[$id] = $e; + } + + if (!is_string($responses[$id])) { + $request['options']['hooks']->dispatch('multiple.request.complete', array(&$responses[$id], $id)); + } + } + + return $responses; + } + + /** + * Retrieve the encodings we can accept + * + * @return string Accept-Encoding header value + */ + protected static function accept_encoding() { + $type = array(); + if (function_exists('gzinflate')) { + $type[] = 'deflate;q=1.0'; + } + + if (function_exists('gzuncompress')) { + $type[] = 'compress;q=0.5'; + } + + $type[] = 'gzip;q=0.5'; + + return implode(', ', $type); + } + + /** + * Format a URL given GET data + * + * @param array $url_parts + * @param array|object $data Data to build query using, see {@see https://secure.php.net/http_build_query} + * @return string URL with data + */ + protected static function format_get($url_parts, $data) { + if (!empty($data)) { + if (empty($url_parts['query'])) { + $url_parts['query'] = ''; + } + + $url_parts['query'] .= '&' . http_build_query($data, null, '&'); + $url_parts['query'] = trim($url_parts['query'], '&'); + } + if (isset($url_parts['path'])) { + if (isset($url_parts['query'])) { + $get = $url_parts['path'] . '?' . $url_parts['query']; + } + else { + $get = $url_parts['path']; + } + } + else { + $get = '/'; + } + return $get; + } + + /** + * Error handler for stream_socket_client() + * + * @param int $errno Error number (e.g. E_WARNING) + * @param string $errstr Error message + */ + public function connect_error_handler($errno, $errstr) { + // Double-check we can handle it + if (($errno & E_WARNING) === 0 && ($errno & E_NOTICE) === 0) { + // Return false to indicate the default error handler should engage + return false; + } + + $this->connect_error .= $errstr . "\n"; + return true; + } + + /** + * Verify the certificate against common name and subject alternative names + * + * Unfortunately, PHP doesn't check the certificate against the alternative + * names, leading things like 'https://www.github.com/' to be invalid. + * Instead + * + * @see https://tools.ietf.org/html/rfc2818#section-3.1 RFC2818, Section 3.1 + * + * @throws Requests_Exception On failure to connect via TLS (`fsockopen.ssl.connect_error`) + * @throws Requests_Exception On not obtaining a match for the host (`fsockopen.ssl.no_match`) + * @param string $host Host name to verify against + * @param resource $context Stream context + * @return bool + */ + public function verify_certificate_from_context($host, $context) { + $meta = stream_context_get_options($context); + + // If we don't have SSL options, then we couldn't make the connection at + // all + if (empty($meta) || empty($meta['ssl']) || empty($meta['ssl']['peer_certificate'])) { + throw new Requests_Exception(rtrim($this->connect_error), 'ssl.connect_error'); + } + + $cert = openssl_x509_parse($meta['ssl']['peer_certificate']); + + return Requests_SSL::verify_certificate($host, $cert); + } + + /** + * Whether this transport is valid + * + * @codeCoverageIgnore + * @return boolean True if the transport is valid, false otherwise. + */ + public static function test($capabilities = array()) { + if (!function_exists('fsockopen')) { + return false; + } + + // If needed, check that streams support SSL + if (isset($capabilities['ssl']) && $capabilities['ssl']) { + if (!extension_loaded('openssl') || !function_exists('openssl_x509_parse')) { + return false; + } + + // Currently broken, thanks to https://github.com/facebook/hhvm/issues/2156 + if (defined('HHVM_VERSION')) { + return false; + } + } + + return true; + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Utility/CaseInsensitiveDictionary.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Utility/CaseInsensitiveDictionary.php new file mode 100755 index 0000000..2c97893 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Utility/CaseInsensitiveDictionary.php @@ -0,0 +1,103 @@ + $value) { + $this->offsetSet($key, $value); + } + } + + /** + * Check if the given item exists + * + * @param string $key Item key + * @return boolean Does the item exist? + */ + public function offsetExists($key) { + $key = strtolower($key); + return isset($this->data[$key]); + } + + /** + * Get the value for the item + * + * @param string $key Item key + * @return string Item value + */ + public function offsetGet($key) { + $key = strtolower($key); + if (!isset($this->data[$key])) { + return null; + } + + return $this->data[$key]; + } + + /** + * Set the given item + * + * @throws Requests_Exception On attempting to use dictionary as list (`invalidset`) + * + * @param string $key Item name + * @param string $value Item value + */ + public function offsetSet($key, $value) { + if ($key === null) { + throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset'); + } + + $key = strtolower($key); + $this->data[$key] = $value; + } + + /** + * Unset the given header + * + * @param string $key + */ + public function offsetUnset($key) { + unset($this->data[strtolower($key)]); + } + + /** + * Get an iterator for the data + * + * @return ArrayIterator + */ + public function getIterator() { + return new ArrayIterator($this->data); + } + + /** + * Get the headers as an array + * + * @return array Header data + */ + public function getAll() { + return $this->data; + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Utility/FilteredIterator.php b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Utility/FilteredIterator.php new file mode 100755 index 0000000..76a29e7 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/library/Requests/Utility/FilteredIterator.php @@ -0,0 +1,45 @@ +callback = $callback; + } + + /** + * Get the current item's value after filtering + * + * @return string + */ + public function current() { + $value = parent::current(); + $value = call_user_func($this->callback, $value); + return $value; + } +} diff --git a/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/package.xml.tpl b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/package.xml.tpl new file mode 100755 index 0000000..f1ccab6 --- /dev/null +++ b/upload/system/library/razorpay-sdk/libs/Requests-1.7.0/package.xml.tpl @@ -0,0 +1,60 @@ + + + Requests + pear.ryanmccue.info + A HTTP library written in PHP, for human beings. + + Requests is a HTTP library written in PHP, for human beings. It is + roughly based on the API from the excellent Requests Python library. + Requests is ISC Licensed (similar to the new BSD license) and has + no dependencies. + + + Ryan McCue + rmccue + me+pear@ryanmccue dot info + yes + + {{ date }} + + + {{ version }} + {{ api_version }} + + + {{ stability }} + {{ stability }} + + ISC + - + + + + + + + + +{{ files }} + + + + + + + + + 5.2.0 + + + 1.4.0 + + + + + \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/src/Addon.php b/upload/system/library/razorpay-sdk/src/Addon.php new file mode 100755 index 0000000..d587ec3 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Addon.php @@ -0,0 +1,21 @@ +getEntityUrl(); + + return $this->request('DELETE', $entityUrl . $this->id); + } +} diff --git a/upload/system/library/razorpay-sdk/src/Api.php b/upload/system/library/razorpay-sdk/src/Api.php new file mode 100755 index 0000000..ba13d43 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Api.php @@ -0,0 +1,91 @@ + $title, + 'version' => $version + ); + + array_push(self::$appsDetails, $app); + } + + public function getAppsDetails() + { + return self::$appsDetails; + } + + public function setBaseUrl($baseUrl) + { + self::$baseUrl = $baseUrl; + } + + /** + * @param string $name + * @return mixed + */ + public function __get($name) + { + $className = __NAMESPACE__.'\\'.ucwords($name); + + $entity = new $className(); + + return $entity; + } + + public static function getBaseUrl() + { + return self::$baseUrl; + } + + public static function getKey() + { + return self::$key; + } + + public static function getSecret() + { + return self::$secret; + } + + public static function getFullUrl($relativeUrl) + { + return self::getBaseUrl() . $relativeUrl; + } +} diff --git a/upload/system/library/razorpay-sdk/src/ArrayableInterface.php b/upload/system/library/razorpay-sdk/src/ArrayableInterface.php new file mode 100755 index 0000000..255dc34 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/ArrayableInterface.php @@ -0,0 +1,13 @@ +attributes['count'])) + { + return $this->attributes['count']; + } + + return $count; + } +} diff --git a/upload/system/library/razorpay-sdk/src/Customer.php b/upload/system/library/razorpay-sdk/src/Customer.php new file mode 100755 index 0000000..45cd6d4 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Customer.php @@ -0,0 +1,40 @@ +getEntityUrl().$this->id; + + return $this->request('PUT', $entityUrl, $attributes); + } + + public function tokens() + { + $token = new Token(); + + $token['customer_id'] = $this->id; + + return $token; + } +} diff --git a/upload/system/library/razorpay-sdk/src/Entity.php b/upload/system/library/razorpay-sdk/src/Entity.php new file mode 100755 index 0000000..bb26439 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Entity.php @@ -0,0 +1,228 @@ +getEntityUrl(); + + return $this->request('POST', $entityUrl, $attributes); + } + + protected function fetch($id) + { + $entityUrl = $this->getEntityUrl(); + + $this->validateIdPresence($id); + + $relativeUrl = $entityUrl . $id; + + return $this->request('GET', $relativeUrl); + } + + protected function validateIdPresence($id) + { + if ($id !== null) + { + return; + } + + $path = explode('\\', get_class($this)); + $class = strtolower(array_pop($path)); + + $message = 'The ' . $class . ' id provided is null'; + + $code = Errors\ErrorCode::BAD_REQUEST_ERROR; + + throw new Errors\BadRequestError($message, $code, 500); + } + + protected function all($options = array()) + { + $entityUrl = $this->getEntityUrl(); + + return $this->request('GET', $entityUrl, $options); + } + + protected function getEntityUrl() + { + $fullClassName = get_class($this); + $pos = strrpos($fullClassName, '\\'); + $className = substr($fullClassName, $pos + 1); + $className = $this->snakeCase($className); + return $className.'s/'; + } + + protected function snakeCase($input) + { + $delimiter = '_'; + $output = preg_replace('/\s+/u', '', ucwords($input)); + $output = preg_replace('/(.)(?=[A-Z])/u', '$1'.$delimiter, $output); + $output = strtolower($output); + return $output; + } + + /** + * Makes a HTTP request using Request class and assuming the API returns + * formatted entity or collection result, wraps the returned JSON as entity + * and returns. + * + * @param string $method + * @param string $relativeUrl + * @param array $data + * + * @return Entity + */ + protected function request($method, $relativeUrl, $data = null) + { + $request = new Request(); + + $response = $request->request($method, $relativeUrl, $data); + + if ((isset($response['entity'])) and + ($response['entity'] == $this->getEntity())) + { + $this->fill($response); + + return $this; + } + else + { + return static::buildEntity($response); + } + } + + /** + * Given the JSON response of an API call, wraps it to corresponding entity + * class or a collection and returns the same. + * + * @param array $data + * + * @return Entity + */ + protected static function buildEntity($data) + { + $entities = static::getDefinedEntitiesArray(); + + if (isset($data['entity'])) + { + if (in_array($data['entity'], $entities)) + { + $class = static::getEntityClass($data['entity']); + $entity = new $class; + } + else + { + $entity = new static; + } + } + else + { + $entity = new static; + } + + $entity->fill($data); + + return $entity; + } + + protected static function getDefinedEntitiesArray() + { + return array( + 'collection', + 'payment', + 'refund', + 'order', + 'customer', + 'token', + 'settlement'); + } + + protected static function getEntityClass($name) + { + return __NAMESPACE__.'\\'.ucfirst($name); + } + + protected function getEntity() + { + $class = get_class($this); + $pos = strrpos($class, '\\'); + $entity = strtolower(substr($class, $pos)); + + return $entity; + } + + public function fill($data) + { + $attributes = array(); + + foreach ($data as $key => $value) + { + if (is_array($value)) + { + if (static::isAssocArray($value) === false) + { + $collection = array(); + + foreach ($value as $v) + { + if (is_array($v)) + { + $entity = static::buildEntity($v); + array_push($collection, $entity); + } + else + { + array_push($collection, $v); + } + } + + $value = $collection; + } + else + { + $value = static::buildEntity($value); + } + } + + $attributes[$key] = $value; + } + + $this->attributes = $attributes; + } + + public static function isAssocArray($arr) + { + return array_keys($arr) !== range(0, count($arr) - 1); + } + + public function toArray() + { + return $this->convertToArray($this->attributes); + } + + protected function convertToArray($attributes) + { + $array = $attributes; + + foreach ($attributes as $key => $value) + { + if (is_object($value)) + { + $array[$key] = $value->toArray(); + } + else if (is_array($value) and self::isAssocArray($value) == false) + { + $array[$key] = $this->convertToArray($value); + } + } + + return $array; + } +} diff --git a/upload/system/library/razorpay-sdk/src/Errors/BadRequestError.php b/upload/system/library/razorpay-sdk/src/Errors/BadRequestError.php new file mode 100755 index 0000000..e017e33 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Errors/BadRequestError.php @@ -0,0 +1,20 @@ +field = $field; + } + + public function getField() + { + return $this->field; + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/src/Errors/Error.php b/upload/system/library/razorpay-sdk/src/Errors/Error.php new file mode 100755 index 0000000..eeaae7d --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Errors/Error.php @@ -0,0 +1,24 @@ +code = $code; + + $this->message = $message; + + $this->httpStatusCode = $httpStatusCode; + } + + public function getHttpStatusCode() + { + return $this->httpStatusCode; + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/src/Errors/ErrorCode.php b/upload/system/library/razorpay-sdk/src/Errors/ErrorCode.php new file mode 100755 index 0000000..5e65380 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Errors/ErrorCode.php @@ -0,0 +1,17 @@ +getEntityUrl() . $this->id . '/cancel'; + + return $this->request(Requests::POST, $url); + } + + /** + * Send/re-send notification for invoice by given medium + * + * @param $medium - sms|email + * + * @return array + */ + public function notifyBy($medium) + { + $url = $this->getEntityUrl() . $this->id . '/notify_by/' . $medium; + $r = new Request(); + + return $r->request(Requests::POST, $url); + } + + /** + * Patches given invoice with new attributes + * + * @param array $attributes + * + * @return Invoice + */ + public function edit($attributes = array()) + { + $url = $this->getEntityUrl() . $this->id; + + return $this->request(Requests::PATCH, $url, $attributes); + } + + /** + * Issues drafted invoice + * + * @return Invoice + */ + public function issue() + { + $url = $this->getEntityUrl() . $this->id . '/issue'; + + return $this->request(Requests::POST, $url); + } + + /** + * Deletes drafted invoice + * + * @return Invoice + */ + public function delete() + { + $url = $this->getEntityUrl() . $this->id; + $r = new Request(); + + return $r->request(Requests::DELETE, $url); + } +} diff --git a/upload/system/library/razorpay-sdk/src/Order.php b/upload/system/library/razorpay-sdk/src/Order.php new file mode 100755 index 0000000..46bf5eb --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Order.php @@ -0,0 +1,31 @@ +getEntityUrl().$this->id.'/payments'; + + return $this->request('GET', $relativeUrl); + } +} diff --git a/upload/system/library/razorpay-sdk/src/Payment.php b/upload/system/library/razorpay-sdk/src/Payment.php new file mode 100755 index 0000000..0d8a44d --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Payment.php @@ -0,0 +1,89 @@ +getEntityUrl() . $this->id; + + return $this->request(Requests::PATCH, $url, $attributes); + } + + /** + * @param $id Payment id + */ + public function refund($attributes = array()) + { + $refund = new Refund; + + $attributes = array_merge($attributes, array('payment_id' => $this->id)); + + return $refund->create($attributes); + } + + /** + * @param $id Payment id + */ + public function capture($attributes = array()) + { + $relativeUrl = $this->getEntityUrl() . $this->id . '/capture'; + + return $this->request('POST', $relativeUrl, $attributes); + } + + public function transfer($attributes = array()) + { + $relativeUrl = $this->getEntityUrl() . $this->id . '/transfers'; + + return $this->request('POST', $relativeUrl, $attributes); + } + + public function refunds() + { + $refund = new Refund; + + $options = array('payment_id' => $this->id); + + return $refund->all($options); + } + + public function transfers() + { + $transfer = new Transfer(); + + $transfer->payment_id = $this->id; + + return $transfer->all(); + } + + public function bankTransfer() + { + $relativeUrl = $this->getEntityUrl() . $this->id . '/bank_transfer'; + + return $this->request('GET', $relativeUrl); + } +} diff --git a/upload/system/library/razorpay-sdk/src/Plan.php b/upload/system/library/razorpay-sdk/src/Plan.php new file mode 100755 index 0000000..69cb2e1 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Plan.php @@ -0,0 +1,21 @@ + 1 + ); + + /** + * Fires a request to the API + * @param string $method HTTP Verb + * @param string $url Relative URL for the request + * @param array $data Data to be passed along the request + * @return array Response data in array format. Not meant + * to be used directly + */ + public function request($method, $url, $data = array()) + { + $url = Api::getFullUrl($url); + + $hooks = new Requests_Hooks(); + + $hooks->register('curl.before_send', array($this, 'setCurlSslOpts')); + + $options = array( + 'auth' => array(Api::getKey(), Api::getSecret()), + 'hook' => $hooks, + 'timeout' => 60, + ); + + $headers = $this->getRequestHeaders(); + + $response = Requests::request($url, $headers, $data, $method, $options); + + $this->checkErrors($response); + + return json_decode($response->body, true); + } + + public function setCurlSslOpts($curl) + { + curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_1); + } + + /** + * Adds an additional header to all API requests + * @param string $key Header key + * @param string $value Header value + * @return null + */ + public static function addHeader($key, $value) + { + self::$headers[$key] = $value; + } + + /** + * Returns all headers attached so far + * @return array headers + */ + public static function getHeaders() + { + return self::$headers; + } + + /** + * Process the statusCode of the response and throw exception if necessary + * @param Object $response The response object returned by Requests + */ + protected function checkErrors($response) + { + $body = $response->body; + $httpStatusCode = $response->status_code; + + try + { + $body = json_decode($response->body, true); + } + catch (Exception $e) + { + $this->throwServerError($body, $httpStatusCode); + } + + if (($httpStatusCode < 200) or + ($httpStatusCode >= 300)) + { + $this->processError($body, $httpStatusCode, $response); + } + } + + protected function processError($body, $httpStatusCode, $response) + { + $this->verifyErrorFormat($body, $httpStatusCode); + + $code = $body['error']['code']; + + // We are basically converting the error code to the Error class name + // Replace underscores with space + // Lowercase the words, capitalize first letter of each word + // Remove spaces + $error = str_replace('_', ' ', $code); + $error = ucwords(strtolower($error)); + $error = str_replace(' ', '', $error); + + // Add namespace + // This is the fully qualified error class name + $error = __NAMESPACE__.'\Errors\\' . $error; + + $description = $body['error']['description']; + + $field = null; + if (isset($body['error']['field'])) + { + $field = $body['error']['field']; + + // Create an instance of the error and then throw it + throw new $error($description, $code, $httpStatusCode, $field); + } + + throw new $error($description, $code, $httpStatusCode); + } + + protected function throwServerError($body, $httpStatusCode) + { + $description = "The server did not send back a well-formed response. " . PHP_EOL . + "Server Response: $body"; + + throw new Errors\ServerError( + $description, + ErrorCode::SERVER_ERROR, + $httpStatusCode); + } + + protected function getRequestHeaders() + { + $uaHeader = array( + 'User-Agent' => $this->constructUa() + ); + + $headers = array_merge(self::$headers, $uaHeader); + + return $headers; + } + + protected function constructUa() + { + $ua = 'Razorpay/v1 PHPSDK/' . Api::VERSION . ' PHP/' . phpversion(); + + $ua .= ' ' . $this->getAppDetailsUa(); + + return $ua; + } + + protected function getAppDetailsUa() + { + $appsDetails = Api::$appsDetails; + + $appsDetailsUa = ''; + + foreach ($appsDetails as $app) + { + if ((isset($app['title'])) and (is_string($app['title']))) + { + $appUa = $app['title']; + + if ((isset($app['version'])) and (is_scalar($app['version']))) + { + $appUa .= '/' . $app['version']; + } + + $appsDetailsUa .= $appUa . ' '; + } + } + + return $appsDetailsUa; + } + + /** + * Verifies error is in proper format. If not then + * throws ServerErrorException + * + * @param array $body + * @param int $httpStatusCode + * @return void + */ + protected function verifyErrorFormat($body, $httpStatusCode) + { + if (is_array($body) === false) + { + $this->throwServerError($body, $httpStatusCode); + } + + if ((isset($body['error']) === false) or + (isset($body['error']['code']) === false)) + { + $this->throwServerError($body, $httpStatusCode); + } + + $code = $body['error']['code']; + + if (Errors\ErrorCode::exists($code) === false) + { + $this->throwServerError($body, $httpStatusCode); + } + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/src/Resource.php b/upload/system/library/razorpay-sdk/src/Resource.php new file mode 100755 index 0000000..26a948a --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Resource.php @@ -0,0 +1,57 @@ +attributes); + } + + public function offsetExists($offset) + { + return (isset($this->attributes[$offset])); + } + + public function offsetSet($offset, $value) + { + $this->attributes[$offset] = $value; + } + + public function offsetGet($offset) + { + return $this->attributes[$offset]; + } + + public function offsetUnset($offset) + { + unset($this->attributes[$offset]); + } + + public function __get($key) + { + return $this->attributes[$key]; + } + + public function __set($key, $value) + { + return $this->attributes[$key] = $value; + } + + public function __isset($key) + { + return (isset($this->attributes[$key])); + } + + public function __unset($key) + { + unset($this->attributes[$key]); + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/src/Settlement.php b/upload/system/library/razorpay-sdk/src/Settlement.php new file mode 100755 index 0000000..fa76738 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Settlement.php @@ -0,0 +1,42 @@ +getEntityUrl() . 'report/combined'; + + return $this->request('GET', $relativeUrl, $options); + } +} + diff --git a/upload/system/library/razorpay-sdk/src/Subscription.php b/upload/system/library/razorpay-sdk/src/Subscription.php new file mode 100755 index 0000000..fb6f426 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Subscription.php @@ -0,0 +1,35 @@ +getEntityUrl() . $this->id . '/cancel'; + + return $this->request('POST', $relativeUrl, $attributes); + } + + public function createAddon($attributes = array()) + { + $relativeUrl = $this->getEntityUrl() . $this->id . '/addons'; + + return $this->request('POST', $relativeUrl, $attributes); + } +} diff --git a/upload/system/library/razorpay-sdk/src/Token.php b/upload/system/library/razorpay-sdk/src/Token.php new file mode 100755 index 0000000..4a2e563 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Token.php @@ -0,0 +1,30 @@ +customer_id.'/'.$this->getEntityUrl().$id; + + return $this->request('GET', $relativeUrl); + } + + public function all($options = array()) + { + $relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl(); + + return $this->request('GET', $relativeUrl, $options); + } + + public function delete($id) + { + $relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl().$id; + + return $this->request('DELETE', $relativeUrl); + } +} diff --git a/upload/system/library/razorpay-sdk/src/Transfer.php b/upload/system/library/razorpay-sdk/src/Transfer.php new file mode 100755 index 0000000..150a1b2 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Transfer.php @@ -0,0 +1,62 @@ +payment_id) === true) + { + $relativeUrl = 'payments/' . $this->payment_id. '/transfers'; + + return $this->request('GET', $relativeUrl, $options); + } + + return parent::all($options); + } + + /** + * Create a direct transfer from merchant's account to + * any of the linked accounts, without linking it to a + * payment + */ + public function create($attributes = array()) + { + return parent::create($attributes); + } + + public function edit($attributes = null) + { + $entityUrl = $this->getEntityUrl() . $this->id; + + return $this->request('PATCH', $entityUrl, $attributes); + } + + /** + * Create a reversal for a transfer + */ + public function reverse($attributes = array()) + { + $relativeUrl = $this->getEntityUrl() . $this->id . '/reversals'; + + return $this->request('POST', $relativeUrl, $attributes); + } + + /** + * Fetches all reversals + */ + public function reversals($attributes = array()) + { + $relativeUrl = $this->getEntityUrl() . $this->id . '/reversals'; + + return $this->request('GET', $relativeUrl, $attributes); + } +} diff --git a/upload/system/library/razorpay-sdk/src/Utility.php b/upload/system/library/razorpay-sdk/src/Utility.php new file mode 100755 index 0000000..22e588f --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/Utility.php @@ -0,0 +1,81 @@ +hashEquals($expectedSignature, $actualSignature); + } + + if ($verified === false) + { + throw new Errors\SignatureVerificationError( + 'Invalid signature passed'); + } + } + + private function hashEquals($expectedSignature, $actualSignature) + { + if (strlen($expectedSignature) === strlen($actualSignature)) + { + $res = $expectedSignature ^ $actualSignature; + $return = 0; + + for ($i = strlen($res) - 1; $i >= 0; $i--) + { + $return |= ord($res[$i]); + } + + return ($return === 0); + } + + return false; + } +} diff --git a/upload/system/library/razorpay-sdk/src/VirtualAccount.php b/upload/system/library/razorpay-sdk/src/VirtualAccount.php new file mode 100755 index 0000000..cd46d00 --- /dev/null +++ b/upload/system/library/razorpay-sdk/src/VirtualAccount.php @@ -0,0 +1,39 @@ +getEntityUrl() . $this->id; + + $data = array( + 'status' => 'closed' + ); + + return $this->request('PATCH', $relativeUrl, $data); + } + + public function payments() + { + $relativeUrl = $this->getEntityUrl() . $this->id . '/payments'; + + return $this->request('GET', $relativeUrl); + } +} \ No newline at end of file diff --git a/upload/system/library/razorpay-sdk/version.txt b/upload/system/library/razorpay-sdk/version.txt new file mode 100755 index 0000000..437459c --- /dev/null +++ b/upload/system/library/razorpay-sdk/version.txt @@ -0,0 +1 @@ +2.5.0 From d22d913c900b67d930da0c4e68c3c85cdc967973 Mon Sep 17 00:00:00 2001 From: sofiya02 Date: Thu, 17 Mar 2022 07:59:57 +0530 Subject: [PATCH 2/3] Url updated --- install.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.xml b/install.xml index bc09f6a..1b73158 100644 --- a/install.xml +++ b/install.xml @@ -17,7 +17,7 @@ if ($this->user->hasPermission('access', 'extension/payment/razorpay')) { $adminmenus[] = array( 'name' => 'Plans', - 'href' => $this->url->link('extension/payment/razorpay', 'user_token=' . $this->session->data['user_token'], true), + 'href' => $this->url->link('extension/payment/razorpay/getPlan', 'user_token=' . $this->session->data['user_token'], true), 'children' => array() ); @@ -25,7 +25,7 @@ if ($this->user->hasPermission('access', 'extension/payment/razorpay')) { $adminmenus[] = array( 'name' => 'Subscriptions', - 'href' => $this->url->link('extension/payment/razorpay', 'user_token=' . $this->session->data['user_token'], true), + 'href' => $this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'], true), 'children' => array() ); From ef9c60465c888f237d4d3beba0fc7e401ad284ab Mon Sep 17 00:00:00 2001 From: sofiya02 Date: Tue, 22 Mar 2022 04:59:31 +0530 Subject: [PATCH 3/3] Filter,Pagination and Invoice modification --- .DS_Store | Bin 6148 -> 0 bytes razorpay-opencart_4.0.2.ocmod.zip | Bin 0 -> 667281 bytes upload/.DS_Store | Bin 6148 -> 0 bytes upload/admin/.DS_Store | Bin 8196 -> 0 bytes upload/admin/controller/.DS_Store | Bin 6148 -> 0 bytes upload/admin/controller/extension/.DS_Store | Bin 6148 -> 0 bytes .../controller/extension/payment/razorpay.php | 122 ++++++-- upload/admin/language/.DS_Store | Bin 6148 -> 0 bytes upload/admin/language/en-gb/.DS_Store | Bin 6148 -> 0 bytes .../admin/language/en-gb/extension/.DS_Store | Bin 6148 -> 0 bytes .../en-gb/extension/payment/razorpay.php | 7 +- upload/admin/model/.DS_Store | Bin 6148 -> 0 bytes upload/admin/model/extension/.DS_Store | Bin 6148 -> 0 bytes .../model/extension/payment/razorpay.php | 96 ++++++- upload/admin/view/.DS_Store | Bin 6148 -> 0 bytes upload/admin/view/template/.DS_Store | Bin 6148 -> 0 bytes .../admin/view/template/extension/.DS_Store | Bin 6148 -> 0 bytes .../payment/razorpay_subscription_info.twig | 138 +++++---- .../payment/razorpay_subscription_list.twig | 269 +++--------------- 19 files changed, 299 insertions(+), 333 deletions(-) delete mode 100644 .DS_Store create mode 100644 razorpay-opencart_4.0.2.ocmod.zip delete mode 100644 upload/.DS_Store delete mode 100644 upload/admin/.DS_Store delete mode 100644 upload/admin/controller/.DS_Store delete mode 100644 upload/admin/controller/extension/.DS_Store delete mode 100644 upload/admin/language/.DS_Store delete mode 100644 upload/admin/language/en-gb/.DS_Store delete mode 100644 upload/admin/language/en-gb/extension/.DS_Store delete mode 100644 upload/admin/model/.DS_Store delete mode 100644 upload/admin/model/extension/.DS_Store delete mode 100644 upload/admin/view/.DS_Store delete mode 100644 upload/admin/view/template/.DS_Store delete mode 100644 upload/admin/view/template/extension/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 3a651f3f9cef3890fbe7184258674829c1ae6855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!EO^V5FMwXIH?dhAkm{Q+@dN8sGK92{eJ3ow|1+WPd z$Z@qbWh<>KZ8h8Lb=vCA?cMpjA#dL5-rGM+Pv6Ym&fmQ^QwD*bxsmIP3;2M> z5+TWP*FVx}z6iM3p6bDXNs#xyeO1HnpNQb4K2jb1F(x1Vew^3-I7@VPjD0WO{oE@# z(=p%}xU3BDh9I{tD*gk=^*&>A$VlLHxyw;$NrTG2jN+CrDMP`u*|@Qt+wd= zf3*JozntW1jseHOf5m{P5BxzNr^ILL%H-&*Rj7xkBotR!JWD~t9K{$*NAWhQ5%eoE W5Ix4qB6?8VkAR`U6^?S030%jLI3#Y>({%J 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≧7s6$?RvhS-gt&<`it2@~oiJFO zCX|(^5a9ycr4k_H=4|S$`cNYJ;Npm|50R+2(W&@!u6dZ5gLzZKOIUK(Z`dT>-^1aW5g4OGd02K^}rjc-5*fRz)7AjEG z0rAHS^n9^k+5H6&99Eto=^+yPp(DJ43`VYrlqo-HRoyACL3t2ptvpl};MJ=P$NgVP z00m^s@2sD5%|8R+zmJBOpFJF%klh_N72TNptK$xW5p^%iNvfTuvBz7>6<-KA{P=TTs#_XYol2DYYZ zp@R@-v;Yu#pjdys?I^Q#!d@$Bp(xP!5+Fn@csPu@4BzvHW{cM1@e^{@G%p7h<%b=H zUC@ExZv}TQ;3xnCC8Ar}*l=TGAQD)BmlNdbR}_&xLqN|#jF9Jm!6orX1n!$lz`DBQ z7kiG*r2BdJnrhpl$e2$FD~Cn_Iwok|X2kh0%HQ}1rHfLaIeR#U^i4cIu9lTSMT(HL zcjiQ>;M*gZ&;GHK14p=}F@ul({3^C~FB|Hhx2VuO46b!h{W1~nXiA-!EFyzRAwY_- zS0_=grfgTKpEyowT4b*Vy+%Gl;q`& z`%FCl`?;yx(lGC;nXU>sT0k_=#>p2a+*X6ZjTN)7x3N-eM#;={?TPRD;&8LTc|E+L zJ}46q6F-$w$(hq1z|pqOHxstAs{rY-%NSmE_s4W;$&@&6{lINZ*m2<0FcT(yqj~m* zF53V~{vxV~eURIJ>Se`UtHW5JkqpPL`aIP$StfuYe2ckxr$D(T^|Lxz)M+ zfW~e3>c{4@u1D9`Z$R>5lz|sny?*IzuZMF!C4XEo_1VHt{Rbr@*+a-&UDYDp3QGG3 z=-_ZE2h#v~o57CVSN@0jzCh9bLK%a0`vw(9rx9L?{Hry!#MBc@K5lM~u}VNF2>dMC zgzVcKRkxU7DrPUPY@KTZ`p;2@G6RK&UbNt(Hnq_Nk}__wIkB&0~M6GCHka+;&3Zjc+n`IrC%D9$3iSnRV}(qe+5a?)LWfqtjZpHYrn%myKYxrNZs zOp={QhoF%h1GvWJ3Ut3-j7BY+(vsYe3(bZ7N>rI2a6gfXio?t!#{4>l@`Ky>l8y(r zmG@G4TpQB)d<3^>@v>kV7*9ZQXRaYXO(m$cOU~xLWP}FtLbCP2ZMl3nOuJmo<<(VN z=ant#FKK;UyLekcgISB#_D$SnTCJBH_K-9=A#dhC$Ns#Kee&X=Z+zf{RFTsCpKKLC z-w0QFZ%L5?Lai`7sEW2{y)C=^^CbcJPh_8VXaQOYgL{#oO!#zqO7eH@9;)!Rd89{$ z%fEK|WZ~|umhOCXt3f?537!nP+kJ1j_&hx>%f?e%+gxdN+!%Fy^XY2!$~8&xEoY|v zV#&F3)Y7tybhit*Y>UOG+zt6fv3Fvvgt6%2RHo3Q$e&hE+`9`}uQLht{7T*jrA{!c>qShEksR@-ny@ z>`abkVzO=9P8G=vnqX@9Usi7aM7 zda~y)d|U<%@#M+6%xh$^7HIMK%xqSPr512iNt&CWn%&>${3QB(uv+KmzP*C%SlHO~ z7GS`E8Yo`a*wI6v9)L9ieCP*{)?;HWz+@j$znpT&4(g8!9A?Y-(5biRyn3*DSy$}2 z$?srFCObx}O9}mxn*uJjD%?daE(3U= zA!*OEZ+{cfLgIMzIQ}7ni0*L+#EgFw)uJ-K5bo6%K1ihD1x^Mj;!`^3$PrwOLsRII z)GZOZaTpk(jD`~XOCY{3PBJ+X??$2qz&oJGaflx~h{a=OgIE^lc*IMf<#OJtSph~X{PL+|h`cqN-wNIPRS7cN0!^Qx3PesrH8z7q zE|Mg*Zgzdk*2r&yDdmM3l`glFW5667&^!SQ14ov^u4!DIYmcJMN;emjU_5P_0LCC$ z_%X3Vf_-$VekFWfR{7-jh`Ee@JBrfX*suHFCBUW13J&)UjxwHZNp=w97c65nk%pM zO`q;=Zk#q?4W1YiA7*}>nGKcU|7OK0NBnM=$OzW8EHkLDEgQ| zZdmy^fxMmu8Mm={1ys$wWMam>OQ@=+vVYc?<%=_zn1B^SgsLo}5LTcr)?Hw|T-8*g zlf937akk1Ff@q$}XT(_wiF!iH)Lc)CZFMQ*gaknU;LRhK_`^!-iygN0e~Sowglt3S zPl%)z$}W1~iXLfwveGgUnfA~bp`Ht{8gtNd;OS_EfPsSm0u(|J%Ev*3TL^3c9U5OR zk$Lc;dTD9Vk#9gL>RAi!Yy`;lBnkK9@-7;VKR7|FGF^gLPuy2=*EVrc{dF~;i|^D7 zEdl(9JY|`54$-08ogs zL12^FNmg<_Szw3h1px&=Ml+1zGZB2PE3hYbfoge3Yud8Kgz1wD%z@sxOi1(#Fea(W z13?yL%yRgK`T657ydA^&984{!tn@1)Ih%;p1)>y9k#~4?@&Vl0uYitz6R)+XF>p5R z5kr{s3^d*9#~3MiEC=F_t8p(`?fOMZBIn_?q6XXzGa;dmj&8JG3EfrDV{+ zk{y6SiZ3_3EI7Q+^d^@(#aa<4A6^Yn?X!TsB!iqU-m8f~{iWw7FkZKOo$X`@HfV4( zHG#-VUd|SYWz?ywtmn})Sq~ymyj4Bq<%~@q0n9HN@05JuBodeD1$ElMGeg#oOXfWk z?xtzgf%wQ=7Q8=dIhU31vMojU(>#)GoAAat@r#p~rezAdJ@PgkGA5;^b5k>6kAfME zD)@pRyM@9G(5fs>iq0H<2U4odM6$&Me#|!~u^UwXrETPew0%?dPkEH3(prtFayu2Z zg;KecIC{B;#g&2QI4vMl^OByxe7 zF2tX_#JmzS&WU9f^k!r(?23fCN9T(OYinNob|&14ySl}o%9aN14P0k8x9iQ{d`m-& zhQjt9Je313HCZWt~TlAE-9#m zxoFL=`;56ip3B;{!iRLnuq(1fGU_Fj*2+rd1#cd;K3}gH`_s#NI`arBnbv^HfOA^| z1yEm<7nF~(Jqc^jH}%!@FAhSph$g{=(C>m6G5z{8@SQpA5Z9MaA&tk(b{KGhy;J(b z*cTUyt~LA+yfxeBE`m<$M(h22e?TX-dg9b*Ae;4xcJ&?!lmiiRvPw40vb|5~t=t~p z8}vIHYGPF3&8*yv&~Avn3c@(i8SHpYRta@}Kr&~2zc4v~BWV^|;PF^ucV;SF)_76#P&ZtGDhTVIpc!tP@W`odx9J8KmI{uO%LHGz<0ag^JmU4psQWz zK$+o;S4bBZqw_Ux=)S8D+31)&--UjN09 zP`$kuGqt3}D^UI@QX2%y8{|I~H~U=f?p%E>es9p=#bCmA;0WHe-|Ct#hTCWhY#in| ziQIUP=N#?DN(aG`7=MQ!It`*2%cSqm{+aLV+KerFlV_*!oaaSMJY}|b(P^TmTC~*V| z4Wk@$!7A!v?v^yJ#7!A{X>uzuvFAYbdG+l3y(}k$8Ly)L_rgl!kWATSJ@rQ?FKoDF zj2*S$TR*Utw_dZVOozzklW*y`au6RB5+xedTTI2y%jVeLR_PVQWq147y?KqTu2N9V zs-b88+yfF8C$JIYD#`)6gY^@`vL@%iBTgZfQove_`&Y^YY#5Yv>9!fPBKy>~bG~x!$BY1>PCnOWFEie%r4qZitL^ zpSu{pN{lnBGf`8FY8i#jQwP8$Vg*r+gGkVS4(+G3&P#xZlbTOT-gheLUE^8%iR zI?gYrN_|#9iz)RXH$f$?-jWrZJljmFKDOLfL1}Qe6)H8IkO}M>n9ItnTrn|uW3oHd zq8og;f(_}{nLbaw>v{G^An=EVX`?Ox^4;D9Qpabo*U3h%H1n>;f(EuQnmoAthKX!R z?$^o2l^;jhP<(>e*d4@MCE$T%7##soP+*+=(aJPXAP+A!`__7&t1ALuiav0iK0ftu zm!JP3k{qp7yI1{$P5#*o{`=1G^MwOo{ntB#lZ&B~k)wtEzop)2{~%J^5P$4DJsdxX z)UjrXvop3F(-guRG@GKr0vIjn@2JCxNO5;w#xJJ{O`wMgS%>eFiMO^*txi@B0qE#;}3`xZs`yW5uLn zcv$hls%uX-0TTOg;nLHRe?^{fLQ8`j#&3vhrq24rF|b1h8j6!I3(@JWr|YnhD>ipYO;ru=hQB60S1fJp@b?ie!X!qXT3WQKVoyLnMAnXpJv(8- zK3pXf?Fy}Y`I`BzQ26nwyEaF_v4p7znjgFBD2lcyuMe{FRtm3;0{#f=KbR#2nIDBh zM1m`@3?mvk@w?)(kd72@VLHek1QOsEw0F?b8aI!_dfXa9HN7*l6jzUrUlv~?k*&3- zDS6RZ$`&YDsfvXWcZ5RCQhTvHdZ+qz;?Kq(%VU#)1X4jRppQv?4gzsO0r5qQeKi(G z7Ugq3;h(9O=pBCen^&zdu_8(S?zj!^QbU8sqm&s;^w+1K4v!MLLMp*>D{TO!XY zGYyw#Ai;{bBRUKCZMi=HyKMo9;~t9aC5w?U3NExq#+X9jgaS=qIB=n^X-5;bsUw62 z;BS)lHAu7~4$p4DpB6hC`K3ZbWat>My&}xS$&@71S=Mp~sE@$>`ZNs;M0<&V!~|w}<$+X5y1t(JJ6b3nq{n@`HZ@jbey}S$ESh3=9*LHXs>l zG8RTLj5W{_>8cgpiRT+eGSYY?TGf?syJ8%+3_;8zOd^c z`x}_EGb1`JRDY3o>_b8`N|`}A$p7_-kKu$p?aD6jn#iIsAz%?Ti|^v)Jbb2{~ z=Cp7bn?yT`L!Akkh{J^tN{3(PfdXpnYe(M!<671&{!CX@cI&9mgEuaiWyEIil*Pg5 zw+XVbm+kmni0O(csSRq9q38pWjvvalD+@>%@AAeBp^d0~cD|j1AJBi){fl3F3fHP= zkDLTLEf(ObO#H3tm!U@2YH`hzl63vRo-1w1(&d9Rh_!ybxx|P(8}I z)UYxd49$3BNa0njlJLB$e3dx36+#u$w5Di7f>c8pWbkD~>*|%cl&J<~W~z+_?}N2a zXL_zx5IUICwh}J}cFE#7d`O`Kw|B^JJoU>aWsLCeE-y5C`xmu4Kvm4ti@t#G>|1ZM z-`kkmZbNP@7`cBq00+y@^sMBpm`UsrJWmJ!(%9qgnH(UP`@4hY&7x~=7A5LtMca?~2NA#DPs4iUA4Mk=&Y4=2THphaF6bz9A5O;|(CdXkpc?C*e;dQTEz*kshF z9w$e|#-KH~<9jIHld4W)ETVQOiUL2)I)?fPH6qb}4bY0GV{W~6d>w-b(d73d0GJ~} z4Mwsi)^jawE1(3-BcrxLA`zvbUS%4go^%&_!)atk25vfy!;IO4aCO|IofHqto&~5< zK@@k8hwBNbWYb6=0%lbWv4qUiyaSOQ9ZBz!2mv`GsKvU0pmv04#aTA^3vx?Cn7_1+ zQj(aR2SU;ny_-4P0t7^ASUu(n5gig08dnqlh~P=-BdPP{ND&Oz?U`YIDX ziw{@DmshEv7|)5^!|OD2{Y-LIMweVqUeJ*yIEn^MA*rpZZ7$z0rKD>UvG#fx;>&09 zIYO$Mms$Abo`spROJNB#H;}7ARHCeu5{2npmCt%%*;Otx0wF1?C-ym?urp5>^-?dtIN zi<=%WKNJ43kN8-QR^Ma3MOw?O$0m5RwKGG+d)B)(U{g21T_>$FWCZnQ1tNM`j*6Xd z_c%{qMN?zA(vzh^xW1w!Ir<~6Qil5c&!V6DH@L-NO_thFZM>Tu!n`Y-wZh?M(dn`f z=c)tyBv3>y0wZ#~$iYb5G%((K)NGk_ocr$d(>D_=d>bY6*4i(y(uJ&)*EP`(O5+7; zqjc!qD(ZPufMHoqu4g1`%IzJw^ZM4B&lT+iHNVR zcM5N0h>jugfQQVUUHWfZq#`4QLtYSzRR_>np9Gj0ru*tllW`N1ZEst|HEKTW$8)*4{ThEo1+zD%}m$?=SuK9<65 z{EW}2ge{!<%_%^}*3bTBK&IA0&*Z#ldZ+yUp!3;fdG}JwQ)d*AU5dN0xWS?-W6CQBWMyPC$OU z-BoRX#PPm=w?V{R4qgqQ0&xDEpF55&0Wd@SSP@ZKf0=L~s0r?F$`ZiY0y7#A4Mk%6 zPslGM>6d)C&g1cAg%Vjy^=9`^lHqx%Io!+X=CuhvOw3$xyH-C_;wh=95u~;K zK;4R^lycO(*OypdVJpSKLG``eel@Q!S*5)>fUa$h0LqwGS~}6P)Pp5Src;ox0k*S4 ziO(f%iR9SPN-b~H9=oW}c@n$9Il6%2z!EY+k=@AMzN3Dewpp2aqMmtzt9{R}V8n(5 z`b;xLS64fY5uGKkE0lthtvKi>8<~Kzl?u-MiT5`&`K5S!>_X{L-fSnu&JA}KD(AYT z^n03fb3xAQ$jq_dl4hY-(67JsW8fes=X9}(fN&yCXx=7Fm3+UBCG3+K(MjOc>PgeGqS5e*L z!5+o+=WJx^tK3gdW=x|(eYj^cHuF>zRH;VrP?iURlU#8-X0w$^#}UHPDHW!hiHgUf z$5|0m9bdP1YKo8I_Exb$+0+5~Zv^`DeVuhFrOSl|Ileo9QT0khwDGe?vBLNzCR(Ur zOcFA1PpT=Paj*&!>t3?5^j9+u>xB`V(;FycgHxTPg~3_q9gi`m!CO0+(+qoE#4%Q6 z8Ps0`_6s9fX$M&4kuS;&2IGSZ=n(J2-QSs`=Y#~ZUtN<05qkQ`U8AwTh&MlyA59Nd z-^m4+&NxZYk=5uhS_3aeBN9y-hdc3Z3?_lYr4knL;M)sx%3^~vc8Wpq#Teko4BupM z#z6Z2a5Uu{pB3-q!(G7jux^yq$|`gr%xQ5q`ABH*BudEJTzWphk^ti<-2dv>n+z@R zq3A*vQRSK^o=a8=D56d<5}iYpMMV=QUKU`cpE?ALsWh9;sokY7g`V!#CVM{^$`mcu z?zw+SwI7OU>;5zaC6Q|^AGwHsd}#XKU+}uy-MhIiGo4H>xWoSAZxR!|_16joWx*O( z{Zp4db80a)oGPUY3FGkjbI|fJ+jo}evRI*p9}gDnREf34rTqF#d27LvH-PA3KzD@$kzMS$hsyiN@T~>7`l{GUwGjrb;(mEzDtQc= z4Cc$4+ne!hh;Kuj@#P&0`s8Q+wu>}L;eZP!F%^40?%Ujw8!&mQrzFrUec3>r%`*A9 z5g_&j{!eJ*CX%Mn?Z+VW&wlscH$Q;?$pv6wZ2a#)r>XyO0Ss@SE8!df_z36>Q${qe znd+OX64(XgpR^O$nW_7+!+ZQdvutTj-7>0`Tg_r)FE|Mg%F!p}_R zgbPwQ3$aBd2Lqk}T(?B$W7 zT!gYdGb(s@6~jkUaB*64NXPeM+^i6yLpDr)-;9AQoyKWjn|`V;KRiY1HtXu+rQ-Z~ zpHkD8UeY$`b}907feZ_zVYNmizj;?myg>uuVi&6&!0V-!`ewbESNo34$X$6I{Jqug z@p<=JoDC)5D`3)E2%AzVCNjo?tb-k(nyy!3g)D$feqa7|ie2?|-1MvDpL9(qJy|nZ+Q!}C z`QbQwjV_JeGAFuqPk0yj|D)_3n{y49E!^0)ZQHhO+xCoY+qP}nHfNm7*iKH?K6O5v zs{LW@x9X{Sf52T`-J^Sqt1Zs;E@UC(B5xI{>vX8ZfHnw}_+DN~VfP4=heOW$qvNag zB;kG52uUK-v-lryDHpMC$@!5?C*}D${10K~h?E%{G%-^x>_p_QJ(BS~t|zKV+CJrK z{c)uFtsx!p6eI_2^M1o{cparCp_RN^n1Na|s2XzEoU=VcIs;x36DuOkTv-k)(3c|0 zEd}9l4z7*?SWPDS2h){Rp<&My%keVe=vvgL$(~+h69bBx%A4S8$vb|&R zpc%1>1+Gx@s#QRWW{@id6sqWdw5O%mtB2$)0IrAs(!ht?Z~=tl z`dfKfN){5=(f5px;xb^$@-L%mfX&vpan8Z`{+?d-jbH9-JBVKXd%y7XxcS0r+FD)w z;9mbKS#|0OIt$SElWy{_KHXg24{hEwIvOw3yDXC5cx@js4tzWm_d_O=owtmbdCwo zi+%fb<`#bH|EEr^zk|=yfB*peryBk5b?ONG|KeNyZxeG>bmNv75WHXNG+M|@BCr2LSyqhCHRBl5J@C&QWdGx%-u3ro@qBM{f zZ(jD*7_BfABphHYP$qOR8ujX$Y{hCVM!zydPf-8P6(;iMOD!1v73pAOGPN2pJ~eY& zDR#e`uP9L~9mg=54UOEX#B&MVc{EeIfXqxiVrNl*1h~0RrZR^hXG|!=E~O!c$qQXG z{>ae@D>%Lt5l8#erLh}pBQqL%(dkAX?6K=rsj$sZQkE+|j(E)&qKvaojOICuCL_U9ExT%=%B2D@wG;yAxOJLXx9`gP&B{Gd%qc?9y~j~j20ZU z8Z>UFU2oC`LXAySaWNQbmJ@C;6%MOJr$KLE=n(_VJB)V`2+L1krZQU@liCLB9(TNt zbZDNm@PJPEheq~GyY~H|d^e(`1$F+b_d($=@%=*?&;3yF&GiiAr4;3l8yhMGDyD>WY;drDM_RE80e;Mw&D3-G+wbYDE1n2ARg z2o#@qs-lr3iBdrtVqAknqdC`kmzU2|ZRpph^A8V5V086Qxc@v{sGcuzJ|F;q|2)tC z{ow-1001!k*V3wkp@XTDouRSCf8)CTkFGk3`aM^+Uce(PiAouWo}hv)YbqVf8f!Y@ zw%EXnX$46mDMA8pNR$=Hv~)i7i2Kg+WA}ewbS*AM}KJM}I7nh#k>*jsDjihdTemmtrsJkv6wnJEaIxAtEV`y zA+};KUl}3^(MHsFo?gPL22o|~8wfsuQx2W{I^jkx0s2pkR3jzapk;c$A9APgn6j9j z9{#0)6|0XAb&g=bVUp(fWGG?TW0_@@1n*!Iok4+!ukB&MI zt(SmJgq#bX9%n_I&RrS4hT0EhlsRQmH5WL>uVhuXStj( z3T!f!5;l1g(3?Y~z|f3#w*&-Ky*8JK9_HCAYy{9=6vPTc`PbO^ixvM0LS>iS7siSu z`{*jAU6p*BuRv1-de@y)y}Gbg3q7>XZ6CD18uU0omNh zu#VzDf>pBlOyT+y!H_f>^e#pYlteymYMeLW{6VN||GxLjZx^l7D z_mwMpx|JjLy#9>KxQ%W;msc{Gju0oKyEU?Jm3__gE(AijA;V>k*bB-MX|b1n-@+&R z<-iFyk*ttJn5x9QjsRLu-K_-#M}Q#QVb(}G(%fz2R%%;Aa8{fJhA!pYP%TkwSMcIt>DG8Pv0e(ibo>gEDreZugVl#X+KOS%*-d?`AAUd{>o zWy<^)IQrQ@2qH3(;8wW21B#u~VRb`lx&|GN4~nxRTH+{Gi{I`d&RD>KJnw`=gmhvA zCS^bhO*MiQ(y{>d;a@&(747fMMl$XBdqc270vN$0qsmR*6+PN;X(nR*#JuJO8MduV zs=~XmEXk+9&(CyKtPu`5VogL*8ICoKY2Ytq8G)hJGk)OC6Od?e*TkTE*08YFRY2Uf ziXQ_O>`PCaWinsHIys0yMHpSMHbSL(z2{zcba|{Y2dp9%n)Tk4Ep@5fMXaf;K7$Ov zm_dl4N2hdxZXE-aY|vXmAUOj{svvoIp}Aa0mMdw<&3>H^D|S({&^a}Ogzw2X68Pzm zLnfS$oKq(NY%NHtryGc?0n}z<9Gu`Hkd?bo*cBAYU2y6NerG5G+iw;{GB6~r-x0kzWWm8<`NowSKtF^ttJ6^AE@30G@tjTj zW02Adr4GjH3}rO|ztcS(kxe*g3u%#qFFhhtZX^mJ1_?I=# z891@Zm=eUw@>Qp#`Y0P+8;n}}?$zsC)NPPgrp)ZkEY7Fo{TGWCAXBe3az;V6smj{Z zI;I35VV&DJ6K4!VRr|z}x_sAZ9(i83JU-VcI;dpWumQT|rx3Q}A4gklb`VXGUZ@tE z`ZqHmI;d%v0Pl6t>y5t(iZ3YKauS8*6bLgr1m(#J$_;h`QVv}S6G|t9t1M|k2yA>G zpWIEwWp(!7&j&**7XnuBp)#X^kNI)@;VS3h_4nrlsK7uyVv0nV@%N?V%Oou=^fIv# zlL|}ad)S)(Rh6XbCYCen7znW)ZErZc3XC~{Dw`b;@3ozy{gc_J{YI>=Py)sos`QV{ z(YoF7bXX>GhTO-X)kw;r!7P!*iDL^^ zoOc-oU-xl-75f+8yp`r`|71)UyNZ=ROG_rttLdnQ5v}iH9({***{M#8%X~qRy zu4i}U>C7AZ+UVYR^ln!&7Fk-_2jB*Eo|vLMIE_z-{b>;=gvtw(3}C20;4a${AD{}e z8IO#rIJcZ|8-IaU5=d}G-g>T*V@r|kh(P&t! zD8|A<>^FHb64!HY_z>sNXZ0R}n__mzr4QOCoDSVP-?ewHcF$_RQ1sva)%|Jn+V6T6 z)=#cHUtbd^*Xtc*I0fm5_1>cjR=g~NL~MdXDK}yWm#^u#w|1zng|Ew)(Z>gXP*Ajh zXdT+X@yYFa<|)zw$#QFSu-IDOw^C)%nF%f&Ze7~>RNR$kGDq2O+0UkWIL5oW{<&(k z&{B1)3hy7fEXx#6t3PAK@ni<;q4c9OpR>+zUg2wJG_Ez70xQ*-NUXxV7rXTEGV2DU zJ`u-bGa4r2voRaOLRV9xnyyTSQCBboMx0$TP|V-LwVXMcN=Dds!m=S70EN;K^^bX6 z6Y!NTx8He9FX#bVv@V8M4R+_omgO@OL{Fd|u5MG%h@uZBEUsVZ*YlfNvs zndvx+Iay@6Rexy*8*iozG~{I_H~ofo@9^^a3oyr?5!P%iOP+*d4~3K?0y#+(nHR{H z{bgt)n{OSOo;!e4USHE2KY_f?BIMktR6IRjxm37IMnIJgH^~LkY&O3DCfa-su>`!! z0bvO5Z?R^@ngthd*^}@h5SbLFcn1MS?wAJ2CFGda5k^YxCek&$fx`jk@WR;e(sWqm zvI7%&s?({bjG><2<2HKI5DS3+I;*=9ejIE++wp zjrLW-3id5+ffzh9A69tNhImp6P&$xz6b$I!155(%qWp-!OIZYN@S&FwdQ|+#%1ZkW zu57(>iclO9@ws?^kPgt#Z4xcPf$Qy$llz@G^t9`hnW_i)H;a&1mp}I=CZb%bD*&?s z5e579rA;IE$FeBTdS<|QmJA`%yj@<*E&8O+lqmtMF+3RC-$eNl*QfI`r-Mk7N+(Iq zsPrOd7G>2@P>U?F!?!RieO~T&$`mV=P9x06;PrBk%wvmwxDRa@EB+alPh3Oz8%RuD7 zKkv#wG*DUtjH+|;CtkEehUWA9|9F|MMNwXtVatK;OV+MH9w$IfdhfB^_OUfiP7sfN zYPM|7!)0>IFCEB!0dv$Bfp#ZWg-rU$rrEM4w`?myS$%oB+3rDWRqA_S=AvQBq3n&l zV6r!KeOLTlO>uH{bU_5XXT|-am%OHWacMoza{-9bN`^7s{sb}Z7;$EnU4b`%$~soQ z_L@A!f5%n&qU-2~KBIm-kt{Eg=w`3;tz8Uc-ePUzBE*BjW4Dd**19-}^LYl--hk6u zhAP*629?-c-RE!qgzOPBqGPL%>`c+d2X?@_?3Re%g{$K?j9GGB_3@7FN1K$ICrKw{ zAa|>kN!OW}+e70KEWO#PwEMuq0rt7g(Cr9`vXms1x=_XLeAg0FdUG+ON&4(!o?YSP zG|E`UNM#|rS$FW*DRHroxRz{6U;W_mB4=bgYY}nk33P({)d~)+jmIo1kCE2xTY3%p z$5(W`{H-dm0Il6nf{_i0F@#L*+oHFn@jBM-dhFQ=xq;pE93L5-B}2!i#k|z_YGX{% zaqeMszU@5-J@h-lGFsv7v!#1W(Uk=m^Ky7h&yR$n7oG%y>%NiFF{0|@eOQ?wb2oq7 zYsO$*9?7Vaqqr~ahc^1$j5gV288Hd$puQk5?X91sj~8ww>?EaYeh^f|q;}^8Ph2-y zpi~N^a#L*oy%`PmF#|ohedD%GvJ*KVXB%D!qg7P=(S#*FI^Bdi=@lQAw^7OW^qrGx zqfsP97og@B%wvStfP^;@71VEC2QutTC>PdsS&Jy2bsX-E^3;*vi>nOPYUx>sba%&+3T**dspF3Sf4G0Ez9$wEcC(x^`*@I^@P-W0U2#gxU*MN zd838gsrIF2XYaVGP4VPAWt}2eV9i2|2Wgo%f695+*bb*hROLdLC;6 zoztP*S~GU8O#q)Mx4y-^;#2CjGKsT?bW|Q_xu-Q)^|#yzXBty9zT`r%Zo2|7Kp-ga zA^@m-X0)!(8E1*u&P7mBP38)ql$8WULBNk`e^fSl1f z_JfS}5z5aoZ33y>Y1TdxPNB?icp8czL@#hl*J*=Sq@LHl2C{g3%F+1h78z;5a%fJV z_@1gXT1BBliOA9P%|N7-*PJUyCdbg;%C%he@yy}17oE_=pP?~Jg}_9eC+r9 zlK0X1V?(d=ank3->G!iWBc{1B#vLwlN?ZWk?B_DD)ZKf__aLvJUKKFa;2A{Sbyz30VrYd-)&VS+e zwaxt!HFWCx_acc01Lksb_FXths{Rv<-#3v3XvCg^F4&*D6bT|z6*P+)L*=gc*C<1~_CW{%ne4amy8w-T~cQ zM*+sHMN}%Hn7|^Mao0fa@rp#TGXC3&blhGCrC2MJM_ZI9nYwyBg~t8rJF%*vW*SuU z3_v+4Y2!keQWr~fL>fX8PDNf#Tb*#08ZyOltb|H52Sp7@H!~*O^)_=7s7Of{R0FF| zBA2_58-N%s<}+c|pzE4{*P^xsBch_RwZ71-M6B0*(+ziixYo@!IEnk-)t@Xl6(&T0 zmuzl#A)!u0(mDYQ&W)*gp}6wHJ zv4Mic@EEh zYdF8htV`Kc(QMi^%y}Mq90xaxj?n;fPKXg^D%eD1k3Eug={6}0dA~xO3Z`1$urYRk z5`6+GITE@Y_vV6z@x5?vbCE(Cw#Mt8fy)&OeG{%Pk=K?l20a@zv*3IZlPaIbg{6J0 zz-}WD-y~u#&}Mr-443`t#s}v{JVG0_yfPNn{rZ)40id2VUp1zOvDHAT+>8Lngr@PL z=$WA@d^=k(BHMBZpIc3bpgnd+j1N}77eZ+4ATQF8B?|r_#y4i1?JHK#ym6hV3jVbC zX6)?zP?Msj2)>Njl;s(MWzCBrEUy-}kND+KE^cd>x0V~cSXAgS?g)H~k6a+&vDw$7 z_Y%H#+$nF==HG%HV%GJKER(qFTfA<34g1)d7tB8Vw_%LvcfdV+e*9->A{6MU>>ehZAlco? zEvawDfl7v%&$v2=jHE?oZ8asyh{t^2JC$lQ=5{35Vp`%1dj%fuTw7dOS$W`5Yitdj z<=ix7HI{ui;i)P|q$K*| z8&l~h^3m4asR`>C&+&qc@%A130vdzxM_FZwWQn74> z&k$B2Js6@}rAh^VhGM69?J0mBPxo+65QXIP@}%%*J+lW-ijQ{+G>EX}vgLC)_^7_x zDpa_zCj8Hm%7SfUM6GOq&W#RyXgoy)A3ZBG3ff{i_608<0={4cf}9QsW+C0Sf_)%~ zNJ4b)*CRkD$5fd!O6PKbCwjQ&n_dD&JvVmiF3BF-KW4?j?K#Zi@ME}yF!NTxxj^!daCS530JUH@+t5&?G zcHlK@ivEHqLulD$gplxZfy6NrVtlL+)DFT=c}QAtpb}^|%-=iB;uHZwC^IoRe41(^ zk((t4kSg|4r*d$IDK;}Ze_ocq$sVBmJO&LkXgRU00h#yPI=OgXfxlLE4F?25ngtJu zoP8VbK};m}XW4)Xrzk@#4IwQbKci5GwwczT-uy*?vg9lg1-#o0s{;Sf1})&r36pQR z=?*H{r*XH&DU{q};uQ*rpSTH=3%HL4D!od)uv%OS9t;pD)i6?)PNTIFD%|xjP0#2m zim4>$z#B^haH>|t0{4aptQs~a6d?{M$pudXZ+3)%S%qWN_*QX|VIe`3S)f;6M4IYP zJ;8FQX@jDFv^Ra+i0U`oH?xHU5f8_WofXlQL`Ni!3IXY6!WIhiNHS_&4O@0=?iZ=8 zmUKWwGl-%Nsto2@z`RKN3y`@SL0VCc0_HI}do3bdHsT_Xs z!P;f~7yr3rhyw$`4v(Ls_Z!*)-_I}#4R+<$H6z!Sl%N z=+Qp7*if}&dCSYo{+Yh(%CpM+s}5WlSewsshRX!Du^4ZPwTcZ-^yT*->B~1y2l!c1f`n#2y0FAnzxgagC^TtlfyOVrCt_VpJXZ=JlA|kV z(UHAH(+LNPwEk}aroAnUqEe#-7vc+*k-|Y=Qdv|pM7WC-vMBD5hilJYd_aNWad7wD)_-=&o zC^?fI{YQ2E;3o~H9D=&~O{!Y4*wHsczT?#sPGJoaLe#$Vq z)T(yRKS?7KuA=TnGMeVp5*;-sG{C@16mAcj*B+;l%lW;sO0QAi=etopSlr>>sBAf$ z`1?en$4m9SK*$=0pi;xDQ8U={5T zAnzYl>`uy(^Z5MupII_z^00QcBWWKNAG@{9_EW}6;Li(! z14*m%J^bF#%Zp9tUY6|i9w*ci)5P~FU))UpQjS#JDd0+jV%StEH};KCVu}FG)56CN z?L^(y|C#Tg54tAVon`^8RD<)KZqu9{#;H9e(F03>i#3@BOe|#^-9h;SRiBBoou-vf zCuGxmkU1o^9x8l7R?m;kAdrL}b{!qa9P?$FJmQ?sa)9~80epSh(^|Y>6B-JH@Q!~6&LNuNNI0` z)2jF%f2W$er)pmWywuq+adEs}#0~UIuyd+JK*k1^G-DGfT;RyI=52jE2~``424xlW zDO)Md$v>lrD5_lNp2pM_JIxufi?YrY+J&nJtkQ*wH9wk*D{8E7u)?Lso?fFC(^;4q z$pz`3*bNgySA%r@YO^L)HyaI8LV>JzQ2D32QIM82d0Q1=*2Hf(iVxBR@rWC!@@+rZ zSL=r|HRUMqW(kzMDy_0v2p^?`tB3byi(C8Xp+yR}4aW>(H@mk~smApU|K0E3E(jdL z?a7fp0|EfxKfTZY-W4%%0|2o9*Q;+gOD7jsLmNY5V|!OSm;Yw}t@ZzsZ03~9Whw#a z!P;)j+{;Y#B0Vh5oC@XTLx1 zQ)O#kyd1^2k984^HQc=uXXl592a6@*bmZU#+0xdviw>&kAfYJq;}_Jx1_3o-3!T&4wMJ3IhgMg(3`# z1CL8EIF8rZI_7Q2G3bu@c0>4DN$5W+sLrfcn<=Y=nxex!-=BKg%nUfyd-) zZQji=brjy0GY~WUKHCvy(Wcywjt`~xj=X!e3qVT>t=z&zF*#0^8e;ud1ZR_Yz!pg1 zwgb|CATtBJb_}eJdn8V@uklRDy44d)f?`hZFX4{z7;Gv4PrOoK6=JghqXe31IvFJV z`>==i^0uB=$Re;t&RqG!&?R9#2<`@xu_^2%jroZGkcaO^KpDxb5jZk2;y1H({MQ{m zzk2o%%FqmPwCRABcHt`crg34XCm#tJy^*`|mIDJC;H8Y@Tx~LmS>~nN~@^bM6l^PoeIGaEQXq_n7#YG@9hcRGs^u zEBsmJ+@Q~Me!)c+x*@55oq)E-^@+Y4XjdDlLEP@7`iaZ(}>qcHY!xHTh~}MDOyhRmbZTvkH3DJ zb2$`hPllZx{k;r9aDnm{l5nsaz@oz|=^_IW_;DFKe!QT+5H#M$FLWFf%(wOA6!mG( zO)=})t+aLxi24Di@taydAH#iLD1U58a)+KeLv8A#G%NF|;;0R>Bw}x*V4_5>`jG4& zIvpWArTYc^J>8;1pnEhIa<5kIpV^>34^lPNk4bkLXV!a?Uhh`VQr}R3W)-7&>?CG` zKj^OA3A|GecMDB75s+O?+JdD(pX+*cZ{@)nK_!Wq?yP zw`gewnWb3O>{_%!3vPk4<{h6}^jJD>RX!X}f%S6m`sJ>+kX!6fnKyq|0rWsXsOYnb z{jF3HU)!BxKC-T>;tmy{_3vU7*(tztNEjj}*%FA7kx(RQ)0qvLbojhRRW#wC>li5g zflA)X-4WS83!}(NSnKkeZjAF^J~IHyBl@TL>*9 zCx74b`vKoo`wL$3N-Tw?1jy?#b4bXSzW&Nj>QGr=T)*;-z!RoGT}`clM~ z0Y6$QO#m_(0#VF5Ipfw+(qaWD=52cBcUeSW6z1T=AqFzQSQE2mQ(|6DBmJlE6MP=AX}-=8x&eSJEbVa zF(oMVr5J%Fy*HFcVC%D4!Q-OgeJDY0z|2c|E-3$y7mZB1b8J~#)afqqC zol~UnUTIJ)Tvw4D`s6Lp06%<`&H_PNd9YO25a*XRfu>L*WD>t)eIMgwBs&Z!m}B`> z*mvXf^;ylzG40eulQ~&=9!`}tTwYn|p_3%IYU%Pm^pEkMjZNVdcLH9$#wf=xz7@i3 z!Z>kPgJ8KxBM^!F_1~&vbae z!$6Ngpd2P$Zg01*(uq{1G&xf*$@%^r$A}Ia23(MN4eOLaqb@ob*3l?dnPAP`I(8N_ zT16{1XoV;61AdGJ@&dhoJzJ!jlx$0_h10{VY80v2wH;llU=f~LtaPnMHAh~gAqsbB zbzUR%HO82N7CkAh$D;2ha0oN7dAOK8LL&G9W&FvAWEL)FE@It!zn(i2z`+7~HyCoz zC3yvjP0D({igcFy>0WwB>^O1}M|b04C}6L!!+?Ays{q&P8`2wKK7nnRkXER)utLit0`c@ z0n((Zkg($qxhX1D50MW3$O&*XDJQU6UX;M*0)xe9*}}l|5@QhrIcOk+dXo_mfbiL1 zQ@C&yXEVmY?!QSwKn-+(fbL_F3!aYTK_i&q!$18&sBWEUT1e>Fn9Bu@v43T7b1fU~ z3M}bvs_*M@E|e-RU+$2&^pmCi!<7sb1p1~}nB|3&Hwkn8bcg%1!~N#ufMwHg&T06J z(^uJ|ZTKroTy86-%7BoU`Ws_&kzZM}{cEuzef3|k8Vl3F^qtQc+IlkbWR0(Aol`pMN3Ty7hF}r{Ln>{6!nCEZCl(^w-0*0M2AzI3mpo4c0f>y{O zaW<;_I;Qf>7~;j_4ZrG0;+(*t-CQqtbX9x4Y>d@i{uuhDF^(i_0M-~B{t07p2NwTm z%T8An!{6%HV|Z$_HER^bq)T>deSG`r%X2pqkbC7hQ`_3&?A7JG>Z?8e5$hl-rYkEd zxw`?pke33?wT0;WS!@Uz}^qQaThWO{ZLizyt=>j1SP_J<;CGO#!z_U zu{dEX0x;38aZzWwxy}#^v=EiVw<=WHQ{PPULn0;I?Qo=90iEGE75u@dukj<}bq0FY z$)d^lMyu!&vnDgm+J0n(VX_FijOy~2L2Tqy^L+AOmM#3{uCRY+56S1_a=${EO3YXY zN?7RQ#t4iMmy?Y%2ua?007E&v6+=>FF^ehn8$S8%;m$26zgmBJiNi9IyVN>eNKveA z;rpnG_@y+1koZmqqQ2AsL(ZxFut0n=b1!DuuC2`F)UBKG0hQeK)#x;AcAmo;8Lftl zeG%_gJ{MXVNHEL-gVR;~GLyb{yHPng%x=(s+%7yDq;*1JhT!N%%fE>SaLcTu<~co zO-+^lNFjr?3&h8IMOhgwOaq9~&;OV|!o2#(aei(8|7pYj_Xd4U>i=T<|No-G{_FG9 zb0=)}|Dkp$))tnpu=0o~bt#TC9%-a#xS5b^w@!%$FcWYhp57XaGNG1PS>v1S8S0bE zH^w+KkV|Seu%SMLO#@~*(`YR}daG$}5J3s1*pmCo`A`EFORk%eg z-~7D8|DLdt&!}D8*eqgWZ*9#vf*=Q>7K?9fVPoSjfbtN1y@l)12_^F7AX$mqVf?b{ zQ+@dCytik3`Br&oKLqT~T^QIH5TlRFY1_^ubRdR73rc^zRawT!= z>~0Wio|Erlcvf7cxTY>dHn+u{c?UXdUXR9@cau+=UB_c&Dh8kCx6cCIJ-dWKiyY|+ z{S_E)qG$(1#J92~dUovgFGbFtKIDDm$zR5ugY=9$g%qR{RR>q62%k@J9dY-!Om6_x z;awRL2B~bL)(Ty((eYxGR_K)$8tN|#uE0Axq-VKh_uUaF-{*=UUN(5Z(S*MX_;$hK zuEvUO#->k((1uc+eGE$R4NHRP6W=4pOJ()0TB_vLd!l{w?{Sb@$3!)9LeBWB(5Ipz zyP+o#k~e*NU}{5|?+>fN8;LxbnTDgVD=*ggYkmuJsRLZ>i%@hFK8j|*PG7-phUd!h z9ou}3!9Qq`TPX8mDt*vAVld8R%m$>M(w4mhjlg%_vcSc;WB|q#9d1J()XCM?VX_7X zvq0mR=3rvp-IlyM8#f(+Uq0*rc13J}OeY}orR*(?GJt=oyd=}MBAGsc9KZ`KN(?>= z!5zL6!jh#cv^~k)gk#vVIegBfJ>!C_jesX=G`}_wTO5c!;_2gTO&|4VkvrI+0Na`f z#hgW3Zee^4&nXS#FJ7F%Lk<&+hcCcJTsKs+z;)}itzyS%ouN#bE0^+GO<%|OSR=OC za+0~{H9km+u{yE44P&|k-kg5 zz;1>b2-oBBehiKomDI(?meWQqE`@*-QvseAGIp@xh)xRUu!x!sG`X&4auD#C{g=UQR7M=Wt&M;P>z*%v!c1Wa zX-_p1?2+eGdZ1b<*P#e{-&%}bbV+NVskO*xy_Il9gWGk1!qb>O7Cih6GdkXh$Y!P8 zA{|!jA`g)tECg(Ey>CsVOCMB@c=7@F^Nzv;<4y0{DsxfyJltQBL*09)8ZQz~2k_z< zuB}`AgndG!?d)vYZs9QZ!09}XGJ|R2HjfQ3d~~%+6D#c5+-Fa;>O)?C&X@l5C6Uvh z+cE9JZ$fUI7UP2d%((74z8>?!zCV8hb=Vj6rOQ`~){WCIi4-b`GUbW_F^HoE$VxK? z2D|HnhOMD#Lm(oOG2bw{5O4=ln)Q@S>4a1$m7FLjo-b91-9e~;vf&Vo+iWT6fFMJ* ztt*)OuJ7{^Pa=evII#&zo;L}%y`B;BwRP57Gy> zLRFa?CNEgW6UoeMBmGonVtR#nZTJK**^&%Xe7R66(rltMts*S@uE)EV{sFmdU zJMvkA)4E)FvHRZjoDeImBl6Ov zQi5SI^i5hBEtCC$9T)nigOr)kPX&sKE6_!kixzc-w4nOY76m9B(xXt5RVq!1jaFAI zGa6wdqDbpaob_f@{Xs-{yT<`7oDPq`EL6f*Czs+UN;OFSDPqa)sPR6qX#_e}0az+w z`$9cpfBSYImw=(4mx?mXJGza(%hg}tVgBBbntd1tu`ss_f-+sJGzO3+%*@c-MixMF z_nmoEhK&(Ckedrm97 z#ObSJjG>G-e=}tyxaW+bY&aANUMvL2=`hrwE=V)l2yXuC$*f#6S(Xk-0P=@OP2c-8 z)8+p1Jx~7EUyD|`6GWMmP)t0Z)z+v&NVmHip0C;s`ypjXq#4PAfybQE4A=E_oe%7n zGU=$8vVrm3DGZ$-@0&zjH7$S}bhqDN)hpIrt}%P5%*A1b^ElrgKw0P9@1F__{Jf%NPSB<(eLf;)j5}9H<#S=B!j*P7zO{)|>pG(aBK47C&KI zet@X!ap+IIdGqsKm)nckSQNSw*+( z01b)DNq5YVdy-6;HaT^kdVxS6Y--pAM4jYSlD{>*qLz)#B-s{Oqv`Cmx=Cc5<lc|tf zBYZLMT9R`sT4#1;lEve$?gTRqe){>mBHC*jFrw`l=(41Bp-_pW$w%MU9k?nCOI$hA zw`lO90NGRKUbor-g*)NsQyzIaH9_4n>FjIeFM486x~6MU4bfi+JV$TEi5w2c2jc)X;OK53uKzZd;6@FG1v#MSxS$tS_N40O;3$}!RtWsYH zYtK=*=ffmi3OeK$#Gg+PW_FimoHz4?E&ZNtaYxMJU^XFe9nmTt-(yqPNKhAPRBL!# z%lOP9$FX51iZ5iy4kMV)y?({Y};g|`FdZ8$Kwf_C%GVLg3h;JSh$K>zkFflUBM z;lOkeoNR-m`3icQoa`SBHJx8CC>Q|5J1fY$xr}njBghZdIm}{5O>bikl6k>zR}< zrw@|V`K0br?VfKuJn zs*z>y0Wvcx^$Ep4d&-CH;Ck_?2P7-?8$vX%X@*>w*)ixDu68-p9P)-1Z!nuLbdhDx z`zb`%_n}W$MAoRMxlepLy>BPqeZD?l&u6ZDCPch#waqWp~Kl zi68^+@_J;@9p|6^QiOLoRiQU8Nh8P2FAr&hYRHL!!T`+g+!2KY2kx!R(!W=$J@L@K;b`4*AVQEa!)SN3ok+Z(Ta27{P zQEaVWG#=|g_XHS!5_v{*7*<`~)?W9}8vArr`gBB6862rxj!(%)L{84LdopwLTnEjg z%J@UeD4Qkp2_3p>6&QLK?tCwKJ6quK`T8J+9%#yyJg8`CH7ND89CfM82Rsr+Fa8{5 z0lh6!*Mw3-dix9H_JU7TNeA>+ucC9O>KIvhD1HyB1bv-p;9I#Ba(~6vPUF9O_ZV*> zlsBBME5=F^aK3&#NPy{*t~tCLmb3ZrioD@>)WvMPi{ z5jV%^>={;|2_=O2IHU_U3m~UW<3bUCk8yCJ{f0N-gP)WjcwKLqX>2$CR_-y$+@GR-(t#QLK ztCYX<8YYN4H%9#DgOZG7knFhj0$wV_PEp36MF?T=Q4v%W%q@ajp zmEqK*b@gDFkOhhM@ruxDPPAlQT#>*~00`8Wnzxo3OtB zm(-Nd($;}OgXfe}6;f|HE|0}Bzw@E@PArG=x~ zxwkV4wA@g`We-D8$Qzd!jdy(5turLK_iw8E0ZAkV`ta2@e;y=(3i}RsssqZLksweL ziyRLTFG2XOxy#0Z%Ji`**Q<%SKfyMeYVkzPVH~qw2DH#)_Anx}aUl@O;B#Dh$f`JW z0hlW`czJ;u3(xo4`-vw5AEMyxY77>(6V7vDq-JGN2p5b%`%+LUGVHNrP&a`yvXX)> zP8AE(SdnaIPa4yb?WSk&pZYmrQ#KiI{RyK0Q6y>87=X1`(!U-=h-G-?vY}-!_>a?C zf5MM>o@agi+WPjknrgUnCiB?zuWd8!=p!7+AU=BG%Gz@s7r- z)Yz*HivOBj(&dwX7$QaILt`+R^#jY}US~@4WWNF#)wKD}!4& zRoaI96Oq9vYs=>nCm!_<6gE{)(*V&naO+PWbGoDCwM=g#c!+VCjGul@Z}O52*Xh6it!CHD3{c;^t7YPA3W7JvGJp0QFNol#4Z9aIn4)5tJdV@ z!xgkkt4_Ix#>P6*6{~)x*LL!WhzuQ3qh`jfmt{@G%*(v4Z)vNct&Pw8at3H!EJhOG z^dDgRpZ3?AO+OwCPC(rMhp}&r?z?T)jcprE8k>!6+i7guwrv}YZQE{~G`6jiK4+h` z-+fk}wfmu8`u~vio4Mw?XYRS~8HTUn6FzBMHD)G@e$U*}=yX~FM_}WHde0W@m>kBR z&jQ=S4ufn>VGhy(mgXJ_WY$gycOX(SU{y$M|6q<$Isf-ri*8}cMA;K0QR zsKH;R1i9=2n|p8uCZ`Ec;yK@~C|w*nqn*2*zsqQlPUd8nM%uV2UGHL5mI@{W%t0g* z6L+KB7tjwv4$Vy}A?dv1w)j$}%CN&h+f`P}>WBdCmml2Q&)q*@?};Z-8sGt%SsL#t zZ>7HqBTZuBvyXo@ES~4poeOKz6ewEXIH-uOB6{$pB|;@bOb#0ej=Mg9yWtz7#bb#`LI?(m;3fim6Lh!5=L z2+&O6NArBowS=^ffT%cF#2wj{Rw~eD#AEKeY18-GS9GGG;z?9D9^WB&b7aE2$DGx@ z$0S<_{?Ojav5aPD%=HCp<8{aChkvHGs*a?(MSpI5_)YkKJ_?xV0RR~PT4!Nz=-^;s zXleMD8jCl()n>$x?=rrzjK~^9%f$K;Nvke{#vGw@!Y!kw>22u|FtIs8>EFTl2E-Fm z-P7Ewxy8@{c)H<7>@rv;BOikWfx-v$9-7)zk+883GwAk_q93Wum{?d?rlEVsA$u#s zWee`LG&KX_tFJ(Ur4Q&Xj&OjE_Tvc*q_;#gytf@9h0E_4i+&PCOdsYfm@#45Gx->sXE1$cW+%s_@p9*5MJ6q;|OIPWIDCts+v`ykeuZrPHj?8JuX(o(JIV;6|vlfsqw zONHdY-p0!MNs7}ECB;D2@Y0lIEu{PejA%|rH#P*LXPS!LVYGupvT5`>jofCbR!YAV zv(&AS3jg`dX&G>~fm%q3tksFXo}!8#@s@BnmNDUVf2}|ODNskh7ZysnGYqKfs>N3p z8RMJ9A}6mDqm7oHojuEHyT}hvc89B7x?e(w_gT+f>kA~)1EE(rQyPX+f8 zMbSTD zAd+&z&aT!5jVp6+DuvZKc~6SXgBVyY#5g~G?qS}!H{E%o>*Ma4Nk#?+A!`~1xmair zE?ZcEG4*TOGndv}873MQbK!af`PWYJMH?0jv^dIoOwT}N;qq6uOOg2Qz24QIk)m1k zfljU*`SfZj`h<3v?(XZ?)piz?cQ<#@%0F!a_!6Y{hblGXr^%E|^{kZ&)n2#W1bUVF z=ccCQpG=N*9Ppy;%PdOp=@56)v%ARrhIQrl{fI~X&ew84=D#qhHMOIwVzT!cANa?s zh!~1*`{){8A&8Lr>gef}Srk6b4U?Yg^H#ZDV8g8B4=G`hhUtAVcw3#hES5Jen*;H0 z5zi!xz#RFUC#ZDxb%WP(6KEA~B01ZO>*M8gzIDF*oHrErMR@@`LQ7w!+%^=;nJk{h zIrt-$_Vh%3ip~kYi54YjBl39WsS;Sq zS7RHG(I1C*d-G>Xxl?5KMA!wTKKMZGGZ&R0?=PQE+#%oF)~!D`oj1L`6HS3OJkl~P zZhw&Bz-+*_HEm3sEc;)5PqAdKM@QG}cWa>Sb7`QQkIHxO1X&?Q-XA z!NF0Pfn~DoSKc^2OtYHL)i8b2_I=|3Y^x6iEV-tD6>)4!9Dva7)F|!w6&)bAS1}2E zvaM8=*18-Zu4h}Cu?f#+D9^yN7r3i%`-*^>*10JxBUC|(y#;C3P&@_i$W@WE1bRzE zl{0tjdSCsEt){0{P%F9Q1j$h=uTo;(F|?IN4*K%@fBg@)uuhf4yog2~9&|uX_l0VI zUuVM#AV_F=QzuS*a?4Tj2FRUk(Q#02lY)Juh3bV#gw|<#z=JpfI^gwd^%EQbko%eu z2OnsaGxB7fu7i{jQ6?jR{F-oaO6%d*uXQYLsMQWBISghc?>8^_!(T`mo6W4t+WRf>( z_|*ol5Xk&i&t{>G$%}2%efQJK25ckKl9P(jUC+T07_0++I^lWTG`Oh0YKueSgSW4mpZ&+eZG^Ax-O-pmmu(nP` zsp`fcv!L_}AnK330HFpU%%|l z%UW7PC9O=hYg1XIo=mG@sRd}xmH^S3mhI02wIkV=hHL5c1Z;&resrI`an)*iNjK8W zP;<~xPG;e>SV>hvlC2z08H$vCi94-wq63}sj{aM)$=SfnHvBoK=y$sC=R_jY|MSK+&RfP;`JS$J>ryCubOdKi7~cSDD)QHy`h6Mb<04-2r`HibC}$mT5kt+-!Enu9dGvWQ@a8stiD z%H4fY`Yo+x$a7`T>LfeDI#0QKEvVN!_VUX&K-c$6n<4n1okMCuw?hI`y1phkLA&z7 zx*t4qWI4&ZO1slJK)4LS>Wu~S=t}13s&~##Qn;H&=0OJ#aaq{%z`=4)W6GYC?@CF^ z5T(u9CU-Gh3z*K$MxiBmyJtwgG{9i5sZ@t_$xfCmp|~Nzl$d^{xOF?EE^~fB_Zn;u0UC)ZFgz*=<9r_2JRbrb)CKMqG=VzX-~J_av#( zCcY-xd~G9N{}J_WWmj2r?LS$cOI_@G;+8eROEa=Sc$n>gxlKi!D-z%US*pD4Z9{3X zWcOk)|10!hrLXOpdV&FO7`A3D=1$Egc{LC2nulLXeY4_5>?LOPqw%qKZa~Be*oKI&-ImB39Jnt`GN4STreuo zIfFw=AdX?g9`S#})6SWyK-g}f6nyf+Lv=dS06cN1OA}A+ZQ0}X0Bxzvq0w$zyo1Wk zl^>;!)l_SgBA#HbWduRIH!%pNB+?vl($Pqs2m736-Qp;PgK^*!uf4_QS08GMPfQED zVLx=N7*quVt^GhGki>TiM{0sY23=dCX<-UPKFFBBZ8z^Nd5(%**;`GtjbTzj01NDa z)*RZbNJvJa6OdLEm|w&q3a9D-0w3ViA-X~%+6NVEz8j;hA-x;pmab_Ka)bKW&_dP+ zxSHv{6h*^bb_%64gAxAG8KHjx5PHohzo9!%h#*9ioq?&10r&Cv;5~E+gZP+WyJ^qX z_ZZF;xf&A=QU>cgN%s0V&!~&w0!(N40^N}T{?M4#XGjo;mCIj+@JSgpQ>mb@96IjV ztkt1ZG0mzP_a#2XE;>-B3xGyg#}Lop8$t-+3Jv!_LZPh!d&)q~DHstD0i9l|$pja) zUl3HHdS!zBR5kA=iHoNThfzeRP5k3jc=gex8=RJ)oo0_oPM}q8H!;GMpg5)~iv+{5 z7P4m4*sUG4S(r9(0V7SH@ebpfF&NoObKMR^57m1N#VTud9#L!r2m=J&ebLpq18Z`s zPHKx=dY-G-_FQawzV=#^P_js~wJRFpj+7_OV|J}D$w(&JCD z`Ou*jP&9s!+nuT10PDn4vk;!7U92NH>@_Djz_Y^G;_jb=T;Ifio)l6Npc=XcwbwEds~Wo+ni=%Q!E@SBX!Kv?@K$O94)`^B60CIL4h<-lQp z^`5liCZdG|F&r~RtDC*EmtjwRc+%zy92@{fFsfI$t4G+dS>>o8yfi9&ZxAv9iTvSJ zn#U&CyTl72Tn=9uPDnx%`Y!KXXDu%+U)kSrbG7kIi|<#giSM)zSNbkTj)!J1#ans6 zf*~GY`*u5(obZveF3y}%_s{J5>l>d|90UQN2p}W6lei+w8(bh3a0~4Y`~nN zPFevx@9##ZjWDGyeiieR5$L>ayDW-WVhsRnIOe8|wqs)MnNjYMF7#LIY^LhiBz z1rk*~U0HbFJnCKSjU`9-^s228pZE04&aL6NPvesB0gWBa8ngxAjG5JR?6+{0hNm(E0Twfsqi> zhD1ncK!!|lSu~KxA`#L%kLz>jd~m~#UWpZ%vRsZ9J4|x!vGYvLhy|Jvcy`#sW5y!o zxzI=;CV-wn?uU%Uc1ZsjO3}|LY-+4FBcW0iC$45W4TJ#pq zTNtC+#tLWxP-3Jxq}T&kK|}-4%t_`x_J$&I!^LVH1n302(JGd)GL|;=#9IUv!UpFH zAw+^af_W08{L`uTv^}MYQyQ${?lF^CF$+kwXe^+DqQAbYKVoXG+TDgL?Ir1Irc+ep+Mj|-Sm#{(1 zp%SUml0V?=GAJoptUL~o zsJ+{8`1X8vz&cqqbl{{$=w+^mh9ys7YM?46ZD3ps0S3&hCvz5gKbUL`9$yTUtn9KC z9Bf9hb&1nKiVQ+dyo{DWSH?=#yJ3x5*FAy&14#abt^cTr6gzKgR!;@jz42wK7^Wlf zXZ@H(6yyR1-3}1EtL?C|zKkWxTr~LF^dg05heyg?PQe#QD%@OtoTJ>mFl5)@tg#?+ zoM;%sfpkt_I>5x}1^bpHJNs6=*RonkFh_*) zHGp0hv%0yKK6WyncTa~3$anoS-b$>Q30J4~ta?tTyynf>G$6n$#?Dv2Yu{~HWLS7- z4WRMY$z{JUM|UhvwP|FZDDb?*)>f%me`XdXtHuW43Y?Ncf~{n9A2>Q*6N7*YLyY12 z1YuRAb}+l-J5RPVgi8>Eh)>cn4+_0Me#zFxq}{3IEn2bPtbs>(ZBvatKya|KF0NwR zLvkDd>9fFNza_i3zhC#}Mn}_Q594=|^H?T`^$lLp^JH?5N{*W@lHGt5gd)Eg?30re zfKF!s=Nw6_7oa8XOd(@2A&d<^UT_#Zc;a={Dxb21J}Yy*gs+BR(4kl!N173p($UZ= znbxUdEqb7mHSxB9j!qCUKaeFG>z-GJwLEB>Mb_=_eqCIXfq8r)e=zT&k9q3^@UrbT zR8cb1{!+`Vk|=WqiE^_?h zQ}ei_RnLiFExte7B6dJ2JG4|8d^G%A98jatFrnP$Q}e)P_ju#PrMbCEe@IX=Nq zaW}YlD|gD{-Qu?1gs;Q+t)@yX|EDJtuP*)8_M@&Ta2L|qJ!bMnP63aXR(ljvFa-L- zV4Q|#(_ui?X5ph&ITR9wPsM&YKqF{1wT~rU=>^D7xb|`vTV)Tyg&Ro0))ze$M8=PV zZby6lx{Wl6Ep~LW2G>)pp25|VCijjz%npnjfba@@jkD|w|7^Tp<9UrmYJKw>RfFaR zW!ymWytAo%v%a4b_dHf)dSu^5UE5(OI|+S>I0ApT?p7!X_k%FE>6FG0AViVi%MGbu zFF-i>bCJaTAd_mU8`p@m`(DpV#0RT!+O`GVNKJJl)NhAnUYlRReD+QH=;6c}1B5wA zF%@@2%d=y-TVYHC8}-dN=T1~!V35zJks{@Y-3y0L{+IG5EM&)SzA0!cDQGM0^jisH z1d)7>yOcHD^c%XbJ4FY?DGkHeQf4pAIm8#dGu0v-+1KFQc{=4i0Q|dZ65^wx*xq%r7_qfZvt$pKI*K z&n_$3|59Vy+v(E^=-L_3*qGQTDZ&DP|L)ZOzkmN<$5tqU9?p*!LFk2T00m840G`Aw z0zIb@(>b^r5+;6~@Kbwr_H2JJ<78b!NXB2B-$h(%I5;%$?JNmO*;n z*7KmA(%r>z232+UKZ0|vG_EhfpP%>p6aW12gP-q3>Hgy575;O>+^}Da4w-_7=YmqBKlJE1CPU1Ju7Mo5j_Od680a z4o)TRT5K~{@vVJ9*e6F&V|xgQ>M+!ywz$@=iVCq^9s1&0o(dSAW@Qy6;NFMzlF*)F z=G$M+nfMFlg7KUfmn^aPWW~&VVj^em7Kce>p^~mt2$UHAs;A6Hyfp6ouI;Nlm8a^2 zyG8Z)Y>Z6i$XcQSF8OO3}h5=4ZHtpbeId(JAX3b!w@ z)l-8F@L;ES$+NM6E9({Wn-3xIxg*tjGb-^nv^vG5V5ex|$U^4lMMjI^$0;pftK%$( zP?w4miZ*s{KzLX;!u1>H9~=$s89oq1AnCi&ud zKm$TS+^#`29YksM@@(fYr=7!%eL6CU{iwQ;GA%E+5^{R2pt0En{)9I4W32Fk1z-29PJj@@!uR zDs{!PJOb5J?S=qY6C5Th!jawg+%epwhYe=Rd}s(+!q&!W67n+Q-C{0I1gAk_SPcjd z14D+Vk@S0VjXP4Uo&bKafGBMWBVU!M~VR43!4;(7<(wUQMa*B0RP+{}k1ka#B0oZ+w3rZ6UJ;4tydvdriS={`DyfD5lMF2OR&#QTlwd{I@+Z+y+Rwx_T)yX=)6Nf0F$(l%I7 zsPcv96C8Dn*;N-FCz$qj;WH9}m&81+TZSL%ZgsknYM4X`>dtVNnbSuQy|KAjo(vd9 z4Sr?7sIo|Y4*8DsV&q?B!@)fxmcKM)233xX+Lz@+4aQ>@tPNh*$TToRrR^#vVG%D} z_a3??4P9SAijsf3WXQ?Cdp=w>7<>Qt7KsM=WUA`>WKG-C3yU(J=HmDgL|jCTFE5i0 z-{{j85c_zl%^4;>j@H$e6n}!FGDuso7f1|MBpqPO8%sExHAUMUSl14p_YBR!8MVjL z?0ygW+vq$!WFqgM^!eMge>VF1XDj$`z%OSf@O#M6e_H)t$g?7T)vA{cCg|b?1+7ew zFM=C@gRtL;O=or8O458$H1`b28B5>up^y{=6&d#{Yb?$|)7#O*ofb}i66&ushX}kL zpe`cRoqbE3@K{4vq=ulDG(m1aPx`>lAk$$#*2P62`!z3~u3UIzp<$34P#2Ppu#KS- z8`u&Qt8QVVuSt;c8y%Ft1Op3?W#q~|9Bw$IljL2h#rdO!Q2dgYZ13y0il&|2I$lL) z)SWDZkkmY8%i~DO^@TMQhF8vDdiHq_%U7L$2B{IjHgig! zsJ;`^$HtOu=^P}*`5m=QjBAseFyXnlJFL}1LGw7;4@|liecJ|3s67wd;Xoc(wxLEF zRJ5Z=gsvQAi^4b^WaBF?gEMFH_y#ntBL(-v&cc{xfa-g8O+sC5Gz$RsyQKW^mz)A9cjZUc&1*6DO8o(C#x!J;u_ zR(^_f3i>HeU$-LI~W6e}I!cmi}N?#VJz@ z6R8K;%X-hT6qdMj5Jt;YMRyD7jb`#ASA`aF97DB+LBO=j<_Y*RStu3jk(j!v@L>qJ zwRd^Eg3e!+sO~WaI8U72-05@6O_*sC;9OcFo$jJpCpnopM$rtK`lqH#BUeMI29eX( zk`Q^!9y0U<*8!?`wN;ERvo!+C%JI&>GhK5dNAkKpnfoj3N`P<@nVzYeFO?APqb-dX zY@2E_)EnEQBsow&1)Z+a>;;<1FoL6aXdb;PROPSpj@+W`8IqUWqC+@<^XB!wsLec( zEWD&;S>P7`5tonDXDdn^zy-`Oww!y62OeQHLMj!YmwEOKQF|@^%CdJN_ghT|;v!$P z1O6O++c-kxFD8_@50gGttVd)!DI*|4A28p|oK+Yw*xIK3s%1{I(g)gbSKJhyy}B|p`6SJQON1^NR#P2n zkh#=@5EGZ8aEE~-4TuT)eeo{HF?lp&YyyzRc)<5DsZM|?PM8b!_d6ZTSc~~{7GU7! zdg~+g+T%O8n=G}wXv>^)Qq?vvEqFxmT!E?wN`sl9!K5#XnWp8h`ER`K3du3GB}mTK z)y1&=`Zm=+z}&FNYsYDo;_*G6>r^LFA|K^h)G6zFtT*XP`w(p62EMyKM!qXjKYKaN z#(gdN=;{t^m5+Qrhrqu2XOGC`lAYt-C-48Z=$~z!0Q`4{t;|14&%cQN%s43-AbNzL zi#JsJp9XD$+i+fp0=GrP z!I(hcAGvpYZic+7xe6otFt(#4^m14UzYAly)G(;vL&Z6&SGWbCX@VML@EeUe@~bDH zz^)QF?JwzOy1^~P*MSWtvP$4%kf6+BhE;o(1$@Z>X4uh07s{-mXksEM{V7l;tlhf) zHlL?5L^B^H(cNNgVBXbOD0K zVYFsV;0gez0@YB5izb0@2xh0tiRYh0-iqo*L@@ScwVgB=_VaZT!v~oWW-T$M&zs)d zh45-g?~iiY2$W6={zCgbv8FLQRrg^wl+n663=6~=t8R6Y;D`OF z;}hAzXo5>b68S;-b!FC%;w!jw`Z>hqv^jt@U72P$IsOA}KFxFsMQml-7nH}|vo)>pag8A@8waIb zHh6L8Wi#gu;HdcA=KUhiSsik2a5pQ! z{~7g%{@mrfshc+;ktTan}yC{0msl&F! zWRz*Kd3b4V)6`5))s^hS$prNE0NG4smTiZLIAtV3`8JeYSco&v8$z|ze-$oU97UQ& zjCvYu>n+JGCx2;L2|6NauZswg4-oPrV>ck`yInO}7+F*@YI*CmYQdVBRd-&IwsjZN zIjueVDZv7Y*mxdq5p45nyZSd-3MdAJjaBmv>at*T3VRHtZJ=-{QLn9dr7WhLREGl< zYteF&mnE|O%!xM1H?C8fTz;OSvNFfCfd?F1q3z3UTb!&n!cz1jR-JRt7PQE3;!j{* zD4RKNET!TPa^=zjX;HE{w6$mVmt>SqQZs{NzHE;s&Qq@bxxVttq(uT`?+YkDOths& z?6Hg;2jvw-Rj(SO6frl>-p-JJ9tUMogsUv?-jcM)432DAufSMcLI3t_WOKx|`X^QX z_TQg9JNGF>q4^7{RQPYT>R))ZB2iA}lP!lfZ^)&U3X4#QE*vcA`VnL#={8(!PtDCo zYW&Y6$BH~3*rMjrVv^*Kg9XbxKiWQM4^9rM_R1uY#GshI=0ZH|M$djN&8CsymWi`q zkv0bDg=%6Q#If%*%Qag5#*2RP7qWzQR;?bZcU-e^}|38{$(8=huNHzw95XJ z&RgdZW;Eer=CEQziisvzONO=@V{@KIoQ47*XfEHEqFU~%t;Tc$jAdD9NQ~gb@Ih0q zX#*85?uJZgo$Q31AUtccQ6y2UP=#3LYC$q^JxvV^bBmsfw7$hiaw z40|VncAuCzqxOHhcwGJA zQMr_VrQta?D?pan>xN`R6ikKl3uZra@+Gx{;0{WWQ6WeN7h*>~#J4L9zD{-ZBgES| z|NS2>(U(3@xc@}lZ(RKuae1Fur1}fQDcb2;*&BVnmiY_3O(;tJULg2+Z!}IQKWnzU z@j14SdT$5B?;I9#f;~Pma3|o(B{%2o;+yGgG*g9JKl;#Bd#dY&)b+Ka)_m+hoMvR$ z7W8{*^Wa_6s`^yED5e9Pa>U|ZKW|r{#lDWI&=~tOHlJ$UQT@6u)Mb(IAd+5Y58U0A zr8AHD!wL^Z1;K-IXeHGyahWKv!K}7*980(urv?Q1$mqlbjnzgFr%3+MbP7}D@&0lT zPz>hMkwJ>aL5$gf=&UN#nRYu=#+dBByC{7408jvzRO2>>PMsc!e_r-smK0g6gDR`U z7FN`?mHCW>lxSgQGhRpVhbJoB-Adg_6l5R( z;hdy+&IOWPr8rrrlCLrnc!}bkB}9oE*$T5Fn<$@7{TrVe{!Zmqa#G&)thUJuL@OZB z{j_vy9b@jwavUPF!(RFHJ|pE}P#E zExdNer+-Z~mAAo1j;!`?KPk@X7twPC`tk$24s8EScUE44-RIW@*Y^s$O=4t<-*9%M zJ1QoAymd4fr=8x?x}k)q2qxbg-J&7D%X>#Y&c}a*xH&k)|IJ@#Sm^fipJ@7xnLnec z?Q?Yg-=uo~Rg(V?F#St8-l6jU%JD}+B-yVM?zKiID`jT|rgAId@r~qmTO?P)Fm)5H z^~c`Xu=_+P5V;1N0q`$b?iXxJOOtI6J?wNaVXWQ2rvPc&q}iY@FK?U#`h5^BuOM9l zTYh6ILwyWWP&)a*Vm8`{sPQiGZ&(*x6^)rSg z#4sbR9YcwDuWoaXym$shg2Xo;^$B>CDd{LSggNgrq#7ZDiXTuD8>K#yOsM17l%1r) zyW(*RDb*QFsX~?3APeU#lzH2K1WHiT7k<3X!XeFr^!yQ()h%RTR!z(_T6pf}B|P0L zU~TF^L2PY%V1k#s6_zoAbPQ5FQ0+EutO!KE6R^>b)9t%|y7~f}t&{`H$YISHlAqp? ze`p^-IBq*!sf`Um2cJF-CzXLGH3B~yH zC0fe+D2}rnAe3!Zz;q5&WmTAvEWT}hrWYI+9}v7ztJK*#t43j-#1AE;W$6`yOybC& z+h^s-0~&ewX~pDL4`%(D&S28R7`f%r9O0P$V}eX>$y`Ej`;CF3U=F^i;WT_Yzmzfv ziJLkcy2$Wwa7;TthD$O`@YjEQ+q<`fhE1%=Z5opJkbBmC|9tI)Ww+O|NTNTqrHQ*<^RX%{}P0e^8ZxD z9S^{km-R09peTY?a@UYosN`4DX3q; zNQrynA4}VjPmha$v?_^e@s`9=Skw`Z%7_aD)y{e=ODZmgrc(M_C`uIxb;5kp60 zlZ=I~MW~3k{b_-aKZL-(q-j|r+-x?+ z#A#EoGMJrGxW{q z04|wCMmCKO#J-f!Td@Be92;dd6q_y_&-elAM3h8Eryo}mH4{m_M0C%xWC5+(h1#?r z7Z(KLk9|^~IANEl2e)L179W^+Jss$1lE>nJSc1fffw58Lm?vdY43qB6&;s~YCOK!G z8swm9xEy0?fC5IWQ2l9amfPc$XyLSv07qpebk-CkyO zbI70wqvL@+CH)^Obx~|5C)VSsYH?dBJ^QwiBMM6i^R%2&roR*`a@3{H_QgJsPcMHq zFnN9BbsC#PqF}hmUH^&cB%vbHdZj)D9oeAAKg;Eiw~D9`Q%M?6adi=TOO%*E$c+*m zSR;tJRL-!gZvO)W=Z1~js@5Hc?blFB^nzxx?U)hiEbCiLMKVLQueKOYVnM!Q0HSKA zQ{NmjC?8Nq>=Uj(R5G2%BqM>*jfdM&tLj@+U(Jl7ij;0kM}w1|sB&BD9$b55!|M9P zd{*{6W5U<2aJ(YH?2Y3+|0cZBNPZNJ62+RsQ4tvhg;o8RrTtthvC17-X!H7^=gCYs zA*ZYqCMv!!hjhLWFUmq=w0zaoXYbLcZN^hzRLNPbT(xuLFL+0ty4t$X#}|^= zwfi`?`tnjuZ}T4lJ!fgvi@MYOZpH@f4AHOKhg{WzmBJy{o&fzg9v=A9wwE=0Atq0( z7O0RG1E_fuOzVWV_)W6HXuB8rk$!?kUhpupZqYFqbhcVX@lHahz@KZR7c==2 znNmafL(mI!UnYl26Gbw+Vq!D$8_cguK+OU0T1IlY&ZR4dlD;pgoT zt-sN5d%D|6wq()`C{U|Or>Z8EN1iv<8XR#)Q;$vXOlxw0In43QDHy8>^gXV8ku|gd z=7~8T9B0rFzh^$>ieJ0$^bk)UcshHvGpYEoAHF-98+ShFT^x5OR}qD3=c}P4Q9l(o zob1k!&-u7e4LMyYRN>1D#OH!C)Bf4lQq~kTxpt5Vp|W8=I1%ypkkcpm6|c)Y+4I&F z{&Zt0BJ821!IvCciIcBfjJc$-lzpGCr!akf1rf$|3}wm`^Ab%*khF)L(oA>WL+_tx zZz8tT%r|6kZN>#LC+I4GQuC3zOFp~=HRkc8Ey|Z#cp$?2 z+<0{vak2%Y1v&?0fB+%9NKY%6)2aDNX?uRZHnJ2Z?!ZS)$J7gB7FL0E#1%7lEa}|K zHT~I%lxhWEe*eWWJ$zR~qCcNcr=0PW1GlA0JY?Xdww7b(1Jmq+A42NQ{jmdEUUh!O z;FX8ko5_g;eRWe&hU79>c7F^;{<3Ru<-POcpSv4-d+!jV&no)&A^zv%ed+Vy|C`!J z#Zb@0+S>eYj`v9UHu=x%xYIjSmF8+L-&>X`KkmMm+}xJoWL1A6=%dfv`W;t@o|u>< zM;OcW!K%R>eW{3r-$XNxkqq+us-pp{tym*pd|RtI7hNVwi#)($n$4v^ZM|`d*IKgG z&Zbz+mXsSLfO+z!Spbd|jGBf}4)uqd_&4R<0;M3Oa`&xo=YvyNpMvFvwRYe707+B7 zapeilcz+3A^BRddDuzZ_)-fdaa>84p2_aj_iO~?P@E&D*J+)%K1AIs4=J>s8)7gSZ zp4YB@&)KPK_b6#P2nb=SdCDVe1(h)K>3Y9)Z}(n4Bsoapu0A&@&+c;rZbfoDX=4yz zWs(gRz&M+VwdDmr7Y=5H)dI{6YmCBgw?*KqpS$M1`>UeFAN7$b&MSEN zBq-A%gvy9flP#|=wB%4;!;nd9XyS&Kw0?lbIVCYgC=)ocw z(Zc7_4v>;_?5d#yfX?_0K^7pyp+ul1?bxO$x7C_@xeP}G2p|S1{h7bR8rTmO)`Wg+ z3XAz|h=sQ0ps@v`;;G$^-9lZDFnM5rCT=*!8=BUdp#qXTkvg5Avp*9aStlj2<# z1d4$#CVtB6!ACF80TmMOqy<#5-wF-VVv#CR{o(4AZ`6bwR_P)eXKSS>s7T+nlo@*z zhAC6kD~SuZb6p}~xLLsaJF=opnC4}23W-a2`?jr2taodoXBtl>>W}oKoSMNTq$9I$ z+!MO%iW{(g6$LpuJ$xr*sEUpb-2oM%T$A7r6Ia!SvOrCBq;?Rg2Uc1%zPL5Y4|Jy^ ztf)Z(>hLpOn8}RNDDqEl!mC#~OBq1{ZJ0<2YaeA5e=Azuhuk?^V^2g&a2=v)#`MVB zp8k0dOhT5?c*2=~VKr;xATrZf4*-o9xk|`{v*FQ}ne`}ePtoypi3AHgXoDbek4;9+ z-r0nre#vQ{KNx!4MTv8LMY<01bNRGux1ViIv0kUb)Z&=&uSqQ&(M_f1pwp%Cuj_7A zx;PchO!Q)DRk=2{7okWetcwpp%$<-%@OQUarO|6VqftCpqK#Y@8@TH0OPT|9M~~(T z<;dR*?6ema8DmV7R`XS--Jd++Zc#*7wm_lkMNrdR2U#h(g6L^Tmg0{LB%btd|GA(6 zAAGqA`-J~*p#M1pqCS898=a+?gQ4aBV5on=f5U%E#1KqNL0)|l;iY6DiQyn3vC(Po zObV!Aqln~+-ke(*xIyL)LGh_5@7-OexI03m6e+gC(}<{`@nq}dykp`Jrrw=)9`;gmJ8yBTt0X2^Q2Vgr#f02%a+!}NH61h>PIjNlM_ zQHVLZWvwR*UY>ZbN+NEgUs>?J^qRme$X^-xw$5I6(WZ`-95t0Kx}kF2y@6tLeRX~; z|CUg1PS0g5u1Dfr_q2DnYoc>{qk3@IF=M&5xU=+v>yXk(BJ)Q0K6S6;s4-EVc_BlM zeFyfNXiOvopD#bV(!Xu_XDicv($L>r;|o|@SQzR%m|Fi&8Nk2T+A(tMQ_~6~^l*c! zl>z{b{O}k;|L&vVNFVW)2{Q=tj5u$56PKWSwC&`K?d*M*vMOPYxpoO`yNE~X#PQ*q z`)DFmgpH{mvX*K@T}>Jr%VHj)8P1l*bO%PIv?zPdipGx_$f~qwijb?^YJ(gYD~5?` znL1lmL;)6kSn!_%*7jmw3;HACtO~wt;5CR!2qEmcGeC_nj-h#UuoMVER``Dyb#A>q z+cgRseQ{eT{|Axm4p!aOpSJpKkw4oC>eGs}00aQ`uJ)gpqqQ*Av(vS6rM1&_v$p$u zOG|BUU{3qHnI-IKW$>p?*1s6bGrC3^m>wp`nI{lDs15sY!!M`o5SXs6xm1p*P+Alx z6!>l(@+h-eTd7?&^zGxlE4bJO0)Ssc+81Vr((?(U#9ITr4QRO3<4R<|pp>)cn>b{X z+P%5H2b$2kVv=Vsx?DMz2XK*Q4Fwj5ois;?e>dX?r8ao&}nY%sTjX@oyDO^A zQ8k%Se)nDapOQ5rv6JN2=C+H@wu?#YjZl6NKvE7xKLZGf>!t)hoJB@HYd->gL2|l_ zo-TlK#M=23({Vo2JX5fE@Vv`n0~=`F+y>b>VnV;c*`0p17K!^MF_Z2fK(Fl{kejd? zIrP9(LC@1f%~o(tEGHnc%>-W5!-BtCQq=N~KbS+bS3l(6z6=?Et@&gP%1%LE-8X`R2JH5bKW3)PiByQH2<*3ZS`E#So~h$ zCav+#DHZ3s=o_ZUzB~4a^3$4xmg^o|NRr{mfOGbqAvno-$7`653)!33XXijuHy8DU z+|EdSuf9Iab|>p8y^1xsY+r2ETigCAqwuwPQG>x|{Im?BN2_FlAS=!IYx2i`B+C|= z6xF1kxcrU4KV!4z6S*vZgH1a-T~}Q_3qvt02SYm}-M`Dtm?LZ8J{6pT&fb9{!@N8> zqSKHy|A(`80J3Cj+J&3bwl!_rwr$(CZQC}cZQGo-HErAO`FqZXxcC0&z3;i-j*6<@ zu_Ah}d@8FlSFX%_7+mcMRil-#DeXf7o?X`{x(`X3m4{Q*$VX|MF>`d^=a@_Y(AIM_Nk z(*Aeh!@p=K@b^HA{KJ>*f9}i3>6`xV-tWKYi&qsVZTXcT9&+`G!U3||%X2x|E1Gnq=5}%2mJXSIS5T*~RS_5{aM>>Ey znE}=?2=a~Cz08iEFIS*D=6ZifqGm~gKVoJwi<$1K6JgyWEip~Rw3#O4(PMO7FCm5- zWFG`O`qA-#uAV(w@W^Q?TYrHc(56zbikT(nbEi_6ST$E@ zL><6Iy4t-kM8@MU7jP7`i*+@&YN_&>DwUxap}6DIy-eG5OmK+@KW72Sd!L zXbwWg9b}kW#IK~7LW3;$j<}QaoiXVQ#ayxP&1(Hx>5@jIw&0^As*QeTn2I=TtF_1` z`tFZ16b>iNxV8`DL!td0uSN&>@cOF1OJD@Vk_r=K59YhY4s_s`V>O#zAoC#GSHZ3^3Euqx*CHk|Phac<1vo zdQ%1?Hkba`xj0| zwwk8nJR7plbj{3^(J*WgIoG-5YHvuw4g;{${B3>GSm~pE;ZR*?!bU&C$Cam33xBs;DIzi!Kcf27-o^Lb3@TZqa=3axo9-(_Y@g0`KuRT$KU@8LDdQ+&Xn1sV zgy#VqFe$G5zKaM-nC2x&bD5m%qd8T=t$%Q4G$4Clvvk4Z<%{*=g@S?ZE7ft@wLTCt z28gO=^=$FBMs{MN;=!TmwH2~xLFC#~p|>m5 zQ+z%-Iz&CJOF_}IFX{brf2=QUhAVcYbK#1A?h_IvRvJw-i%xUn11#BEXLX5QkTv%V z-K&=&%%gb^C#YkeW(8<#w`4!btlepJhtJqK&;SP^@HveO2hmX`4)g=^NQvOawZlK` zX~o7Cb!`4PP8CQ_B`NuojU+hB8bifedf6Gdbd)j}s8tKHRU3-TvGUB`$%7g7W5NX8v@31T1 z>b@uwG7>!bCC%w7xpI76Uv7Z=IoV@>Tsf)!eC5RR;5%b%wsz2CEbZ)qLEe)=!C5IV zA8&lL^((I{_td_OPk*vbaA(ssaLcxkxG@`bQhqusAS?iR)}a4(Ya1uI zvVIo_WM=8$;-Xl`!C!&WdB1 ziC*F&OD-L=SsFIr@}#x`T2q&yF5g=2ZsCKt^hAg)G_HpyCh$5$r6B!q4W40Ihh$6J zwW3v^WQ+tROVKRfLX=Qlb5|2FQ`H0beh0e9o`=M0nI$z>i*;Wcr#dB zulFQU}E0Hh1zDBZNamv%X&+t z>5V^r>I#EU+u-{!4DnY`B(1ZpdV9elQw}{fGngv%M{>fSj^kXWdDK?600Pa*L^C1j zPPlSA)7srntMK~V!JWEVy)2X4 zNMIfV9T2Zpaf(BYcIU!`E8A35-4JZ+Bd?ofF_>(y~P<{^>IJ|k2H6a6nv4!1>Yz@nnDS{wg-dNFgqcX{95q~ME^S5P( zTrkfPujpl$`@WQKF%sgb46sb84w!}3c!(wxRDG~CQCz5LUf?r`(CK9T`}=CR0kriy z<~mujezX1g)s&2Pbdc!xFGf-Ea*`@My}~E)^U)kSA5;%)-+no*hKEY>XTdJgdgFD} zCj&g@1==zmrmAcS9DVvP`3f8)Ub;qX@WtlGdHl7E_qVO@>H3244_JQ>BkNa4@87Y; z{vC``;)235io*X6!6s!%+dUTe?mJcJ$42r6rcFtI8jn2VH4?l?8u6jCLV{TcKuL!O zu~XkIjJ22pqK=DVj^iPBuRHt0!Y>N0>NC#AkrM+do5#>4UY>{RwpM>y*PdS=Q7yE2 zaPBY@1mCguogsu3pQ?P(UrR2~HQSnRwU06}U%!P+37ggO3du1SZ|x#!`{kU+(;PndUxd1BIl=09{RVlC&6%7TSYqdUBVBF}1?FmY-|S!r@LuP7 zn@dKgzPbrn`JQ1q60uBhTJki6;4s?SgU3yK@kC?Ww;Xrn0U z*04BB@(GvQ*a1a++U_ol#c+zi2-N#NQo2|NM7Zf(Nq?FqG(Z`UJ*@(i2|vF`8VL~M z7-_g)`drixEILXA$s8eY)yNf*V_zS^H??As_jG-#Mt^eMTXy~#zUm*c%{q3L$R-PF z$zzC;$EF(8`0^nDf+ip&+bM~Zw;_7cAZNjRW*P8zNjEDJ$qCFPO&Lf5Nqa<>1UX#5`bLjjP&Pn*$0&3cbJ&TPQGoQb#l*SDQVxkaH*j)>h2>0gu;MP+`GpL z-u6XVVF}&so{47c&Lt|MWl=2uo%bWDO^Yk2GfKP1X;aE;*>`d? zxiLy+tg(F~q!K!nis+QP;NW115`j!SUH!uYqJa|@Q-0${J^{k+Dmk@)%TBbxV}f)9 zJpd)%NP?CmmAFokq$Kas!fRk0Vs8*w$`}JAQwY)3(R&GuzS7Eu#>kVW`$t|Sc7*eS zAyIyB(mpjzhfr|&Jl$jsFC;bCWvm3V$2uY3Pc#KP)m^Db;(U==rqw|;b4E(N>IEh_ z>!9w`Iy&902{)#>o0@x`F}Z+v77|6u#wnGePFA%y4s0lT(Pi^IzT$kPeX$c5P-0l1 zk3C?2?J0o3s38}tl9Z#sjB##~fRR?bdNPp+ZpQY*g~8Ci|K zW4z1VbKA6UIdZz@9a&vpca;5=m7Sye-P`rV$JN8#i=XysW4WAcQ)@&6WsSOgkz!(k ztjm5{C%Y}M`pRYd%73r*vaJ!n_0k)8t$^pZP?}RN!oh;^zIfj^qA-yXWo)FE3Y z;M2d})%$de!qfH@W$*>t5`%VvO;Q!&Yqn$^yG+X}c_4USZ2NRBj;x0_;U~yiy0Yl5 zF01}lCq5`(?&p(?38~O4kT0Q~Mje51NdAmF*t<}<0TVWEu>>0Lp$5!Z8H&ch1C)*^ zdSdO5jbY*_op+=T&Ok=(UhAnRhd}PA8jKGBe1Z;43gCBDufSV~u^eCqYE@{%Cj_hy z;7CFt0hNXwnbY=mZ;?T&uXZx9AytCUdI_bFI4X^Y5~_*w$Ug_Xbjkeldk)*{VUoVQ zo@y(@MaPRqF-QScabzXNB@ztm(^H2o-kz<$XQ7jKV^o^M+JWpBy&Gs(Qm&91e=G!4 zjuvV^RM2%mUD62iPM18nf!pi;vpy)$<=BF@MR0{|$1#(a=cmVMN}B`}vayuU^fKNm zT6x3-@Vvm}QEM>Yj; z4KDEM5Joj@7fzyKJ-KVPv{S@?M!Kf^zc1sJO00>(t#yWa4dCXsbEx~jf1)Q}w53Wa zw?nSvi78$jj55l7xPXJ{546+^B zp$g8Pr4#A4EX3kPTH0mGO@JYGU(8#7gamqiftY!r^9(mv(0ecE&q*lXV;KGSIHFQC zr!JoXC*zbMVb-~W01!rpRsC-8x(S^=ZH@)w-xywlP8`8KtVgyhr(;7E^DQ;HJbm61 zm7dGofW?%m0Hh0GHcGq5^OYcY%J@b%k$aME$sIK@u{zD&&`xL3SNNHL-QDrZ47t;h zcUUv?C}MaXnrJ-4qmh*nP*t`l^STvbMmv$c!=$OC3ORHb?gAp;m!CovzOw**?tkk> zL8XG?S808cRQmWGdj5uRR$2XyYLdUaN`4IBupr1W;L^`a zP-P($F7VL~kcVgsVOt33bWCWRqIL{8CWsZ`YvOZ=TJP;S><9p^>ym3!CQWA1;jPj$ z4`yi_1_ubu0jXtzdSxN2-^JbH%HqtoiM2~;hv!g^k6)8(Y#!6xCQNf_RO{eOD=63B~fEOe3J15Ay|)OJs5~wG|YUj*eR6s}Zv$GZ1zz z1_x?$^&C9~%f7*Ec>_1&zrqOAN=C%sKf|nkiFt!m z0V`4IF9Bo>hQU@1K_#37KrcUTe5VYSKz{=CCX4AW1@VBIZJ_^vM6MxUTi}BwK5od&D?_rCb_(Mp~Fx{k+ zcqwVT;oduCdQikHmA9_x{2>tkj*F{|3o)Gz@vIj&41*)?R&HEyR=kLd?jSx%bn=iO z2|@zBo*kY^ylh!rTq75rCLYexC8Wp^aXctJ;eHo{mv`A-=vZ!lrO&&3Mqrt*L$4HG zBSwM6rU69)fXFcp9PB>OKc6Qofw@LcwT-``?j4#HI}DkLXT-jx#kiqNVN;2?6z}Jw z^iAUW>(RZC8pf&}(5ju#+W={5u@ByZp!!&TWe_PW$aHFb>2Xf!F%U2Ob06P%x4&7Y zpgG+1MKTfK?U_Wp9DZ<{*2o&wIYO<+w==~JQ@{6Ns1*n9Q6O4jnFR(2KH}E!{)kzP zLQlj>dc5e%;a~iF)_s<1n5!%kqa&1l#*6W0kQ#0~*yO=lcz~^4Kost- zhbuIupJq3vgMvR6Nx*zY>$>G5#@$OmI|eL4%WU0#Gp4p&95xRWU5KJ3Bl8yNo<+j1SxoCe}I? zm@oml@J*gX*|qqd{4nJ-h|I7|d@R7$k+Po7`bM`Kp1|xK>m<*qisrZ6+C|g)>s-I| zLvseAHIG&cU|QN|YiQQD8gfOq8*u0Xc(HK;jFW1VHf`6kR*XOD;C#RwMLZk59wJ7T zLN@L9jreUZ8uJ!flkRf|FP*Wx9+&|MwD2vQFcx-1C&t(Ds_$GH-Bd@Ogo z>z~73{oaVD00-=^V=r-np__EilOcz6&z&L1bieLA>Uuw0>Gf@HEA{1#;Wz3*6Lv2> z!=y3nIL-A5#9dpfRqQAYjh~QmOvZFK!YEmf-#eim+A)vS zPCpS`2B4olOP{ND{O$P>kTGWKsh%e+vDi(3TS9gdDRk<9Wgy9?(ZZt%-|Z>25TgMc zOj_*ANIChc4BL^$YkobJr2`|C1O^8DH;(ttm^q9gbVA2xd#=JA+33Ly=m(rUWW5Q$ zZlpo*FBdmoT8M?z99eSDF(8x4w?0xR zygJ)K?M1YZ3#fs|VEwoL+7JH)xFQ{|h!6iVG=Bn~q3+TQZ+Yf7Lj*HJ3|j_7e*<(W zbS)6Q8MKgdD8UHOSXmXfpg!SkP(l5b9kcaNafzT~0jzj{UAE?Q0lYlyusA2ojWRJ` zDmooVB6r339EoTQl7u+AS&VP^WTmyU1V&(J{GE#I?&=cIE~q3CiKXu@Ih#K=V4@}0 zc1`S29Y&2ke7x>&C+%6&W%c2rKzTS2R3n^VjG`IVA#E$|cr^Dd`73oJw3En7*C*hU zj9o^Ugk2iJG46w*jnuEljPMTXs66o;nBm(f-c<13ROpb|xslnaFX_H~10o{;S+pe_ zU(dwtO~xnr_-a8HBy0h+5w*7z?fghXY>#Gb;CW|*E$3Zy@BZeq+ADN%y>;ge$EYQP zb!P^rsLr~}aWjEgqg9l4HjxN*S7WC9p2_BlWydJXsrHH^^rsqURsKZVt;N)8Z_6ov znwXnL4ObktVRFmO-B2?C``3^Iw$)mdE0eoyfcp4A3Odt*S$F*U;+ccZ_YTQ z?Xc(cT=39vUuQb>=Kmbc_$DAN=&6DWSpjz;Za_vv-$)vs9~abhe-(KzIxyW{5jQyF zqa9jbo%c=673X6|`=ZR8Y=NnsG(0|Ta3#laxS!q76FL@jz|fN^8dUl}&X17%y2wCG z0F@o%K^M;9-Lu3bj|v9;3P9T5|3agaa7mkcgiWEc<2B}{P0jU!bC}z3li4ncbfo>P zmtF?$Y4oGpgN1`2wzdJ7heQUQ< z-SV;bQpf(kpFO|)Q$ylfRuv$6m6b4J6X~o9|m7ZPgZ0p<2>Nn#1+j3+k{O83Lh;4G{FJ7!8beN5*RsH zqeF`+m|Kp-F(Q7V65c*&e~RQm^<;%|LSldW&#j}oMAto$0wP4B8)AuY+5VqxB~C-| zC0I=fEze#UL-cy%bZ?o&FrNWyO$p{qC5pjSd-A~&PN9kz8|r6L00(9h;WYtw1av4? zjG0|p<(**>PaHAJOw(1Wxt~(gN5{xKZP;Sz1K>Kkr*8_hJ8ZJ`4_x6aJBjcO$wNX2 zqp`PPWG&1k@AU@7%<(Qj6CL(GM)C*O9Im!ZIkb_0Ga`^l+ml7hVjO|cP*ef>_|PZ) zwI*g#2|{Z>0b+E3aP*TP_;@Ob&x-SD5($I(S|H3=Nkp+}F<^q4MEW%d^{M*`iK5&I z%W%a%(gw(%_rDB?H#uAp)itqnZz2<*Zb4YL5Q29&!EWNxfq+m#(Un|@LxI0oy6!X) zF1rryxkdjNCx%HIOFx)n79-wB{d1xS3t$eQmZSjlOQLhhWs2RnK-C)bs$z z?I*-jA`gIZ{Vt+oCtS{Y?FJ+Xhg=~n`|)n1SHF56z*78k(>=IIfD|iz451}631FeX z1cKE1S~h@eHS3uu%=r=%XDICZy%(@V5^|nXGTcHL4IR;oT+LSH_1H`J8xiP3IS=#u z{@qH#2Ba5a9IF_78mHYfIdg4qE6fhqDN4yr34S?5!V#4^c&6Zf?WT9@fps^{^%9k) zz?RjJ7kt65@n<0xVkYF=+-B_L8=&+@t`X=(^?3cYxHqC@bcH7Azhf{M2G zo_|X~x$lhFWj{PkLAh21Qo1G6D=3Z@ZGvaxA{{|JU)9}9I+TJhSDe`d-Qkr$VI>8* zv#Z8wii(KW9XEBbDd)N(WBLL37}IM!;_2)#0DfbLwTD;Jlv1W5G52RO!;8M&l4WK5&G?)7fdeSW6$ zBIo?3g-${yJ72AiBnlCk+vXkJ{kM8WtC%=&F9CW*)mEL4rIuQ0Ev;;{*@LxTc7d9( ze#%eM<9vr+de5+t$E&L3X&@%WtP7bUoWvM>hk~f0YsMD3h@{$LlTyQ7c-!z7aP+J3 zE}B6|_`Q3KHF6>5IV{-0W!4xM&6bc@Cgn~o@SDI*eYU%9$IMcAiSjy#K=(vYsETha z5J$~5LJcL>K&q_(FjoXN;FhW4I4L75(Bq@fnMe!YgPsYV(+%)-$pKn@xyXfO}1G6M;Q&1!)O9ngfjdl^zuaBGKokX>eQ$9q_ z=bB_=;x@vD>?PLYEkBb{GPM@&%W*RRk(3|0sJrF5`Tgt4LyQNxfV|Tjs zR(Qrw#gi5r;BY+~~$48djtl z);jH!8tMqo@@%4(=(G>#lM(OJxg!qunDhOAT;73WQr#ZS6LQ#D^>dw%C71GTb2*MB zPxEYRB%cc;pC4a*yZ3*;JhlgIF`CtrK81& zl>5Ms8f#JY@sjtM5o@}%AbEew)oqZqx+AWe zY>~AJq)Dr1s8m$pxJ3Deg4D@r5iI)N76`G^{T27mUeBkT$xzvkAD1S8TD>|h8?i!m zWJc=1?_=PBXC>cMgRePRV9@w*a=_63IAhW}RF42-o=pVgyCx~*2-$G{Nkj~-ISs8u z-YEih6rg+o9htPNiFISq-UH;POHFuhWm)PHJ0bS&FP zEnyE>R-RT#qr4zWpuGYTZ?+0rz7Od=hqh5;HyCCAd%ukvR5Cx3l$%)TI~ibDwMMU` zBZ4uy@d!MJHYLK|L)7l)-WiRaOeCaXfP+73jGy6doWlV&H5lgy`DVV$lAb^iV(vyJ znHI%huNLu;{~O{SZO!#=1@M#R^NYZyxeO=ATdr^V5hTy6d-Wk3<2#KM+RW1-Nf}*D z|L6uX{rp5&eKNFx-2st&i8_Z|-q#C)!>XY5T#rMZ(wZVED*cBN<=xF%{Dksj9vPT`xCe~@3&Kb&qb!9#TvTH1^GKp=(p)D{I%xF7wvnrFLN z6mhir2*q^6Bmid=Rj1WMh1sTv_sJ{eU(ES$6%8$^bj;&7Ztm}|&$rJw?Fs0!s-~i; zv^w|$UF(PauWzSr?of%(={@7+uczvJ88u_j5V$E2H5=>QdrjS_ES3g0G4qGuDYVl( z-jtT}Db+7dE(G`Xax9$mY+$p-6&>thLYia8+X^e53y+mgSS!|#=O2o&;s$5g{rEDq z+4uwlpHb^^A`L3&GYr2PSR?x=T&lZAI;`T>4jzkKRbvD3&A*4b>bTBaICpGvt|4#j z9I}$w7B4QXRw}) z!;&HPBl^Bi_THi;-==D!)5XR7G@C=Lwqr+&OZ{*vXtSy{0dpxe@Y2fMBAX+oy#Zs% z4k;0$z9W4>Vg8XChEuZzQx2^ATHjQ$yg=jvE8d00n%Pdnem&c|ZE6)|YHQV}0>L?{ zGCTXCZK`Y_iW5sedOqg+r4@1V#tc!*xea;K#{Ix8QWXzXnSYzBn<-)0eh3!p>Xpqe zn_a7K7A`KO6=n3KUKdtk$}*JWO&utU>{YF=mnKT0lNv2+=T>VAig#6!udXhuRs)-C z__nT&<$GgHEftqJQrgp#?EYr1isg>Ri22V)Q(%jQMZRTcA8)qICzuw;k50Qj@>`5$|te=@)S&n$4Z|3Q|_f0fJpcYeqJQ(E}_7r8n6|KL{@g!zS} zh5yMmtlDqK^=6dcIKD#_iP=Q51lf(7&Qt81%Pv?~ox^Bl6BkZASOoa-%;L2GWWk%S zJy&-C3JFLx55|kx)9}~V*WF&fSi2N?S;sjfC9RKNC!5$_jtK|fBVShUP14v^*Z0_T z4rnY<^`)F`Ia}Dp`g+z=iXG0pv}>3;?yu6p+Z%pOnwrfRdRg) znvf!r`Wg8eS6U#KT=??Xb+%;Oj<{*4No>)>P2V-Nno=0{IFzL;Gd-xBQwn*-je-y< zK)ajg?B(q4ax-vmAS9TX>W&Y?POUa2VST)Q!cMiF9xJ9oZak+@Os?EiuAofZR&Q7% zfAPxIC-&+{G}u<}e2HueL&dBTZ&ZO=ufc4WLwe-OVnJVmy~b7*8D~wEHc;9J-1R7c z8I07bgF?MR^n@2q_HwhCj3%jK5aTvb=j??cvW3A=Q7FNFti@a(ri?e>ns>v`7Oq%E}oie(xA7m4GJEwEv0s=Kn_9L*`X#+ z!TO#<7G+e;s0(nQi9(D7;vM0+-h-XV@YBtGc3)VcxH;y2Zv6*iKo!D3goQcPcO*Pk z6%G_=8o)35L->>bW7N5`>YFm9cFI0J5 zBJUzAB3D6cKm#F3e>60(hK9lkk`?%ZA}2~AOmqn&I1m@ljnOAd?>Oi|&t{=vujk;f z7?oiM8UioFCurt?;JT8*hCRA%3M8{Tbni&4@cHTEkQf;@1|<7{W~2+(S2$Fo}UeQN|Znrl58v=VH*sN6~5^*4lz;nV}R zsPTqR&>?_l@wycO;FI7JF9`>OXxQtNetp#EIckr0*6Y}j0VupK^}3ErU0dawadZ{< zQY6xHj?w|HQ}IlzMtv#{LgZ{@8vt|F@gI?C8c)7(WM!R{EAS}KQqiI$)xqD^15HI1 zbaX!H8VY+rj3$``(&uinR}17!1}5eG|S#g@fYj2rbtR z*=cb^LyVdfnl{P2kxD0uj%az=6b)o~&n1+4*M#Q*!+GhW500*Vxu$`I)5+}&i-F}D z`zjRcwcbKS{ghQI9oRa$lx~1$gz*Ydgq!2*E89!E0zOQ4lc|Lu4z5P7@u_KcxP-LL z1;TbuMuxfNWy6C9ib6_U9`*2EyIAO0M9KL+*yN;seqXKP%H4MfsD;@HDT|i@7Kh`e zgNLb+w`IYHtrqelYIg&|v%wIcM!>Pvc5AbEE9crplo`A0)f)ISVYx2R#NXRq!>P`H zZt1eOR*7Z|UjHuU(!@uw^ukf=qWgO!H>D#^353K;B1c+`>GI%=FF4lyPHGdn1(Uz3eUo4Z- zECuGg*IJ6Cb`#uXKQQ6chk*~bH!FMpGL7d2o8KNP-8AsT*x7g5IQMj4bXbov!F;%D zZ9-17JBSD{?&|Mo$MSb8d>EeNGG{Woq9^!gM(H&M@BFw$X6AFD)HV0s(GrH!#1x9? z&swC?;Ysi2BH3Z;!_g>nF45JBFT3ZhLIod(VL61Kl^H=XyqibBi81nh4ugFpq99e6 zOo9Dq&p+WHv*(-ZqATm5KQe{ZPxiZZW7N+)1yHgaV?27dJg;nc6Fw~1+B?!+&omb< zq<-kYHV&@?wW-dv)#$K*hNR@QNfd?-%)AfH&gPoAVkdBNc&1se8`*Y1&ySBE9g)?f zWN>mwQR67gs@in`Ogk=7D78@|^O+mSd8!-#{7%r)EH9gF##I+>Z+j0q^U%Y6y8ym1 z0>!os;=RI4gHDB;$x{1{1N@wpVTF_3R`2Grt_^R1YJyrvy{ozBxYw%Eo%{sT?Fyn= zD$e^wJl^l}RY64XyBzM=f{F&psVs-A(eDbyG*W_7V8_2HdqlWm8{o3|5X(2_{p1H3 zGEargtNh2e)|KiO4_@OXR4prMq;~$4AgZ32Lq^u;1S5*Jr`jjHn{tMOEMK?RxBCmY zE)IYXTPbI#Ac?`rK->c{O*}Rlw$2l(&JIq^!E%dodyJtkGGXpG{Qf+FNB3me?f8qI+98O zE-d&y=p(RjM+=2NR9S3oC2nakQQj~VTs5}Akq?mFYq!mpJP^0;UV_Q29n>k@lHsf& zNii={Y)6CXU6x!5pl`@Ow*|==ycHildW3J|gwy&{CB7X$T*8=7n{ds!_0*HaP0Hq! zV!fY*t!CesU&kt?_>#-v>KPVc-k=Pd=L8ciiYaJnw>_D-q)}oz&4Fqgn5%49+V}aC zJ|PwAy#K{PaGN21+3`iV^2bm5`&_oquS_?-|A7bf)kV|U#@va<&Dx5_$o#9v@W0_R zO8zRl&HO66h4lr!^|Wg*Uqj_DzZ7j3Q)gz5ZdL_GtKEH0vlhACy0Y_YIt`jbyWaGE z@;1GUd46=0+rgz%DUexFW-`P-hW=uE4zkWonTI=fK^Rn4U({&V6R@*B5~V~^;ZU7q zx6L52s3v3r^<~Y}zR}%U&a4ayOp~zAp247#XmF^$;m7V(AqZsDi%z%GX(_HBH16U( zT`0hQemf3%I-ETeN{+D7Regd~%(v>#D%12wo>ey$68>I0b=x;vkANo_e2AMLb{ZoW5mrUDD6yoUhP6`MmjCrfXW!|XpZM-CX-*~%IPkZwyc>IX{KnvqsK*! z>-M|i)+neM1=EyP0e#yx=|%sVY=m$ zcu*)T>*YXq5SH1b=dU5b#Z=?WEP+>hQT8>Q;Gmy~N)^ji5){JXX9Dp@nip;OKPdgR zF}dE)2R40TWXlrD5Dp)LU=M0t5i~qhf!reBZu`5xD;c z%4cY6ZD;HF)%nlD(bneQXe3b*~Mv7GyBp|eW2vs#2l7fb4c{6Ire%{aVyCV5jOw2k7`f~V;2`bGp zxhD41=BaK?RVr+^+)Zd;OX9xg!I#?$ini~19sISTTiS>PNCL|GLiIAl^Odv($yM{S z9+bFv5{MeZzncLCuL?8F1dX*3v0_DJpK&Og$4u?0OnUy^B8LP)973)GrCCrajShcEvCel&Tvc*TYO` zxgdV$$UZ$wcT(HU{RGp8^dA^wiN1$$UMhry$JFwF7*Be{^FnMWwUV|v7(9$cHlln zde8rR^TX)qadqMvFQ%-x=-F+jAyJ?WLAq7mpV|0@zkmR1avDhbR_++vA`XIueycclnVpLWs#oGa=jQ>rOMT@kOy zkz0>x-ZEmIDa%f*-+wjAps5()XZx{p~{z>Zs;R$v~KR#%_S)Lzho@8OcXmYjn5QYnWQ$a=`Xq_FB zhA%IjopIs-Kr}`HIa<-8N_}0F!5tFJ<;DON@f9qx32Y%hKB7#jcj)yrk~I{*uk3m9 z?wLss@~`Ts@WzhwLWF&6!coM-R2O^Yw; z3X!WjWJmmSk3Hb$Kr8EGWAlZSfZD`7>H9ZdL~>jx%}Wi zdg20Dz$I|KpgnrZ1GLA`y^G@EO)A3icul+cZ>aHx+(e<_77eTRClsd8nv_n}`>v$& zo`F#cDXi=7DqCb?V_cb3rV{^{2$WB(_E<7w@;4Nhg=Q#$JID4~+OX^MM z%0Hk#&)124O9XaDyI}zL(m7RK!bh#0X10eptj6K?IdE&w2LK{=YQ^>loZscKW&eO` zAM-0~{tM7Q(EUBA_Fp3$|6Gd%^o{NnQ>#wgSH`Xj9yR70OlC^`mgBY=A>W^pajt1$N zhQJZMVC}>gP~j@T$9c%ve49VV_R1G5zijm*EMd=K-4p;Gxs9jw_ z7H(6+Vb%ui!{O#POgs~<$WV>Y*mq=mCyt@C1FteOir`4+3c&uobh>DEcJOk6NpB=w z;oYt4BieqPE7GEz)@b)G+8HqQmrsK>qE0*V1?L~o{vJ-ruhD;3YV^P8sHnb^v8%rO zKgP15j&_u6dv{#&r!+N{XCaBtagyV@FsD=gkX6! z>6%~O>|g9iepEV*4w zP5!FMeJ;z~kB=@zLk8IxG6a^y6?s<6GY8KQ6{F8$dy5iS|TgEe4Fo* z4so2*^V3yY;H`tS^~JX@-snU4=!2VE{QA&$m9pLaF92nPb9)B9!21K!-vcP|HTq9F zbo_;!BdwybgNw1lKZf!DNfp3ls3|0=fuR0Q6RsG}<%Ped`e(X-FUY0~0D#cH(S*ON zpZl)>>wi@z{u4uU!ENriE|QXapgU{NL}IR(7c*$TpNtbrHMHhnm27NlF>))1w~CD5 z4*(WQWO82qf%W$En0n6n3er0e&d8|QRHlaLfBB@-bLr#C`upO2qPwc}P66rxY=@5qy>v|`Ose%)# zlppcuxT1CE7T}@gB*JM?gVR4g(1hvd<$ThD2P&==Fr}_*U5|8g`}MI8+k`)#II+ZT zzcuoDdq1j35yLa|Pk*s;ozWq=#|w`U`&@3W0wml9tbY$f{j}lk-UD!N;fZpE-pz*F z87XYS*HiQZ=-~pVjmhEGMFVL9MSorgzI{JFm|ZV)?kima2>X4@*Tv)QdHcG!+FtAA z2vG8QpV#GmcW!6h-b&9`!26!=@%VTx3?qY0tZD#MLAG`E5Wy6EhnFzKCe|?Vt0--_ z%Zls$u|sr=Hdh@e+A-4i*(!OjHVP_Uv_~R7W+)Fk)_52TE0SIlmwt-wkCE9-#%-<`ebVPC ztUfGvjDz4oZ7m~wt79fgkP8ZRe=HMqHdQ@Sb&XMde0wK-1el?clPq9Vi?z#Ew<)8a zI8-S_SrUP}+B8F3zN5v+srAR1A{SGn+bHnpF)4D2um*YgA`*K>+&%6s&<~i*KNfAWUVY2!P zLTq`ZwQ8X!V&6+@ZTLKLv`FxDVIGe$v0^8T)V4EDpUk_A4&c#gKR?I%J}Rl^*kD9! z+vWS0Q*v}f3-}0Z3k(WM7!_$>^Zoe}IZ*E!t)hjnwP$r8YUaZZ)uj3@x8ZrP`lkS2 z^YlsPG6$#R-gxH~pa+D4>~kUzm!^byB4HxBMLh6D^72B2xmv(Y(}TD%omA+y>x^mdEMt4wZsi?L?_g@AtTcg85U6~87 z1i;V*u*lMj+XCiMs6Vqq`#g7&IOc=Q)mDwFWL|3A+0y~E3Odr~jYu5Zg zy}#;%6J9V323mhSpr)g<1%9*3y72k^yni6yvxNZo=${LX$OEc3-pKLoYD;3<4VSq~ zt%WhM?WT;M3PJOmF*2HF{KTlUitC*bQ?)2Tw>@Z+dVm@a@U)dI`qLh0P^iirwT85c zT-Spz?M3KpDP;+<*i~oNETvH}NujN09>v%&T_Gjvj@f>ga%AR6%pJ{-27_Ny#$3O) zT=&~@*4Cg1b#5+1Dr7W#pD!mTR9tt?>~mmi=F+8FrAMfigG*l()3wJrqP2y?87of* z-^rlT5;K`P2zC^5GYt}oS(j4IaW@O zequmk`$%rjHeb(#R5~&cr+^^}Uw$bh2qsS`wr?324}EC2LZsKq7D=lHkhKo;SN*PTpuc{1Df zkw|DH7Rb@kp{sw*kM$IQYi*XTUhrbo)&)pQeiA=nXJt&ydvFJUVvYK0glXct$003> z(H?BryLJ@xpg>jw6(Z99egqa}`?G`5_gaG@`We6U-~{ovf>2VJI-kyFqgvfEr(S9) z@4?Xo)~Bi#vhs0NFKb#_8FIGP-@`z5JLY_OrM7lvg2oNMQD-e%LM7RAFe@1>n|*SU z9mzu0sd}jj8!(!lL|t>fLFY1%!Is!iS2!XiUsqU2wT8+l-O+1`FP%=dEEgbeRH)Jl zPn7xX#2PV{;xD2Ku_*PpT75t>1b$$W`j|h+xy-WE0jEJ7+I1ao*f+vLWC_)A*J2C9 z$@8dPhoVM^z8k&LoeeEo@L_`sJCUt^%rS`UBaWqwQTvbG$0c0hr+MtbwiIPjy2qxL zuwva`&OycGnyn!mf9DZldi}t!F8Uo(6#hL0;F?-_6mGTOlLyM`Iu=jp77f(ks6NyT z;(b~q8gDXioM!`g2MjrKfbKK7o_vy%7*{UCdxfq0$M(?-bec+rjM*&Cm+)FrV~eOl z5n!*%5Pq$WjN>DI_s`emxp3G31$!u?`uV;hh7>GFs=}G6+38rQ2V79Rg?%imvI-oxD%_P5law9u+ze_A z`iA{eW{l~%OtaN*2cCIZEu)TDXu8WXp%Do7IO0&d zFlzQ8fJP2roOA8;ZY`ZcJ7MW|>*$;P&vN4McpW5rq0j2f`({CiSwvZvb2u+P@8Jny zCA_afkVt>zzGKrZ@dxa)^*sEh`w0pHQwo6n*fMO-Q#LkL@|}Z&(8ckK06`(0`&`V# zrs;=wuB#bfuPngp7ERCMipHcY2|5W93KtnNpiP`^?o`>8D)q-`q!aw2MNJ`j{4jBX zF??7oZWLwV0~gN~PTFD_uEh{FheMmi0|2>Tb^xD@Gv8E5nK+2jf=*%MRV?_*rus&? z?i?{r(Y!R!kOMwp{Q9e``ndry5eG-)n6bnAOy{!t;lO`efb2yvL{ajoHSh*$IKuzs zoD$3n!xIorsWNx+Ke_kk`KRx1qA76lMgMyVRFwDj1- zpAr-RV5BcBN0Q)x)*`ugF<781qsvK|D^vt>h);9?Nb-63OiAs%tU<K-0d1luS)K~#p*6lRPhM(($8=TluZ z;hox#DMt*#JR*^;^`IWK@0JOEzdG=?@ATs1`vaCzogc&zHR5dl@j&e8_Pih~e=I-D zj3U-PCk<=7ZzOTGqSAIw6IH`4*eTGodpy;XXync*JWi^9&wMYpRoAXt2 zDeIq*eklZ7T8tkO=f0oCKAat=#~<##lFq``osau7TltTktw?CPzTWdd?>S{Q*Z3=L z^5JHVwlAz{?l{|E%p_$NZo%N^fpfh_&U#w&wpi7jtDvYt?R5Wqe#heO3sta2G)@oZ!%tHHF@N=C|@NjAxg!D zN=G?i^VY&&&F{9NY=hQ?ZJ6Ue>7qQaYX%eAvFhoJDr)VA(2qK@c70B(ablixD2o+d zIBZna+FkaBw=3Yd-PL@f3{-!MgLhQN^sK<039RU!n&UU_w@{NvCu|oh@U4CDgmkX$ zAW80b-s}FDpd4RCHa}fJtg&5I&eG;sbd09oXsW!R)ObU!^9IMxD>ikGFd8?x>bYo*bE-I?LsX+J`D1Qo!!W5SM2Q^}P%A(dU!yb1!` zyekXU;F?r!7RAYtNOHh9SX`yro60vfDj+y4bpc>I>?Ob}U;zv$^9`e$Y6s5nq<{|^ z&@&TaxDEN>!ak;!2f8j(g^J6#-5YX6Xe1Pr2rUjSw4i^X{>VAN$SR5`3lkXGNCf79 zKXXDPGT88aMGJ$Em{Zb<8Y~#hCE9PtD4dU+iggpF5Kp*u(D^>OT;@XEgmLQP>H0|_ z=ie1)22gc>38KY_BOS#ri)Kwq3N4HfP7smM(f8hU|Z~i8fLU9&6Cu{nEc+bZ@$=ZQcw8QJBJSt{kr0T*p4l2gZ zXq9;BTi3K0P8tD!Hcp#A{IDn#3Kc72@;eCat4Ne_%&VsZoIoTozGy3z}JGS;pre6Wwye3_P4QyqaBDh^yG0!Jt3VQ z#gwQbQK-N~>I7EH!z!F5Y-uYzDksB+nZHM)A?4**5a$S(R!UsTUo`@!G`Tl^(;>S* ze&WZ1wE1T0Jawq&vUeU!v*Iw1ru1T^(g(biVJf5Ud2*#B zJ(W-wt%IIX2Je=Cae$hnn zm1uk*IepG|z~{HEo5=M(q8!?o(bCeQ~KsivW=?vC0>l}c+3QFWGQNRg$d z=KPcTvS8AzEjOE*RxZ})Ngpa$H$ zjKdKqs-2*JN#Z<-Tkb21CDHcXZ;j1o21Au}6-a>h=q;16V!&}rIlH0tsnM7&0?&{M@&BQYm?R)n5oUb$U{-|F_tD3tD0+p=fmN2jU2TTwL9nAIiNyf%)$&vt1`KD(Sc>7*LvfS)wP;K4 z41(HA;DXY3iuADZ9v-O_Xb>)xX%%rp&@xH9DjlpAS{M56883uu;_}TV8sR`%FAv4% z8N|Li!nC`~;u0%#cDg2+@C>P6d5 zbER{NpJJfN1A5Nkv^2DP31V7sKHHfiVxCC1O2E6Nemaa>;&Zqr&rMd^`>%^zfZU=9 z_&1=sD3)O$O>LIWx(A6Y_)!ZKj9k`ECHQh(+n0S;092bR(?!Z>ODX#D%sD%#d!JOH&CylCX!U&9Gm*kbxi zfBQ%#S4L%^Z3r%FL26_5uS7G;>Q3^KcMZXH59lYvWk$8!SNAk*uD|x-`_LOVdW{45 zgIVJ3{Blq^;&Izec;cDE+=WxTWzE|LWGXZz%_ALtUC2zH*34{tEn2`C4Cp*v_YC^J z;R@F)w-q&>!+fC0_7%lX-Spw-?9?zz@r^mzF^XJt3f`Av)Y5|scy5{Os96is1lDSY zo_i5u9rbB|ILva$HEvM?3~x4C$QD5w$+lC%0-wc;IOghthy)lp5xW^J0^iH> zl81J0o&9Dvd|HXl13E69gUCr4WT%hMhyBcZB-)D`JSZtBX}9R*Okx;-E{l;4gx1I@lgTJt0(2HmVk^N1JmLEwJbJh)Qv0qG{@y7JG- zahr?JG&ED557JaBF=bz?{v~u1(k@!$p4)|fIt<<=QADbR>XmKx;D%NxIxo1{m7d+VJzGx{SJNGFZ)t2bjow?AwJ!rBKG~dHoQUmf z+pg}s`#-&r-L}4rF}4bD_c0KALYt!yjM)C{Sahp}ssslR&{s7_IBNocL2=BT)xMKC zHEXJD#H%Wvf-C~qvYSu<%@3=~tJgn=LN0ph(qhbzf_q*i;dLIXqs${R?{oLPwrveF zZIjamm)ZsiX-FniaU{=me7T7uskjY2;*yCYuN8r2xJZw$K$)o70tYCWsYkGjWJfzX zH-bwD_?ou`3sycr2k3hfr$fJ-NjV^R);buO)4E~GG_J8srJHr==V zvsEjW>{~m6+dfAYGzajj5QW%P@Jo?X{yw{^UI(QLXm(DdhSqL#=FC4p*8HKhjcc(c zJRW%qa+wx0MzlBy(_L2D!oAAPeL7Gw?h5m)RMXW?r5Tuz6xA{#Iuj+9S8Ns&mL8$( zS&A!m@l2(DZMB>rXS9{?qAEG?bt=G@tRj)C&M3=@ zB6IpRH%mbeKk9+0sm85;r%6=PPwprT6K*GXFg#%t16`_?h^?SVhAWB|ZV8ksD=6OC zKYL$@p4@KnbiD+4&?SJaw=-cVSspj1R(`Ws*rf$n+g3exGO@-0$lt0JWtEEOy_5a2lg!|VZKRC~rq06aR#@N%tPGi7&F6e_ z2%Y^qFP68+8R8nu%udSMX1$PXqs7I2)wu!Yz68n?=V74IL&fiFC<>dnZg6!1cyj|9 z4~$!uJ1E`jY|ln+l*#q|Yk@#|c}x@r8d>uCWm9`MT>B6np6j~wBYuDP<1wom{^foV z@Us#A#=k2X|8JDvW%$fjXU@#xjPIwwIk_7MgeqygG<@|rhm!FA83fNB1}mQe?LOgT zMvHNSZBT!y`AGo0r`r%dGm5O@FtMs3j&wM(kEf)0)Hxb*$12>moGk4*7>&!zQ;Atr zT*(kqdr{1d$PQ5S#+3Y}HP>=;Nwu}VAuQ@PM>x4FF;9Sf4ZKr5)1&T?h}mvlI4HQk z_S9wt(aaR~U-Y%I=;IVMss_N9@oMGT??7th=YwsKx5?43C%wU#XfxWi{!PA(=1&+u86mDXrkxg>M>n>4 zL~S|rx1$FU(ARx?npG&X~aNj)oKdb}JO<&wpt;A*{ zuK%>4LaxK2_m4Hx-G9mh#tIMsI~YZhW_M;mHRKg>(J%vm2KqHfww$Kaw{%ycV?o)V zr}ASUB2?p9;{1X^0SC^YALQ)vM$~Kx@apbH-|;acrti~SE{c{#u!(_64E}oac0Kd@ z`8>Zz$2k?P?fY`}`TVi3tNri}=TiYQx$_$L7pk1lc;pkFLW)% z&R^Mo_Q9c@*2`2m{WTNd!~1an znH}1QnK4%o)mqqVA>@O71(plPiNJ3m5jCsUe$KXB_3C8UW3Z2j)z@T`eJ4Vj2P)hQ+cRfDJz1-nD)Na6F2#06Ytc34FvE^*&9*Mo zVEHPYY1jne_4r4j9Ti2xB^*67=N@{7;@nCgHfjj8e=!#pnnWX>7RkVhZ%vm4$N+=P zqSNs$Nn%oHGE>lN^0eSuQpkJRJpB=N#Ao?yOwZaG*Gy6Cgh-xfjf{X(xkk_VZV?W% zco0dH8r1$u!XJ)#>*M2~^bToAMM(~v#{dCLk{~xtNxzO+nsEXrFv-5wNik@?J!1y~ zGf0kRfZ70TM(~>AT&cgijhi(4+ymyu#xJd6fPs3-(@+%(NDiVyoY;Ltvu811Vgd-{ zARQibQGM7TZIV)Q8(VFjn1_lp7OC89$4InXsel;5D;3TPE8ZHyh`Mi*54cM)iXrI| z)S%X6e$%t*V>|b-Qq&{i%kECX+hE7n|8k(h1$Y#WBS3u@9Fip~3{v7DSH{ar6T~dB zetvb=mjC@`lOFK2v%5PyI{D#i4tmdsn8JWdGqN76`=dfn9m=kOkFjBLIB)1t5lLgsF5KZ`jt+F%*Rc@il`w9WW z*T=8(>#W8RZ~S^~-OSzu=MeOSVck{0TetqOLu>6R@=wE5qxS(e^4p2Z25lQnx-d2J zXI!D%B^JF~P0()490^0<<(P;QK2C)0lQ%*X_KQ0LUxQ@uSUDO)-EFSDu@u_{Kz0r& zgBzY7AVDV`49S+|%Xk?c^M~}ZA#gYs>b400t*SzY>h!2`>F&DE)Nr&DPwoL|-o~G< zgiladA5qL&zAJ>miXq;nNrSt)z;hnhM(RJfRDTab!tA%Xw{b!y3UZzAw2-rdIA*2i zqzz}b{UK`y^Joe<0I<0|W-egZMzfq4zJGte-|BpVwoLu)@#-HP4ptYp*RJ@+%&CW$ z(*qAzBeCW%cX`tnpjCAyk1<`tfH`P;blrxeB^%eEz)#-QvP(x#DZaD6?@s-$VnQ-@)0>_B5b9== zOp#Hm*JEb;?VvBOrT$5Qd^dDhtr-a<^>9t(_o&<2T~m&P!%@-XbJTRS$A}>X(op}k z!?v3y2~e)7p5faS?2GW66NDsN>J-9$I-)W%l;*lw>^3fZS(*RG@PtmCDlXiL3KfcU zDWY)Yy(y`3YRZx4_Mro(jySGxklP;u0<%CS=I#|I;y0--WgsN+1NZ!|IXBWc89|J( z1F?l^3^+U6$p#y!>7~U5(EOEF+mF2=0MtGpngEMdPiR_`gbfopk-N%afSf)Gf7Hk* zfwj3{c{Tthlg#eC*V`d!#BB3At^;Y^(8b{o)+-W+WT5svS}#+L+eT3#q~M;$$R3V~ zY=zlL%T1b??UI!G4+M6D(a42NLdQDS43D)D3Ryzi?3*o9 zQtCr!rOENyf|VK39oECR3N8g;vZv&47mSvxI=VHTMvH(-i`K@mHMBJjI+OOU}| z-rD+0F#iM!;BOop{&j2I2$S`xVd_Aes*m1Z%=rfWhwO6Up){yS008h0k>P(*9DcYC z|GybB!GD3`@PFtr;_;6(_P_CYi63`F=l_Oh(XA|NzsUf@yV)BA>?9FnbJJ~$W-vHs zJa1TPz<`kv89I?jE;SsK|LvRjiCFr3&6Hiyiv)icxt6chH4A;x6i&KLP?yrEuOjgs zfG|kPDOzrcu>^b}4w%7+oi@sw2VrZTUOxNAaL|u^>)Sy|lAMwc<;~xM5QQmz?O`O{ z8*IHPDpTX>GnD3YyitM*TJ-jeU_GJuN8hO#`VZ#w2vB}mKHMvW^xQPCmVos=#vswG zmNgC}x{|r8mFG6^EPC2o`5=1Xx+Z;gy>RX>C8fb_v%`V~g*2nVNwfqVHI&7mgy(ZQ ze<>7)lB~=<$lV3e*WkIOglgoum6C_nZD%Y= z-s%3orjAaS)usQo$(7hBKg^1PPw07MZlr<^?@~A8X7#GN26=4|_|qF=E00*x&-V7O z`dJ3u!ZL>2zPeu`=MWgdP*6-ccyoa*9-d-P$y3jhYCG*%tzi~Iu=>0Rfq;3}vM}}< z9n>8bMkbXM(vgFgTW;Ue0(--GtH=~)8^SL1^dv)!E#5ZVxa3#Vx=UTxAp4|uj+!vi z@g~t8>X?qcUvb9?lg2O7OHFxo7`9Wsy{7-q-65T7!wUXGHT@?E|1$xI>c=!)^4~~L zL01=x|0X+g5(VXd%yB|zFKh1rEgAB!`F>%rx8+05jLGsMRm%!x!^kfF<#wB71MKXh zZPw4#=X-gk+t8RMOM)VE&~G69ozs666rMgX!kXOoCSw^ICQ{TPD$+Q@9z@!WelX>m zAnjY`&z^Ww^?n&MO4qU!iPYfgV;(C;iaeDrH?Pzg!Uz|B>9l}n_wQZ?K<5d*Wshz6k{X^y&GS>u{C1;+qe>OIA% z-$m%pJHkNbxAc9;{#hy2n(EKP2vRs{HzyjZ25yo3od_)J#ue!7gmT&1TtGHVOZA=u zp4)EF%&8^EHEQ&&=DBu%6sht}w+X1+U4EJfFHKPWjR_2))fr_MM2cT9S7~Y*WrfQa z1#9<`H>_vqo<>xrr&o+mSl$S>44CMW>i1mV@LoB7pEja9Rjz8G#>EPz2CDr#{^_2p z=gQti$%gvxe+r~4!mo21z#og3pFscT6i7t=mr_7d!Hw;|NrCAff0zw16u&TiN3JAD zgiWD=Az6p3wZr;FmlE1T68XqU8Y9N2(4w0ffYKTNTTbu!&}invu4IzFni=2TuNgx7 z9ka%&b>I5}Ncue@Go>IY!~O${0Tl358H;Y2VO$zw*5H@HVZ^#|5eLe45z+r7R}=&M$eYC}LF0P`gL-ZQpEBq*NIps)9`lLq{KYW3o4p1(2nf!Mle~ zEFoLooD1CX6C5O;&2YyWgRlwX8RUi$WK_sFG7$YJ3Cdg#dFe?Gmj+_o_ugqR(oKP3 zdCBw{<|GI*E$LX0rnx`MpikblzWwZyJ}LJK`QFM8S}+~26an~3t1(MClv>bJFx0GpB){X^^A^;E z?xJw$)NOKyeE=L>kHLcl_rL)h9IRITj^X(hsE(nBqi>52R*#{{&1ptsK(a@DLJ^HQ z{2lILcNkiqPulpjAL`lnOIcCzgYDegb-XOY zxGm{~Zt~k}QhsgMXXC7eimx^r_ED_i6b-D|?`tOazmbLQ$vC7$4@D|sct&=PhY7W= zk3BHH3&ED$8AlyZ4S1_mG|y{>{|IlC%!$1g-Yce`L>7>LV3Fg#9v^`K5wFwzYCIw14`tQ5SL!Y-+rG$P6^ULK2hZ?KO#>2x8 zQvz?@tp6uL*GjDOQ;pDA*~|Pu=bi zE#(Sdxb`~I-ZDCxvAsjKn+&iktEm6^ZP~FPNmbL-T)_<^ ziM=a2ZLOkXdQQ94B{r;@il>sH`9O8v#LX|RFHck}dm;1-77WCf-_4&%7v%F>bTKAIBag% z7IOXPaVA`Fbl2Md8D4MKr2}GbC2dc7cFrVUoueZP0ogdlb)?vOa)BwKg~yyKJC*^i z;mb{6<$iF~KRDbxXGYI`n(1d=BkhBstH+1^{qo{s@OX57`0ehn^l~zeIG9u0@UExb zXDp>n;(=r3(vpe;+I);~1;sSVIZaawI?miUSA%l`T29jH*d+TmY`gKtnn%k=f9!e* zx1HClS3T`*r_(BOt4|==i!6dD^rDZ(7#Mp8wgPwgbC<M@TU(3Pd{z#bvuz zzB5_N`|bc2D-h=s(Ct~uk1w-X%^fR*S8aFR?u*`Y*PuG-I8UG)-!4E7KT?U2BGKeK zsv+^H!p=uWfy;neQ7_@anRpRY1{V7&rbQ0 KKAmD@B*$VpIWa#_UYTi9JpDrFqd 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%0A8|P9G*I1^@Z$Fms@c}ZDT0UFzrpg1vkW-J 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

1DcmuAXfS)gDjz|Qu5Htb#1fj$ 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 z

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 literal 0 HcmV?d00001 diff --git a/upload/.DS_Store b/upload/.DS_Store deleted file mode 100644 index 81271f816e0d4a1f177401c8219da8b3873a6cb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~&rjPh6vv;TfZJ(W50l0YlYH4NLQPXKI7|v19Jo!&G!8I9LMn)q#;8eGLDnh% z#g$)bgdOyaAIj9H*CL}yeqmPn zx9B2G@}krE&X$%NE30dqw|MJe>s@dzCqWSwW@+Z&Tm-{Ef%d7Ik^y6nW3t+fgDSKq}mwdrWZI17QQI^W=3|lE<4Nj3%fu4ed zv)W!qtiGbxS|08zR^l6_MkDHimFqYxneM#j_tz4`9>?PIvtp~d@%E7W^O1!pDY1O;J+fk8oR-6AE#u_)`iK@Su4;_(8(yS n(yCIhFvqc~&{4dOt_=GGRZxASl~!y)vp)g~gDot9dnND_kB-1} diff --git a/upload/admin/.DS_Store b/upload/admin/.DS_Store deleted file mode 100644 index 0b8d238aa373d5e041d597e06f87045f3d2d0f68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeI1&2G~`5XWcRlx_lu9FQo8gD>1tDJCh<1Cj~hzzxX=4uD#_wh~K@H%gpF#RU1r zJMi@woValVaYVcVkHPE*kxA=tsb~c=(e8ia*;!|QS=*Tn0I<#^umLszfMbzbKa157 zCjGJ;vK4dW94f&9$mq2UaQtK&{|mW!T0%K*d-_9izEc6^di(?17n3W>O5M!_jZa?x>E@T&oTT zro(}mGc%K+Fm-l}vs8Crj#jFP01-G$K<4f>*u%U%fwY*v`_u8zkA;u^&;Bru#%Z(p zovo}^*3PVRUgNd%wP$W$Ox@H=C*zJcdLrLF@Y23-+7E?@=WWk_6ou2B`o+5t?Gxn^pOx zYxeE?yMu%0*^AlB*Ls4?+$7+_!i3+H&34}%C9z0)=$Ek^_b@yp(t` zw`;Bp{_W$3@YRn`cd*ZIJ%T^<81|Q)Vc`p?z&=EXe_Fu*<)l~P6}bv;Y~d>0-der} z-VW|L>LW{~!N}X+$DG1WpYBR_VIk4t|_p zKbsdnnas5KR|)(C DrdUCs diff --git a/upload/admin/controller/.DS_Store b/upload/admin/controller/.DS_Store deleted file mode 100644 index 262a41fcccc435677965bd118d1596eef24ab07e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}N6?5T4Yk*^1bMpx$!v)29rBEBhS!M!tZr z<4lr@QauSGWdc(i)s5fiMZ~Eh!8u^XJR!wa;n&Yu2*Eao~{fq1ShtcEs>Ddx2@Lx2t;&1{l zXneEQ+pwSZbb5)=N#&%1kr`kHn1R`3!0mQ&X*QR~t6~P2fnP8{`-4Iy3>+2~&DMbp zT^}i4CL}?d-V%h$Vc@W^h!GTFOA&3Ua8C?j%h9h~Uf{5>Xv;yEnQ(t`ttW~HNs3eqE nSo|nK!yLt!OGoiKsuA=nG7tlYg+=tB@I}DTzzs9-rwqIU6&O?; diff --git a/upload/admin/controller/extension/.DS_Store b/upload/admin/controller/extension/.DS_Store deleted file mode 100644 index 3d24e4f87285fa6d28a32d9fb94d49e8329017c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}T>S5T0$T-BiRL1ogHTZ#^`&;7JHo58i}`9#k|TMFTY{ZEDe4$#du%`2xO< zGrQYjtzJBclo^=)X6I*@{Sx*E07PpLxd2rFkf?+O2b*t%;-qs@upUC8$7n+WSvc%> z!_HhbJN_dB^zF*fg#aGl4nBRqG{neT*zLsqtX_W?g<@%Gxh!QxR#q#Q{%tz+vmhJv zTS4!fddER_8(RA$O*>ON2v6ho@T$7LpC(xlC+(gtj-xiFT%5&8lnz_zAc^{V9Nz?_ zbfj}t-5QM=^=3`EO?O;VBe&7msj1yYb3AtB#gCzZh}_{)bxDEKcAR zjW6rG_j^evO>QtUshVUnG6T#2GqBhU*j-PqEcP;ab<6-W@CycLe^97|p2ggt-a4?M z>m$WWgd}LwTY^wo^epBEF@hpYDWWMA_K6`(Ir^2&^DO2DO*sfXGmc|t7WRcA^z7(Y zIvs>(kXvSe8JK0DXu4H8{||qD|IZe2j~QSF7K#B;I`9u#xFmbF&Ml74T7`OzN-f#_Mx4Wb8yF9MndZkT~TW#9wK ($page - 1) * $this->config->get('config_limit_admin'), 'limit' => $this->config->get('config_limit_admin') ); + $plan_total = $this->model_extension_payment_razorpay->getTotalPlan($filter_data); $results = $this->model_extension_payment_razorpay->getPlans($filter_data); @@ -410,6 +411,17 @@ public function getPlan() $url .= '&order=' . $this->request->get['order']; } + $pagination = new Pagination(); + $pagination->total = $plan_total; + $pagination->page = $page; + $pagination->limit = $this->config->get('config_limit_admin'); + $pagination->url = $this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url . '&page={page}', true); + + + $data['pagination'] = $pagination->render(); + + $data['results'] = sprintf($this->language->get('text_pagination'), ($plan_total) ? (($page - 1) * $this->config->get('config_limit_admin')) + 1 : 0, ((($page - 1) * $this->config->get('config_limit_admin')) > ($plan_total - $this->config->get('config_limit_admin'))) ? $plan_total : ((($page - 1) * $this->config->get('config_limit_admin')) + $this->config->get('config_limit_admin')), $plan_total, ceil($plan_total / $this->config->get('config_limit_admin'))); + $data['filter_plan_id'] = $filter_plan_id; $data['filter_plan_name'] = $filter_plan_name; $data['filter_plan_status'] = $filter_plan_status; @@ -805,6 +817,7 @@ public function getSubscription() $url .= '&sort=' . $this->request->get['sort']; } + if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; @@ -836,9 +849,11 @@ public function getSubscription() 'start' => ($page - 1) * $this->config->get('config_limit_admin'), 'limit' => $this->config->get('config_limit_admin') ); - + + $subscription_total = $this->model_extension_payment_razorpay->getTotalSubscriptions($filter_data); + $results = $this->model_extension_payment_razorpay->getSubscription($filter_data); - + foreach ($results as $result) { $data['subscriptions'][] = array( 'entity_id' => $result['entity_id'], @@ -855,7 +870,7 @@ public function getSubscription() 'start_at' => $result['start_at'], 'end_at' => $result['end_at'], 'subscription_created_at' => $result['subscription_created_at'], - 'next_charge_at' => $result['next_charge_at'], + 'next_charge_at' => $result['next_charge_at'], 'view' => $this->url->link('extension/payment/razorpay/subscriptionInfo', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . $url, true), 'singleResume' => $this->url->link('extension/payment/razorpay/changeSingleStatus', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . '&status=1'. $url, true), 'singlePause' => $this->url->link('extension/payment/razorpay/changeSingleStatus', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $result['entity_id'] . '&status=2'. $url, true), @@ -900,9 +915,6 @@ public function getSubscription() $url .= '&filter_plan_name=' . $this->request->get['filter_plan_name']; } - // if (isset($this->request->get['filter_total'])) { - // $url .= '&filter_total=' . $this->request->get['filter_total']; - // } if (isset($this->request->get['filter_date_created'])) { $url .= '&filter_date_created=' . $this->request->get['filter_date_created']; @@ -914,6 +926,15 @@ public function getSubscription() $url .= '&order=ASC'; } + if (isset($this->request->get['page'])) { + $url .= '&page=' . $this->request->get['page']; + } + $path='extension/payment/razorpay/plan_list'; + $data['sort_order'] = $this->url->link($path, 'user_token=' . $this->session->data['user_token'] . '&sort=p.plan_id' . $url, true); + $data['sort_customer'] = $this->url->link($path, 'user_token=' . $this->session->data['user_token'] . '&sort=plan_name' . $url, true); + $data['sort_status'] = $this->url->link($path, 'user_token=' . $this->session->data['user_token'] . '&sort=plan_status' . $url, true); + + $data['sort_date_added'] = $this->url->link($path, 'user_token=' . $this->session->data['user_token'] . '&sort=o.date_added' . $url, true); $url = ''; @@ -937,6 +958,18 @@ public function getSubscription() $url .= '&sort=' . $this->request->get['sort']; } + + + $pagination = new Pagination(); + $pagination->total = $subscription_total; + $pagination->page = $page; + $pagination->limit = $this->config->get('config_limit_admin'); + $pagination->url = $this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url . '&page={page}', true); + + $data['pagination'] = $pagination->render(); + + $data['results'] = sprintf($this->language->get('text_pagination'), ($subscription_total) ? (($page - 1) * $this->config->get('config_limit_admin')) + 1 : 0, ((($page - 1) * $this->config->get('config_limit_admin')) > ($subscription_total - $this->config->get('config_limit_admin'))) ? $subscription_total : ((($page - 1) * $this->config->get('config_limit_admin')) + $this->config->get('config_limit_admin')), $subscription_total, ceil($subscription_total / $this->config->get('config_limit_admin'))); + $data['filter_subscription_id'] = $filter_subscription_id; $data['filter_plan_name'] = $filter_plan_name; $data['filter_subscription_status'] = $filter_subscription_status; @@ -981,12 +1014,9 @@ public function changeStatus() else { return; } - - + } - - - + } public function changeSingleStatus() @@ -998,12 +1028,12 @@ public function changeSingleStatus() $this->resumeSubscription($eid); $this->session->data['success'] = $this->language->get('text_resume_success'); - return $this->response->redirect($this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true)); + return; } else if($status==2){ $this->pauseSubscription($eid); $this->session->data['success'] = $this->language->get('text_pause_success'); - return $this->response->redirect($this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true)); + return; }else if($status==3){ $this->cancelSubscription($eid); $this->session->data['success'] = $this->language->get('text_pause_success'); @@ -1013,9 +1043,6 @@ public function changeSingleStatus() } - - - } public function resumeSubscription($entity_id) { @@ -1031,7 +1058,7 @@ public function resumeSubscription($entity_id) $subscriptionData = $this->model_extension_payment_razorpay->getSingleSubscription($entityId); if($subscriptionData['status'] == "paused") { $api = $this->getApiIntance(); - // $razopay_plan = $api->plan->create($plan_data); + $api->subscription->fetch($subscriptionData['subscription_id'])->resume(array('resume_at'=>'now')); @@ -1065,7 +1092,7 @@ public function pauseSubscription($entity_id) $subscriptionData = $this->model_extension_payment_razorpay->getSingleSubscription($entityId); if($subscriptionData['status'] == "active") { $api = $this->getApiIntance(); - // $razopay_plan = $api->plan->create($plan_data); + $api->subscription->fetch($subscriptionData['subscription_id'])->pause(["pause_at"=>"now"]); @@ -1099,7 +1126,7 @@ public function cancelSubscription($entity_id) $subscriptionData = $this->model_extension_payment_razorpay->getSingleSubscription($entityId); if(($subscriptionData['status'] == "active") || ($subscriptionData['status'] == "paused")) { $api = $this->getApiIntance(); - // $razopay_plan = $api->plan->create($plan_data); + $api->subscription->fetch($subscriptionData['subscription_id'])->cancel(["cancel_at_cycle_end" => 0]); @@ -1125,19 +1152,34 @@ public function subscriptionInfo(){ $this->load->language('extension/payment/razorpay'); $this->load->model('extension/payment/razorpay'); - - - if (isset($this->request->get['entity_id'])) { - $entity_id = $this->request->get['entity_id']; - } else { - $entity_id = 0; - } + if (isset($this->request->get['entity_id'])) { + $entity_id = $this->request->get['entity_id']; + } else { + $entity_id = 0; + } - $order_info = $this->model_extension_payment_razorpay->getSubscription(array('entity_id'=>$entity_id)); + $data['results'] = $results=$this->model_extension_payment_razorpay->getSubscriptionInfo($entity_id); - if ($order_info) { + if ($results) { $url = ''; - + $data['firstname'] = $results['firstname']; + $data['lastname'] = $results['lastname']; + $data['subscription_id'] = $results['subscription_id']; + $data['plan_id'] = $results['plan_id']; + $data['plan_name'] = $results['plan_name']; + $data['product_name'] = $results['name']; + $data['status'] = $results['sub_status']; + $data['plan_bill_amount'] = $results['plan_bill_amount']; + $data['plan_frequency'] = $results['plan_frequency']; + $data['plan_bill_cycle'] = $results['plan_bill_cycle']; + $data['total_count'] = $results['total_count']; + $data['paid_count'] = $results['paid_count']; + $data['remaining_count'] = $results['remaining_count']; + $data['start_at'] = $results['start_at']; + $data['end_at'] = $results['end_at']; + $data['next_charge_at'] = $results['next_charge_at']; + $data['sub_created'] = $results['sub_created']; + if (isset($this->request->get['filter_entity_id'])) { $url .= '&filter_entity_id=' . $this->request->get['filter_entity_id']; @@ -1153,6 +1195,28 @@ public function subscriptionInfo(){ 'text' => $this->language->get('subscription_title'), 'href' => $this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true) ); + //Invoice + $api = $this->getApiIntance(); + $data['invoiceDetails'] = array(); + $data['invoiceResult']=$invoiceResult = $api->invoice->all(["subscription_id"=>$results['subscription_id']]); + + foreach ($invoiceResult['items'] as $result) { + $data['invoiceDetails'][] = array( + 'id' => $result['id'], + 'recurring_amt'=> $result['line_items'][0]['net_amount']/100, + 'addons'=>$result['line_items'][0]['unit_amount']/100, + 'status'=>ucfirst($result['status']), + 'total_amt'=>$result['amount']/100, + 'date'=>date('M d, Y', $result['billing_start']), + 'short_url'=>$result['short_url'] + ); + } + + $data['singleResume']= $this->url->link('extension/payment/razorpay/changeSingleStatus', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $results['sub_id'] . '&status=1'. $url, true); + $data['singlePause'] = $this->url->link('extension/payment/razorpay/changeSingleStatus', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $results['sub_id'] . '&status=2'. $url, true); + + $data['singleCancel'] = $this->url->link('extension/payment/razorpay/changeSingleStatus', 'user_token=' . $this->session->data['user_token'] . '&entity_id=' . $results['sub_id'] . '&status=3'. $url, true); + $data['back'] = $this->url->link('extension/payment/razorpay/getSubscription', 'user_token=' . $this->session->data['user_token'] . $url, true); $data['header'] = $this->load->controller('common/header'); $data['column_left'] = $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); diff --git a/upload/admin/language/.DS_Store b/upload/admin/language/.DS_Store deleted file mode 100644 index 3e8b33d3705b59fd0e28c0044f594d2cdd5049ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}xR_5N`R=f-!P1(SwIxyg|YWiFz>EARfG#tkHuS*bM|W!CeB28%4~%h`y0$ zU&ooY5D0qkVvNir({DPRY13~vot81iYonIMSb;GnKoL_pXuc2}M_rPX@gQq6v3elvgPbi>$*+-Nkc zxq}<*UAR%#GxlW|_GY&0UHR>}QP@5WgUI!R_CO{3tu}<*Ui(2SjBDX2Xbsgojvf#q zCvuI#-gsQHs^#ONELlgDNl}iiO68y^4=dHlBqw(Et&{WS{o~X4dGhkA+2!yXD%mnP zg*Pzfw)x-;f?gPOz&p*DMiLSO!~ij{0t}d=Pi(BfUTKTO05R}02Jn24poq4?M58)7 zpuy`Sj%N^2z{a-(qBLk5Of

2-m5AI+dFz2G{A}mnP0Om}u1LjH{Jl9RF^PJ_05R~d7~q+@Q?J36Ol@7-9M)P1+5|OaK4? diff --git a/upload/admin/language/en-gb/.DS_Store b/upload/admin/language/en-gb/.DS_Store deleted file mode 100644 index 157e7451d226705211db2844c1ff49fee0beb555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK&1%~~5T3Q2X5|p-Lm@fzu$SI!uxdlwLqRynp|^ladPsvUAyW%nt+C{~t)rqB zY2T>lzD{O#*CxTqsStvhf!S|%esJwG&;kI7N?7x-xko5Yx+OK|Arxke z401?8Ll!T$vf1$z8K7_H!5F?nf$gpDm(SviBPaWm~QMUhj2Vz3KJK(vwH8{P!P5Uw`~uU6;Rp zTaE?(jz*q4T*DtU?pf})aGp(d_64Ks%5?=JGr$Zm13Soo+v?=O4z7)t#0)S4|HlCB z4+@nqa9CM1TL(6DeWZAUkOXadOAsoDfy2roMo@$;MYN^DJu!qWN567;fy2t8EeBy{ z#&O)t!o5(0nH~Mgq=N`7a?1=b19usy+ir`_|FehR|96YH#|$t7JH>!#oQ9_ZT#`Fm yw-!fdtwJ54l2Be{aZ`eZIf^ltj^blfBj{ITAO;RAi|9e&i-4hl8)o298Mpy)DpbD! diff --git a/upload/admin/language/en-gb/extension/.DS_Store b/upload/admin/language/en-gb/extension/.DS_Store deleted file mode 100644 index 350c2a76d4af19d22cdef5127a37ff3b8b59ed4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPfG$p6n~>uqY-%s>d;{>-4xsmszb1t9l8Y@b*RW)lv=P|(KRVE_KVav>fG1q zy_r!m>(U`Y-h(&4H}B63^V?yf-I~QuDsiL;3a<2 z@74V71@%t+p`gBU>(rWDbX3j4$mrX2ms=D8MAgQgsWo*BonGYk7d z5qfs?E1eF)HOMV9zzj??kTu;Ro&QHazyGI;xW^1I19QcI$kn}i4VPrk)|ti8S*uVR rs3eq^8l04%p^swBrK5NQRSWtR8HldM)F66L_#&Wb;D#CaQwBZ&EHqQj diff --git a/upload/admin/language/en-gb/extension/payment/razorpay.php b/upload/admin/language/en-gb/extension/payment/razorpay.php index 1a77549..a789c91 100755 --- a/upload/admin/language/en-gb/extension/payment/razorpay.php +++ b/upload/admin/language/en-gb/extension/payment/razorpay.php @@ -69,6 +69,10 @@ $_['column_next_charge_at'] = 'Next Charge At'; $_['column_start_at'] = 'Start At'; $_['column_end_at'] = 'Ends At'; +$_['column_invoice_id'] = 'Invoice Id'; +$_['column_recurring_amt'] = 'Recurring Amount'; +$_['column_date'] = 'Date'; +$_['column_total_amount'] = 'Total Amount'; //Breadcrumbs $_['text_extension'] = 'Extensions'; @@ -83,7 +87,7 @@ $_['text_add'] = 'Add Plan'; $_['text_enabled'] = 'Enable'; $_['text_disabled'] = 'Disable'; -$_['text_success'] = 'Success: You have modified Plan!'; +$_['text_update_plan_success'] = 'Success: You have modified Plan!'; $_['text_list'] = 'Plan List'; $_['text_subscription_list'] = 'Subscription List'; $_['text_add'] = 'Add Plan'; @@ -133,6 +137,7 @@ $_['button_resume'] = 'Resume'; $_['button_pause'] = 'Pause'; $_['button_cancel'] = 'Cancel'; +$_['button_back'] = 'Back'; // Error diff --git a/upload/admin/model/.DS_Store b/upload/admin/model/.DS_Store deleted file mode 100644 index b824173ce4f8d53218df0107745801a0835de6aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}(1u5S|Tzu7fIaKxz*??1fv9;syygAeoRJdP6d_2S8xsh!{EED0T>KNM)&q zK1F$%o_ppM`WT)42?8ZZa6t&oNVDJU?98tBv$g910M;BtEfJfehD*q?z4QLEUYN)bNB@SsB+l}B{f3q1%JU0v zIIr-^+scvOkwZTZ@hg|E^B_*!eVrUfZ45d5 z8mEyQHsv6VGChxP1~_-Pb6ou}8m+o(_05`CbvGL0ni#o_#>bjiZ>){S4u7}eZhb!K ze)~SU8vpohIA-`cYFV;4fon8oY&SV`{ZrZPO~PhJb!Dq%N#XlH56*x6`?LK}Wc0|$ zUgt3@U-8W>;pmLScG! zoL}g0V4gv0i2-8ZJ_B>6TUGb}r-$qR`$^Oz28e-I#Q-a}{8kgUWbf9g&8fRqpq`*A qQE`RA+Y~hPRgAIfDt?cu1^q%9h@Qp5AbL>fM?lj+4KeVn4EzUI?0Cii diff --git a/upload/admin/model/extension/.DS_Store b/upload/admin/model/extension/.DS_Store deleted file mode 100644 index e313f9987f03797eeaa6e2f9f35756f093134591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}OId5U!3{?L-!H5Zr@@zU(bR#t14RjM;eDn=s4nK}BbrU&sQKT3;EBN_^q7v-$O~ zb9y%XIr{a-@XPR1)G}vr4CiP(+G>34ct^66jzcCRI@6pI428aP-;H4O_M+~2RsR?NwVt^QUHw>urL7*yhE#?OG z(SeOF0T7Gm)`GUGB~*^E=vvGT;s^>esfZ?(*%E`9bo2`w=UU7Snsi{c_+WNrW-An? zSI7B<4hQBMq?Q;U1|BjnWx5r0|8M`h{(qQ6Jz{_ucvlRtV$*9ja7*@Xo!FeZYX#~d rsuC5K8@x+FLtn)htFGcts9Ml3l!544%nhOkg?rows; } + public function getTotalPlan($data = array()) { + $sql = "SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "razorpay_plans` p"; + + $sql .=" LEFT JOIN " . DB_PREFIX . "product_description op ON (op.product_id = p.opencart_product_id)"; + + if (!empty($data['filter_plan_id'])) { + $implode = array(); + + $sub_statuses = explode(',', $data['filter_plan_id']); + + foreach ($sub_statuses as $sub_id) { + $implode[] = "plan_id = '" . $sub_id . "'"; + } + + if ($implode) { + $sql .= " WHERE (" . implode(" OR ", $implode) . ")"; + } + } elseif (isset($data['filter_plan_name']) && $data['filter_plan_name'] !== '') { + $sql .= " WHERE plan_name = '" . $data['filter_plan_name'] . "'"; + } else { + $sql .= " WHERE plan_name > '0'"; + } + + if (!empty($data['filter_plan_status'])) { + $sql .= " AND plan_status = '" . $data['filter_plan_status'] . "'"; + } + if (!empty($data['filter_date_created'])) { + $sql .= " AND DATE(s.created_at) = DATE('" . $this->db->escape($data['filter_date_created']) . "')"; + } + + + $query = $this->db->query($sql); + + return $query->row['total']; + } public function addPlan($data,$plan_id) { $this->db->query("INSERT INTO " . DB_PREFIX . "razorpay_plans SET plan_name = '" . $this->db->escape($data['plan_name']) . "', plan_desc = '" . $this->db->escape($data['plan_desc']) . "', plan_id = '" . $this->db->escape($plan_id) . "',opencart_product_id = '" . $this->db->escape($data['product_id']) . "', plan_type = '" . $this->db->escape($data['plan_type']) . "', plan_frequency = '" . $this->db->escape($data['billing_frequency']) . "', plan_bill_cycle = '" . (int)$data['billing_cycle'] . "', plan_trial = '" . $this->db->escape($data['plan_trial']) . "', plan_bill_amount = '" . $data['billing_amount'] . "',plan_addons = '" . $data['plan_addons'] . "',plan_status = '" . (int)$data['plan_status'] . "', created_at = NOW()"); @@ -163,22 +198,58 @@ public function getSubscription($data = array()) $sql .= " ASC"; } - // if (isset($data['start']) || isset($data['limit'])) { - // if ($data['start'] < 0) { - // $data['start'] = 0; - // } + $query = $this->db->query($sql); + + return $query->rows; + } + public function getTotalSubscriptions($data = array()) { + $sql = "SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "razorpay_subscriptions` s"; + + $sql .=" LEFT JOIN " . DB_PREFIX . "razorpay_plans p ON (p.entity_id = s.plan_entity_id)"; + $sql .=" LEFT JOIN " . DB_PREFIX . "product_description op ON (op.product_id = p.opencart_product_id)"; + $sql .=" LEFT JOIN " . DB_PREFIX . "customer c ON (s.opencart_user_id = c.customer_id )"; + + if (!empty($data['filter_subscription_id'])) { + $implode = array(); + + $sub_statuses = explode(',', $data['filter_subscription_id']); + + foreach ($sub_statuses as $sub_id) { + $implode[] = "subscription_id = '" . $sub_id . "'"; + } + + if ($implode) { + $sql .= " WHERE (" . implode(" OR ", $implode) . ")"; + } + } elseif (isset($data['filter_plan_name']) && $data['filter_plan_name'] !== '') { + $sql .= " WHERE plan_id = '" . $data['filter_plan_name'] . "'"; + } else { + $sql .= " WHERE plan_id > '0'"; + } - // if ($data['limit'] < 1) { - // $data['limit'] = 20; - // } - // $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; - // } + if (!empty($data['filter_date_created'])) { + $sql .= " AND DATE(s.created_at) = DATE('" . $this->db->escape($data['filter_date_created']) . "')"; + } + + + $query = $this->db->query($sql); + + return $query->row['total']; + } + public function getSubscriptionInfo($entity_id) { + + $sql = "SELECT s.*,s.entity_id as sub_id,s.status as sub_status,s.created_at as sub_created,p.*,op.name,c.firstname,c.lastname FROM `" . DB_PREFIX . "razorpay_subscriptions` s"; + $sql .=" LEFT JOIN " . DB_PREFIX . "razorpay_plans p ON (p.entity_id = s.plan_entity_id)"; + $sql .=" LEFT JOIN " . DB_PREFIX . "product_description op ON (op.product_id = p.opencart_product_id)"; + $sql .=" LEFT JOIN " . DB_PREFIX . "customer c ON (s.opencart_user_id = c.customer_id )"; + + $sql .= " WHERE s.entity_id= '" .$entity_id . "'"; $query = $this->db->query($sql); - return $query->rows; - } + return $query->row; + } public function resumeSubscription($entity_id,$updated_by) { $this->db->query("UPDATE " . DB_PREFIX . "razorpay_subscriptions SET status = 'active',updated_by = '".$updated_by. "' WHERE entity_id = '" .$entity_id . "'"); @@ -197,4 +268,7 @@ public function getSingleSubscription($entity_id) return $this->db->query("SELECT * FROM `" . DB_PREFIX . "razorpay_subscriptions` WHERE entity_id='" . (int)$entity_id . "'")->row; } + + + } diff --git a/upload/admin/view/.DS_Store b/upload/admin/view/.DS_Store deleted file mode 100644 index a17d347a98d227c962001eb0a043f1e0f9873de5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}N6?5Kh{v*^1bMpm@r~TZPtIr3YcD_25ld(Su66ON(9D?v{3I(OTK}&^Ph{ zd>vs9<9aj-+e0;u zqXR-%!fF=dIr3)8u*j@~Zje@F^a0X!zh4&Df)y?t=i2-7O7+6{c%z-D?mv)7;Fk*lh_$>o?K1fhR+hC$m z9Uai%?<2-@h$vv=TLMuUv<)U2Ap*j6DWERp=83^|Iryc?vkfL1bvff|W*EoJ%*_jh ztJ%RXRXXFgMrw%xVqlShtnL=@{y+Qq{l8d5Jz{_uSSkj1uHiK5uq1Q0rWS{Htpsg> qqF`R4ab5z3x{4teui_n0CE%B60NMrE2uhC6APP5h3H&K`=B354CQ8*kN=Ow|eL0`5m2PVVtx&rZ{f4Fy-_(PMW&c(A}h&nsEXf zkkXUhd3mYdU#V_x)GMmKF{r41wN_iJsIA)iVBpDx%fMtj}$KwlAuj*2}0%2cbHqm2#T`bP&EpZkYjQ;41?Ywp*t2fA8n_|JNe!F$2uNSTP`qyTNV)m*mdYk;Tzjt57dc qNhmM3_)&s}If^ltj^agBBj{ITAo>n-i|9e&i-4hl8)o278F&ZmfmCAv diff --git a/upload/admin/view/template/extension/.DS_Store b/upload/admin/view/template/extension/.DS_Store deleted file mode 100644 index 350c2a76d4af19d22cdef5127a37ff3b8b59ed4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPfG$p6n~>uqY-%s>d;{>-4xsmszb1t9l8Y@b*RW)lv=P|(KRVE_KVav>fG1q zy_r!m>(U`Y-h(&4H}B63^V?yf-I~QuDsiL;3a<2 z@74V71@%t+p`gBU>(rWDbX3j4$mrX2ms=D8MAgQgsWo*BonGYk7d z5qfs?E1eF)HOMV9zzj??kTu;Ro&QHazyGI;xW^1I19QcI$kn}i4VPrk)|ti8S*uVR rs3eq^8l04%p^swBrK5NQRSWtR8HldM)F66L_#&Wb;D#CaQwBZ&EHqQj diff --git a/upload/admin/view/template/extension/payment/razorpay_subscription_info.twig b/upload/admin/view/template/extension/payment/razorpay_subscription_info.twig index 782cf8b..c61df85 100644 --- a/upload/admin/view/template/extension/payment/razorpay_subscription_info.twig +++ b/upload/admin/view/template/extension/payment/razorpay_subscription_info.twig @@ -3,8 +3,18 @@