ing_psp - Version 1.1.4

Version Notes

ING PSP-Magento Extension
====================

# Changelog #

## Changes in version 1.0.0
+ Initial version based upon Ginger Payments version

## Changes in version 1.0.1
+ Updated the README.md

## Changes in version 1.0.2
+ Handle banktransfer correctly

## Changes in version 1.0.3
+ Added version to the webhook
+ Added cash on delivery

## Changes in version 1.1.0
+ Added Bancontact
+ Added product selection

## Changes in version 1.1.1
+ Renamed bcmc to bancontact

## Changes in version 1.1.3
+ Small fixes
+ Version synchronization

## Changes in version 1.1.4
+ Fixed missing library folder

Download this release

Release Info

Developer ING
Extension ing_psp
Version 1.1.4
Comparing to
See all releases


Code changes from version 1.1.3 to 1.1.4

Files changed (153) hide show
  1. lib/Ing/Services/ing-php/LICENSE +22 -0
  2. lib/Ing/Services/ing-php/README.md +26 -0
  3. lib/Ing/Services/ing-php/assets/cacert.pem +4036 -0
  4. lib/Ing/Services/ing-php/composer.json +46 -0
  5. lib/Ing/Services/ing-php/composer.lock +2037 -0
  6. lib/Ing/Services/ing-php/phpunit.xml.dist +29 -0
  7. lib/Ing/Services/ing-php/src/Client.php +544 -0
  8. lib/Ing/Services/ing-php/src/Client/ClientException.php +7 -0
  9. lib/Ing/Services/ing-php/src/Client/OrderNotFoundException.php +7 -0
  10. lib/Ing/Services/ing-php/src/Common/ArrayFunctions.php +29 -0
  11. lib/Ing/Services/ing-php/src/Common/ChoiceBasedValueObject.php +25 -0
  12. lib/Ing/Services/ing-php/src/Common/ISO3166.php +25 -0
  13. lib/Ing/Services/ing-php/src/Common/StringBasedValueObject.php +46 -0
  14. lib/Ing/Services/ing-php/src/Currency.php +23 -0
  15. lib/Ing/Services/ing-php/src/Fallback.php +32 -0
  16. lib/Ing/Services/ing-php/src/Ginger.php +108 -0
  17. lib/Ing/Services/ing-php/src/Iban.php +25 -0
  18. lib/Ing/Services/ing-php/src/Ideal/Issuer.php +91 -0
  19. lib/Ing/Services/ing-php/src/Ideal/Issuer/ListType.php +21 -0
  20. lib/Ing/Services/ing-php/src/Ideal/Issuer/Name.php +21 -0
  21. lib/Ing/Services/ing-php/src/Ideal/Issuers.php +95 -0
  22. lib/Ing/Services/ing-php/src/Order.php +828 -0
  23. lib/Ing/Services/ing-php/src/Order/Amount.php +40 -0
  24. lib/Ing/Services/ing-php/src/Order/Customer.php +243 -0
  25. lib/Ing/Services/ing-php/src/Order/Customer/Address.php +18 -0
  26. lib/Ing/Services/ing-php/src/Order/Customer/AddressType.php +53 -0
  27. lib/Ing/Services/ing-php/src/Order/Customer/Country.php +25 -0
  28. lib/Ing/Services/ing-php/src/Order/Customer/EmailAddress.php +23 -0
  29. lib/Ing/Services/ing-php/src/Order/Customer/FirstName.php +18 -0
  30. lib/Ing/Services/ing-php/src/Order/Customer/Housenumber.php +18 -0
  31. lib/Ing/Services/ing-php/src/Order/Customer/LastName.php +18 -0
  32. lib/Ing/Services/ing-php/src/Order/Customer/Locale.php +23 -0
  33. lib/Ing/Services/ing-php/src/Order/Customer/MerchantCustomerId.php +18 -0
  34. lib/Ing/Services/ing-php/src/Order/Customer/PhoneNumber.php +18 -0
  35. lib/Ing/Services/ing-php/src/Order/Customer/PhoneNumbers.php +95 -0
  36. lib/Ing/Services/ing-php/src/Order/Customer/PostalCode.php +18 -0
  37. lib/Ing/Services/ing-php/src/Order/Description.php +21 -0
  38. lib/Ing/Services/ing-php/src/Order/Extra.php +44 -0
  39. lib/Ing/Services/ing-php/src/Order/MerchantOrderId.php +21 -0
  40. lib/Ing/Services/ing-php/src/Order/Status.php +93 -0
  41. lib/Ing/Services/ing-php/src/Order/Transaction.php +425 -0
  42. lib/Ing/Services/ing-php/src/Order/Transaction/Amount.php +40 -0
  43. lib/Ing/Services/ing-php/src/Order/Transaction/Balance.php +53 -0
  44. lib/Ing/Services/ing-php/src/Order/Transaction/Description.php +21 -0
  45. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethod.php +83 -0
  46. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails.php +17 -0
  47. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails.php +90 -0
  48. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails/SetupToken.php +18 -0
  49. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails/VaultToken.php +18 -0
  50. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/CashOnDeliveryPaymentMethodDetails.php +109 -0
  51. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/ConsumerName.php +18 -0
  52. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/CreditCardPaymentMethodDetails.php +25 -0
  53. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails.php +213 -0
  54. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/ConsumerAddress.php +18 -0
  55. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/ConsumerCity.php +18 -0
  56. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/ConsumerCountry.php +25 -0
  57. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/Status.php +21 -0
  58. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/TransactionId.php +21 -0
  59. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/PaymentMethodDetailsFactory.php +37 -0
  60. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/SepaPaymentMethodDetails.php +173 -0
  61. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/SofortPaymentMethodDetails.php +109 -0
  62. lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/SofortPaymentMethodDetails/TransactionId.php +21 -0
  63. lib/Ing/Services/ing-php/src/Order/Transaction/Reason.php +21 -0
  64. lib/Ing/Services/ing-php/src/Order/Transaction/Reference.php +21 -0
  65. lib/Ing/Services/ing-php/src/Order/Transaction/Status.php +93 -0
  66. lib/Ing/Services/ing-php/src/Order/Transactions.php +105 -0
  67. lib/Ing/Services/ing-php/src/SwiftBic.php +25 -0
  68. lib/Ing/Services/ing-php/src/Url.php +21 -0
  69. lib/Ing/Services/ing-php/tests/ClientTest.php +568 -0
  70. lib/Ing/Services/ing-php/tests/Common/ArrayFunctionsTest.php +43 -0
  71. lib/Ing/Services/ing-php/tests/Common/ChoiceBasedValueObjectTest.php +31 -0
  72. lib/Ing/Services/ing-php/tests/Common/ISO3166Test.php +17 -0
  73. lib/Ing/Services/ing-php/tests/Common/StringBasedValueObjectTest.php +45 -0
  74. lib/Ing/Services/ing-php/tests/CurrencyTest.php +28 -0
  75. lib/Ing/Services/ing-php/tests/FallbackTest.php +14 -0
  76. lib/Ing/Services/ing-php/tests/GingerTest.php +58 -0
  77. lib/Ing/Services/ing-php/tests/IbanTest.php +28 -0
  78. lib/Ing/Services/ing-php/tests/Ideal/Issuer/ListTypeTest.php +28 -0
  79. lib/Ing/Services/ing-php/tests/Ideal/Issuer/NameTest.php +28 -0
  80. lib/Ing/Services/ing-php/tests/Ideal/IssuerTest.php +75 -0
  81. lib/Ing/Services/ing-php/tests/Ideal/IssuersTest.php +86 -0
  82. lib/Ing/Services/ing-php/tests/Mock/FakeChoiceBasedValueObject.php +20 -0
  83. lib/Ing/Services/ing-php/tests/Mock/FakeStringBasedValueObject.php +10 -0
  84. lib/Ing/Services/ing-php/tests/Order/AmountTest.php +36 -0
  85. lib/Ing/Services/ing-php/tests/Order/Customer/AddressTest.php +27 -0
  86. lib/Ing/Services/ing-php/tests/Order/Customer/AddressTypeTest.php +47 -0
  87. lib/Ing/Services/ing-php/tests/Order/Customer/CountryTest.php +36 -0
  88. lib/Ing/Services/ing-php/tests/Order/Customer/EmailAddressTest.php +36 -0
  89. lib/Ing/Services/ing-php/tests/Order/Customer/FirstNameTest.php +27 -0
  90. lib/Ing/Services/ing-php/tests/Order/Customer/HouseNumberTest.php +27 -0
  91. lib/Ing/Services/ing-php/tests/Order/Customer/LastNameTest.php +27 -0
  92. lib/Ing/Services/ing-php/tests/Order/Customer/LocaleTest.php +47 -0
  93. lib/Ing/Services/ing-php/tests/Order/Customer/MerchantCustomerIdTest.php +27 -0
  94. lib/Ing/Services/ing-php/tests/Order/Customer/PhoneNumberTest.php +27 -0
  95. lib/Ing/Services/ing-php/tests/Order/Customer/PhoneNumbersTest.php +75 -0
  96. lib/Ing/Services/ing-php/tests/Order/Customer/PostalCodeTest.php +27 -0
  97. lib/Ing/Services/ing-php/tests/Order/CustomerTest.php +90 -0
  98. lib/Ing/Services/ing-php/tests/Order/DescriptionTest.php +28 -0
  99. lib/Ing/Services/ing-php/tests/Order/ExtraTest.php +34 -0
  100. lib/Ing/Services/ing-php/tests/Order/MerchantOrderIdTest.php +28 -0
  101. lib/Ing/Services/ing-php/tests/Order/StatusTest.php +120 -0
  102. lib/Ing/Services/ing-php/tests/Order/Transaction/AmountTest.php +36 -0
  103. lib/Ing/Services/ing-php/tests/Order/Transaction/BalanceTest.php +44 -0
  104. lib/Ing/Services/ing-php/tests/Order/Transaction/DescriptionTest.php +28 -0
  105. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails/SetupTokenTest.php +27 -0
  106. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails/VaultTokenTest.php +27 -0
  107. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/ConsumerNameTest.php +19 -0
  108. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/CreditCardPaymentMethodDetailsTest.php +30 -0
  109. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/ConsumerCityTest.php +19 -0
  110. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/StatusTest.php +28 -0
  111. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/TransactionIdTest.php +28 -0
  112. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetailsTest.php +88 -0
  113. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/PaymentMethodDetailsFactoryTest.php +81 -0
  114. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/SepaPaymentMethodDetailsTest.php +38 -0
  115. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/SofortPaymentMethodDetails/TransactionIdTest.php +28 -0
  116. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/SofortPaymentMethodDetailsTest.php +64 -0
  117. lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodTest.php +44 -0
  118. lib/Ing/Services/ing-php/tests/Order/Transaction/ReasonTest.php +28 -0
  119. lib/Ing/Services/ing-php/tests/Order/Transaction/ReferenceTest.php +28 -0
  120. lib/Ing/Services/ing-php/tests/Order/Transaction/StatusTest.php +120 -0
  121. lib/Ing/Services/ing-php/tests/Order/TransactionTest.php +115 -0
  122. lib/Ing/Services/ing-php/tests/Order/TransactionsTest.php +95 -0
  123. lib/Ing/Services/ing-php/tests/OrderTest.php +453 -0
  124. lib/Ing/Services/ing-php/tests/SwiftBicTest.php +28 -0
  125. lib/Ing/Services/ing-php/tests/UrlTest.php +28 -0
  126. lib/Ing/Services/ing-php/vendor/alcohol/iso3166/ISO3166.php +1878 -0
  127. lib/Ing/Services/ing-php/vendor/alcohol/iso3166/ISO3166Test.php +201 -0
  128. lib/Ing/Services/ing-php/vendor/alcohol/iso3166/LICENSE +19 -0
  129. lib/Ing/Services/ing-php/vendor/alcohol/iso3166/composer.json +37 -0
  130. lib/Ing/Services/ing-php/vendor/alcohol/iso3166/phpunit.xml.dist +22 -0
  131. lib/Ing/Services/ing-php/vendor/autoload.php +7 -0
  132. lib/Ing/Services/ing-php/vendor/beberlei/assert/.php_cs +17 -0
  133. lib/Ing/Services/ing-php/vendor/beberlei/assert/composer.json +43 -0
  134. lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/Assertion.php +2184 -0
  135. lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/AssertionChain.php +196 -0
  136. lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/AssertionFailedException.php +21 -0
  137. lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/InvalidArgumentException.php +64 -0
  138. lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/LazyAssertion.php +138 -0
  139. lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php +50 -0
  140. lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/functions.php +85 -0
  141. lib/Ing/Services/ing-php/vendor/bin/phpcbf +23 -0
  142. lib/Ing/Services/ing-php/vendor/bin/phpcs +25 -0
  143. lib/Ing/Services/ing-php/vendor/bin/phpunit +47 -0
  144. lib/Ing/Services/ing-php/vendor/bin/uuid +57 -0
  145. lib/Ing/Services/ing-php/vendor/composer/ClassLoader.php +415 -0
  146. lib/Ing/Services/ing-php/vendor/composer/LICENSE +21 -0
  147. lib/Ing/Services/ing-php/vendor/composer/autoload_classmap.php +763 -0
  148. lib/Ing/Services/ing-php/vendor/composer/autoload_files.php +15 -0
  149. lib/Ing/Services/ing-php/vendor/composer/autoload_namespaces.php +14 -0
  150. lib/Ing/Services/ing-php/vendor/composer/autoload_psr4.php +24 -0
  151. lib/Ing/Services/ing-php/vendor/composer/autoload_real.php +70 -0
  152. lib/Ing/Services/ing-php/vendor/composer/autoload_static.php +930 -0
  153. lib/Ing/Services/ing-php/vendor/composer/installed.json +1996 -0
lib/Ing/Services/ing-php/LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Ginger Payments
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
lib/Ing/Services/ing-php/README.md ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Requirements
2
+
3
+ * PHP 5.4 or later.
4
+
5
+ ## Installation
6
+
7
+ ```php
8
+ include_once 'ing-php/vendor/autoload.php';
9
+ ```
10
+
11
+ ## Getting started
12
+
13
+ First create a new API client with your API key and ING product:
14
+
15
+ ```php
16
+ use \GingerPayments\Payment\Ginger;
17
+
18
+ $client = Ginger::createClient('ing-api-key', 'ing_product');
19
+ ```
20
+
21
+ ## Main differences with ginger-php
22
+ ...
23
+
24
+
25
+ ## Full documentation
26
+ https://github.com/gingerpayments/ginger-php
lib/Ing/Services/ing-php/assets/cacert.pem ADDED
@@ -0,0 +1,4036 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ##
2
+ ## Bundle of CA Root Certificates
3
+ ##
4
+ ## Certificate data from Mozilla as of: Wed Sep 14 03:12:05 2016
5
+ ##
6
+ ## This is a bundle of X.509 certificates of public Certificate Authorities
7
+ ## (CA). These were automatically extracted from Mozilla's root certificates
8
+ ## file (certdata.txt). This file can be found in the mozilla source tree:
9
+ ## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
10
+ ##
11
+ ## It contains the certificates in PEM format and therefore
12
+ ## can be directly used with curl / libcurl / php_curl, or with
13
+ ## an Apache+mod_ssl webserver for SSL client authentication.
14
+ ## Just configure this file as the SSLCACertificateFile.
15
+ ##
16
+ ## Conversion done with mk-ca-bundle.pl version 1.26.
17
+ ## SHA256: 01bbf1ecdd693f554ff4dcbe15880b3e6c33188a956c15ff845d313ca69cfeb8
18
+ ##
19
+
20
+
21
+ GlobalSign Root CA
22
+ ==================
23
+ -----BEGIN CERTIFICATE-----
24
+ MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
25
+ GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
26
+ b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
27
+ BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
28
+ VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
29
+ DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
30
+ THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
31
+ Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
32
+ c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
33
+ gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
34
+ HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
35
+ AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
36
+ Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
37
+ j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
38
+ hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
39
+ X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
40
+ -----END CERTIFICATE-----
41
+
42
+ GlobalSign Root CA - R2
43
+ =======================
44
+ -----BEGIN CERTIFICATE-----
45
+ MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
46
+ YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
47
+ bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
48
+ aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
49
+ bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
50
+ ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
51
+ s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
52
+ S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
53
+ TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
54
+ ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
55
+ FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
56
+ YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
57
+ BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
58
+ 9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
59
+ 01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
60
+ 9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
61
+ TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
62
+ -----END CERTIFICATE-----
63
+
64
+ Verisign Class 3 Public Primary Certification Authority - G3
65
+ ============================================================
66
+ -----BEGIN CERTIFICATE-----
67
+ MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
68
+ UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
69
+ cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
70
+ IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
71
+ dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
72
+ CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
73
+ dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
74
+ cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
75
+ Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
76
+ ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
77
+ EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
78
+ cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
79
+ EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
80
+ 055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
81
+ ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
82
+ j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
83
+ /Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
84
+ xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
85
+ t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
86
+ -----END CERTIFICATE-----
87
+
88
+ Entrust.net Premium 2048 Secure Server CA
89
+ =========================================
90
+ -----BEGIN CERTIFICATE-----
91
+ MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
92
+ ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
93
+ bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
94
+ BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
95
+ NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
96
+ d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
97
+ MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
98
+ ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
99
+ MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
100
+ Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
101
+ hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
102
+ nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
103
+ VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
104
+ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
105
+ KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
106
+ T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
107
+ zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
108
+ J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
109
+ nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
110
+ -----END CERTIFICATE-----
111
+
112
+ Baltimore CyberTrust Root
113
+ =========================
114
+ -----BEGIN CERTIFICATE-----
115
+ MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
116
+ ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
117
+ ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
118
+ SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
119
+ dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
120
+ uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
121
+ UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
122
+ G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
123
+ XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
124
+ l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
125
+ VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
126
+ BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
127
+ cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
128
+ hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
129
+ Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
130
+ RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
131
+ -----END CERTIFICATE-----
132
+
133
+ AddTrust Low-Value Services Root
134
+ ================================
135
+ -----BEGIN CERTIFICATE-----
136
+ MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
137
+ QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
138
+ cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
139
+ CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
140
+ ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
141
+ AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
142
+ 54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
143
+ oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
144
+ Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
145
+ GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
146
+ HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
147
+ AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
148
+ RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
149
+ HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
150
+ ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
151
+ iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
152
+ eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
153
+ mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
154
+ ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
155
+ -----END CERTIFICATE-----
156
+
157
+ AddTrust External Root
158
+ ======================
159
+ -----BEGIN CERTIFICATE-----
160
+ MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
161
+ QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
162
+ VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
163
+ NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
164
+ cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
165
+ Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
166
+ +iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
167
+ Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
168
+ aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
169
+ 2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
170
+ 7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
171
+ BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
172
+ VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
173
+ VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
174
+ IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
175
+ j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
176
+ 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
177
+ e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
178
+ G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
179
+ -----END CERTIFICATE-----
180
+
181
+ AddTrust Public Services Root
182
+ =============================
183
+ -----BEGIN CERTIFICATE-----
184
+ MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
185
+ QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
186
+ cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
187
+ BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
188
+ dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
189
+ AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
190
+ nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
191
+ d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
192
+ Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
193
+ HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
194
+ A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
195
+ /zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
196
+ FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
197
+ A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
198
+ JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
199
+ +YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
200
+ GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
201
+ Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
202
+ EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
203
+ -----END CERTIFICATE-----
204
+
205
+ AddTrust Qualified Certificates Root
206
+ ====================================
207
+ -----BEGIN CERTIFICATE-----
208
+ MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
209
+ QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
210
+ cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
211
+ CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
212
+ IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
213
+ 9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
214
+ 64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
215
+ KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
216
+ L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
217
+ wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
218
+ MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
219
+ BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
220
+ BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
221
+ azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
222
+ ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
223
+ GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
224
+ dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
225
+ RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
226
+ iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
227
+ -----END CERTIFICATE-----
228
+
229
+ Entrust Root Certification Authority
230
+ ====================================
231
+ -----BEGIN CERTIFICATE-----
232
+ MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
233
+ BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
234
+ b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
235
+ A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
236
+ MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
237
+ MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
238
+ Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
239
+ dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
240
+ ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
241
+ A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
242
+ Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
243
+ j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
244
+ rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
245
+ DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
246
+ MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
247
+ hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
248
+ A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
249
+ Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
250
+ v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
251
+ W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
252
+ tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
253
+ -----END CERTIFICATE-----
254
+
255
+ RSA Security 2048 v3
256
+ ====================
257
+ -----BEGIN CERTIFICATE-----
258
+ MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
259
+ ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
260
+ MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
261
+ BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
262
+ AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
263
+ Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
264
+ WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
265
+ KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
266
+ +Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
267
+ MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
268
+ FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
269
+ v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
270
+ 0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
271
+ VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
272
+ nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
273
+ pKnXwiJPZ9d37CAFYd4=
274
+ -----END CERTIFICATE-----
275
+
276
+ GeoTrust Global CA
277
+ ==================
278
+ -----BEGIN CERTIFICATE-----
279
+ MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
280
+ Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
281
+ MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
282
+ LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
283
+ CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
284
+ BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
285
+ 8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
286
+ T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
287
+ vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
288
+ AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
289
+ DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
290
+ zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
291
+ d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
292
+ mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
293
+ XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
294
+ Mw==
295
+ -----END CERTIFICATE-----
296
+
297
+ GeoTrust Global CA 2
298
+ ====================
299
+ -----BEGIN CERTIFICATE-----
300
+ MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
301
+ R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
302
+ MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
303
+ LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
304
+ ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
305
+ NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
306
+ LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
307
+ Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
308
+ HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
309
+ MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
310
+ K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
311
+ srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
312
+ ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
313
+ OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
314
+ x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
315
+ H4z1Ir+rzoPz4iIprn2DQKi6bA==
316
+ -----END CERTIFICATE-----
317
+
318
+ GeoTrust Universal CA
319
+ =====================
320
+ -----BEGIN CERTIFICATE-----
321
+ MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
322
+ R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
323
+ MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
324
+ Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
325
+ ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
326
+ JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
327
+ RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
328
+ 7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
329
+ 8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
330
+ qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
331
+ Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
332
+ Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
333
+ KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
334
+ ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
335
+ XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
336
+ hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
337
+ aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
338
+ qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
339
+ oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
340
+ xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
341
+ KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
342
+ DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
343
+ xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
344
+ p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
345
+ P/rmMuGNG2+k5o7Y+SlIis5z/iw=
346
+ -----END CERTIFICATE-----
347
+
348
+ GeoTrust Universal CA 2
349
+ =======================
350
+ -----BEGIN CERTIFICATE-----
351
+ MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
352
+ R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
353
+ MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
354
+ SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
355
+ A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
356
+ DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
357
+ j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
358
+ JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
359
+ QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
360
+ WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
361
+ 20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
362
+ ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
363
+ SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
364
+ 8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
365
+ +/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
366
+ BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
367
+ dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
368
+ 4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
369
+ mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
370
+ A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
371
+ Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
372
+ pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
373
+ FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
374
+ gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
375
+ X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
376
+ -----END CERTIFICATE-----
377
+
378
+ Visa eCommerce Root
379
+ ===================
380
+ -----BEGIN CERTIFICATE-----
381
+ MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
382
+ EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
383
+ QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
384
+ WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
385
+ VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
386
+ bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
387
+ F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
388
+ RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
389
+ TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
390
+ /k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
391
+ GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
392
+ MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
393
+ CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
394
+ YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
395
+ zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
396
+ YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
397
+ 398znM/jra6O1I7mT1GvFpLgXPYHDw==
398
+ -----END CERTIFICATE-----
399
+
400
+ Certum Root CA
401
+ ==============
402
+ -----BEGIN CERTIFICATE-----
403
+ MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
404
+ ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
405
+ Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
406
+ by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
407
+ wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
408
+ kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
409
+ 89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
410
+ Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
411
+ NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
412
+ hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
413
+ GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
414
+ GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
415
+ 0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
416
+ qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
417
+ -----END CERTIFICATE-----
418
+
419
+ Comodo AAA Services root
420
+ ========================
421
+ -----BEGIN CERTIFICATE-----
422
+ MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
423
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
424
+ TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
425
+ MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
426
+ c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
427
+ BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
428
+ ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
429
+ C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
430
+ i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
431
+ Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
432
+ Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
433
+ Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
434
+ BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
435
+ cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
436
+ LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
437
+ 7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
438
+ Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
439
+ 8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
440
+ 12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
441
+ -----END CERTIFICATE-----
442
+
443
+ Comodo Secure Services root
444
+ ===========================
445
+ -----BEGIN CERTIFICATE-----
446
+ MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
447
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
448
+ TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
449
+ MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
450
+ Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
451
+ BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
452
+ ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
453
+ 9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
454
+ rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
455
+ oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
456
+ p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
457
+ FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
458
+ gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
459
+ YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
460
+ aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
461
+ 4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
462
+ Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
463
+ DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
464
+ pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
465
+ RR3B7Hzs/Sk=
466
+ -----END CERTIFICATE-----
467
+
468
+ Comodo Trusted Services root
469
+ ============================
470
+ -----BEGIN CERTIFICATE-----
471
+ MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
472
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
473
+ TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
474
+ MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
475
+ bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
476
+ IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
477
+ AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
478
+ 3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
479
+ /9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
480
+ juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
481
+ ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
482
+ DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
483
+ /zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
484
+ ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
485
+ cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
486
+ uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
487
+ pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
488
+ BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
489
+ R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
490
+ 9y5Xt5hwXsjEeLBi
491
+ -----END CERTIFICATE-----
492
+
493
+ QuoVadis Root CA
494
+ ================
495
+ -----BEGIN CERTIFICATE-----
496
+ MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
497
+ ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
498
+ eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
499
+ MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
500
+ cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
501
+ EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
502
+ AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
503
+ J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
504
+ F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
505
+ YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
506
+ AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
507
+ PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
508
+ ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
509
+ MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
510
+ YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
511
+ ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
512
+ Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
513
+ Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
514
+ BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
515
+ FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
516
+ aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
517
+ tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
518
+ fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
519
+ LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
520
+ gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
521
+ 5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
522
+ 5nrQNiOKSnQ2+Q==
523
+ -----END CERTIFICATE-----
524
+
525
+ QuoVadis Root CA 2
526
+ ==================
527
+ -----BEGIN CERTIFICATE-----
528
+ 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
554
+ -----END CERTIFICATE-----
555
+
556
+ QuoVadis Root CA 3
557
+ ==================
558
+ -----BEGIN CERTIFICATE-----
559
+ MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
560
+ EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
561
+ OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
562
+ aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
563
+ DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
564
+ DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
565
+ KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
566
+ DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
567
+ BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
568
+ p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
569
+ nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
570
+ MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
571
+ Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
572
+ uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
573
+ BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
574
+ YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
575
+ aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
576
+ BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
577
+ VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
578
+ ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
579
+ AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
580
+ qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
581
+ hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
582
+ POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
583
+ Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
584
+ 8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
585
+ bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
586
+ g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
587
+ vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
588
+ qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
589
+ -----END CERTIFICATE-----
590
+
591
+ Security Communication Root CA
592
+ ==============================
593
+ -----BEGIN CERTIFICATE-----
594
+ MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
595
+ U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
596
+ HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
597
+ U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
598
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
599
+ 8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
600
+ DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
601
+ 5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
602
+ DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
603
+ JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
604
+ DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
605
+ 0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
606
+ mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
607
+ s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
608
+ 6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
609
+ FL39vmwLAw==
610
+ -----END CERTIFICATE-----
611
+
612
+ Sonera Class 2 Root CA
613
+ ======================
614
+ -----BEGIN CERTIFICATE-----
615
+ MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
616
+ U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
617
+ NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
618
+ IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
619
+ /Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
620
+ dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
621
+ f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
622
+ tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
623
+ nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
624
+ XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
625
+ 0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
626
+ cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
627
+ Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
628
+ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
629
+ llpwrN9M
630
+ -----END CERTIFICATE-----
631
+
632
+ UTN USERFirst Hardware Root CA
633
+ ==============================
634
+ -----BEGIN CERTIFICATE-----
635
+ MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
636
+ BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
637
+ IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
638
+ BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
639
+ OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
640
+ eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
641
+ ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
642
+ DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
643
+ wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
644
+ tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
645
+ i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
646
+ Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
647
+ gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
648
+ lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
649
+ UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
650
+ BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
651
+ //bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
652
+ XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
653
+ lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
654
+ iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
655
+ nfhmqA==
656
+ -----END CERTIFICATE-----
657
+
658
+ Camerfirma Chambers of Commerce Root
659
+ ====================================
660
+ -----BEGIN CERTIFICATE-----
661
+ MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
662
+ QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
663
+ ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
664
+ NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
665
+ cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
666
+ MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
667
+ AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
668
+ xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
669
+ NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
670
+ DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
671
+ d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
672
+ EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
673
+ cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
674
+ AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
675
+ bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
676
+ VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
677
+ aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
678
+ fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
679
+ L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
680
+ UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
681
+ ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
682
+ erfutGWaIZDgqtCYvDi1czyL+Nw=
683
+ -----END CERTIFICATE-----
684
+
685
+ Camerfirma Global Chambersign Root
686
+ ==================================
687
+ -----BEGIN CERTIFICATE-----
688
+ MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
689
+ QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
690
+ ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
691
+ NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
692
+ YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
693
+ MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
694
+ ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
695
+ 1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
696
+ by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
697
+ 6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
698
+ 8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
699
+ BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
700
+ aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
701
+ Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
702
+ aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
703
+ ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
704
+ bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
705
+ PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
706
+ gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
707
+ PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
708
+ IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
709
+ t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
710
+ -----END CERTIFICATE-----
711
+
712
+ XRamp Global CA Root
713
+ ====================
714
+ -----BEGIN CERTIFICATE-----
715
+ MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
716
+ BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
717
+ dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
718
+ dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
719
+ HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
720
+ U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
721
+ dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
722
+ IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
723
+ foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
724
+ zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
725
+ AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
726
+ xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
727
+ EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
728
+ oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
729
+ AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
730
+ /Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
731
+ qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
732
+ nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
733
+ 8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
734
+ -----END CERTIFICATE-----
735
+
736
+ Go Daddy Class 2 CA
737
+ ===================
738
+ -----BEGIN CERTIFICATE-----
739
+ MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
740
+ VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
741
+ ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
742
+ A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
743
+ RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
744
+ ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
745
+ 2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
746
+ qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
747
+ YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
748
+ vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
749
+ BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
750
+ atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
751
+ MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
752
+ A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
753
+ PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
754
+ I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
755
+ HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
756
+ Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
757
+ vZ8=
758
+ -----END CERTIFICATE-----
759
+
760
+ Starfield Class 2 CA
761
+ ====================
762
+ -----BEGIN CERTIFICATE-----
763
+ MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
764
+ U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
765
+ Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
766
+ MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
767
+ A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
768
+ SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
769
+ bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
770
+ JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
771
+ epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
772
+ F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
773
+ MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
774
+ hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
775
+ bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
776
+ QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
777
+ afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
778
+ PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
779
+ xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
780
+ KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
781
+ QBFGmh95DmK/D5fs4C8fF5Q=
782
+ -----END CERTIFICATE-----
783
+
784
+ StartCom Certification Authority
785
+ ================================
786
+ -----BEGIN CERTIFICATE-----
787
+ MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
788
+ U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
789
+ ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
790
+ NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
791
+ LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
792
+ U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
793
+ ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
794
+ o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
795
+ Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
796
+ eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
797
+ 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
798
+ 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
799
+ osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
800
+ untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
801
+ UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
802
+ 37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
803
+ FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
804
+ Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
805
+ YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
806
+ AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
807
+ Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
808
+ U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
809
+ LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
810
+ cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
811
+ cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
812
+ dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
813
+ AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
814
+ 3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
815
+ vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
816
+ fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
817
+ fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
818
+ EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
819
+ yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
820
+ 1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
821
+ lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
822
+ g14=
823
+ -----END CERTIFICATE-----
824
+
825
+ Taiwan GRCA
826
+ ===========
827
+ -----BEGIN CERTIFICATE-----
828
+ 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
853
+ -----END CERTIFICATE-----
854
+
855
+ Swisscom Root CA 1
856
+ ==================
857
+ -----BEGIN CERTIFICATE-----
858
+ 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
884
+ NY6E0F/6MBr1mmz0DlP5OlvRHA==
885
+ -----END CERTIFICATE-----
886
+
887
+ DigiCert Assured ID Root CA
888
+ ===========================
889
+ -----BEGIN CERTIFICATE-----
890
+ MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
891
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
892
+ IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
893
+ MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
894
+ ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
895
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
896
+ 9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
897
+ UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
898
+ /lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
899
+ oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
900
+ GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
901
+ 66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
902
+ hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
903
+ EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
904
+ SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
905
+ 8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
906
+ +o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
907
+ -----END CERTIFICATE-----
908
+
909
+ DigiCert Global Root CA
910
+ =======================
911
+ -----BEGIN CERTIFICATE-----
912
+ MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
913
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
914
+ HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
915
+ MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
916
+ dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
917
+ hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
918
+ TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
919
+ BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
920
+ 4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
921
+ 7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
922
+ o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
923
+ 8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
924
+ BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
925
+ EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
926
+ tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
927
+ UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
928
+ CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
929
+ -----END CERTIFICATE-----
930
+
931
+ DigiCert High Assurance EV Root CA
932
+ ==================================
933
+ -----BEGIN CERTIFICATE-----
934
+ MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
935
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
936
+ KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
937
+ MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
938
+ MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
939
+ Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
940
+ Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
941
+ OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
942
+ MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
943
+ NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
944
+ h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
945
+ Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
946
+ JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
947
+ V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
948
+ myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
949
+ mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
950
+ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
951
+ -----END CERTIFICATE-----
952
+
953
+ Certplus Class 2 Primary CA
954
+ ===========================
955
+ -----BEGIN CERTIFICATE-----
956
+ MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
957
+ BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
958
+ OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
959
+ dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
960
+ ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
961
+ 5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
962
+ Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
963
+ YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
964
+ e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
965
+ CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
966
+ YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
967
+ L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
968
+ P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
969
+ TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
970
+ 7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
971
+ //1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
972
+ l7+ijrRU
973
+ -----END CERTIFICATE-----
974
+
975
+ DST Root CA X3
976
+ ==============
977
+ -----BEGIN CERTIFICATE-----
978
+ MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
979
+ ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
980
+ DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
981
+ cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
982
+ ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
983
+ rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
984
+ UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
985
+ xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
986
+ utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
987
+ AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
988
+ MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
989
+ dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
990
+ GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
991
+ RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
992
+ fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
993
+ -----END CERTIFICATE-----
994
+
995
+ DST ACES CA X6
996
+ ==============
997
+ -----BEGIN CERTIFICATE-----
998
+ MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
999
+ EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
1000
+ MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
1001
+ MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
1002
+ CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
1003
+ AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
1004
+ DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
1005
+ pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
1006
+ GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
1007
+ MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
1008
+ EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
1009
+ Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
1010
+ dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
1011
+ CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
1012
+ 5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
1013
+ Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
1014
+ nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
1015
+ vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
1016
+ oKfN5XozNmr6mis=
1017
+ -----END CERTIFICATE-----
1018
+
1019
+ SwissSign Gold CA - G2
1020
+ ======================
1021
+ -----BEGIN CERTIFICATE-----
1022
+ MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
1023
+ EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
1024
+ MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
1025
+ c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
1026
+ AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
1027
+ t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
1028
+ jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
1029
+ vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
1030
+ ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
1031
+ AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
1032
+ jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
1033
+ peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
1034
+ 7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
1035
+ GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
1036
+ AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
1037
+ OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
1038
+ L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
1039
+ 5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
1040
+ 44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
1041
+ Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
1042
+ Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
1043
+ mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
1044
+ vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
1045
+ KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
1046
+ NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
1047
+ viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
1048
+ -----END CERTIFICATE-----
1049
+
1050
+ SwissSign Silver CA - G2
1051
+ ========================
1052
+ -----BEGIN CERTIFICATE-----
1053
+ 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
1079
+ -----END CERTIFICATE-----
1080
+
1081
+ GeoTrust Primary Certification Authority
1082
+ ========================================
1083
+ -----BEGIN CERTIFICATE-----
1084
+ MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
1085
+ EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
1086
+ ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
1087
+ CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
1088
+ cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
1089
+ CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
1090
+ b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
1091
+ nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
1092
+ RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
1093
+ tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
1094
+ AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
1095
+ hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
1096
+ Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
1097
+ NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
1098
+ Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
1099
+ 1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
1100
+ -----END CERTIFICATE-----
1101
+
1102
+ thawte Primary Root CA
1103
+ ======================
1104
+ -----BEGIN CERTIFICATE-----
1105
+ MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
1106
+ BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
1107
+ aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
1108
+ cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
1109
+ MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
1110
+ SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
1111
+ KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
1112
+ FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
1113
+ oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
1114
+ 1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
1115
+ q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
1116
+ aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
1117
+ afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
1118
+ VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
1119
+ AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
1120
+ uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
1121
+ xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
1122
+ jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
1123
+ z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
1124
+ -----END CERTIFICATE-----
1125
+
1126
+ VeriSign Class 3 Public Primary Certification Authority - G5
1127
+ ============================================================
1128
+ -----BEGIN CERTIFICATE-----
1129
+ MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
1130
+ BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
1131
+ ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
1132
+ IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
1133
+ ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
1134
+ yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
1135
+ biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
1136
+ dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
1137
+ YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
1138
+ ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
1139
+ j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
1140
+ Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
1141
+ Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
1142
+ fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
1143
+ BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
1144
+ Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
1145
+ aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
1146
+ SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
1147
+ X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
1148
+ KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
1149
+ Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
1150
+ ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
1151
+ -----END CERTIFICATE-----
1152
+
1153
+ SecureTrust CA
1154
+ ==============
1155
+ -----BEGIN CERTIFICATE-----
1156
+ MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
1157
+ EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
1158
+ dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
1159
+ BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
1160
+ ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
1161
+ OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
1162
+ DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
1163
+ GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
1164
+ 01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
1165
+ ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
1166
+ BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
1167
+ aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
1168
+ KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
1169
+ SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
1170
+ mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
1171
+ nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
1172
+ 3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
1173
+ -----END CERTIFICATE-----
1174
+
1175
+ Secure Global CA
1176
+ ================
1177
+ -----BEGIN CERTIFICATE-----
1178
+ MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
1179
+ EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
1180
+ bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
1181
+ MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
1182
+ Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
1183
+ YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
1184
+ bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
1185
+ 8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
1186
+ HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
1187
+ 0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
1188
+ EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
1189
+ oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
1190
+ MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
1191
+ OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
1192
+ CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
1193
+ 3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
1194
+ f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
1195
+ -----END CERTIFICATE-----
1196
+
1197
+ COMODO Certification Authority
1198
+ ==============================
1199
+ -----BEGIN CERTIFICATE-----
1200
+ MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
1201
+ BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
1202
+ A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
1203
+ dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
1204
+ MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
1205
+ T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
1206
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
1207
+ +7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
1208
+ xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
1209
+ 4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
1210
+ 1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
1211
+ rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
1212
+ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
1213
+ b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
1214
+ AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
1215
+ OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
1216
+ RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
1217
+ IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
1218
+ +8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
1219
+ -----END CERTIFICATE-----
1220
+
1221
+ Network Solutions Certificate Authority
1222
+ =======================================
1223
+ -----BEGIN CERTIFICATE-----
1224
+ MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
1225
+ EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
1226
+ IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
1227
+ MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
1228
+ MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
1229
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
1230
+ jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
1231
+ aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
1232
+ crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
1233
+ /Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
1234
+ AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
1235
+ BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
1236
+ bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
1237
+ A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
1238
+ 4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
1239
+ GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
1240
+ wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
1241
+ ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
1242
+ -----END CERTIFICATE-----
1243
+
1244
+ WellsSecure Public Root Certificate Authority
1245
+ =============================================
1246
+ -----BEGIN CERTIFICATE-----
1247
+ MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
1248
+ F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
1249
+ NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
1250
+ MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
1251
+ bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
1252
+ VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
1253
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
1254
+ iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
1255
+ i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
1256
+ bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
1257
+ K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
1258
+ AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
1259
+ cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
1260
+ lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
1261
+ i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
1262
+ GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
1263
+ Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
1264
+ K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
1265
+ bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
1266
+ qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
1267
+ E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
1268
+ tylv2G0xffX8oRAHh84vWdw+WNs=
1269
+ -----END CERTIFICATE-----
1270
+
1271
+ COMODO ECC Certification Authority
1272
+ ==================================
1273
+ -----BEGIN CERTIFICATE-----
1274
+ MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
1275
+ R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
1276
+ ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
1277
+ dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
1278
+ GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
1279
+ Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
1280
+ b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
1281
+ 4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
1282
+ wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
1283
+ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
1284
+ FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
1285
+ U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
1286
+ -----END CERTIFICATE-----
1287
+
1288
+ IGC/A
1289
+ =====
1290
+ -----BEGIN CERTIFICATE-----
1291
+ MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
1292
+ VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
1293
+ Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
1294
+ MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
1295
+ EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
1296
+ STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
1297
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
1298
+ TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
1299
+ So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
1300
+ HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
1301
+ frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
1302
+ tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
1303
+ egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
1304
+ iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
1305
+ q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
1306
+ MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
1307
+ Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
1308
+ lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
1309
+ 0mBWWg==
1310
+ -----END CERTIFICATE-----
1311
+
1312
+ Security Communication EV RootCA1
1313
+ =================================
1314
+ -----BEGIN CERTIFICATE-----
1315
+ MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
1316
+ U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
1317
+ dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
1318
+ BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
1319
+ Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
1320
+ AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
1321
+ /VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
1322
+ WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
1323
+ ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
1324
+ bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
1325
+ 9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
1326
+ SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
1327
+ iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
1328
+ Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
1329
+ mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
1330
+ T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
1331
+ -----END CERTIFICATE-----
1332
+
1333
+ OISTE WISeKey Global Root GA CA
1334
+ ===============================
1335
+ -----BEGIN CERTIFICATE-----
1336
+ MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
1337
+ BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
1338
+ A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
1339
+ bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
1340
+ VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
1341
+ IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
1342
+ IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
1343
+ Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
1344
+ Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
1345
+ d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
1346
+ /yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
1347
+ LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
1348
+ AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
1349
+ KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
1350
+ MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
1351
+ +vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
1352
+ hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
1353
+ okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
1354
+ -----END CERTIFICATE-----
1355
+
1356
+ Microsec e-Szigno Root CA
1357
+ =========================
1358
+ -----BEGIN CERTIFICATE-----
1359
+ MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
1360
+ BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
1361
+ EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
1362
+ MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
1363
+ dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
1364
+ GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
1365
+ AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
1366
+ d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
1367
+ oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
1368
+ QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
1369
+ PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
1370
+ MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
1371
+ IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
1372
+ VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
1373
+ LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
1374
+ dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
1375
+ AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
1376
+ 4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
1377
+ AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
1378
+ egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
1379
+ Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
1380
+ PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
1381
+ c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
1382
+ cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
1383
+ IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
1384
+ WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
1385
+ MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
1386
+ MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
1387
+ Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
1388
+ HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
1389
+ nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
1390
+ aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
1391
+ 86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
1392
+ yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
1393
+ S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
1394
+ -----END CERTIFICATE-----
1395
+
1396
+ Certigna
1397
+ ========
1398
+ -----BEGIN CERTIFICATE-----
1399
+ MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
1400
+ EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
1401
+ MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
1402
+ Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
1403
+ XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
1404
+ GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
1405
+ ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
1406
+ DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
1407
+ Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
1408
+ tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
1409
+ BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
1410
+ SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
1411
+ hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
1412
+ ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
1413
+ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
1414
+ 1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
1415
+ WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
1416
+ -----END CERTIFICATE-----
1417
+
1418
+ Deutsche Telekom Root CA 2
1419
+ ==========================
1420
+ -----BEGIN CERTIFICATE-----
1421
+ MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
1422
+ RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
1423
+ A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
1424
+ MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
1425
+ A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
1426
+ b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
1427
+ bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
1428
+ KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
1429
+ AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
1430
+ Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
1431
+ jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
1432
+ HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
1433
+ E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
1434
+ zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
1435
+ rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
1436
+ dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
1437
+ Cm26OWMohpLzGITY+9HPBVZkVw==
1438
+ -----END CERTIFICATE-----
1439
+
1440
+ Cybertrust Global Root
1441
+ ======================
1442
+ -----BEGIN CERTIFICATE-----
1443
+ MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
1444
+ ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
1445
+ MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
1446
+ ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
1447
+ +Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
1448
+ 0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
1449
+ AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
1450
+ 89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
1451
+ 8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
1452
+ BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
1453
+ MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
1454
+ A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
1455
+ lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
1456
+ 5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
1457
+ hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
1458
+ X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
1459
+ WL1WMRJOEcgh4LMRkWXbtKaIOM5V
1460
+ -----END CERTIFICATE-----
1461
+
1462
+ ePKI Root Certification Authority
1463
+ =================================
1464
+ -----BEGIN CERTIFICATE-----
1465
+ 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
1491
+ -----END CERTIFICATE-----
1492
+
1493
+ 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
1494
+ =============================================================================================================================
1495
+ -----BEGIN CERTIFICATE-----
1496
+ MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
1497
+ DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
1498
+ aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
1499
+ b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
1500
+ BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
1501
+ S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
1502
+ MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
1503
+ IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
1504
+ n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
1505
+ IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
1506
+ dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
1507
+ cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
1508
+ AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
1509
+ Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
1510
+ xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
1511
+ 6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
1512
+ hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
1513
+ BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
1514
+ MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
1515
+ N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
1516
+ y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
1517
+ LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
1518
+ dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
1519
+ -----END CERTIFICATE-----
1520
+
1521
+ Buypass Class 2 CA 1
1522
+ ====================
1523
+ -----BEGIN CERTIFICATE-----
1524
+ MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
1525
+ QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
1526
+ MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
1527
+ c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
1528
+ hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
1529
+ cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
1530
+ 0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
1531
+ 0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
1532
+ uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
1533
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
1534
+ AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
1535
+ 1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
1536
+ 7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
1537
+ fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
1538
+ wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
1539
+ -----END CERTIFICATE-----
1540
+
1541
+ EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
1542
+ ==========================================================================
1543
+ -----BEGIN CERTIFICATE-----
1544
+ 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
1571
+ -----END CERTIFICATE-----
1572
+
1573
+ certSIGN ROOT CA
1574
+ ================
1575
+ -----BEGIN CERTIFICATE-----
1576
+ MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
1577
+ VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
1578
+ Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
1579
+ CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
1580
+ JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
1581
+ rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
1582
+ ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
1583
+ 0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
1584
+ AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
1585
+ Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
1586
+ AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
1587
+ SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
1588
+ x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
1589
+ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
1590
+ TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
1591
+ -----END CERTIFICATE-----
1592
+
1593
+ CNNIC ROOT
1594
+ ==========
1595
+ -----BEGIN CERTIFICATE-----
1596
+ MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
1597
+ ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
1598
+ OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
1599
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
1600
+ o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
1601
+ VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
1602
+ VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
1603
+ czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
1604
+ y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
1605
+ wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
1606
+ lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
1607
+ Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
1608
+ O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
1609
+ BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
1610
+ G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
1611
+ mxE=
1612
+ -----END CERTIFICATE-----
1613
+
1614
+ ApplicationCA - Japanese Government
1615
+ ===================================
1616
+ -----BEGIN CERTIFICATE-----
1617
+ MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
1618
+ SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
1619
+ MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
1620
+ cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
1621
+ CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
1622
+ fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
1623
+ wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
1624
+ jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
1625
+ nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
1626
+ WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
1627
+ BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
1628
+ vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
1629
+ o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
1630
+ /DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
1631
+ io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
1632
+ dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
1633
+ rosot4LKGAfmt1t06SAZf7IbiVQ=
1634
+ -----END CERTIFICATE-----
1635
+
1636
+ GeoTrust Primary Certification Authority - G3
1637
+ =============================================
1638
+ -----BEGIN CERTIFICATE-----
1639
+ MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
1640
+ BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
1641
+ IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
1642
+ eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
1643
+ NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
1644
+ YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
1645
+ LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
1646
+ hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
1647
+ K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
1648
+ c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
1649
+ IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
1650
+ dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
1651
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
1652
+ 2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
1653
+ cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
1654
+ Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
1655
+ AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
1656
+ t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
1657
+ -----END CERTIFICATE-----
1658
+
1659
+ thawte Primary Root CA - G2
1660
+ ===========================
1661
+ -----BEGIN CERTIFICATE-----
1662
+ MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
1663
+ VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
1664
+ IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
1665
+ Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
1666
+ MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
1667
+ b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
1668
+ IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
1669
+ LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
1670
+ 8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
1671
+ mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
1672
+ G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
1673
+ rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
1674
+ -----END CERTIFICATE-----
1675
+
1676
+ thawte Primary Root CA - G3
1677
+ ===========================
1678
+ -----BEGIN CERTIFICATE-----
1679
+ MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
1680
+ BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
1681
+ aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
1682
+ cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
1683
+ ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
1684
+ d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
1685
+ VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
1686
+ A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
1687
+ MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
1688
+ P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
1689
+ +BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
1690
+ 7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
1691
+ vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
1692
+ BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
1693
+ KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
1694
+ A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
1695
+ t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
1696
+ 8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
1697
+ er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
1698
+ -----END CERTIFICATE-----
1699
+
1700
+ GeoTrust Primary Certification Authority - G2
1701
+ =============================================
1702
+ -----BEGIN CERTIFICATE-----
1703
+ MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
1704
+ VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
1705
+ Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
1706
+ ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
1707
+ OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
1708
+ MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
1709
+ b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
1710
+ BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
1711
+ KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
1712
+ VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
1713
+ EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
1714
+ ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
1715
+ npaqBA+K
1716
+ -----END CERTIFICATE-----
1717
+
1718
+ VeriSign Universal Root Certification Authority
1719
+ ===============================================
1720
+ -----BEGIN CERTIFICATE-----
1721
+ MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
1722
+ BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
1723
+ ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
1724
+ IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
1725
+ IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
1726
+ UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
1727
+ cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
1728
+ IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
1729
+ aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
1730
+ 1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
1731
+ MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
1732
+ 9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
1733
+ AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
1734
+ tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
1735
+ CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
1736
+ a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
1737
+ DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
1738
+ Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
1739
+ Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
1740
+ P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
1741
+ wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
1742
+ mJO37M2CYfE45k+XmCpajQ==
1743
+ -----END CERTIFICATE-----
1744
+
1745
+ VeriSign Class 3 Public Primary Certification Authority - G4
1746
+ ============================================================
1747
+ -----BEGIN CERTIFICATE-----
1748
+ MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
1749
+ VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
1750
+ b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
1751
+ ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
1752
+ YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
1753
+ MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
1754
+ cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
1755
+ b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
1756
+ IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
1757
+ Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
1758
+ rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
1759
+ /zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
1760
+ HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
1761
+ Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
1762
+ A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
1763
+ AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
1764
+ -----END CERTIFICATE-----
1765
+
1766
+ NetLock Arany (Class Gold) Főtanúsítvány
1767
+ ============================================
1768
+ -----BEGIN CERTIFICATE-----
1769
+ MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
1770
+ A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
1771
+ dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
1772
+ cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
1773
+ MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
1774
+ ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
1775
+ biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
1776
+ c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
1777
+ 0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
1778
+ /HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
1779
+ H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
1780
+ fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
1781
+ neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
1782
+ BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
1783
+ qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
1784
+ YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
1785
+ bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
1786
+ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
1787
+ dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
1788
+ -----END CERTIFICATE-----
1789
+
1790
+ Staat der Nederlanden Root CA - G2
1791
+ ==================================
1792
+ -----BEGIN CERTIFICATE-----
1793
+ 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
1819
+ 66+KAQ==
1820
+ -----END CERTIFICATE-----
1821
+
1822
+ Juur-SK
1823
+ =======
1824
+ -----BEGIN CERTIFICATE-----
1825
+ MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
1826
+ c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
1827
+ DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
1828
+ SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
1829
+ aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
1830
+ ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
1831
+ TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
1832
+ +Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
1833
+ UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
1834
+ Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
1835
+ MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
1836
+ HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
1837
+ AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
1838
+ cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
1839
+ AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
1840
+ cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
1841
+ FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
1842
+ A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
1843
+ ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
1844
+ abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
1845
+ IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
1846
+ Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
1847
+ yyqcjg==
1848
+ -----END CERTIFICATE-----
1849
+
1850
+ Hongkong Post Root CA 1
1851
+ =======================
1852
+ -----BEGIN CERTIFICATE-----
1853
+ MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
1854
+ DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
1855
+ NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
1856
+ IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
1857
+ AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
1858
+ ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
1859
+ auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
1860
+ qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
1861
+ V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
1862
+ HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
1863
+ h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
1864
+ l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
1865
+ IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
1866
+ T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
1867
+ c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
1868
+ -----END CERTIFICATE-----
1869
+
1870
+ SecureSign RootCA11
1871
+ ===================
1872
+ -----BEGIN CERTIFICATE-----
1873
+ MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
1874
+ SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
1875
+ b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
1876
+ KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
1877
+ cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
1878
+ TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
1879
+ wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
1880
+ g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
1881
+ O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
1882
+ bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
1883
+ t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
1884
+ OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
1885
+ bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
1886
+ Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
1887
+ y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
1888
+ lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
1889
+ -----END CERTIFICATE-----
1890
+
1891
+ ACEDICOM Root
1892
+ =============
1893
+ -----BEGIN CERTIFICATE-----
1894
+ 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
1920
+ -----END CERTIFICATE-----
1921
+
1922
+ Microsec e-Szigno Root CA 2009
1923
+ ==============================
1924
+ -----BEGIN CERTIFICATE-----
1925
+ MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
1926
+ MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
1927
+ c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
1928
+ dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
1929
+ BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
1930
+ U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
1931
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
1932
+ fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
1933
+ 0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
1934
+ pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
1935
+ 1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
1936
+ AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
1937
+ QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
1938
+ FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
1939
+ lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
1940
+ I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
1941
+ tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
1942
+ yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
1943
+ LXpUq3DDfSJlgnCW
1944
+ -----END CERTIFICATE-----
1945
+
1946
+ GlobalSign Root CA - R3
1947
+ =======================
1948
+ -----BEGIN CERTIFICATE-----
1949
+ MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
1950
+ YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
1951
+ bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
1952
+ aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
1953
+ bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
1954
+ iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
1955
+ 0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
1956
+ rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
1957
+ OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
1958
+ xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
1959
+ FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
1960
+ lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
1961
+ EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
1962
+ bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
1963
+ YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
1964
+ kpeDMdmztcpHWD9f
1965
+ -----END CERTIFICATE-----
1966
+
1967
+ Autoridad de Certificacion Firmaprofesional CIF A62634068
1968
+ =========================================================
1969
+ -----BEGIN CERTIFICATE-----
1970
+ MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
1971
+ BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
1972
+ MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
1973
+ QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
1974
+ NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
1975
+ Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
1976
+ B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
1977
+ 7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
1978
+ ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
1979
+ plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
1980
+ MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
1981
+ LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
1982
+ bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
1983
+ vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
1984
+ EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
1985
+ DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
1986
+ cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
1987
+ bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
1988
+ ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
1989
+ 51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
1990
+ R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
1991
+ T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
1992
+ Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
1993
+ osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
1994
+ crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
1995
+ saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
1996
+ KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
1997
+ 6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
1998
+ -----END CERTIFICATE-----
1999
+
2000
+ Izenpe.com
2001
+ ==========
2002
+ -----BEGIN CERTIFICATE-----
2003
+ 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
2030
+ -----END CERTIFICATE-----
2031
+
2032
+ Chambers of Commerce Root - 2008
2033
+ ================================
2034
+ -----BEGIN CERTIFICATE-----
2035
+ MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
2036
+ MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
2037
+ bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
2038
+ QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
2039
+ Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
2040
+ ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
2041
+ EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
2042
+ cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
2043
+ AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
2044
+ XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
2045
+ h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
2046
+ ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
2047
+ NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
2048
+ D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
2049
+ lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
2050
+ 0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
2051
+ ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
2052
+ EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
2053
+ G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
2054
+ BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
2055
+ bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
2056
+ bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
2057
+ CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
2058
+ AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
2059
+ wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
2060
+ 3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
2061
+ RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
2062
+ M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
2063
+ YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
2064
+ 9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
2065
+ zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
2066
+ nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
2067
+ OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
2068
+ -----END CERTIFICATE-----
2069
+
2070
+ Global Chambersign Root - 2008
2071
+ ==============================
2072
+ -----BEGIN CERTIFICATE-----
2073
+ MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
2074
+ MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
2075
+ bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
2076
+ QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
2077
+ NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
2078
+ Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
2079
+ QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
2080
+ aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
2081
+ VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
2082
+ XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
2083
+ ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
2084
+ /gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
2085
+ TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
2086
+ H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
2087
+ Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
2088
+ HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
2089
+ wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
2090
+ AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
2091
+ BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
2092
+ BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
2093
+ aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
2094
+ aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
2095
+ 1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
2096
+ dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
2097
+ /5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
2098
+ ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
2099
+ dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
2100
+ 9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
2101
+ foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
2102
+ qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
2103
+ P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
2104
+ c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
2105
+ 09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
2106
+ -----END CERTIFICATE-----
2107
+
2108
+ Go Daddy Root Certificate Authority - G2
2109
+ ========================================
2110
+ -----BEGIN CERTIFICATE-----
2111
+ MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
2112
+ B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
2113
+ MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
2114
+ MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
2115
+ b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
2116
+ A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
2117
+ hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
2118
+ 9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
2119
+ +qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
2120
+ fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
2121
+ NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
2122
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
2123
+ BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
2124
+ vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
2125
+ 5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
2126
+ N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
2127
+ LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
2128
+ -----END CERTIFICATE-----
2129
+
2130
+ Starfield Root Certificate Authority - G2
2131
+ =========================================
2132
+ -----BEGIN CERTIFICATE-----
2133
+ MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
2134
+ B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
2135
+ b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
2136
+ eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
2137
+ DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
2138
+ VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
2139
+ dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
2140
+ W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
2141
+ bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
2142
+ N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
2143
+ ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
2144
+ JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2145
+ AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
2146
+ TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
2147
+ 4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
2148
+ F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
2149
+ pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
2150
+ c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
2151
+ -----END CERTIFICATE-----
2152
+
2153
+ Starfield Services Root Certificate Authority - G2
2154
+ ==================================================
2155
+ -----BEGIN CERTIFICATE-----
2156
+ MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
2157
+ B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
2158
+ b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
2159
+ IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
2160
+ BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
2161
+ dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
2162
+ Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
2163
+ AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
2164
+ h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
2165
+ hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
2166
+ LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
2167
+ rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
2168
+ AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
2169
+ SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
2170
+ E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
2171
+ xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
2172
+ iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
2173
+ YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
2174
+ -----END CERTIFICATE-----
2175
+
2176
+ AffirmTrust Commercial
2177
+ ======================
2178
+ -----BEGIN CERTIFICATE-----
2179
+ MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
2180
+ BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
2181
+ MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
2182
+ bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
2183
+ AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
2184
+ DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
2185
+ C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
2186
+ BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
2187
+ MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
2188
+ HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2189
+ AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
2190
+ hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
2191
+ qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
2192
+ 0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
2193
+ sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
2194
+ -----END CERTIFICATE-----
2195
+
2196
+ AffirmTrust Networking
2197
+ ======================
2198
+ -----BEGIN CERTIFICATE-----
2199
+ MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
2200
+ BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
2201
+ MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
2202
+ bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
2203
+ AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
2204
+ Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
2205
+ dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
2206
+ /PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
2207
+ h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
2208
+ HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2209
+ AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
2210
+ UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
2211
+ 12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
2212
+ WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
2213
+ /ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
2214
+ -----END CERTIFICATE-----
2215
+
2216
+ AffirmTrust Premium
2217
+ ===================
2218
+ -----BEGIN CERTIFICATE-----
2219
+ MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
2220
+ BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
2221
+ OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
2222
+ dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
2223
+ MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
2224
+ BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
2225
+ 5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
2226
+ +7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
2227
+ GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
2228
+ p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
2229
+ S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
2230
+ 6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
2231
+ /bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
2232
+ +Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
2233
+ /wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
2234
+ MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
2235
+ Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
2236
+ 6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
2237
+ L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
2238
+ +4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
2239
+ BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
2240
+ IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
2241
+ g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
2242
+ zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
2243
+ -----END CERTIFICATE-----
2244
+
2245
+ AffirmTrust Premium ECC
2246
+ =======================
2247
+ -----BEGIN CERTIFICATE-----
2248
+ MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
2249
+ BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
2250
+ MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
2251
+ cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
2252
+ IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
2253
+ N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
2254
+ BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
2255
+ BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
2256
+ 57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
2257
+ eQ==
2258
+ -----END CERTIFICATE-----
2259
+
2260
+ Certum Trusted Network CA
2261
+ =========================
2262
+ -----BEGIN CERTIFICATE-----
2263
+ MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
2264
+ ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
2265
+ biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
2266
+ MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
2267
+ ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
2268
+ MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
2269
+ AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
2270
+ l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
2271
+ J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
2272
+ fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
2273
+ cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
2274
+ Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
2275
+ DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
2276
+ jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
2277
+ mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
2278
+ Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
2279
+ 03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
2280
+ -----END CERTIFICATE-----
2281
+
2282
+ Certinomis - Autorité Racine
2283
+ =============================
2284
+ -----BEGIN CERTIFICATE-----
2285
+ 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
2310
+ vgt2Fl43N+bYdJeimUV5
2311
+ -----END CERTIFICATE-----
2312
+
2313
+ Root CA Generalitat Valenciana
2314
+ ==============================
2315
+ -----BEGIN CERTIFICATE-----
2316
+ MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
2317
+ ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
2318
+ IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
2319
+ WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
2320
+ CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
2321
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
2322
+ F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
2323
+ ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
2324
+ D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
2325
+ JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
2326
+ AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
2327
+ dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
2328
+ ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
2329
+ AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
2330
+ YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
2331
+ AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
2332
+ aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
2333
+ AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
2334
+ YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
2335
+ AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
2336
+ OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
2337
+ dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
2338
+ BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
2339
+ A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
2340
+ b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
2341
+ TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
2342
+ Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
2343
+ NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
2344
+ iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
2345
+ +GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
2346
+ -----END CERTIFICATE-----
2347
+
2348
+ TWCA Root Certification Authority
2349
+ =================================
2350
+ -----BEGIN CERTIFICATE-----
2351
+ MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
2352
+ VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
2353
+ dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
2354
+ EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
2355
+ IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
2356
+ AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
2357
+ QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
2358
+ oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
2359
+ 4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
2360
+ y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
2361
+ BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
2362
+ 9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
2363
+ mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
2364
+ QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
2365
+ T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
2366
+ Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
2367
+ -----END CERTIFICATE-----
2368
+
2369
+ Security Communication RootCA2
2370
+ ==============================
2371
+ -----BEGIN CERTIFICATE-----
2372
+ MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
2373
+ U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
2374
+ dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
2375
+ SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
2376
+ aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
2377
+ ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
2378
+ +T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
2379
+ 3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
2380
+ spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
2381
+ EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
2382
+ QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
2383
+ CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
2384
+ u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
2385
+ 3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
2386
+ tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
2387
+ mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
2388
+ -----END CERTIFICATE-----
2389
+
2390
+ EC-ACC
2391
+ ======
2392
+ -----BEGIN CERTIFICATE-----
2393
+ MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
2394
+ BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
2395
+ ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
2396
+ VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
2397
+ CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
2398
+ BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
2399
+ MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
2400
+ SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
2401
+ Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
2402
+ cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
2403
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
2404
+ w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
2405
+ ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
2406
+ HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
2407
+ E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
2408
+ 0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
2409
+ BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
2410
+ VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
2411
+ Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
2412
+ dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
2413
+ lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
2414
+ Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
2415
+ l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
2416
+ E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
2417
+ 5EI=
2418
+ -----END CERTIFICATE-----
2419
+
2420
+ Hellenic Academic and Research Institutions RootCA 2011
2421
+ =======================================================
2422
+ -----BEGIN CERTIFICATE-----
2423
+ MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
2424
+ O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
2425
+ aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
2426
+ IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
2427
+ AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
2428
+ IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
2429
+ IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
2430
+ AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
2431
+ 1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
2432
+ 71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
2433
+ 8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
2434
+ 3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
2435
+ MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
2436
+ MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
2437
+ b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
2438
+ XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
2439
+ TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
2440
+ /md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
2441
+ 7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
2442
+ -----END CERTIFICATE-----
2443
+
2444
+ Actalis Authentication Root CA
2445
+ ==============================
2446
+ -----BEGIN CERTIFICATE-----
2447
+ MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
2448
+ BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
2449
+ AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
2450
+ MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
2451
+ IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
2452
+ IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
2453
+ wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
2454
+ by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
2455
+ zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
2456
+ YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
2457
+ oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
2458
+ EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
2459
+ hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
2460
+ EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
2461
+ jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
2462
+ iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
2463
+ ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
2464
+ WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
2465
+ JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
2466
+ K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
2467
+ Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
2468
+ 4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
2469
+ 2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
2470
+ lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
2471
+ OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
2472
+ vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
2473
+ -----END CERTIFICATE-----
2474
+
2475
+ Trustis FPS Root CA
2476
+ ===================
2477
+ -----BEGIN CERTIFICATE-----
2478
+ MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
2479
+ EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
2480
+ IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
2481
+ BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
2482
+ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
2483
+ RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
2484
+ H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
2485
+ cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
2486
+ o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
2487
+ AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
2488
+ BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
2489
+ GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
2490
+ yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
2491
+ 8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
2492
+ l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
2493
+ iB6XzCGcKQENZetX2fNXlrtIzYE=
2494
+ -----END CERTIFICATE-----
2495
+
2496
+ StartCom Certification Authority
2497
+ ================================
2498
+ -----BEGIN CERTIFICATE-----
2499
+ MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
2500
+ U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
2501
+ ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
2502
+ NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
2503
+ LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
2504
+ U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
2505
+ ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
2506
+ o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
2507
+ Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
2508
+ eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
2509
+ 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
2510
+ 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
2511
+ osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
2512
+ untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
2513
+ UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
2514
+ 37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
2515
+ VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
2516
+ Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
2517
+ dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
2518
+ c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
2519
+ bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
2520
+ aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
2521
+ aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
2522
+ L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
2523
+ cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
2524
+ fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
2525
+ N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
2526
+ Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
2527
+ tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
2528
+ e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
2529
+ 2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
2530
+ HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
2531
+ JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
2532
+ D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
2533
+ -----END CERTIFICATE-----
2534
+
2535
+ StartCom Certification Authority G2
2536
+ ===================================
2537
+ -----BEGIN CERTIFICATE-----
2538
+ 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
2562
+ obp573PYtlNXLfbQ4ddI
2563
+ -----END CERTIFICATE-----
2564
+
2565
+ Buypass Class 2 Root CA
2566
+ =======================
2567
+ -----BEGIN CERTIFICATE-----
2568
+ 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
2592
+ rJgWVqA=
2593
+ -----END CERTIFICATE-----
2594
+
2595
+ Buypass Class 3 Root CA
2596
+ =======================
2597
+ -----BEGIN CERTIFICATE-----
2598
+ MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
2599
+ QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
2600
+ DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
2601
+ eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
2602
+ DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
2603
+ sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
2604
+ 5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
2605
+ 7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
2606
+ ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
2607
+ 2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
2608
+ /afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
2609
+ RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
2610
+ Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
2611
+ j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
2612
+ VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
2613
+ AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
2614
+ cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
2615
+ uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
2616
+ Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
2617
+ ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
2618
+ KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
2619
+ 6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
2620
+ UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
2621
+ eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
2622
+ Cp/HuZc=
2623
+ -----END CERTIFICATE-----
2624
+
2625
+ T-TeleSec GlobalRoot Class 3
2626
+ ============================
2627
+ -----BEGIN CERTIFICATE-----
2628
+ MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
2629
+ IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
2630
+ cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
2631
+ MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
2632
+ dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
2633
+ ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
2634
+ DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
2635
+ 9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
2636
+ NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
2637
+ iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
2638
+ 0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
2639
+ MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
2640
+ AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
2641
+ fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
2642
+ ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
2643
+ P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
2644
+ e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
2645
+ -----END CERTIFICATE-----
2646
+
2647
+ EE Certification Centre Root CA
2648
+ ===============================
2649
+ -----BEGIN CERTIFICATE-----
2650
+ MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
2651
+ EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
2652
+ dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
2653
+ MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
2654
+ UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
2655
+ ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
2656
+ DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
2657
+ TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
2658
+ rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
2659
+ 93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
2660
+ P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
2661
+ AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
2662
+ MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
2663
+ BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
2664
+ xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
2665
+ lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
2666
+ uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
2667
+ 3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
2668
+ dcGWxZ0=
2669
+ -----END CERTIFICATE-----
2670
+
2671
+ TURKTRUST Certificate Services Provider Root 2007
2672
+ =================================================
2673
+ -----BEGIN CERTIFICATE-----
2674
+ MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
2675
+ bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
2676
+ MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
2677
+ QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
2678
+ DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
2679
+ a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
2680
+ BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
2681
+ bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
2682
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
2683
+ YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
2684
+ KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
2685
+ KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
2686
+ rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
2687
+ AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
2688
+ BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
2689
+ Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
2690
+ aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
2691
+ Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
2692
+ BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
2693
+ poRq0Tl9
2694
+ -----END CERTIFICATE-----
2695
+
2696
+ D-TRUST Root Class 3 CA 2 2009
2697
+ ==============================
2698
+ -----BEGIN CERTIFICATE-----
2699
+ MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
2700
+ DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
2701
+ Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
2702
+ LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
2703
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
2704
+ ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
2705
+ BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
2706
+ KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
2707
+ p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
2708
+ AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
2709
+ 4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
2710
+ eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
2711
+ MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
2712
+ PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
2713
+ OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
2714
+ 2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
2715
+ o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
2716
+ dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
2717
+ X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
2718
+ -----END CERTIFICATE-----
2719
+
2720
+ D-TRUST Root Class 3 CA 2 EV 2009
2721
+ =================================
2722
+ -----BEGIN CERTIFICATE-----
2723
+ MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
2724
+ DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
2725
+ OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
2726
+ DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
2727
+ OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
2728
+ egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
2729
+ zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
2730
+ 7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
2731
+ sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
2732
+ 11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
2733
+ cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
2734
+ ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
2735
+ MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
2736
+ b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
2737
+ c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
2738
+ PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
2739
+ nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
2740
+ ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
2741
+ NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
2742
+ w9y4AyHqnxbxLFS1
2743
+ -----END CERTIFICATE-----
2744
+
2745
+ PSCProcert
2746
+ ==========
2747
+ -----BEGIN CERTIFICATE-----
2748
+ MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
2749
+ ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
2750
+ MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
2751
+ dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
2752
+ cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
2753
+ IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
2754
+ MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
2755
+ DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
2756
+ ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
2757
+ Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
2758
+ DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
2759
+ wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
2760
+ 3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
2761
+ RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
2762
+ EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
2763
+ 0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
2764
+ 0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
2765
+ td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
2766
+ Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
2767
+ r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
2768
+ AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
2769
+ Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
2770
+ xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
2771
+ ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
2772
+ EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
2773
+ Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
2774
+ ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
2775
+ 9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
2776
+ MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
2777
+ LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
2778
+ ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
2779
+ YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
2780
+ Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
2781
+ dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
2782
+ T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
2783
+ g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
2784
+ uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
2785
+ n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
2786
+ FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
2787
+ 5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
2788
+ 3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
2789
+ poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
2790
+ eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
2791
+ -----END CERTIFICATE-----
2792
+
2793
+ China Internet Network Information Center EV Certificates Root
2794
+ ==============================================================
2795
+ -----BEGIN CERTIFICATE-----
2796
+ MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
2797
+ BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
2798
+ aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
2799
+ Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
2800
+ A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
2801
+ PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
2802
+ cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
2803
+ jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
2804
+ 98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
2805
+ klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
2806
+ KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
2807
+ 7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
2808
+ HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
2809
+ glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
2810
+ 0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
2811
+ 7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
2812
+ ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
2813
+ 5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
2814
+ -----END CERTIFICATE-----
2815
+
2816
+ Swisscom Root CA 2
2817
+ ==================
2818
+ -----BEGIN CERTIFICATE-----
2819
+ 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
2845
+ 5OfNeOI5wSsSnqaeG8XmDtkx2Q==
2846
+ -----END CERTIFICATE-----
2847
+
2848
+ Swisscom Root EV CA 2
2849
+ =====================
2850
+ -----BEGIN CERTIFICATE-----
2851
+ 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
2877
+ l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
2878
+ -----END CERTIFICATE-----
2879
+
2880
+ CA Disig Root R1
2881
+ ================
2882
+ -----BEGIN CERTIFICATE-----
2883
+ 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
2907
+ a7+h89n07eLw4+1knj0vllJPgFOL
2908
+ -----END CERTIFICATE-----
2909
+
2910
+ CA Disig Root R2
2911
+ ================
2912
+ -----BEGIN CERTIFICATE-----
2913
+ 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
2937
+ 7+ZtsH8tZ/3zbBt1RqPlShfppNcL
2938
+ -----END CERTIFICATE-----
2939
+
2940
+ ACCVRAIZ1
2941
+ =========
2942
+ -----BEGIN CERTIFICATE-----
2943
+ MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
2944
+ SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
2945
+ MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
2946
+ UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
2947
+ DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
2948
+ jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
2949
+ RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
2950
+ aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
2951
+ 0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
2952
+ WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
2953
+ 8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
2954
+ 5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
2955
+ 9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
2956
+ Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
2957
+ Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
2958
+ Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
2959
+ VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
2960
+ Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
2961
+ QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
2962
+ AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
2963
+ YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
2964
+ AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
2965
+ IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
2966
+ aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
2967
+ dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
2968
+ MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
2969
+ hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
2970
+ R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
2971
+ YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
2972
+ nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
2973
+ TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
2974
+ sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
2975
+ I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
2976
+ Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
2977
+ 3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
2978
+ EfbRD0tVNEYqi4Y7
2979
+ -----END CERTIFICATE-----
2980
+
2981
+ TWCA Global Root CA
2982
+ ===================
2983
+ -----BEGIN CERTIFICATE-----
2984
+ MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
2985
+ CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
2986
+ QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
2987
+ EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
2988
+ Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
2989
+ nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
2990
+ r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
2991
+ Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
2992
+ tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
2993
+ KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
2994
+ sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
2995
+ yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
2996
+ kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
2997
+ zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
2998
+ AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
2999
+ cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
3000
+ LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
3001
+ 8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
3002
+ /eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
3003
+ lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
3004
+ A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
3005
+ i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
3006
+ EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
3007
+ zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
3008
+ -----END CERTIFICATE-----
3009
+
3010
+ TeliaSonera Root CA v1
3011
+ ======================
3012
+ -----BEGIN CERTIFICATE-----
3013
+ MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
3014
+ CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
3015
+ MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
3016
+ VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
3017
+ 6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
3018
+ 3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
3019
+ B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
3020
+ Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
3021
+ oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
3022
+ F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
3023
+ oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
3024
+ gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
3025
+ TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
3026
+ AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
3027
+ DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
3028
+ zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
3029
+ 0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
3030
+ pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
3031
+ G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
3032
+ c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
3033
+ JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
3034
+ qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
3035
+ Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
3036
+ WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
3037
+ -----END CERTIFICATE-----
3038
+
3039
+ E-Tugra Certification Authority
3040
+ ===============================
3041
+ -----BEGIN CERTIFICATE-----
3042
+ MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
3043
+ DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
3044
+ ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
3045
+ ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
3046
+ NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
3047
+ QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
3048
+ cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
3049
+ DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
3050
+ MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
3051
+ hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
3052
+ CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
3053
+ ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
3054
+ BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
3055
+ E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
3056
+ rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
3057
+ jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
3058
+ rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
3059
+ dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
3060
+ /wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
3061
+ MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
3062
+ kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
3063
+ XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
3064
+ VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
3065
+ a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
3066
+ dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
3067
+ KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
3068
+ Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
3069
+ 8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
3070
+ C7TbO6Orb1wdtn7os4I07QZcJA==
3071
+ -----END CERTIFICATE-----
3072
+
3073
+ T-TeleSec GlobalRoot Class 2
3074
+ ============================
3075
+ -----BEGIN CERTIFICATE-----
3076
+ MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
3077
+ IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
3078
+ cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
3079
+ MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
3080
+ dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
3081
+ ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
3082
+ DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
3083
+ SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
3084
+ vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
3085
+ 2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
3086
+ WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
3087
+ MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
3088
+ YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
3089
+ r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
3090
+ vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
3091
+ 3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
3092
+ 9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
3093
+ -----END CERTIFICATE-----
3094
+
3095
+ Atos TrustedRoot 2011
3096
+ =====================
3097
+ -----BEGIN CERTIFICATE-----
3098
+ MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
3099
+ cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
3100
+ MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
3101
+ A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
3102
+ hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
3103
+ 54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
3104
+ DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
3105
+ HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
3106
+ z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
3107
+ l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
3108
+ bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
3109
+ CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
3110
+ k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
3111
+ TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
3112
+ 61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
3113
+ 3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
3114
+ -----END CERTIFICATE-----
3115
+
3116
+ QuoVadis Root CA 1 G3
3117
+ =====================
3118
+ -----BEGIN CERTIFICATE-----
3119
+ MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
3120
+ A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
3121
+ b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
3122
+ MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
3123
+ RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
3124
+ PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
3125
+ PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
3126
+ Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
3127
+ ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
3128
+ g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
3129
+ 7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
3130
+ 9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
3131
+ iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
3132
+ t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
3133
+ AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
3134
+ hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
3135
+ MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
3136
+ GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
3137
+ Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
3138
+ +V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
3139
+ 3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
3140
+ wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
3141
+ O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
3142
+ FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
3143
+ hMJKzRwuJIczYOXD
3144
+ -----END CERTIFICATE-----
3145
+
3146
+ QuoVadis Root CA 2 G3
3147
+ =====================
3148
+ -----BEGIN CERTIFICATE-----
3149
+ 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
3173
+ O3jtZsSOeWmD3n+M
3174
+ -----END CERTIFICATE-----
3175
+
3176
+ QuoVadis Root CA 3 G3
3177
+ =====================
3178
+ -----BEGIN CERTIFICATE-----
3179
+ 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
3203
+ PpxxVJkES/1Y+Zj0
3204
+ -----END CERTIFICATE-----
3205
+
3206
+ DigiCert Assured ID Root G2
3207
+ ===========================
3208
+ -----BEGIN CERTIFICATE-----
3209
+ MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
3210
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
3211
+ IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
3212
+ MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
3213
+ ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
3214
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
3215
+ 35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
3216
+ bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
3217
+ VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
3218
+ YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
3219
+ lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
3220
+ w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
3221
+ 0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
3222
+ d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
3223
+ hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
3224
+ jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
3225
+ IhNzbM8m9Yop5w==
3226
+ -----END CERTIFICATE-----
3227
+
3228
+ DigiCert Assured ID Root G3
3229
+ ===========================
3230
+ -----BEGIN CERTIFICATE-----
3231
+ MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
3232
+ UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
3233
+ VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
3234
+ MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
3235
+ d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
3236
+ BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
3237
+ RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
3238
+ KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
3239
+ UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
3240
+ YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
3241
+ 1vUhZscv6pZjamVFkpUBtA==
3242
+ -----END CERTIFICATE-----
3243
+
3244
+ DigiCert Global Root G2
3245
+ =======================
3246
+ -----BEGIN CERTIFICATE-----
3247
+ MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
3248
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
3249
+ HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
3250
+ MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
3251
+ dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
3252
+ hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
3253
+ kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
3254
+ 3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
3255
+ BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
3256
+ UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
3257
+ o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
3258
+ 5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
3259
+ F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
3260
+ WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
3261
+ QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
3262
+ iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
3263
+ MrY=
3264
+ -----END CERTIFICATE-----
3265
+
3266
+ DigiCert Global Root G3
3267
+ =======================
3268
+ -----BEGIN CERTIFICATE-----
3269
+ MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
3270
+ UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
3271
+ VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
3272
+ MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
3273
+ aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
3274
+ AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
3275
+ YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
3276
+ BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
3277
+ Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
3278
+ 3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
3279
+ VOKa5Vt8sycX
3280
+ -----END CERTIFICATE-----
3281
+
3282
+ DigiCert Trusted Root G4
3283
+ ========================
3284
+ -----BEGIN CERTIFICATE-----
3285
+ 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
3310
+ 82Z+
3311
+ -----END CERTIFICATE-----
3312
+
3313
+ WoSign
3314
+ ======
3315
+ -----BEGIN CERTIFICATE-----
3316
+ MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
3317
+ EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
3318
+ QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
3319
+ BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
3320
+ dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
3321
+ vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
3322
+ CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
3323
+ 2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
3324
+ KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
3325
+ +ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
3326
+ EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
3327
+ lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
3328
+ 8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
3329
+ yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
3330
+ AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
3331
+ 8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
3332
+ LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
3333
+ T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
3334
+ y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
3335
+ 2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
3336
+ 5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
3337
+ EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
3338
+ mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
3339
+ kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
3340
+ kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
3341
+ -----END CERTIFICATE-----
3342
+
3343
+ WoSign China
3344
+ ============
3345
+ -----BEGIN CERTIFICATE-----
3346
+ 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
3370
+ kI26oQ==
3371
+ -----END CERTIFICATE-----
3372
+
3373
+ COMODO RSA Certification Authority
3374
+ ==================================
3375
+ -----BEGIN CERTIFICATE-----
3376
+ MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE
3377
+ BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
3378
+ A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv
3379
+ biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC
3380
+ R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
3381
+ ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB
3382
+ dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn
3383
+ dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ
3384
+ FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+
3385
+ 5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG
3386
+ x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX
3387
+ 2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL
3388
+ OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3
3389
+ sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C
3390
+ GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5
3391
+ WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
3392
+ FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
3393
+ DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt
3394
+ rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+
3395
+ nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg
3396
+ tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW
3397
+ sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp
3398
+ pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA
3399
+ zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq
3400
+ ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52
3401
+ 7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I
3402
+ LaZRfyHBNVOFBkpdn627G190
3403
+ -----END CERTIFICATE-----
3404
+
3405
+ USERTrust RSA Certification Authority
3406
+ =====================================
3407
+ -----BEGIN CERTIFICATE-----
3408
+ MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE
3409
+ BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
3410
+ ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
3411
+ dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE
3412
+ BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
3413
+ ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
3414
+ dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz
3415
+ 0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j
3416
+ Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn
3417
+ RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O
3418
+ +T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq
3419
+ /nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE
3420
+ Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM
3421
+ lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8
3422
+ yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+
3423
+ eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
3424
+ BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
3425
+ MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW
3426
+ FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ
3427
+ 7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ
3428
+ Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM
3429
+ 8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi
3430
+ FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi
3431
+ yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c
3432
+ J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw
3433
+ sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx
3434
+ Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
3435
+ -----END CERTIFICATE-----
3436
+
3437
+ USERTrust ECC Certification Authority
3438
+ =====================================
3439
+ -----BEGIN CERTIFICATE-----
3440
+ MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
3441
+ VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
3442
+ aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
3443
+ biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
3444
+ VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
3445
+ aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
3446
+ biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
3447
+ 0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
3448
+ nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
3449
+ HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
3450
+ HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
3451
+ 9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
3452
+ -----END CERTIFICATE-----
3453
+
3454
+ GlobalSign ECC Root CA - R4
3455
+ ===========================
3456
+ -----BEGIN CERTIFICATE-----
3457
+ MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
3458
+ R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
3459
+ EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
3460
+ R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
3461
+ EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
3462
+ OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
3463
+ AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
3464
+ MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
3465
+ JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
3466
+ -----END CERTIFICATE-----
3467
+
3468
+ GlobalSign ECC Root CA - R5
3469
+ ===========================
3470
+ -----BEGIN CERTIFICATE-----
3471
+ MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
3472
+ R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
3473
+ EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
3474
+ R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
3475
+ EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
3476
+ SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
3477
+ h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
3478
+ BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
3479
+ uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
3480
+ yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
3481
+ -----END CERTIFICATE-----
3482
+
3483
+ Staat der Nederlanden Root CA - G3
3484
+ ==================================
3485
+ -----BEGIN CERTIFICATE-----
3486
+ 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
3511
+ -----END CERTIFICATE-----
3512
+
3513
+ Staat der Nederlanden EV Root CA
3514
+ ================================
3515
+ -----BEGIN CERTIFICATE-----
3516
+ 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
3540
+ eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
3541
+ -----END CERTIFICATE-----
3542
+
3543
+ IdenTrust Commercial Root CA 1
3544
+ ==============================
3545
+ -----BEGIN CERTIFICATE-----
3546
+ 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
3570
+ cGzM7vRX+Bi6hG6H
3571
+ -----END CERTIFICATE-----
3572
+
3573
+ IdenTrust Public Sector Root CA 1
3574
+ =================================
3575
+ -----BEGIN CERTIFICATE-----
3576
+ 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
3600
+ 3Wl9af0AVqW3rLatt8o+Ae+c
3601
+ -----END CERTIFICATE-----
3602
+
3603
+ Entrust Root Certification Authority - G2
3604
+ =========================================
3605
+ -----BEGIN CERTIFICATE-----
3606
+ MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
3607
+ BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
3608
+ bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
3609
+ b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
3610
+ HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
3611
+ DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
3612
+ OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
3613
+ eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
3614
+ MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
3615
+ /vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
3616
+ HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
3617
+ s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
3618
+ TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
3619
+ AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
3620
+ 0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
3621
+ iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
3622
+ Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
3623
+ nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
3624
+ vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
3625
+ e4pIb4tF9g==
3626
+ -----END CERTIFICATE-----
3627
+
3628
+ Entrust Root Certification Authority - EC1
3629
+ ==========================================
3630
+ -----BEGIN CERTIFICATE-----
3631
+ MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
3632
+ FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
3633
+ YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
3634
+ ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
3635
+ IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
3636
+ FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
3637
+ LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
3638
+ dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
3639
+ IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
3640
+ AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
3641
+ 9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
3642
+ FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
3643
+ vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
3644
+ kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
3645
+ -----END CERTIFICATE-----
3646
+
3647
+ CFCA EV ROOT
3648
+ ============
3649
+ -----BEGIN CERTIFICATE-----
3650
+ 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
3675
+ -----END CERTIFICATE-----
3676
+
3677
+ TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
3678
+ =========================================================
3679
+ -----BEGIN CERTIFICATE-----
3680
+ MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
3681
+ BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
3682
+ bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
3683
+ RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
3684
+ ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
3685
+ SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
3686
+ n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
3687
+ ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
3688
+ CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
3689
+ jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
3690
+ ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
3691
+ 9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
3692
+ 4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
3693
+ HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
3694
+ hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
3695
+ BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
3696
+ URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
3697
+ lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
3698
+ B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
3699
+ -----END CERTIFICATE-----
3700
+
3701
+ TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
3702
+ =========================================================
3703
+ -----BEGIN CERTIFICATE-----
3704
+ MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
3705
+ A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
3706
+ acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
3707
+ bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
3708
+ MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
3709
+ BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
3710
+ aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
3711
+ aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
3712
+ AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
3713
+ 2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
3714
+ wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
3715
+ HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
3716
+ +DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
3717
+ 9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
3718
+ 9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
3719
+ fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
3720
+ o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
3721
+ hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
3722
+ O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
3723
+ -----END CERTIFICATE-----
3724
+
3725
+ Certinomis - Root CA
3726
+ ====================
3727
+ -----BEGIN CERTIFICATE-----
3728
+ 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
3753
+ hkIGuUE=
3754
+ -----END CERTIFICATE-----
3755
+
3756
+ OISTE WISeKey Global Root GB CA
3757
+ ===============================
3758
+ -----BEGIN CERTIFICATE-----
3759
+ MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG
3760
+ EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
3761
+ ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw
3762
+ MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD
3763
+ VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds
3764
+ b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX
3765
+ scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP
3766
+ rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk
3767
+ 9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o
3768
+ Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg
3769
+ GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
3770
+ /zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
3771
+ hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD
3772
+ dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0
3773
+ VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui
3774
+ HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
3775
+ Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
3776
+ -----END CERTIFICATE-----
3777
+
3778
+ Certification Authority of WoSign G2
3779
+ ====================================
3780
+ -----BEGIN CERTIFICATE-----
3781
+ MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQG
3782
+ EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNVBAMTJENlcnRpZmljYXRpb24g
3783
+ QXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgx
3784
+ CzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlm
3785
+ aWNhdGlvbiBBdXRob3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
3786
+ CgKCAQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPXJYY1kBai
3787
+ XW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgOgHzKtB0TiGsOqCR3A9Du
3788
+ W/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg9
3789
+ 5k4ot+vElbGs/V6r+kHLXZ1L3PR8du9nfwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BK
3790
+ v0mUYQs4kI9dJGwlezt52eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
3791
+ AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJKoZI
3792
+ hvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8fHulwqZm46qwtyeY
3793
+ P0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G3CE4Q3RM+zD4F3LBMvzIkRfEzFg3
3794
+ TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yySrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu
3795
+ +sif/a+RZQp4OBXllxcU3fngLDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+
3796
+ 7Q9LGOHSJDy7XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
3797
+ -----END CERTIFICATE-----
3798
+
3799
+ CA WoSign ECC Root
3800
+ ==================
3801
+ -----BEGIN CERTIFICATE-----
3802
+ MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQswCQYDVQQGEwJD
3803
+ TjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMTEkNBIFdvU2lnbiBFQ0MgUm9v
3804
+ dDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQK
3805
+ ExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZI
3806
+ zj0CAQYFK4EEACIDYgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiU
3807
+ t5v8KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES1ns2o0Iw
3808
+ QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqv3VWqP2h4syhf3R
3809
+ MluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0
3810
+ Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu
3811
+ a/GRspBl9JrmkO5K
3812
+ -----END CERTIFICATE-----
3813
+
3814
+ SZAFIR ROOT CA2
3815
+ ===============
3816
+ -----BEGIN CERTIFICATE-----
3817
+ MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG
3818
+ A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV
3819
+ BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ
3820
+ BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD
3821
+ VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q
3822
+ qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK
3823
+ DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE
3824
+ 2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ
3825
+ ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi
3826
+ ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
3827
+ AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC
3828
+ AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5
3829
+ O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67
3830
+ oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul
3831
+ 4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6
3832
+ +/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
3833
+ -----END CERTIFICATE-----
3834
+
3835
+ Certum Trusted Network CA 2
3836
+ ===========================
3837
+ -----BEGIN CERTIFICATE-----
3838
+ MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE
3839
+ BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1
3840
+ bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y
3841
+ ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ
3842
+ TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl
3843
+ cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB
3844
+ IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9
3845
+ 7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o
3846
+ CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b
3847
+ Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p
3848
+ uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130
3849
+ GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ
3850
+ 9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB
3851
+ Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye
3852
+ hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM
3853
+ BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
3854
+ AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
3855
+ hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW
3856
+ Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA
3857
+ L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo
3858
+ clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM
3859
+ pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb
3860
+ w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo
3861
+ J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm
3862
+ ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX
3863
+ is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7
3864
+ zAYspsbiDrW5viSP
3865
+ -----END CERTIFICATE-----
3866
+
3867
+ Hellenic Academic and Research Institutions RootCA 2015
3868
+ =======================================================
3869
+ -----BEGIN CERTIFICATE-----
3870
+ MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT
3871
+ BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0
3872
+ aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
3873
+ YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx
3874
+ MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg
3875
+ QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV
3876
+ BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw
3877
+ MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv
3878
+ bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh
3879
+ iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+
3880
+ 6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd
3881
+ FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr
3882
+ i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F
3883
+ GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2
3884
+ fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu
3885
+ iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
3886
+ Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
3887
+ AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI
3888
+ hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+
3889
+ D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM
3890
+ d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y
3891
+ d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn
3892
+ 82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb
3893
+ davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F
3894
+ Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt
3895
+ J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa
3896
+ JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q
3897
+ p/UsQu0yrbYhnr68
3898
+ -----END CERTIFICATE-----
3899
+
3900
+ Hellenic Academic and Research Institutions ECC RootCA 2015
3901
+ ===========================================================
3902
+ -----BEGIN CERTIFICATE-----
3903
+ MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0
3904
+ aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u
3905
+ cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
3906
+ aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw
3907
+ MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj
3908
+ IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD
3909
+ VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290
3910
+ Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP
3911
+ dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK
3912
+ Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
3913
+ BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA
3914
+ GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn
3915
+ dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
3916
+ -----END CERTIFICATE-----
3917
+
3918
+ Certplus Root CA G1
3919
+ ===================
3920
+ -----BEGIN CERTIFICATE-----
3921
+ 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
3945
+ qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo=
3946
+ -----END CERTIFICATE-----
3947
+
3948
+ Certplus Root CA G2
3949
+ ===================
3950
+ -----BEGIN CERTIFICATE-----
3951
+ MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4xCzAJBgNVBAYT
3952
+ AkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjAeFw0x
3953
+ NDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0
3954
+ cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IA
3955
+ BM0PW1aC3/BFGtat93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/aWfYeOKmycTbLXku54uN
3956
+ Am8xIk0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSpsBqNjMGEwDgYDVR0PAQH/BAQD
3957
+ AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMB8GA1Ud
3958
+ IwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqGSM49BAMDA2gAMGUCMHD+sAvZ94OX7PNV
3959
+ HdTcswYO/jOYnYs5kGuUIe22113WTNchp+e/IQ8rzfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjl
3960
+ vPl5adytRSv3tjFzzAalU5ORGpOucGpnutee5WEaXw==
3961
+ -----END CERTIFICATE-----
3962
+
3963
+ OpenTrust Root CA G1
3964
+ ====================
3965
+ -----BEGIN CERTIFICATE-----
3966
+ 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
3990
+ OXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj1oxx
3991
+ -----END CERTIFICATE-----
3992
+
3993
+ OpenTrust Root CA G2
3994
+ ====================
3995
+ -----BEGIN CERTIFICATE-----
3996
+ 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
4020
+ u7JwqkwR3v98KzfUetF3NI/n+UL3PIEMS1IK
4021
+ -----END CERTIFICATE-----
4022
+
4023
+ OpenTrust Root CA G3
4024
+ ====================
4025
+ -----BEGIN CERTIFICATE-----
4026
+ MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAxCzAJBgNVBAYT
4027
+ AkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEczMB4X
4028
+ DTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9w
4029
+ ZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQA
4030
+ IgNiAARK7liuTcpm3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5B
4031
+ ta1doYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4GA1UdDwEB
4032
+ /wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAf
4033
+ BgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAKBggqhkjOPQQDAwNpADBmAjEAj6jcnboM
4034
+ BBf6Fek9LykBl7+BFjNAk2z8+e2AcG+qj9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta
4035
+ 3U1fJAuwACEl74+nBCZx4nxp5V2a+EEfOzmTk51V6s2N8fvB
4036
+ -----END CERTIFICATE-----
lib/Ing/Services/ing-php/composer.json ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "gingerpayments/ginger-php",
3
+ "description": "The official Ginger Payments PHP SDK",
4
+ "keywords": ["payment", "pay", "merchant", "e-commerce"],
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/gingerpayments/ginger-php",
7
+ "authors": [
8
+ {
9
+ "name": "Ginger Payments",
10
+ "email": "dev@gingerpayments.com"
11
+ }
12
+ ],
13
+ "require": {
14
+ "php": ">=5.4.0",
15
+ "guzzlehttp/guzzle": "~5.2",
16
+ "beberlei/assert": "~2.3",
17
+ "mathiasverraes/classfunctions": "~1.1",
18
+ "ronanguilloux/isocodes": "~1.1",
19
+ "ramsey/uuid": "~2.8",
20
+ "nesbot/carbon": "~1.16",
21
+ "alcohol/iso3166": "~3.0",
22
+ "symfony/translation": "~2.8",
23
+ "symfony/yaml": "~2.8"
24
+ },
25
+ "require-dev": {
26
+ "phpunit/phpunit": "~4.5",
27
+ "mockery/mockery": "0.9.*",
28
+ "squizlabs/php_codesniffer": "~2.2"
29
+ },
30
+ "autoload": {
31
+ "files": ["src/Fallback.php"],
32
+ "psr-4": {
33
+ "GingerPayments\\Payment\\": "src"
34
+ }
35
+ },
36
+ "autoload-dev": {
37
+ "psr-4": {
38
+ "GingerPayments\\Payment\\Tests\\": "tests"
39
+ }
40
+ },
41
+ "extra": {
42
+ "branch-alias": {
43
+ "dev-master": "0.0.x-dev"
44
+ }
45
+ }
46
+ }
lib/Ing/Services/ing-php/composer.lock ADDED
@@ -0,0 +1,2037 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "hash": "bb52aa110922e71473a063377cd1a156",
8
+ "content-hash": "ef15ab1b05dd60446be04fca0b393822",
9
+ "packages": [
10
+ {
11
+ "name": "alcohol/iso3166",
12
+ "version": "3.0.0",
13
+ "source": {
14
+ "type": "git",
15
+ "url": "https://github.com/alcohol/iso3166.git",
16
+ "reference": "15d22e0c37f17ca448cf866a388d8e5b1e5f4cf1"
17
+ },
18
+ "dist": {
19
+ "type": "zip",
20
+ "url": "https://api.github.com/repos/alcohol/iso3166/zipball/15d22e0c37f17ca448cf866a388d8e5b1e5f4cf1",
21
+ "reference": "15d22e0c37f17ca448cf866a388d8e5b1e5f4cf1",
22
+ "shasum": ""
23
+ },
24
+ "require": {
25
+ "php": ">=5.4"
26
+ },
27
+ "require-dev": {
28
+ "phpunit/php-invoker": "@stable",
29
+ "phpunit/phpunit": "~4.6"
30
+ },
31
+ "type": "library",
32
+ "extra": {
33
+ "branch-alias": {
34
+ "dev-master": "3.x-dev"
35
+ }
36
+ },
37
+ "autoload": {
38
+ "psr-4": {
39
+ "Alcohol\\": "."
40
+ }
41
+ },
42
+ "notification-url": "https://packagist.org/downloads/",
43
+ "license": [
44
+ "MIT"
45
+ ],
46
+ "authors": [
47
+ {
48
+ "name": "Rob Bast",
49
+ "email": "rob.bast@gmail.com"
50
+ }
51
+ ],
52
+ "description": "ISO 3166-1 PHP Library",
53
+ "homepage": "http://alcohol.github.io/iso3166/",
54
+ "keywords": [
55
+ "3166",
56
+ "3166-1",
57
+ "ISO 3166",
58
+ "countries",
59
+ "iso",
60
+ "library"
61
+ ],
62
+ "abandoned": "league/iso3166",
63
+ "time": "2015-09-04 14:14:03"
64
+ },
65
+ {
66
+ "name": "beberlei/assert",
67
+ "version": "v2.6.6",
68
+ "source": {
69
+ "type": "git",
70
+ "url": "https://github.com/beberlei/assert.git",
71
+ "reference": "f567e3e4bce5419bccb9e9b1faf8d4ca9b2f5055"
72
+ },
73
+ "dist": {
74
+ "type": "zip",
75
+ "url": "https://api.github.com/repos/beberlei/assert/zipball/f567e3e4bce5419bccb9e9b1faf8d4ca9b2f5055",
76
+ "reference": "f567e3e4bce5419bccb9e9b1faf8d4ca9b2f5055",
77
+ "shasum": ""
78
+ },
79
+ "require": {
80
+ "ext-mbstring": "*",
81
+ "php": ">=5.3"
82
+ },
83
+ "require-dev": {
84
+ "friendsofphp/php-cs-fixer": "2.0.0-alpha",
85
+ "phpunit/phpunit": "@stable"
86
+ },
87
+ "type": "library",
88
+ "autoload": {
89
+ "psr-0": {
90
+ "Assert": "lib/"
91
+ },
92
+ "files": [
93
+ "lib/Assert/functions.php"
94
+ ]
95
+ },
96
+ "notification-url": "https://packagist.org/downloads/",
97
+ "license": [
98
+ "BSD-2-Clause"
99
+ ],
100
+ "authors": [
101
+ {
102
+ "name": "Benjamin Eberlei",
103
+ "email": "kontakt@beberlei.de",
104
+ "role": "Lead Developer"
105
+ },
106
+ {
107
+ "name": "Richard Quadling",
108
+ "email": "rquadling@gmail.com",
109
+ "role": "Collaborator"
110
+ }
111
+ ],
112
+ "description": "Thin assertion library for input validation in business models.",
113
+ "keywords": [
114
+ "assert",
115
+ "assertion",
116
+ "validation"
117
+ ],
118
+ "time": "2016-10-31 12:09:54"
119
+ },
120
+ {
121
+ "name": "guzzlehttp/guzzle",
122
+ "version": "5.3.1",
123
+ "source": {
124
+ "type": "git",
125
+ "url": "https://github.com/guzzle/guzzle.git",
126
+ "reference": "70f1fa53b71c4647bf2762c09068a95f77e12fb8"
127
+ },
128
+ "dist": {
129
+ "type": "zip",
130
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/70f1fa53b71c4647bf2762c09068a95f77e12fb8",
131
+ "reference": "70f1fa53b71c4647bf2762c09068a95f77e12fb8",
132
+ "shasum": ""
133
+ },
134
+ "require": {
135
+ "guzzlehttp/ringphp": "^1.1",
136
+ "php": ">=5.4.0"
137
+ },
138
+ "require-dev": {
139
+ "ext-curl": "*",
140
+ "phpunit/phpunit": "^4.0"
141
+ },
142
+ "type": "library",
143
+ "autoload": {
144
+ "psr-4": {
145
+ "GuzzleHttp\\": "src/"
146
+ }
147
+ },
148
+ "notification-url": "https://packagist.org/downloads/",
149
+ "license": [
150
+ "MIT"
151
+ ],
152
+ "authors": [
153
+ {
154
+ "name": "Michael Dowling",
155
+ "email": "mtdowling@gmail.com",
156
+ "homepage": "https://github.com/mtdowling"
157
+ }
158
+ ],
159
+ "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
160
+ "homepage": "http://guzzlephp.org/",
161
+ "keywords": [
162
+ "client",
163
+ "curl",
164
+ "framework",
165
+ "http",
166
+ "http client",
167
+ "rest",
168
+ "web service"
169
+ ],
170
+ "time": "2016-07-15 19:28:39"
171
+ },
172
+ {
173
+ "name": "guzzlehttp/ringphp",
174
+ "version": "1.1.0",
175
+ "source": {
176
+ "type": "git",
177
+ "url": "https://github.com/guzzle/RingPHP.git",
178
+ "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b"
179
+ },
180
+ "dist": {
181
+ "type": "zip",
182
+ "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
183
+ "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
184
+ "shasum": ""
185
+ },
186
+ "require": {
187
+ "guzzlehttp/streams": "~3.0",
188
+ "php": ">=5.4.0",
189
+ "react/promise": "~2.0"
190
+ },
191
+ "require-dev": {
192
+ "ext-curl": "*",
193
+ "phpunit/phpunit": "~4.0"
194
+ },
195
+ "suggest": {
196
+ "ext-curl": "Guzzle will use specific adapters if cURL is present"
197
+ },
198
+ "type": "library",
199
+ "extra": {
200
+ "branch-alias": {
201
+ "dev-master": "1.1-dev"
202
+ }
203
+ },
204
+ "autoload": {
205
+ "psr-4": {
206
+ "GuzzleHttp\\Ring\\": "src/"
207
+ }
208
+ },
209
+ "notification-url": "https://packagist.org/downloads/",
210
+ "license": [
211
+ "MIT"
212
+ ],
213
+ "authors": [
214
+ {
215
+ "name": "Michael Dowling",
216
+ "email": "mtdowling@gmail.com",
217
+ "homepage": "https://github.com/mtdowling"
218
+ }
219
+ ],
220
+ "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function.",
221
+ "time": "2015-05-20 03:37:09"
222
+ },
223
+ {
224
+ "name": "guzzlehttp/streams",
225
+ "version": "3.0.0",
226
+ "source": {
227
+ "type": "git",
228
+ "url": "https://github.com/guzzle/streams.git",
229
+ "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5"
230
+ },
231
+ "dist": {
232
+ "type": "zip",
233
+ "url": "https://api.github.com/repos/guzzle/streams/zipball/47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
234
+ "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
235
+ "shasum": ""
236
+ },
237
+ "require": {
238
+ "php": ">=5.4.0"
239
+ },
240
+ "require-dev": {
241
+ "phpunit/phpunit": "~4.0"
242
+ },
243
+ "type": "library",
244
+ "extra": {
245
+ "branch-alias": {
246
+ "dev-master": "3.0-dev"
247
+ }
248
+ },
249
+ "autoload": {
250
+ "psr-4": {
251
+ "GuzzleHttp\\Stream\\": "src/"
252
+ }
253
+ },
254
+ "notification-url": "https://packagist.org/downloads/",
255
+ "license": [
256
+ "MIT"
257
+ ],
258
+ "authors": [
259
+ {
260
+ "name": "Michael Dowling",
261
+ "email": "mtdowling@gmail.com",
262
+ "homepage": "https://github.com/mtdowling"
263
+ }
264
+ ],
265
+ "description": "Provides a simple abstraction over streams of data",
266
+ "homepage": "http://guzzlephp.org/",
267
+ "keywords": [
268
+ "Guzzle",
269
+ "stream"
270
+ ],
271
+ "time": "2014-10-12 19:18:40"
272
+ },
273
+ {
274
+ "name": "mathiasverraes/classfunctions",
275
+ "version": "1.1.0",
276
+ "source": {
277
+ "type": "git",
278
+ "url": "https://github.com/mathiasverraes/classfunctions.git",
279
+ "reference": "f0f8dadf1ab4a71e84dede2adb1ed8a34cef7c34"
280
+ },
281
+ "dist": {
282
+ "type": "zip",
283
+ "url": "https://api.github.com/repos/mathiasverraes/classfunctions/zipball/f0f8dadf1ab4a71e84dede2adb1ed8a34cef7c34",
284
+ "reference": "f0f8dadf1ab4a71e84dede2adb1ed8a34cef7c34",
285
+ "shasum": ""
286
+ },
287
+ "require": {
288
+ "php": ">=5.4"
289
+ },
290
+ "require-dev": {
291
+ "phpunit/phpunit": "4.*"
292
+ },
293
+ "type": "library",
294
+ "extra": {
295
+ "branch-alias": {
296
+ "dev-master": "1.1-dev"
297
+ }
298
+ },
299
+ "autoload": {
300
+ "psr-0": {
301
+ "Verraes": "src"
302
+ }
303
+ },
304
+ "notification-url": "https://packagist.org/downloads/",
305
+ "license": [
306
+ "MIT"
307
+ ],
308
+ "authors": [
309
+ {
310
+ "name": "Mathias Verraes",
311
+ "email": "mathias@verraes.net",
312
+ "homepage": "http://verraes.net",
313
+ "role": "Developer"
314
+ }
315
+ ],
316
+ "description": "Functions to manipulate class names",
317
+ "homepage": "http://verraes.net",
318
+ "keywords": [
319
+ "classes",
320
+ "utilities"
321
+ ],
322
+ "time": "2014-07-28 14:39:20"
323
+ },
324
+ {
325
+ "name": "nesbot/carbon",
326
+ "version": "1.21.0",
327
+ "source": {
328
+ "type": "git",
329
+ "url": "https://github.com/briannesbitt/Carbon.git",
330
+ "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7"
331
+ },
332
+ "dist": {
333
+ "type": "zip",
334
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7b08ec6f75791e130012f206e3f7b0e76e18e3d7",
335
+ "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7",
336
+ "shasum": ""
337
+ },
338
+ "require": {
339
+ "php": ">=5.3.0",
340
+ "symfony/translation": "~2.6|~3.0"
341
+ },
342
+ "require-dev": {
343
+ "phpunit/phpunit": "~4.0|~5.0"
344
+ },
345
+ "type": "library",
346
+ "autoload": {
347
+ "psr-4": {
348
+ "Carbon\\": "src/Carbon/"
349
+ }
350
+ },
351
+ "notification-url": "https://packagist.org/downloads/",
352
+ "license": [
353
+ "MIT"
354
+ ],
355
+ "authors": [
356
+ {
357
+ "name": "Brian Nesbitt",
358
+ "email": "brian@nesbot.com",
359
+ "homepage": "http://nesbot.com"
360
+ }
361
+ ],
362
+ "description": "A simple API extension for DateTime.",
363
+ "homepage": "http://carbon.nesbot.com",
364
+ "keywords": [
365
+ "date",
366
+ "datetime",
367
+ "time"
368
+ ],
369
+ "time": "2015-11-04 20:07:17"
370
+ },
371
+ {
372
+ "name": "paragonie/random_compat",
373
+ "version": "v2.0.4",
374
+ "source": {
375
+ "type": "git",
376
+ "url": "https://github.com/paragonie/random_compat.git",
377
+ "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e"
378
+ },
379
+ "dist": {
380
+ "type": "zip",
381
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
382
+ "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
383
+ "shasum": ""
384
+ },
385
+ "require": {
386
+ "php": ">=5.2.0"
387
+ },
388
+ "require-dev": {
389
+ "phpunit/phpunit": "4.*|5.*"
390
+ },
391
+ "suggest": {
392
+ "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
393
+ },
394
+ "type": "library",
395
+ "autoload": {
396
+ "files": [
397
+ "lib/random.php"
398
+ ]
399
+ },
400
+ "notification-url": "https://packagist.org/downloads/",
401
+ "license": [
402
+ "MIT"
403
+ ],
404
+ "authors": [
405
+ {
406
+ "name": "Paragon Initiative Enterprises",
407
+ "email": "security@paragonie.com",
408
+ "homepage": "https://paragonie.com"
409
+ }
410
+ ],
411
+ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
412
+ "keywords": [
413
+ "csprng",
414
+ "pseudorandom",
415
+ "random"
416
+ ],
417
+ "time": "2016-11-07 23:38:38"
418
+ },
419
+ {
420
+ "name": "ramsey/uuid",
421
+ "version": "2.9.0",
422
+ "source": {
423
+ "type": "git",
424
+ "url": "https://github.com/ramsey/uuid.git",
425
+ "reference": "b2ef4dd9584268d73f92f752a62bc24cd534dc9a"
426
+ },
427
+ "dist": {
428
+ "type": "zip",
429
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/b2ef4dd9584268d73f92f752a62bc24cd534dc9a",
430
+ "reference": "b2ef4dd9584268d73f92f752a62bc24cd534dc9a",
431
+ "shasum": ""
432
+ },
433
+ "require": {
434
+ "paragonie/random_compat": "^1.0|^2.0",
435
+ "php": ">=5.3.3"
436
+ },
437
+ "replace": {
438
+ "rhumsaa/uuid": "self.version"
439
+ },
440
+ "require-dev": {
441
+ "doctrine/dbal": ">=2.3",
442
+ "jakub-onderka/php-parallel-lint": "^0.9.0",
443
+ "moontoast/math": "~1.1",
444
+ "phpunit/phpunit": "~4.1|~5.0",
445
+ "satooshi/php-coveralls": "~0.6",
446
+ "squizlabs/php_codesniffer": "^2.3",
447
+ "symfony/console": "~2.3|~3.0"
448
+ },
449
+ "suggest": {
450
+ "doctrine/dbal": "Allow the use of a UUID as doctrine field type.",
451
+ "moontoast/math": "Support for converting UUID to 128-bit integer (in string form).",
452
+ "symfony/console": "Support for use of the bin/uuid command line tool."
453
+ },
454
+ "bin": [
455
+ "bin/uuid"
456
+ ],
457
+ "type": "library",
458
+ "autoload": {
459
+ "psr-4": {
460
+ "Rhumsaa\\Uuid\\": "src/"
461
+ }
462
+ },
463
+ "notification-url": "https://packagist.org/downloads/",
464
+ "license": [
465
+ "MIT"
466
+ ],
467
+ "authors": [
468
+ {
469
+ "name": "Marijn Huizendveld",
470
+ "email": "marijn.huizendveld@gmail.com"
471
+ },
472
+ {
473
+ "name": "Ben Ramsey",
474
+ "homepage": "http://benramsey.com"
475
+ }
476
+ ],
477
+ "description": "A PHP 5.3+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
478
+ "homepage": "https://github.com/ramsey/uuid",
479
+ "keywords": [
480
+ "guid",
481
+ "identifier",
482
+ "uuid"
483
+ ],
484
+ "time": "2016-03-22 18:20:19"
485
+ },
486
+ {
487
+ "name": "react/promise",
488
+ "version": "v2.4.1",
489
+ "source": {
490
+ "type": "git",
491
+ "url": "https://github.com/reactphp/promise.git",
492
+ "reference": "8025426794f1944de806618671d4fa476dc7626f"
493
+ },
494
+ "dist": {
495
+ "type": "zip",
496
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/8025426794f1944de806618671d4fa476dc7626f",
497
+ "reference": "8025426794f1944de806618671d4fa476dc7626f",
498
+ "shasum": ""
499
+ },
500
+ "require": {
501
+ "php": ">=5.4.0"
502
+ },
503
+ "type": "library",
504
+ "extra": {
505
+ "branch-alias": {
506
+ "dev-master": "2.0-dev"
507
+ }
508
+ },
509
+ "autoload": {
510
+ "psr-4": {
511
+ "React\\Promise\\": "src/"
512
+ },
513
+ "files": [
514
+ "src/functions_include.php"
515
+ ]
516
+ },
517
+ "notification-url": "https://packagist.org/downloads/",
518
+ "license": [
519
+ "MIT"
520
+ ],
521
+ "authors": [
522
+ {
523
+ "name": "Jan Sorgalla",
524
+ "email": "jsorgalla@gmail.com"
525
+ }
526
+ ],
527
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
528
+ "time": "2016-05-03 17:50:52"
529
+ },
530
+ {
531
+ "name": "ronanguilloux/isocodes",
532
+ "version": "1.2.0",
533
+ "source": {
534
+ "type": "git",
535
+ "url": "https://github.com/ronanguilloux/IsoCodes.git",
536
+ "reference": "08aabd230ea963cba3aa5338319b1bffacbc0285"
537
+ },
538
+ "dist": {
539
+ "type": "zip",
540
+ "url": "https://api.github.com/repos/ronanguilloux/IsoCodes/zipball/08aabd230ea963cba3aa5338319b1bffacbc0285",
541
+ "reference": "08aabd230ea963cba3aa5338319b1bffacbc0285",
542
+ "shasum": ""
543
+ },
544
+ "require": {
545
+ "ext-bcmath": "*",
546
+ "php": ">=5.4.0"
547
+ },
548
+ "require-dev": {
549
+ "fabpot/php-cs-fixer": "@stable",
550
+ "pdepend/pdepend": "2.0.*",
551
+ "phploc/phploc": "*",
552
+ "phpmd/phpmd": "@stable",
553
+ "phpunit/phpunit": "~4.7",
554
+ "satooshi/php-coveralls": "dev-master",
555
+ "sebastian/phpcpd": "*",
556
+ "squizlabs/php_codesniffer": "2.0.x-dev"
557
+ },
558
+ "suggest": {
559
+ "gourmet/validation": "For CakePHP 3 integration",
560
+ "sllh/iso-codes-validator": "For Symfony or Silex integration with ease"
561
+ },
562
+ "type": "library",
563
+ "extra": {
564
+ "branch-alias": {
565
+ "dev-master": "1.2.x-dev"
566
+ }
567
+ },
568
+ "autoload": {
569
+ "psr-0": {
570
+ "IsoCodes": "src/"
571
+ }
572
+ },
573
+ "notification-url": "https://packagist.org/downloads/",
574
+ "license": [
575
+ "GPL-3.0+"
576
+ ],
577
+ "authors": [
578
+ {
579
+ "name": "Ronan Guilloux",
580
+ "email": "ronan.guilloux@gmail.com",
581
+ "homepage": "http://github.com/ronanguilloux",
582
+ "role": "Developer"
583
+ }
584
+ ],
585
+ "description": "PHP library, validating various ISO codes, such as IBAN, SWIFT/BIC, BBAN, RIB, Credit Card number, INSEE, VAT, NSS, Siren, Siret, Ssn, NINO, Zipcode (US, Canada, France...), ISBN & EAN13, Spanish CIF & NIF",
586
+ "homepage": "https://github.com/ronanguilloux/IsoCodes",
587
+ "keywords": [
588
+ "BBAN",
589
+ "BIC",
590
+ "CIF",
591
+ "Credit Card number",
592
+ "EAN13",
593
+ "IBAN",
594
+ "INSEE",
595
+ "ISBN",
596
+ "ISO codes",
597
+ "NIF",
598
+ "NINO",
599
+ "NSS",
600
+ "RIB",
601
+ "Siren",
602
+ "Siret",
603
+ "Ssn",
604
+ "swift",
605
+ "vat",
606
+ "zipcode"
607
+ ],
608
+ "time": "2015-06-22 19:37:41"
609
+ },
610
+ {
611
+ "name": "symfony/polyfill-mbstring",
612
+ "version": "v1.2.0",
613
+ "source": {
614
+ "type": "git",
615
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
616
+ "reference": "dff51f72b0706335131b00a7f49606168c582594"
617
+ },
618
+ "dist": {
619
+ "type": "zip",
620
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",
621
+ "reference": "dff51f72b0706335131b00a7f49606168c582594",
622
+ "shasum": ""
623
+ },
624
+ "require": {
625
+ "php": ">=5.3.3"
626
+ },
627
+ "suggest": {
628
+ "ext-mbstring": "For best performance"
629
+ },
630
+ "type": "library",
631
+ "extra": {
632
+ "branch-alias": {
633
+ "dev-master": "1.2-dev"
634
+ }
635
+ },
636
+ "autoload": {
637
+ "psr-4": {
638
+ "Symfony\\Polyfill\\Mbstring\\": ""
639
+ },
640
+ "files": [
641
+ "bootstrap.php"
642
+ ]
643
+ },
644
+ "notification-url": "https://packagist.org/downloads/",
645
+ "license": [
646
+ "MIT"
647
+ ],
648
+ "authors": [
649
+ {
650
+ "name": "Nicolas Grekas",
651
+ "email": "p@tchwork.com"
652
+ },
653
+ {
654
+ "name": "Symfony Community",
655
+ "homepage": "https://symfony.com/contributors"
656
+ }
657
+ ],
658
+ "description": "Symfony polyfill for the Mbstring extension",
659
+ "homepage": "https://symfony.com",
660
+ "keywords": [
661
+ "compatibility",
662
+ "mbstring",
663
+ "polyfill",
664
+ "portable",
665
+ "shim"
666
+ ],
667
+ "time": "2016-05-18 14:26:46"
668
+ },
669
+ {
670
+ "name": "symfony/translation",
671
+ "version": "v2.8.13",
672
+ "source": {
673
+ "type": "git",
674
+ "url": "https://github.com/symfony/translation.git",
675
+ "reference": "cca6ff892355876534b01a927f789bac9601c935"
676
+ },
677
+ "dist": {
678
+ "type": "zip",
679
+ "url": "https://api.github.com/repos/symfony/translation/zipball/cca6ff892355876534b01a927f789bac9601c935",
680
+ "reference": "cca6ff892355876534b01a927f789bac9601c935",
681
+ "shasum": ""
682
+ },
683
+ "require": {
684
+ "php": ">=5.3.9",
685
+ "symfony/polyfill-mbstring": "~1.0"
686
+ },
687
+ "conflict": {
688
+ "symfony/config": "<2.7"
689
+ },
690
+ "require-dev": {
691
+ "psr/log": "~1.0",
692
+ "symfony/config": "~2.8",
693
+ "symfony/intl": "~2.4|~3.0.0",
694
+ "symfony/yaml": "~2.2|~3.0.0"
695
+ },
696
+ "suggest": {
697
+ "psr/log": "To use logging capability in translator",
698
+ "symfony/config": "",
699
+ "symfony/yaml": ""
700
+ },
701
+ "type": "library",
702
+ "extra": {
703
+ "branch-alias": {
704
+ "dev-master": "2.8-dev"
705
+ }
706
+ },
707
+ "autoload": {
708
+ "psr-4": {
709
+ "Symfony\\Component\\Translation\\": ""
710
+ },
711
+ "exclude-from-classmap": [
712
+ "/Tests/"
713
+ ]
714
+ },
715
+ "notification-url": "https://packagist.org/downloads/",
716
+ "license": [
717
+ "MIT"
718
+ ],
719
+ "authors": [
720
+ {
721
+ "name": "Fabien Potencier",
722
+ "email": "fabien@symfony.com"
723
+ },
724
+ {
725
+ "name": "Symfony Community",
726
+ "homepage": "https://symfony.com/contributors"
727
+ }
728
+ ],
729
+ "description": "Symfony Translation Component",
730
+ "homepage": "https://symfony.com",
731
+ "time": "2016-10-18 04:28:30"
732
+ },
733
+ {
734
+ "name": "symfony/yaml",
735
+ "version": "v2.8.13",
736
+ "source": {
737
+ "type": "git",
738
+ "url": "https://github.com/symfony/yaml.git",
739
+ "reference": "396784cd06b91f3db576f248f2402d547a077787"
740
+ },
741
+ "dist": {
742
+ "type": "zip",
743
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/396784cd06b91f3db576f248f2402d547a077787",
744
+ "reference": "396784cd06b91f3db576f248f2402d547a077787",
745
+ "shasum": ""
746
+ },
747
+ "require": {
748
+ "php": ">=5.3.9"
749
+ },
750
+ "type": "library",
751
+ "extra": {
752
+ "branch-alias": {
753
+ "dev-master": "2.8-dev"
754
+ }
755
+ },
756
+ "autoload": {
757
+ "psr-4": {
758
+ "Symfony\\Component\\Yaml\\": ""
759
+ },
760
+ "exclude-from-classmap": [
761
+ "/Tests/"
762
+ ]
763
+ },
764
+ "notification-url": "https://packagist.org/downloads/",
765
+ "license": [
766
+ "MIT"
767
+ ],
768
+ "authors": [
769
+ {
770
+ "name": "Fabien Potencier",
771
+ "email": "fabien@symfony.com"
772
+ },
773
+ {
774
+ "name": "Symfony Community",
775
+ "homepage": "https://symfony.com/contributors"
776
+ }
777
+ ],
778
+ "description": "Symfony Yaml Component",
779
+ "homepage": "https://symfony.com",
780
+ "time": "2016-10-21 20:59:10"
781
+ }
782
+ ],
783
+ "packages-dev": [
784
+ {
785
+ "name": "doctrine/instantiator",
786
+ "version": "1.0.5",
787
+ "source": {
788
+ "type": "git",
789
+ "url": "https://github.com/doctrine/instantiator.git",
790
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
791
+ },
792
+ "dist": {
793
+ "type": "zip",
794
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
795
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
796
+ "shasum": ""
797
+ },
798
+ "require": {
799
+ "php": ">=5.3,<8.0-DEV"
800
+ },
801
+ "require-dev": {
802
+ "athletic/athletic": "~0.1.8",
803
+ "ext-pdo": "*",
804
+ "ext-phar": "*",
805
+ "phpunit/phpunit": "~4.0",
806
+ "squizlabs/php_codesniffer": "~2.0"
807
+ },
808
+ "type": "library",
809
+ "extra": {
810
+ "branch-alias": {
811
+ "dev-master": "1.0.x-dev"
812
+ }
813
+ },
814
+ "autoload": {
815
+ "psr-4": {
816
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
817
+ }
818
+ },
819
+ "notification-url": "https://packagist.org/downloads/",
820
+ "license": [
821
+ "MIT"
822
+ ],
823
+ "authors": [
824
+ {
825
+ "name": "Marco Pivetta",
826
+ "email": "ocramius@gmail.com",
827
+ "homepage": "http://ocramius.github.com/"
828
+ }
829
+ ],
830
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
831
+ "homepage": "https://github.com/doctrine/instantiator",
832
+ "keywords": [
833
+ "constructor",
834
+ "instantiate"
835
+ ],
836
+ "time": "2015-06-14 21:17:01"
837
+ },
838
+ {
839
+ "name": "hamcrest/hamcrest-php",
840
+ "version": "v1.2.2",
841
+ "source": {
842
+ "type": "git",
843
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
844
+ "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c"
845
+ },
846
+ "dist": {
847
+ "type": "zip",
848
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c",
849
+ "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c",
850
+ "shasum": ""
851
+ },
852
+ "require": {
853
+ "php": ">=5.3.2"
854
+ },
855
+ "replace": {
856
+ "cordoval/hamcrest-php": "*",
857
+ "davedevelopment/hamcrest-php": "*",
858
+ "kodova/hamcrest-php": "*"
859
+ },
860
+ "require-dev": {
861
+ "phpunit/php-file-iterator": "1.3.3",
862
+ "satooshi/php-coveralls": "dev-master"
863
+ },
864
+ "type": "library",
865
+ "autoload": {
866
+ "classmap": [
867
+ "hamcrest"
868
+ ],
869
+ "files": [
870
+ "hamcrest/Hamcrest.php"
871
+ ]
872
+ },
873
+ "notification-url": "https://packagist.org/downloads/",
874
+ "license": [
875
+ "BSD"
876
+ ],
877
+ "description": "This is the PHP port of Hamcrest Matchers",
878
+ "keywords": [
879
+ "test"
880
+ ],
881
+ "time": "2015-05-11 14:41:42"
882
+ },
883
+ {
884
+ "name": "mockery/mockery",
885
+ "version": "0.9.5",
886
+ "source": {
887
+ "type": "git",
888
+ "url": "https://github.com/padraic/mockery.git",
889
+ "reference": "4db079511a283e5aba1b3c2fb19037c645e70fc2"
890
+ },
891
+ "dist": {
892
+ "type": "zip",
893
+ "url": "https://api.github.com/repos/padraic/mockery/zipball/4db079511a283e5aba1b3c2fb19037c645e70fc2",
894
+ "reference": "4db079511a283e5aba1b3c2fb19037c645e70fc2",
895
+ "shasum": ""
896
+ },
897
+ "require": {
898
+ "hamcrest/hamcrest-php": "~1.1",
899
+ "lib-pcre": ">=7.0",
900
+ "php": ">=5.3.2"
901
+ },
902
+ "require-dev": {
903
+ "phpunit/phpunit": "~4.0"
904
+ },
905
+ "type": "library",
906
+ "extra": {
907
+ "branch-alias": {
908
+ "dev-master": "0.9.x-dev"
909
+ }
910
+ },
911
+ "autoload": {
912
+ "psr-0": {
913
+ "Mockery": "library/"
914
+ }
915
+ },
916
+ "notification-url": "https://packagist.org/downloads/",
917
+ "license": [
918
+ "BSD-3-Clause"
919
+ ],
920
+ "authors": [
921
+ {
922
+ "name": "Pádraic Brady",
923
+ "email": "padraic.brady@gmail.com",
924
+ "homepage": "http://blog.astrumfutura.com"
925
+ },
926
+ {
927
+ "name": "Dave Marshall",
928
+ "email": "dave.marshall@atstsolutions.co.uk",
929
+ "homepage": "http://davedevelopment.co.uk"
930
+ }
931
+ ],
932
+ "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.",
933
+ "homepage": "http://github.com/padraic/mockery",
934
+ "keywords": [
935
+ "BDD",
936
+ "TDD",
937
+ "library",
938
+ "mock",
939
+ "mock objects",
940
+ "mockery",
941
+ "stub",
942
+ "test",
943
+ "test double",
944
+ "testing"
945
+ ],
946
+ "time": "2016-05-22 21:52:33"
947
+ },
948
+ {
949
+ "name": "phpdocumentor/reflection-common",
950
+ "version": "1.0",
951
+ "source": {
952
+ "type": "git",
953
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
954
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
955
+ },
956
+ "dist": {
957
+ "type": "zip",
958
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
959
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
960
+ "shasum": ""
961
+ },
962
+ "require": {
963
+ "php": ">=5.5"
964
+ },
965
+ "require-dev": {
966
+ "phpunit/phpunit": "^4.6"
967
+ },
968
+ "type": "library",
969
+ "extra": {
970
+ "branch-alias": {
971
+ "dev-master": "1.0.x-dev"
972
+ }
973
+ },
974
+ "autoload": {
975
+ "psr-4": {
976
+ "phpDocumentor\\Reflection\\": [
977
+ "src"
978
+ ]
979
+ }
980
+ },
981
+ "notification-url": "https://packagist.org/downloads/",
982
+ "license": [
983
+ "MIT"
984
+ ],
985
+ "authors": [
986
+ {
987
+ "name": "Jaap van Otterdijk",
988
+ "email": "opensource@ijaap.nl"
989
+ }
990
+ ],
991
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
992
+ "homepage": "http://www.phpdoc.org",
993
+ "keywords": [
994
+ "FQSEN",
995
+ "phpDocumentor",
996
+ "phpdoc",
997
+ "reflection",
998
+ "static analysis"
999
+ ],
1000
+ "time": "2015-12-27 11:43:31"
1001
+ },
1002
+ {
1003
+ "name": "phpdocumentor/reflection-docblock",
1004
+ "version": "3.1.1",
1005
+ "source": {
1006
+ "type": "git",
1007
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
1008
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
1009
+ },
1010
+ "dist": {
1011
+ "type": "zip",
1012
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
1013
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
1014
+ "shasum": ""
1015
+ },
1016
+ "require": {
1017
+ "php": ">=5.5",
1018
+ "phpdocumentor/reflection-common": "^1.0@dev",
1019
+ "phpdocumentor/type-resolver": "^0.2.0",
1020
+ "webmozart/assert": "^1.0"
1021
+ },
1022
+ "require-dev": {
1023
+ "mockery/mockery": "^0.9.4",
1024
+ "phpunit/phpunit": "^4.4"
1025
+ },
1026
+ "type": "library",
1027
+ "autoload": {
1028
+ "psr-4": {
1029
+ "phpDocumentor\\Reflection\\": [
1030
+ "src/"
1031
+ ]
1032
+ }
1033
+ },
1034
+ "notification-url": "https://packagist.org/downloads/",
1035
+ "license": [
1036
+ "MIT"
1037
+ ],
1038
+ "authors": [
1039
+ {
1040
+ "name": "Mike van Riel",
1041
+ "email": "me@mikevanriel.com"
1042
+ }
1043
+ ],
1044
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
1045
+ "time": "2016-09-30 07:12:33"
1046
+ },
1047
+ {
1048
+ "name": "phpdocumentor/type-resolver",
1049
+ "version": "0.2",
1050
+ "source": {
1051
+ "type": "git",
1052
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
1053
+ "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443"
1054
+ },
1055
+ "dist": {
1056
+ "type": "zip",
1057
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443",
1058
+ "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443",
1059
+ "shasum": ""
1060
+ },
1061
+ "require": {
1062
+ "php": ">=5.5",
1063
+ "phpdocumentor/reflection-common": "^1.0"
1064
+ },
1065
+ "require-dev": {
1066
+ "mockery/mockery": "^0.9.4",
1067
+ "phpunit/phpunit": "^5.2||^4.8.24"
1068
+ },
1069
+ "type": "library",
1070
+ "extra": {
1071
+ "branch-alias": {
1072
+ "dev-master": "1.0.x-dev"
1073
+ }
1074
+ },
1075
+ "autoload": {
1076
+ "psr-4": {
1077
+ "phpDocumentor\\Reflection\\": [
1078
+ "src/"
1079
+ ]
1080
+ }
1081
+ },
1082
+ "notification-url": "https://packagist.org/downloads/",
1083
+ "license": [
1084
+ "MIT"
1085
+ ],
1086
+ "authors": [
1087
+ {
1088
+ "name": "Mike van Riel",
1089
+ "email": "me@mikevanriel.com"
1090
+ }
1091
+ ],
1092
+ "time": "2016-06-10 07:14:17"
1093
+ },
1094
+ {
1095
+ "name": "phpspec/prophecy",
1096
+ "version": "v1.6.1",
1097
+ "source": {
1098
+ "type": "git",
1099
+ "url": "https://github.com/phpspec/prophecy.git",
1100
+ "reference": "58a8137754bc24b25740d4281399a4a3596058e0"
1101
+ },
1102
+ "dist": {
1103
+ "type": "zip",
1104
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0",
1105
+ "reference": "58a8137754bc24b25740d4281399a4a3596058e0",
1106
+ "shasum": ""
1107
+ },
1108
+ "require": {
1109
+ "doctrine/instantiator": "^1.0.2",
1110
+ "php": "^5.3|^7.0",
1111
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
1112
+ "sebastian/comparator": "^1.1",
1113
+ "sebastian/recursion-context": "^1.0"
1114
+ },
1115
+ "require-dev": {
1116
+ "phpspec/phpspec": "^2.0"
1117
+ },
1118
+ "type": "library",
1119
+ "extra": {
1120
+ "branch-alias": {
1121
+ "dev-master": "1.6.x-dev"
1122
+ }
1123
+ },
1124
+ "autoload": {
1125
+ "psr-0": {
1126
+ "Prophecy\\": "src/"
1127
+ }
1128
+ },
1129
+ "notification-url": "https://packagist.org/downloads/",
1130
+ "license": [
1131
+ "MIT"
1132
+ ],
1133
+ "authors": [
1134
+ {
1135
+ "name": "Konstantin Kudryashov",
1136
+ "email": "ever.zet@gmail.com",
1137
+ "homepage": "http://everzet.com"
1138
+ },
1139
+ {
1140
+ "name": "Marcello Duarte",
1141
+ "email": "marcello.duarte@gmail.com"
1142
+ }
1143
+ ],
1144
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
1145
+ "homepage": "https://github.com/phpspec/prophecy",
1146
+ "keywords": [
1147
+ "Double",
1148
+ "Dummy",
1149
+ "fake",
1150
+ "mock",
1151
+ "spy",
1152
+ "stub"
1153
+ ],
1154
+ "time": "2016-06-07 08:13:47"
1155
+ },
1156
+ {
1157
+ "name": "phpunit/php-code-coverage",
1158
+ "version": "2.2.4",
1159
+ "source": {
1160
+ "type": "git",
1161
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1162
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
1163
+ },
1164
+ "dist": {
1165
+ "type": "zip",
1166
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
1167
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
1168
+ "shasum": ""
1169
+ },
1170
+ "require": {
1171
+ "php": ">=5.3.3",
1172
+ "phpunit/php-file-iterator": "~1.3",
1173
+ "phpunit/php-text-template": "~1.2",
1174
+ "phpunit/php-token-stream": "~1.3",
1175
+ "sebastian/environment": "^1.3.2",
1176
+ "sebastian/version": "~1.0"
1177
+ },
1178
+ "require-dev": {
1179
+ "ext-xdebug": ">=2.1.4",
1180
+ "phpunit/phpunit": "~4"
1181
+ },
1182
+ "suggest": {
1183
+ "ext-dom": "*",
1184
+ "ext-xdebug": ">=2.2.1",
1185
+ "ext-xmlwriter": "*"
1186
+ },
1187
+ "type": "library",
1188
+ "extra": {
1189
+ "branch-alias": {
1190
+ "dev-master": "2.2.x-dev"
1191
+ }
1192
+ },
1193
+ "autoload": {
1194
+ "classmap": [
1195
+ "src/"
1196
+ ]
1197
+ },
1198
+ "notification-url": "https://packagist.org/downloads/",
1199
+ "license": [
1200
+ "BSD-3-Clause"
1201
+ ],
1202
+ "authors": [
1203
+ {
1204
+ "name": "Sebastian Bergmann",
1205
+ "email": "sb@sebastian-bergmann.de",
1206
+ "role": "lead"
1207
+ }
1208
+ ],
1209
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1210
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1211
+ "keywords": [
1212
+ "coverage",
1213
+ "testing",
1214
+ "xunit"
1215
+ ],
1216
+ "time": "2015-10-06 15:47:00"
1217
+ },
1218
+ {
1219
+ "name": "phpunit/php-file-iterator",
1220
+ "version": "1.4.1",
1221
+ "source": {
1222
+ "type": "git",
1223
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1224
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
1225
+ },
1226
+ "dist": {
1227
+ "type": "zip",
1228
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
1229
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
1230
+ "shasum": ""
1231
+ },
1232
+ "require": {
1233
+ "php": ">=5.3.3"
1234
+ },
1235
+ "type": "library",
1236
+ "extra": {
1237
+ "branch-alias": {
1238
+ "dev-master": "1.4.x-dev"
1239
+ }
1240
+ },
1241
+ "autoload": {
1242
+ "classmap": [
1243
+ "src/"
1244
+ ]
1245
+ },
1246
+ "notification-url": "https://packagist.org/downloads/",
1247
+ "license": [
1248
+ "BSD-3-Clause"
1249
+ ],
1250
+ "authors": [
1251
+ {
1252
+ "name": "Sebastian Bergmann",
1253
+ "email": "sb@sebastian-bergmann.de",
1254
+ "role": "lead"
1255
+ }
1256
+ ],
1257
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1258
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1259
+ "keywords": [
1260
+ "filesystem",
1261
+ "iterator"
1262
+ ],
1263
+ "time": "2015-06-21 13:08:43"
1264
+ },
1265
+ {
1266
+ "name": "phpunit/php-text-template",
1267
+ "version": "1.2.1",
1268
+ "source": {
1269
+ "type": "git",
1270
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
1271
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
1272
+ },
1273
+ "dist": {
1274
+ "type": "zip",
1275
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1276
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1277
+ "shasum": ""
1278
+ },
1279
+ "require": {
1280
+ "php": ">=5.3.3"
1281
+ },
1282
+ "type": "library",
1283
+ "autoload": {
1284
+ "classmap": [
1285
+ "src/"
1286
+ ]
1287
+ },
1288
+ "notification-url": "https://packagist.org/downloads/",
1289
+ "license": [
1290
+ "BSD-3-Clause"
1291
+ ],
1292
+ "authors": [
1293
+ {
1294
+ "name": "Sebastian Bergmann",
1295
+ "email": "sebastian@phpunit.de",
1296
+ "role": "lead"
1297
+ }
1298
+ ],
1299
+ "description": "Simple template engine.",
1300
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1301
+ "keywords": [
1302
+ "template"
1303
+ ],
1304
+ "time": "2015-06-21 13:50:34"
1305
+ },
1306
+ {
1307
+ "name": "phpunit/php-timer",
1308
+ "version": "1.0.8",
1309
+ "source": {
1310
+ "type": "git",
1311
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
1312
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
1313
+ },
1314
+ "dist": {
1315
+ "type": "zip",
1316
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
1317
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
1318
+ "shasum": ""
1319
+ },
1320
+ "require": {
1321
+ "php": ">=5.3.3"
1322
+ },
1323
+ "require-dev": {
1324
+ "phpunit/phpunit": "~4|~5"
1325
+ },
1326
+ "type": "library",
1327
+ "autoload": {
1328
+ "classmap": [
1329
+ "src/"
1330
+ ]
1331
+ },
1332
+ "notification-url": "https://packagist.org/downloads/",
1333
+ "license": [
1334
+ "BSD-3-Clause"
1335
+ ],
1336
+ "authors": [
1337
+ {
1338
+ "name": "Sebastian Bergmann",
1339
+ "email": "sb@sebastian-bergmann.de",
1340
+ "role": "lead"
1341
+ }
1342
+ ],
1343
+ "description": "Utility class for timing",
1344
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
1345
+ "keywords": [
1346
+ "timer"
1347
+ ],
1348
+ "time": "2016-05-12 18:03:57"
1349
+ },
1350
+ {
1351
+ "name": "phpunit/php-token-stream",
1352
+ "version": "1.4.8",
1353
+ "source": {
1354
+ "type": "git",
1355
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
1356
+ "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da"
1357
+ },
1358
+ "dist": {
1359
+ "type": "zip",
1360
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
1361
+ "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
1362
+ "shasum": ""
1363
+ },
1364
+ "require": {
1365
+ "ext-tokenizer": "*",
1366
+ "php": ">=5.3.3"
1367
+ },
1368
+ "require-dev": {
1369
+ "phpunit/phpunit": "~4.2"
1370
+ },
1371
+ "type": "library",
1372
+ "extra": {
1373
+ "branch-alias": {
1374
+ "dev-master": "1.4-dev"
1375
+ }
1376
+ },
1377
+ "autoload": {
1378
+ "classmap": [
1379
+ "src/"
1380
+ ]
1381
+ },
1382
+ "notification-url": "https://packagist.org/downloads/",
1383
+ "license": [
1384
+ "BSD-3-Clause"
1385
+ ],
1386
+ "authors": [
1387
+ {
1388
+ "name": "Sebastian Bergmann",
1389
+ "email": "sebastian@phpunit.de"
1390
+ }
1391
+ ],
1392
+ "description": "Wrapper around PHP's tokenizer extension.",
1393
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
1394
+ "keywords": [
1395
+ "tokenizer"
1396
+ ],
1397
+ "time": "2015-09-15 10:49:45"
1398
+ },
1399
+ {
1400
+ "name": "phpunit/phpunit",
1401
+ "version": "4.8.27",
1402
+ "source": {
1403
+ "type": "git",
1404
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
1405
+ "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90"
1406
+ },
1407
+ "dist": {
1408
+ "type": "zip",
1409
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c062dddcb68e44b563f66ee319ddae2b5a322a90",
1410
+ "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90",
1411
+ "shasum": ""
1412
+ },
1413
+ "require": {
1414
+ "ext-dom": "*",
1415
+ "ext-json": "*",
1416
+ "ext-pcre": "*",
1417
+ "ext-reflection": "*",
1418
+ "ext-spl": "*",
1419
+ "php": ">=5.3.3",
1420
+ "phpspec/prophecy": "^1.3.1",
1421
+ "phpunit/php-code-coverage": "~2.1",
1422
+ "phpunit/php-file-iterator": "~1.4",
1423
+ "phpunit/php-text-template": "~1.2",
1424
+ "phpunit/php-timer": "^1.0.6",
1425
+ "phpunit/phpunit-mock-objects": "~2.3",
1426
+ "sebastian/comparator": "~1.1",
1427
+ "sebastian/diff": "~1.2",
1428
+ "sebastian/environment": "~1.3",
1429
+ "sebastian/exporter": "~1.2",
1430
+ "sebastian/global-state": "~1.0",
1431
+ "sebastian/version": "~1.0",
1432
+ "symfony/yaml": "~2.1|~3.0"
1433
+ },
1434
+ "suggest": {
1435
+ "phpunit/php-invoker": "~1.1"
1436
+ },
1437
+ "bin": [
1438
+ "phpunit"
1439
+ ],
1440
+ "type": "library",
1441
+ "extra": {
1442
+ "branch-alias": {
1443
+ "dev-master": "4.8.x-dev"
1444
+ }
1445
+ },
1446
+ "autoload": {
1447
+ "classmap": [
1448
+ "src/"
1449
+ ]
1450
+ },
1451
+ "notification-url": "https://packagist.org/downloads/",
1452
+ "license": [
1453
+ "BSD-3-Clause"
1454
+ ],
1455
+ "authors": [
1456
+ {
1457
+ "name": "Sebastian Bergmann",
1458
+ "email": "sebastian@phpunit.de",
1459
+ "role": "lead"
1460
+ }
1461
+ ],
1462
+ "description": "The PHP Unit Testing framework.",
1463
+ "homepage": "https://phpunit.de/",
1464
+ "keywords": [
1465
+ "phpunit",
1466
+ "testing",
1467
+ "xunit"
1468
+ ],
1469
+ "time": "2016-07-21 06:48:14"
1470
+ },
1471
+ {
1472
+ "name": "phpunit/phpunit-mock-objects",
1473
+ "version": "2.3.8",
1474
+ "source": {
1475
+ "type": "git",
1476
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1477
+ "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
1478
+ },
1479
+ "dist": {
1480
+ "type": "zip",
1481
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
1482
+ "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
1483
+ "shasum": ""
1484
+ },
1485
+ "require": {
1486
+ "doctrine/instantiator": "^1.0.2",
1487
+ "php": ">=5.3.3",
1488
+ "phpunit/php-text-template": "~1.2",
1489
+ "sebastian/exporter": "~1.2"
1490
+ },
1491
+ "require-dev": {
1492
+ "phpunit/phpunit": "~4.4"
1493
+ },
1494
+ "suggest": {
1495
+ "ext-soap": "*"
1496
+ },
1497
+ "type": "library",
1498
+ "extra": {
1499
+ "branch-alias": {
1500
+ "dev-master": "2.3.x-dev"
1501
+ }
1502
+ },
1503
+ "autoload": {
1504
+ "classmap": [
1505
+ "src/"
1506
+ ]
1507
+ },
1508
+ "notification-url": "https://packagist.org/downloads/",
1509
+ "license": [
1510
+ "BSD-3-Clause"
1511
+ ],
1512
+ "authors": [
1513
+ {
1514
+ "name": "Sebastian Bergmann",
1515
+ "email": "sb@sebastian-bergmann.de",
1516
+ "role": "lead"
1517
+ }
1518
+ ],
1519
+ "description": "Mock Object library for PHPUnit",
1520
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1521
+ "keywords": [
1522
+ "mock",
1523
+ "xunit"
1524
+ ],
1525
+ "time": "2015-10-02 06:51:40"
1526
+ },
1527
+ {
1528
+ "name": "sebastian/comparator",
1529
+ "version": "1.2.0",
1530
+ "source": {
1531
+ "type": "git",
1532
+ "url": "https://github.com/sebastianbergmann/comparator.git",
1533
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
1534
+ },
1535
+ "dist": {
1536
+ "type": "zip",
1537
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
1538
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
1539
+ "shasum": ""
1540
+ },
1541
+ "require": {
1542
+ "php": ">=5.3.3",
1543
+ "sebastian/diff": "~1.2",
1544
+ "sebastian/exporter": "~1.2"
1545
+ },
1546
+ "require-dev": {
1547
+ "phpunit/phpunit": "~4.4"
1548
+ },
1549
+ "type": "library",
1550
+ "extra": {
1551
+ "branch-alias": {
1552
+ "dev-master": "1.2.x-dev"
1553
+ }
1554
+ },
1555
+ "autoload": {
1556
+ "classmap": [
1557
+ "src/"
1558
+ ]
1559
+ },
1560
+ "notification-url": "https://packagist.org/downloads/",
1561
+ "license": [
1562
+ "BSD-3-Clause"
1563
+ ],
1564
+ "authors": [
1565
+ {
1566
+ "name": "Jeff Welch",
1567
+ "email": "whatthejeff@gmail.com"
1568
+ },
1569
+ {
1570
+ "name": "Volker Dusch",
1571
+ "email": "github@wallbash.com"
1572
+ },
1573
+ {
1574
+ "name": "Bernhard Schussek",
1575
+ "email": "bschussek@2bepublished.at"
1576
+ },
1577
+ {
1578
+ "name": "Sebastian Bergmann",
1579
+ "email": "sebastian@phpunit.de"
1580
+ }
1581
+ ],
1582
+ "description": "Provides the functionality to compare PHP values for equality",
1583
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
1584
+ "keywords": [
1585
+ "comparator",
1586
+ "compare",
1587
+ "equality"
1588
+ ],
1589
+ "time": "2015-07-26 15:48:44"
1590
+ },
1591
+ {
1592
+ "name": "sebastian/diff",
1593
+ "version": "1.4.1",
1594
+ "source": {
1595
+ "type": "git",
1596
+ "url": "https://github.com/sebastianbergmann/diff.git",
1597
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
1598
+ },
1599
+ "dist": {
1600
+ "type": "zip",
1601
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
1602
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
1603
+ "shasum": ""
1604
+ },
1605
+ "require": {
1606
+ "php": ">=5.3.3"
1607
+ },
1608
+ "require-dev": {
1609
+ "phpunit/phpunit": "~4.8"
1610
+ },
1611
+ "type": "library",
1612
+ "extra": {
1613
+ "branch-alias": {
1614
+ "dev-master": "1.4-dev"
1615
+ }
1616
+ },
1617
+ "autoload": {
1618
+ "classmap": [
1619
+ "src/"
1620
+ ]
1621
+ },
1622
+ "notification-url": "https://packagist.org/downloads/",
1623
+ "license": [
1624
+ "BSD-3-Clause"
1625
+ ],
1626
+ "authors": [
1627
+ {
1628
+ "name": "Kore Nordmann",
1629
+ "email": "mail@kore-nordmann.de"
1630
+ },
1631
+ {
1632
+ "name": "Sebastian Bergmann",
1633
+ "email": "sebastian@phpunit.de"
1634
+ }
1635
+ ],
1636
+ "description": "Diff implementation",
1637
+ "homepage": "https://github.com/sebastianbergmann/diff",
1638
+ "keywords": [
1639
+ "diff"
1640
+ ],
1641
+ "time": "2015-12-08 07:14:41"
1642
+ },
1643
+ {
1644
+ "name": "sebastian/environment",
1645
+ "version": "1.3.8",
1646
+ "source": {
1647
+ "type": "git",
1648
+ "url": "https://github.com/sebastianbergmann/environment.git",
1649
+ "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
1650
+ },
1651
+ "dist": {
1652
+ "type": "zip",
1653
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
1654
+ "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
1655
+ "shasum": ""
1656
+ },
1657
+ "require": {
1658
+ "php": "^5.3.3 || ^7.0"
1659
+ },
1660
+ "require-dev": {
1661
+ "phpunit/phpunit": "^4.8 || ^5.0"
1662
+ },
1663
+ "type": "library",
1664
+ "extra": {
1665
+ "branch-alias": {
1666
+ "dev-master": "1.3.x-dev"
1667
+ }
1668
+ },
1669
+ "autoload": {
1670
+ "classmap": [
1671
+ "src/"
1672
+ ]
1673
+ },
1674
+ "notification-url": "https://packagist.org/downloads/",
1675
+ "license": [
1676
+ "BSD-3-Clause"
1677
+ ],
1678
+ "authors": [
1679
+ {
1680
+ "name": "Sebastian Bergmann",
1681
+ "email": "sebastian@phpunit.de"
1682
+ }
1683
+ ],
1684
+ "description": "Provides functionality to handle HHVM/PHP environments",
1685
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
1686
+ "keywords": [
1687
+ "Xdebug",
1688
+ "environment",
1689
+ "hhvm"
1690
+ ],
1691
+ "time": "2016-08-18 05:49:44"
1692
+ },
1693
+ {
1694
+ "name": "sebastian/exporter",
1695
+ "version": "1.2.2",
1696
+ "source": {
1697
+ "type": "git",
1698
+ "url": "https://github.com/sebastianbergmann/exporter.git",
1699
+ "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
1700
+ },
1701
+ "dist": {
1702
+ "type": "zip",
1703
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
1704
+ "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
1705
+ "shasum": ""
1706
+ },
1707
+ "require": {
1708
+ "php": ">=5.3.3",
1709
+ "sebastian/recursion-context": "~1.0"
1710
+ },
1711
+ "require-dev": {
1712
+ "ext-mbstring": "*",
1713
+ "phpunit/phpunit": "~4.4"
1714
+ },
1715
+ "type": "library",
1716
+ "extra": {
1717
+ "branch-alias": {
1718
+ "dev-master": "1.3.x-dev"
1719
+ }
1720
+ },
1721
+ "autoload": {
1722
+ "classmap": [
1723
+ "src/"
1724
+ ]
1725
+ },
1726
+ "notification-url": "https://packagist.org/downloads/",
1727
+ "license": [
1728
+ "BSD-3-Clause"
1729
+ ],
1730
+ "authors": [
1731
+ {
1732
+ "name": "Jeff Welch",
1733
+ "email": "whatthejeff@gmail.com"
1734
+ },
1735
+ {
1736
+ "name": "Volker Dusch",
1737
+ "email": "github@wallbash.com"
1738
+ },
1739
+ {
1740
+ "name": "Bernhard Schussek",
1741
+ "email": "bschussek@2bepublished.at"
1742
+ },
1743
+ {
1744
+ "name": "Sebastian Bergmann",
1745
+ "email": "sebastian@phpunit.de"
1746
+ },
1747
+ {
1748
+ "name": "Adam Harvey",
1749
+ "email": "aharvey@php.net"
1750
+ }
1751
+ ],
1752
+ "description": "Provides the functionality to export PHP variables for visualization",
1753
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
1754
+ "keywords": [
1755
+ "export",
1756
+ "exporter"
1757
+ ],
1758
+ "time": "2016-06-17 09:04:28"
1759
+ },
1760
+ {
1761
+ "name": "sebastian/global-state",
1762
+ "version": "1.1.1",
1763
+ "source": {
1764
+ "type": "git",
1765
+ "url": "https://github.com/sebastianbergmann/global-state.git",
1766
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
1767
+ },
1768
+ "dist": {
1769
+ "type": "zip",
1770
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
1771
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
1772
+ "shasum": ""
1773
+ },
1774
+ "require": {
1775
+ "php": ">=5.3.3"
1776
+ },
1777
+ "require-dev": {
1778
+ "phpunit/phpunit": "~4.2"
1779
+ },
1780
+ "suggest": {
1781
+ "ext-uopz": "*"
1782
+ },
1783
+ "type": "library",
1784
+ "extra": {
1785
+ "branch-alias": {
1786
+ "dev-master": "1.0-dev"
1787
+ }
1788
+ },
1789
+ "autoload": {
1790
+ "classmap": [
1791
+ "src/"
1792
+ ]
1793
+ },
1794
+ "notification-url": "https://packagist.org/downloads/",
1795
+ "license": [
1796
+ "BSD-3-Clause"
1797
+ ],
1798
+ "authors": [
1799
+ {
1800
+ "name": "Sebastian Bergmann",
1801
+ "email": "sebastian@phpunit.de"
1802
+ }
1803
+ ],
1804
+ "description": "Snapshotting of global state",
1805
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
1806
+ "keywords": [
1807
+ "global state"
1808
+ ],
1809
+ "time": "2015-10-12 03:26:01"
1810
+ },
1811
+ {
1812
+ "name": "sebastian/recursion-context",
1813
+ "version": "1.0.2",
1814
+ "source": {
1815
+ "type": "git",
1816
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
1817
+ "reference": "913401df809e99e4f47b27cdd781f4a258d58791"
1818
+ },
1819
+ "dist": {
1820
+ "type": "zip",
1821
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791",
1822
+ "reference": "913401df809e99e4f47b27cdd781f4a258d58791",
1823
+ "shasum": ""
1824
+ },
1825
+ "require": {
1826
+ "php": ">=5.3.3"
1827
+ },
1828
+ "require-dev": {
1829
+ "phpunit/phpunit": "~4.4"
1830
+ },
1831
+ "type": "library",
1832
+ "extra": {
1833
+ "branch-alias": {
1834
+ "dev-master": "1.0.x-dev"
1835
+ }
1836
+ },
1837
+ "autoload": {
1838
+ "classmap": [
1839
+ "src/"
1840
+ ]
1841
+ },
1842
+ "notification-url": "https://packagist.org/downloads/",
1843
+ "license": [
1844
+ "BSD-3-Clause"
1845
+ ],
1846
+ "authors": [
1847
+ {
1848
+ "name": "Jeff Welch",
1849
+ "email": "whatthejeff@gmail.com"
1850
+ },
1851
+ {
1852
+ "name": "Sebastian Bergmann",
1853
+ "email": "sebastian@phpunit.de"
1854
+ },
1855
+ {
1856
+ "name": "Adam Harvey",
1857
+ "email": "aharvey@php.net"
1858
+ }
1859
+ ],
1860
+ "description": "Provides functionality to recursively process PHP variables",
1861
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1862
+ "time": "2015-11-11 19:50:13"
1863
+ },
1864
+ {
1865
+ "name": "sebastian/version",
1866
+ "version": "1.0.6",
1867
+ "source": {
1868
+ "type": "git",
1869
+ "url": "https://github.com/sebastianbergmann/version.git",
1870
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
1871
+ },
1872
+ "dist": {
1873
+ "type": "zip",
1874
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
1875
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
1876
+ "shasum": ""
1877
+ },
1878
+ "type": "library",
1879
+ "autoload": {
1880
+ "classmap": [
1881
+ "src/"
1882
+ ]
1883
+ },
1884
+ "notification-url": "https://packagist.org/downloads/",
1885
+ "license": [
1886
+ "BSD-3-Clause"
1887
+ ],
1888
+ "authors": [
1889
+ {
1890
+ "name": "Sebastian Bergmann",
1891
+ "email": "sebastian@phpunit.de",
1892
+ "role": "lead"
1893
+ }
1894
+ ],
1895
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
1896
+ "homepage": "https://github.com/sebastianbergmann/version",
1897
+ "time": "2015-06-21 13:59:46"
1898
+ },
1899
+ {
1900
+ "name": "squizlabs/php_codesniffer",
1901
+ "version": "2.7.0",
1902
+ "source": {
1903
+ "type": "git",
1904
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
1905
+ "reference": "571e27b6348e5b3a637b2abc82ac0d01e6d7bbed"
1906
+ },
1907
+ "dist": {
1908
+ "type": "zip",
1909
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/571e27b6348e5b3a637b2abc82ac0d01e6d7bbed",
1910
+ "reference": "571e27b6348e5b3a637b2abc82ac0d01e6d7bbed",
1911
+ "shasum": ""
1912
+ },
1913
+ "require": {
1914
+ "ext-simplexml": "*",
1915
+ "ext-tokenizer": "*",
1916
+ "ext-xmlwriter": "*",
1917
+ "php": ">=5.1.2"
1918
+ },
1919
+ "require-dev": {
1920
+ "phpunit/phpunit": "~4.0"
1921
+ },
1922
+ "bin": [
1923
+ "scripts/phpcs",
1924
+ "scripts/phpcbf"
1925
+ ],
1926
+ "type": "library",
1927
+ "extra": {
1928
+ "branch-alias": {
1929
+ "dev-master": "2.x-dev"
1930
+ }
1931
+ },
1932
+ "autoload": {
1933
+ "classmap": [
1934
+ "CodeSniffer.php",
1935
+ "CodeSniffer/CLI.php",
1936
+ "CodeSniffer/Exception.php",
1937
+ "CodeSniffer/File.php",
1938
+ "CodeSniffer/Fixer.php",
1939
+ "CodeSniffer/Report.php",
1940
+ "CodeSniffer/Reporting.php",
1941
+ "CodeSniffer/Sniff.php",
1942
+ "CodeSniffer/Tokens.php",
1943
+ "CodeSniffer/Reports/",
1944
+ "CodeSniffer/Tokenizers/",
1945
+ "CodeSniffer/DocGenerators/",
1946
+ "CodeSniffer/Standards/AbstractPatternSniff.php",
1947
+ "CodeSniffer/Standards/AbstractScopeSniff.php",
1948
+ "CodeSniffer/Standards/AbstractVariableSniff.php",
1949
+ "CodeSniffer/Standards/IncorrectPatternException.php",
1950
+ "CodeSniffer/Standards/Generic/Sniffs/",
1951
+ "CodeSniffer/Standards/MySource/Sniffs/",
1952
+ "CodeSniffer/Standards/PEAR/Sniffs/",
1953
+ "CodeSniffer/Standards/PSR1/Sniffs/",
1954
+ "CodeSniffer/Standards/PSR2/Sniffs/",
1955
+ "CodeSniffer/Standards/Squiz/Sniffs/",
1956
+ "CodeSniffer/Standards/Zend/Sniffs/"
1957
+ ]
1958
+ },
1959
+ "notification-url": "https://packagist.org/downloads/",
1960
+ "license": [
1961
+ "BSD-3-Clause"
1962
+ ],
1963
+ "authors": [
1964
+ {
1965
+ "name": "Greg Sherwood",
1966
+ "role": "lead"
1967
+ }
1968
+ ],
1969
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
1970
+ "homepage": "http://www.squizlabs.com/php-codesniffer",
1971
+ "keywords": [
1972
+ "phpcs",
1973
+ "standards"
1974
+ ],
1975
+ "time": "2016-09-01 23:53:02"
1976
+ },
1977
+ {
1978
+ "name": "webmozart/assert",
1979
+ "version": "1.1.0",
1980
+ "source": {
1981
+ "type": "git",
1982
+ "url": "https://github.com/webmozart/assert.git",
1983
+ "reference": "bb2d123231c095735130cc8f6d31385a44c7b308"
1984
+ },
1985
+ "dist": {
1986
+ "type": "zip",
1987
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/bb2d123231c095735130cc8f6d31385a44c7b308",
1988
+ "reference": "bb2d123231c095735130cc8f6d31385a44c7b308",
1989
+ "shasum": ""
1990
+ },
1991
+ "require": {
1992
+ "php": "^5.3.3|^7.0"
1993
+ },
1994
+ "require-dev": {
1995
+ "phpunit/phpunit": "^4.6",
1996
+ "sebastian/version": "^1.0.1"
1997
+ },
1998
+ "type": "library",
1999
+ "extra": {
2000
+ "branch-alias": {
2001
+ "dev-master": "1.2-dev"
2002
+ }
2003
+ },
2004
+ "autoload": {
2005
+ "psr-4": {
2006
+ "Webmozart\\Assert\\": "src/"
2007
+ }
2008
+ },
2009
+ "notification-url": "https://packagist.org/downloads/",
2010
+ "license": [
2011
+ "MIT"
2012
+ ],
2013
+ "authors": [
2014
+ {
2015
+ "name": "Bernhard Schussek",
2016
+ "email": "bschussek@gmail.com"
2017
+ }
2018
+ ],
2019
+ "description": "Assertions to validate method input/output with nice error messages.",
2020
+ "keywords": [
2021
+ "assert",
2022
+ "check",
2023
+ "validate"
2024
+ ],
2025
+ "time": "2016-08-09 15:02:57"
2026
+ }
2027
+ ],
2028
+ "aliases": [],
2029
+ "minimum-stability": "stable",
2030
+ "stability-flags": [],
2031
+ "prefer-stable": false,
2032
+ "prefer-lowest": false,
2033
+ "platform": {
2034
+ "php": ">=5.4.0"
2035
+ },
2036
+ "platform-dev": []
2037
+ }
lib/Ing/Services/ing-php/phpunit.xml.dist ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <phpunit backupGlobals="false"
4
+ backupStaticAttributes="false"
5
+ colors="true"
6
+ convertErrorsToExceptions="true"
7
+ convertNoticesToExceptions="true"
8
+ convertWarningsToExceptions="true"
9
+ processIsolation="false"
10
+ stopOnFailure="false"
11
+ syntaxCheck="false"
12
+ bootstrap="vendor/autoload.php">
13
+
14
+ <listeners>
15
+ <listener class="\Mockery\Adapter\Phpunit\TestListener" />
16
+ </listeners>
17
+
18
+ <testsuites>
19
+ <testsuite name="Test Suite">
20
+ <directory>./tests/</directory>
21
+ </testsuite>
22
+ </testsuites>
23
+
24
+ <filter>
25
+ <whitelist>
26
+ <directory>./src/</directory>
27
+ </whitelist>
28
+ </filter>
29
+ </phpunit>
lib/Ing/Services/ing-php/src/Client.php ADDED
@@ -0,0 +1,544 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment;
4
+
5
+ use GingerPayments\Payment\Client\ClientException;
6
+ use GingerPayments\Payment\Client\OrderNotFoundException;
7
+ use GingerPayments\Payment\Common\ArrayFunctions;
8
+ use GingerPayments\Payment\Ideal\Issuers;
9
+ use GuzzleHttp\Client as HttpClient;
10
+ use GuzzleHttp\Exception\RequestException;
11
+
12
+ final class Client
13
+ {
14
+ /**
15
+ * @var HttpClient
16
+ */
17
+ private $httpClient;
18
+
19
+ /**
20
+ * @param HttpClient $httpClient
21
+ */
22
+ public function __construct(HttpClient $httpClient)
23
+ {
24
+ $this->httpClient = $httpClient;
25
+ }
26
+
27
+ /**
28
+ * Set httpClient default SSL validation using cURL CA bundle.
29
+ * http://curl.haxx.se/docs/caextract.html
30
+ *
31
+ * @return void
32
+ */
33
+ public function useBundledCA()
34
+ {
35
+ $this->httpClient->setDefaultOption(
36
+ 'verify',
37
+ realpath(dirname(__FILE__).'/../assets/cacert.pem')
38
+ );
39
+ }
40
+
41
+ /**
42
+ * Get possible iDEAL issuers.
43
+ *
44
+ * @return Issuers
45
+ */
46
+ public function getIdealIssuers()
47
+ {
48
+ try {
49
+ return Issuers::fromArray(
50
+ $this->httpClient->get('ideal/issuers/')->json()
51
+ );
52
+ } catch (RequestException $exception) {
53
+ throw new ClientException(
54
+ 'An error occurred while processing the request: '.$exception->getMessage(),
55
+ $exception->getCode(),
56
+ $exception
57
+ );
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Get allowed payment methods.
63
+ *
64
+ * @return array
65
+ */
66
+ public function getAllowedProducts()
67
+ {
68
+ try {
69
+ return $this->processProducts(
70
+ $this->httpClient->get('merchants/self/projects/self/')->json()
71
+ );
72
+ } catch (RequestException $exception) {
73
+ return [];
74
+ }
75
+ }
76
+
77
+ /**
78
+ * Process the API response with allowed payment methods.
79
+ *
80
+ * @param array $details
81
+ * @return array
82
+ */
83
+ private function processProducts($details)
84
+ {
85
+ $result = array();
86
+
87
+ if (!array_key_exists('permissions', $details)) {
88
+ return $result;
89
+ }
90
+
91
+ if (array_key_exists('status', $details)
92
+ && $details['status'] == 'active-testing') {
93
+ return array('ideal');
94
+ }
95
+
96
+ $products_to_check = array(
97
+ 'ideal' => 'ideal',
98
+ 'bank-transfer' => 'banktransfer',
99
+ 'bancontact' => 'bancontact',
100
+ 'cash-on-delivery' => 'cashondelivery',
101
+ 'credit-card' => 'creditcard',
102
+ );
103
+
104
+ foreach ($products_to_check as $permission_id => $id) {
105
+ if (array_key_exists('/payment-methods/'.$permission_id.'/', $details['permissions']) &&
106
+ array_key_exists('POST', $details['permissions']['/payment-methods/'.$permission_id.'/']) &&
107
+ $details['permissions']['/payment-methods/'.$permission_id.'/']['POST']
108
+ ) {
109
+ $result[] = $id;
110
+ }
111
+ }
112
+
113
+ return $result;
114
+ }
115
+
116
+ /**
117
+ * Check if account is in test mode.
118
+ *
119
+ * @return bool
120
+ */
121
+ public function isInTestMode()
122
+ {
123
+ try {
124
+ return $this->isTestMode(
125
+ $this->httpClient->get('merchants/self/projects/self/')->json()
126
+ );
127
+ } catch (RequestException $exception) {
128
+ throw new ClientException(
129
+ 'An error occurred while processing the request: '.$exception->getMessage(),
130
+ $exception->getCode(),
131
+ $exception
132
+ );
133
+ }
134
+ }
135
+
136
+ /**
137
+ * Process test-mode API response.
138
+ *
139
+ * @param array $projectDetails
140
+ * @return bool
141
+ */
142
+ private function isTestMode($projectDetails)
143
+ {
144
+ if (!array_key_exists('status', $projectDetails)) {
145
+ return false;
146
+ }
147
+
148
+ return ($projectDetails['status'] == 'active-testing');
149
+ }
150
+
151
+ /**
152
+ * Create a new iDEAL order.
153
+ *
154
+ * @param integer $amount Amount in cents.
155
+ * @param string $currency A valid currency code.
156
+ * @param string $issuerId The SWIFT/BIC code of the iDEAL issuer.
157
+ * @param string $description A description of the order.
158
+ * @param string $merchantOrderId A merchant-defined order identifier.
159
+ * @param string $returnUrl The return URL.
160
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
161
+ * @param array $customer Customer information.
162
+ * @param array $extra Extra information.
163
+ *
164
+ * @return Order The newly created order.
165
+ */
166
+ public function createIdealOrder(
167
+ $amount,
168
+ $currency,
169
+ $issuerId,
170
+ $description = null,
171
+ $merchantOrderId = null,
172
+ $returnUrl = null,
173
+ $expirationPeriod = null,
174
+ $customer = null,
175
+ $extra = null,
176
+ $webhookUrl = null
177
+ ) {
178
+ return $this->postOrder(
179
+ Order::createWithIdeal(
180
+ $amount,
181
+ $currency,
182
+ $issuerId,
183
+ $description,
184
+ $merchantOrderId,
185
+ $returnUrl,
186
+ $expirationPeriod,
187
+ $customer,
188
+ $extra,
189
+ $webhookUrl
190
+ )
191
+ );
192
+ }
193
+
194
+ /**
195
+ * Create a new SEPA order.
196
+ *
197
+ * @param integer $amount Amount in cents.
198
+ * @param string $currency A valid currency code.
199
+ * @param array $paymentMethodDetails An array of extra payment method details.
200
+ * @param string $description A description of the order.
201
+ * @param string $merchantOrderId A merchant-defined order identifier.
202
+ * @param string $returnUrl The return URL.
203
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
204
+ * @param array $customer Customer information.
205
+ * @param array $extra Extra information.
206
+ *
207
+ * @return Order The newly created order.
208
+ */
209
+ public function createSepaOrder(
210
+ $amount,
211
+ $currency,
212
+ array $paymentMethodDetails = [],
213
+ $description = null,
214
+ $merchantOrderId = null,
215
+ $returnUrl = null,
216
+ $expirationPeriod = null,
217
+ $customer = null,
218
+ $extra = null,
219
+ $webhookUrl = null
220
+ ) {
221
+ return $this->postOrder(
222
+ Order::createWithSepa(
223
+ $amount,
224
+ $currency,
225
+ $paymentMethodDetails,
226
+ $description,
227
+ $merchantOrderId,
228
+ $returnUrl,
229
+ $expirationPeriod,
230
+ $customer,
231
+ $extra,
232
+ $webhookUrl
233
+ )
234
+ );
235
+ }
236
+
237
+ /**
238
+ * Create a new SOFORT order.
239
+ *
240
+ * @param integer $amount Amount in cents.
241
+ * @param string $currency A valid currency code.
242
+ * @param array $paymentMethodDetails An array of extra payment method details.
243
+ * @param string $description A description of the order.
244
+ * @param string $merchantOrderId A merchant-defined order identifier.
245
+ * @param string $returnUrl The return URL.
246
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
247
+ * @param array $customer Customer information.
248
+ * @param array $extra Extra information.
249
+ *
250
+ * @return Order The newly created order.
251
+ */
252
+ public function createSofortOrder(
253
+ $amount,
254
+ $currency,
255
+ array $paymentMethodDetails = [],
256
+ $description = null,
257
+ $merchantOrderId = null,
258
+ $returnUrl = null,
259
+ $expirationPeriod = null,
260
+ $customer = null,
261
+ $extra = null,
262
+ $webhookUrl = null
263
+ ) {
264
+ return $this->postOrder(
265
+ Order::createWithSofort(
266
+ $amount,
267
+ $currency,
268
+ $paymentMethodDetails,
269
+ $description,
270
+ $merchantOrderId,
271
+ $returnUrl,
272
+ $expirationPeriod,
273
+ $customer,
274
+ $extra,
275
+ $webhookUrl
276
+ )
277
+ );
278
+ }
279
+
280
+ /**
281
+ * Create a new credit card order.
282
+ *
283
+ * @param integer $amount Amount in cents.
284
+ * @param string $currency A valid currency code.
285
+ * @param string $description A description of the order.
286
+ * @param string $merchantOrderId A merchant-defined order identifier.
287
+ * @param string $returnUrl The return URL.
288
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
289
+ * @param array $customer Customer information.
290
+ * @param array $extra Extra information.
291
+ *
292
+ * @return Order The newly created order.
293
+ */
294
+ public function createCreditCardOrder(
295
+ $amount,
296
+ $currency,
297
+ $description = null,
298
+ $merchantOrderId = null,
299
+ $returnUrl = null,
300
+ $expirationPeriod = null,
301
+ $customer = null,
302
+ $extra = null,
303
+ $webhookUrl = null
304
+ ) {
305
+ return $this->postOrder(
306
+ Order::createWithCreditCard(
307
+ $amount,
308
+ $currency,
309
+ $description,
310
+ $merchantOrderId,
311
+ $returnUrl,
312
+ $expirationPeriod,
313
+ $customer,
314
+ $extra,
315
+ $webhookUrl
316
+ )
317
+ );
318
+ }
319
+
320
+ /**
321
+ * Create a new Bancontact order.
322
+ *
323
+ * @param integer $amount Amount in cents.
324
+ * @param string $currency A valid currency code.
325
+ * @param string $description A description of the order.
326
+ * @param string $merchantOrderId A merchant-defined order identifier.
327
+ * @param string $returnUrl The return URL.
328
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
329
+ * @param array $customer Customer information.
330
+ * @param array $extra Extra information.
331
+ *
332
+ * @return Order The newly created order.
333
+ */
334
+ public function createBancontactOrder(
335
+ $amount,
336
+ $currency,
337
+ $description = null,
338
+ $merchantOrderId = null,
339
+ $returnUrl = null,
340
+ $expirationPeriod = null,
341
+ $customer = null,
342
+ $extra = null,
343
+ $webhookUrl = null
344
+ ) {
345
+ return $this->postOrder(
346
+ Order::createWithBancontact(
347
+ $amount,
348
+ $currency,
349
+ $description,
350
+ $merchantOrderId,
351
+ $returnUrl,
352
+ $expirationPeriod,
353
+ $customer,
354
+ $extra,
355
+ $webhookUrl
356
+ )
357
+ );
358
+ }
359
+
360
+ /**
361
+ * Create a new Cash On Delivery order.
362
+ *
363
+ * @param integer $amount Amount in cents.
364
+ * @param string $currency A valid currency code.
365
+ * @param array $paymentMethodDetails An array of extra payment method details.
366
+ * @param string $description A description of the order.
367
+ * @param string $merchantOrderId A merchant-defined order identifier.
368
+ * @param string $returnUrl The return URL.
369
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
370
+ * @param array $customer Customer information.
371
+ * @param array $extra Extra information.
372
+ * @param string $webhookUrl The webhook URL.
373
+ *
374
+ * @return Order The newly created order.
375
+ */
376
+ public function createCashOnDeliveryOrder(
377
+ $amount,
378
+ $currency,
379
+ array $paymentMethodDetails = [],
380
+ $description = null,
381
+ $merchantOrderId = null,
382
+ $returnUrl = null,
383
+ $expirationPeriod = null,
384
+ $customer = null,
385
+ $extra = null,
386
+ $webhookUrl = null
387
+ ) {
388
+ return $this->postOrder(
389
+ Order::createWithCod(
390
+ $amount,
391
+ $currency,
392
+ $paymentMethodDetails,
393
+ $description,
394
+ $merchantOrderId,
395
+ $returnUrl,
396
+ $expirationPeriod,
397
+ $customer,
398
+ $extra,
399
+ $webhookUrl
400
+ )
401
+ );
402
+ }
403
+
404
+ /**
405
+ * Create a new order.
406
+ *
407
+ * @param integer $amount Amount in cents.
408
+ * @param string $currency A valid currency code.
409
+ * @param string $paymentMethod The payment method to use.
410
+ * @param array $paymentMethodDetails An array of extra payment method details.
411
+ * @param string $description A description of the order.
412
+ * @param string $merchantOrderId A merchant-defined order identifier.
413
+ * @param string $returnUrl The return URL.
414
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
415
+ * @param array $customer Customer information.
416
+ * @param array $extra Extra information.
417
+ * @param string $webhookUrl The webhook URL.
418
+ *
419
+ * @return Order The newly created order.
420
+ */
421
+ public function createOrder(
422
+ $amount,
423
+ $currency,
424
+ $paymentMethod,
425
+ array $paymentMethodDetails = [],
426
+ $description = null,
427
+ $merchantOrderId = null,
428
+ $returnUrl = null,
429
+ $expirationPeriod = null,
430
+ $customer = null,
431
+ $extra = null,
432
+ $webhookUrl = null
433
+ ) {
434
+ return $this->postOrder(
435
+ Order::create(
436
+ $amount,
437
+ $currency,
438
+ $paymentMethod,
439
+ $paymentMethodDetails,
440
+ $description,
441
+ $merchantOrderId,
442
+ $returnUrl,
443
+ $expirationPeriod,
444
+ $customer,
445
+ $extra,
446
+ $webhookUrl
447
+ )
448
+ );
449
+ }
450
+
451
+ /**
452
+ * Get a single order.
453
+ *
454
+ * @param string $id The order ID.
455
+ * @return Order
456
+ */
457
+ public function getOrder($id)
458
+ {
459
+ try {
460
+ return Order::fromArray(
461
+ $this->httpClient->get("orders/$id")->json()
462
+ );
463
+ } catch (RequestException $exception) {
464
+ if ($exception->getCode() == 404) {
465
+ throw new OrderNotFoundException('No order with that ID was found.', 404, $exception);
466
+ }
467
+ throw new ClientException(
468
+ 'An error occurred while getting the order: '.$exception->getMessage(),
469
+ $exception->getCode(),
470
+ $exception
471
+ );
472
+ }
473
+ }
474
+
475
+ /**
476
+ * Update an existing order.
477
+ *
478
+ * @param Order $order
479
+ * @return Order
480
+ */
481
+ public function updateOrder(Order $order)
482
+ {
483
+ return $this->putOrder($order);
484
+ }
485
+
486
+ /**
487
+ * Post a new order.
488
+ *
489
+ * @param Order $order
490
+ * @return Order
491
+ */
492
+ private function postOrder(Order $order)
493
+ {
494
+ try {
495
+ $response = $this->httpClient->post(
496
+ 'orders/',
497
+ [
498
+ 'timeout' => 3,
499
+ 'headers' => ['Content-Type' => 'application/json'],
500
+ 'body' => json_encode(
501
+ ArrayFunctions::withoutNullValues($order->toArray())
502
+ )
503
+ ]
504
+ );
505
+ } catch (RequestException $exception) {
506
+ throw new ClientException(
507
+ 'An error occurred while posting the order: '.$exception->getMessage(),
508
+ $exception->getCode(),
509
+ $exception
510
+ );
511
+ }
512
+ return Order::fromArray($response->json());
513
+ }
514
+
515
+ /**
516
+ * PUT order data to Ginger API.
517
+ *
518
+ * @param Order $order
519
+ * @return Order
520
+ */
521
+ private function putOrder(Order $order)
522
+ {
523
+ try {
524
+ return Order::fromArray(
525
+ $this->httpClient->put(
526
+ "orders/".$order->id()."/",
527
+ [
528
+ "timeout" => 3,
529
+ "json" => ArrayFunctions::withoutNullValues($order->toArray())
530
+ ]
531
+ )->json()
532
+ );
533
+ } catch (RequestException $exception) {
534
+ if ($exception->getCode() == 404) {
535
+ throw new OrderNotFoundException('No order with that ID was found.', 404, $exception);
536
+ }
537
+ throw new ClientException(
538
+ 'An error occurred while updating the order: '.$exception->getMessage(),
539
+ $exception->getCode(),
540
+ $exception
541
+ );
542
+ }
543
+ }
544
+ }
lib/Ing/Services/ing-php/src/Client/ClientException.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Client;
4
+
5
+ final class ClientException extends \RuntimeException
6
+ {
7
+ }
lib/Ing/Services/ing-php/src/Client/OrderNotFoundException.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Client;
4
+
5
+ final class OrderNotFoundException extends \RuntimeException
6
+ {
7
+ }
lib/Ing/Services/ing-php/src/Common/ArrayFunctions.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Common;
4
+
5
+ final class ArrayFunctions
6
+ {
7
+ /**
8
+ * Returns a new array with all elements which have a null value removed.
9
+ *
10
+ * @param array $array
11
+ * @return array
12
+ */
13
+ public static function withoutNullValues(array $array)
14
+ {
15
+ static $fn = __FUNCTION__;
16
+
17
+ foreach ($array as $key => $value) {
18
+ if (is_array($value)) {
19
+ $array[$key] = self::$fn($array[$key]);
20
+ }
21
+
22
+ if (empty($array[$key])) {
23
+ unset($array[$key]);
24
+ }
25
+ }
26
+
27
+ return $array;
28
+ }
29
+ }
lib/Ing/Services/ing-php/src/Common/ChoiceBasedValueObject.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Common;
4
+
5
+ use Assert\Assertion as Guard;
6
+
7
+ trait ChoiceBasedValueObject
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @return array
13
+ */
14
+ public abstract function possibleValues();
15
+
16
+ /**
17
+ * @param string $value
18
+ */
19
+ private function __construct($value)
20
+ {
21
+ Guard::choice($value, $this->possibleValues());
22
+
23
+ $this->value = $value;
24
+ }
25
+ }
lib/Ing/Services/ing-php/src/Common/ISO3166.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Common;
4
+
5
+ use Alcohol;
6
+
7
+ class ISO3166
8
+ {
9
+ /**
10
+ * Check if provided value is ISO 3166-1 alpha-2 country standard
11
+ *
12
+ * @param string $value
13
+ * @return bool
14
+ */
15
+ public static function isValid($value)
16
+ {
17
+ try {
18
+ $ISO3166 = new Alcohol\ISO3166();
19
+ $ISO3166->getByAlpha2($value);
20
+ return true;
21
+ } catch (\DomainException $e) {
22
+ return false;
23
+ }
24
+ }
25
+ }
lib/Ing/Services/ing-php/src/Common/StringBasedValueObject.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Common;
4
+
5
+ trait StringBasedValueObject
6
+ {
7
+ /**
8
+ * @var string
9
+ */
10
+ private $value;
11
+
12
+ /**
13
+ * Factory method. Returns a new instance from a string.
14
+ *
15
+ * @param string $value
16
+ * @return static
17
+ */
18
+ public static function fromString($value)
19
+ {
20
+ return new self((string) $value);
21
+ }
22
+
23
+ /**
24
+ * @return string
25
+ */
26
+ public function toString()
27
+ {
28
+ return $this->value;
29
+ }
30
+
31
+ /**
32
+ * @return string
33
+ */
34
+ public function __toString()
35
+ {
36
+ return $this->toString();
37
+ }
38
+
39
+ /**
40
+ * @param string $value
41
+ */
42
+ private function __construct($value)
43
+ {
44
+ $this->value = $value;
45
+ }
46
+ }
lib/Ing/Services/ing-php/src/Currency.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment;
4
+
5
+ use GingerPayments\Payment\Common\ChoiceBasedValueObject;
6
+
7
+ final class Currency
8
+ {
9
+ use ChoiceBasedValueObject;
10
+
11
+ /**
12
+ * Possible currencies
13
+ */
14
+ const EUR = 'EUR';
15
+
16
+ /**
17
+ * @return array
18
+ */
19
+ public function possibleValues()
20
+ {
21
+ return [self::EUR];
22
+ }
23
+ }
lib/Ing/Services/ing-php/src/Fallback.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * http://php.net/manual/en/function.bcmod.php
5
+ *
6
+ * @param string $x
7
+ * @param string $y
8
+ * @return string modulus
9
+ */
10
+ function my_bcmod($x, $y)
11
+ {
12
+ $take = 5;
13
+ $mod = '';
14
+
15
+ do {
16
+ $a = (int) $mod.substr($x, 0, $take);
17
+ $x = substr($x, $take);
18
+ $mod = $a % $y;
19
+ } while (strlen($x));
20
+
21
+ return (string) $mod;
22
+ }
23
+
24
+ /**
25
+ * Declare bcmod function in case when BCMath extension is not installed
26
+ */
27
+ if (!function_exists('bcmod')) {
28
+ function bcmod($x, $y)
29
+ {
30
+ return my_bcmod($x, $y);
31
+ }
32
+ }
lib/Ing/Services/ing-php/src/Ginger.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment;
4
+
5
+ use GuzzleHttp\Client as HttpClient;
6
+ use Assert\Assertion as Guard;
7
+
8
+ final class Ginger
9
+ {
10
+ /**
11
+ * The library version.
12
+ */
13
+ const CLIENT_VERSION = '1.2.4';
14
+
15
+ /**
16
+ * The API version.
17
+ */
18
+ const API_VERSION = 'v1';
19
+
20
+ /**
21
+ * API endpoint Ginger Payments
22
+ */
23
+ const ENDPOINT_GINGER = 'https://api.gingerpayments.com/{version}/';
24
+
25
+ /**
26
+ * API Kassa Compleet endpoint
27
+ */
28
+ const ENDPOINT_KASSA = 'https://api.kassacompleet.nl/{version}/';
29
+
30
+ /**
31
+ * API endpoint ING
32
+ */
33
+ const ENDPOINT_ING = 'https://api.ing-checkout.com/{version}/';
34
+
35
+ /**
36
+ * API endpoint EPAY
37
+ */
38
+ const ENDPOINT_EPAY = 'https://api.epay.ing.be/{version}/';
39
+
40
+ /**
41
+ * Create a new API client.
42
+ *
43
+ * @param string $apiKey Your API key.
44
+ * @param string $product
45
+ * @return Client
46
+ */
47
+ public static function createClient($apiKey, $product = null)
48
+ {
49
+ Guard::uuid(
50
+ static::apiKeyToUuid($apiKey),
51
+ 'Ginger API key is invalid: '.$apiKey
52
+ );
53
+
54
+ return new Client(
55
+ new HttpClient(
56
+ [
57
+ 'base_url' => [
58
+ static::getEndpoint($product),
59
+ ['version' => self::API_VERSION]
60
+ ],
61
+ 'defaults' => [
62
+ 'headers' => [
63
+ 'User-Agent' => 'ing-php/'.self::CLIENT_VERSION,
64
+ 'X-PHP-Version' => PHP_VERSION
65
+ ],
66
+ 'auth' => [$apiKey, '']
67
+ ]
68
+ ]
69
+ )
70
+ );
71
+ }
72
+
73
+ /**
74
+ * Get API endpoint based on product
75
+ *
76
+ * @param string $product
77
+ * @return string
78
+ */
79
+ public static function getEndpoint($product)
80
+ {
81
+ switch ($product) {
82
+ case 'kassacompleet':
83
+ $endpoint = self::ENDPOINT_KASSA;
84
+ break;
85
+ case 'ingcheckout':
86
+ $endpoint = self::ENDPOINT_ING;
87
+ break;
88
+ case 'epay':
89
+ $endpoint = self::ENDPOINT_EPAY;
90
+ break;
91
+ default:
92
+ $endpoint = self::ENDPOINT_GINGER;
93
+ break;
94
+ }
95
+ return $endpoint;
96
+ }
97
+
98
+ /**
99
+ * Method restores dashes in Ginger API key in order to validate UUID.
100
+ *
101
+ * @param string $apiKey
102
+ * @return string UUID
103
+ */
104
+ public static function apiKeyToUuid($apiKey)
105
+ {
106
+ return preg_replace('/(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})/', '$1-$2-$3-$4-$5', $apiKey);
107
+ }
108
+ }
lib/Ing/Services/ing-php/src/Iban.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+ use IsoCodes\Iban as IbanValidator;
8
+
9
+ final class Iban
10
+ {
11
+ use StringBasedValueObject;
12
+
13
+ /**
14
+ * @param string $value
15
+ */
16
+ private function __construct($value)
17
+ {
18
+ Guard::true(
19
+ empty($value) || IbanValidator::validate($value),
20
+ 'Must be a valid IBAN (ISO 13616:2007)'
21
+ );
22
+
23
+ $this->value = $value;
24
+ }
25
+ }
lib/Ing/Services/ing-php/src/Ideal/Issuer.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Ideal;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Ideal\Issuer\ListType;
7
+ use GingerPayments\Payment\Ideal\Issuer\Name;
8
+ use GingerPayments\Payment\SwiftBic;
9
+
10
+ final class Issuer
11
+ {
12
+ /**
13
+ * @var SwiftBic
14
+ */
15
+ private $id;
16
+
17
+ /**
18
+ * @var Name
19
+ */
20
+ private $name;
21
+
22
+ /**
23
+ * @var ListType
24
+ */
25
+ private $listType;
26
+
27
+ /**
28
+ * @param array $array
29
+ * @return Issuer
30
+ */
31
+ public static function fromArray(array $array)
32
+ {
33
+ Guard::keyExists($array, 'id');
34
+ Guard::keyExists($array, 'name');
35
+ Guard::keyExists($array, 'list_type');
36
+
37
+ return new Issuer(
38
+ SwiftBic::fromString($array['id']),
39
+ Name::fromString($array['name']),
40
+ ListType::fromString($array['list_type'])
41
+ );
42
+ }
43
+
44
+ /**
45
+ * @return array
46
+ */
47
+ public function toArray()
48
+ {
49
+ return [
50
+ 'id' => $this->id()->toString(),
51
+ 'name' => $this->name()->toString(),
52
+ 'list_type' => $this->listType()->toString()
53
+ ];
54
+ }
55
+
56
+ /**
57
+ * @return SwiftBic
58
+ */
59
+ public function id()
60
+ {
61
+ return $this->id;
62
+ }
63
+
64
+ /**
65
+ * @return Name
66
+ */
67
+ public function name()
68
+ {
69
+ return $this->name;
70
+ }
71
+
72
+ /**
73
+ * @return ListType
74
+ */
75
+ public function listType()
76
+ {
77
+ return $this->listType;
78
+ }
79
+
80
+ /**
81
+ * @param SwiftBic $id
82
+ * @param Name $name
83
+ * @param ListType $listType
84
+ */
85
+ private function __construct(SwiftBic $id, Name $name, ListType $listType)
86
+ {
87
+ $this->id = $id;
88
+ $this->name = $name;
89
+ $this->listType = $listType;
90
+ }
91
+ }
lib/Ing/Services/ing-php/src/Ideal/Issuer/ListType.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Ideal\Issuer;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class ListType
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'Issuer list type cannot be blank');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Ideal/Issuer/Name.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Ideal\Issuer;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class Name
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'Issuer name cannot be blank');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Ideal/Issuers.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Ideal;
4
+
5
+ use Assert\Assertion as Guard;
6
+
7
+ final class Issuers implements \Iterator
8
+ {
9
+ /**
10
+ * @var Issuer[]
11
+ */
12
+ private $issuers;
13
+
14
+ /**
15
+ * @return Issuers
16
+ */
17
+ public static function create()
18
+ {
19
+ return new Issuers([]);
20
+ }
21
+
22
+ /**
23
+ * @param array $issuers
24
+ * @return Issuers
25
+ */
26
+ public static function fromArray(array $issuers)
27
+ {
28
+ return new Issuers(
29
+ array_map(
30
+ function ($issuer) {
31
+ return Issuer::fromArray($issuer);
32
+ },
33
+ $issuers
34
+ )
35
+ );
36
+ }
37
+
38
+ /**
39
+ * @return array
40
+ */
41
+ public function toArray()
42
+ {
43
+ return array_map(
44
+ function (Issuer $issuer) {
45
+ return $issuer->toArray();
46
+ },
47
+ $this->issuers
48
+ );
49
+ }
50
+
51
+ /**
52
+ * @return mixed
53
+ */
54
+ public function current()
55
+ {
56
+ return current($this->issuers);
57
+ }
58
+
59
+ public function next()
60
+ {
61
+ return next($this->issuers);
62
+ }
63
+
64
+ /**
65
+ * @return mixed
66
+ */
67
+ public function key()
68
+ {
69
+ return key($this->issuers);
70
+ }
71
+
72
+ /**
73
+ * @return boolean
74
+ */
75
+ public function valid()
76
+ {
77
+ $key = key($this->issuers);
78
+ return ($key !== null && $key !== false);
79
+ }
80
+
81
+ public function rewind()
82
+ {
83
+ reset($this->issuers);
84
+ }
85
+
86
+ /**
87
+ * @param Issuer[] $issuers
88
+ */
89
+ private function __construct(array $issuers = [])
90
+ {
91
+ Guard::allIsInstanceOf($issuers, 'GingerPayments\Payment\Ideal\Issuer');
92
+
93
+ $this->issuers = $issuers;
94
+ }
95
+ }
lib/Ing/Services/ing-php/src/Order.php ADDED
@@ -0,0 +1,828 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use Carbon\Carbon;
7
+ use GingerPayments\Payment\Order\Amount;
8
+ use GingerPayments\Payment\Order\Description;
9
+ use GingerPayments\Payment\Order\MerchantOrderId;
10
+ use GingerPayments\Payment\Order\Status;
11
+ use GingerPayments\Payment\Order\Transaction\PaymentMethod;
12
+ use GingerPayments\Payment\Order\Transactions;
13
+ use GingerPayments\Payment\Order\Customer;
14
+ use GingerPayments\Payment\Order\Extra;
15
+ use Rhumsaa\Uuid\Uuid;
16
+
17
+ final class Order
18
+ {
19
+ /**
20
+ * @var Uuid|null
21
+ */
22
+ private $id;
23
+
24
+ /**
25
+ * @var Carbon|null
26
+ */
27
+ private $created;
28
+
29
+ /**
30
+ * @var Carbon|null
31
+ */
32
+ private $modified;
33
+
34
+ /**
35
+ * @var Carbon|null
36
+ */
37
+ private $completed;
38
+
39
+ /**
40
+ * @var MerchantOrderId|null
41
+ */
42
+ private $merchantOrderId;
43
+
44
+ /**
45
+ * @var Uuid|null
46
+ */
47
+ private $projectId;
48
+
49
+ /**
50
+ * @var Status|null
51
+ */
52
+ private $status;
53
+
54
+ /**
55
+ * @var Currency
56
+ */
57
+ private $currency;
58
+
59
+ /**
60
+ * @var Amount
61
+ */
62
+ private $amount;
63
+
64
+ /**
65
+ * @var \DateInterval|null
66
+ */
67
+ private $expirationPeriod;
68
+
69
+ /**
70
+ * @var Description|null
71
+ */
72
+ private $description;
73
+
74
+ /**
75
+ * @var Url|null
76
+ */
77
+ private $returnUrl;
78
+
79
+ /**
80
+ * @var Transactions
81
+ */
82
+ private $transactions;
83
+
84
+ /**
85
+ * @var Customer|null
86
+ */
87
+ private $customer;
88
+
89
+ /**
90
+ * Used for adding extra information to the order.
91
+ *
92
+ * @var Extra|null
93
+ */
94
+ private $extra;
95
+
96
+ /**
97
+ * Webhook URL is used for transaction information updates.
98
+ *
99
+ * @var Url|null
100
+ */
101
+ private $webhookUrl;
102
+
103
+ /**
104
+ * Create a new Order with the iDEAL payment method.
105
+ *
106
+ * @param integer $amount Amount in cents.
107
+ * @param string $currency A valid currency code.
108
+ * @param string $issuerId The SWIFT/BIC code of the iDEAL issuer.
109
+ * @param string $description A description of the order.
110
+ * @param string $merchantOrderId A merchant-defined order identifier.
111
+ * @param string $returnUrl The return URL.
112
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
113
+ * @param array $customer Customer information.
114
+ * @param array $extra Extra information.
115
+ * @param string $webhookUrl The webhook URL.
116
+ *
117
+ * @return Order
118
+ */
119
+ public static function createWithIdeal(
120
+ $amount,
121
+ $currency,
122
+ $issuerId,
123
+ $description = null,
124
+ $merchantOrderId = null,
125
+ $returnUrl = null,
126
+ $expirationPeriod = null,
127
+ $customer = null,
128
+ $extra = null,
129
+ $webhookUrl = null
130
+ ) {
131
+ return static::create(
132
+ $amount,
133
+ $currency,
134
+ PaymentMethod::IDEAL,
135
+ ['issuer_id' => $issuerId],
136
+ $description,
137
+ $merchantOrderId,
138
+ $returnUrl,
139
+ $expirationPeriod,
140
+ $customer,
141
+ $extra,
142
+ $webhookUrl
143
+ );
144
+ }
145
+
146
+ /**
147
+ * Create a new Order with the credit card payment method.
148
+ *
149
+ * @param integer $amount Amount in cents.
150
+ * @param string $currency A valid currency code.
151
+ * @param string $description A description of the order.
152
+ * @param string $merchantOrderId A merchant-defined order identifier.
153
+ * @param string $returnUrl The return URL.
154
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
155
+ * @param array $customer Customer information.
156
+ * @param array $extra Extra information.
157
+ * @param string $webhookUrl The webhook URL.
158
+ *
159
+ * @return Order
160
+ */
161
+ public static function createWithCreditCard(
162
+ $amount,
163
+ $currency,
164
+ $description = null,
165
+ $merchantOrderId = null,
166
+ $returnUrl = null,
167
+ $expirationPeriod = null,
168
+ $customer = null,
169
+ $extra = null,
170
+ $webhookUrl = null
171
+ ) {
172
+ return static::create(
173
+ $amount,
174
+ $currency,
175
+ PaymentMethod::CREDIT_CARD,
176
+ [],
177
+ $description,
178
+ $merchantOrderId,
179
+ $returnUrl,
180
+ $expirationPeriod,
181
+ $customer,
182
+ $extra,
183
+ $webhookUrl
184
+ );
185
+ }
186
+
187
+ /**
188
+ * Create a new Order with the SEPA payment method.
189
+ *
190
+ * @param integer $amount Amount in cents.
191
+ * @param string $currency A valid currency code.
192
+ * @param array $paymentMethodDetails An array of extra payment method details.
193
+ * @param string $description A description of the order.
194
+ * @param string $merchantOrderId A merchant-defined order identifier.
195
+ * @param string $returnUrl The return URL.
196
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration.
197
+ * @param array $customer Customer information
198
+ * @param array $extra Extra information.
199
+ * @param string $webhookUrl The webhook URL.
200
+ *
201
+ * @return Order
202
+ */
203
+ public static function createWithSepa(
204
+ $amount,
205
+ $currency,
206
+ array $paymentMethodDetails = [],
207
+ $description = null,
208
+ $merchantOrderId = null,
209
+ $returnUrl = null,
210
+ $expirationPeriod = null,
211
+ $customer = null,
212
+ $extra = null,
213
+ $webhookUrl = null
214
+ ) {
215
+ return static::create(
216
+ $amount,
217
+ $currency,
218
+ PaymentMethod::BANK_TRANSFER,
219
+ $paymentMethodDetails,
220
+ $description,
221
+ $merchantOrderId,
222
+ $returnUrl,
223
+ $expirationPeriod,
224
+ $customer,
225
+ $extra,
226
+ $webhookUrl
227
+ );
228
+ }
229
+
230
+ /**
231
+ * Create a new Order with the SOFORT payment method.
232
+ *
233
+ * @param integer $amount Amount in cents.
234
+ * @param string $currency A valid currency code.
235
+ * @param array $paymentMethodDetails An array of extra payment method details.
236
+ * @param string $description A description of the order.
237
+ * @param string $merchantOrderId A merchant-defined order identifier.
238
+ * @param string $returnUrl The return URL.
239
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration.
240
+ * @param array $customer Customer information.
241
+ * @param array $extra Extra information.
242
+ * @param string $webhookUrl The webhook URL.
243
+ *
244
+ * @return Order
245
+ */
246
+ public static function createWithSofort(
247
+ $amount,
248
+ $currency,
249
+ array $paymentMethodDetails = [],
250
+ $description = null,
251
+ $merchantOrderId = null,
252
+ $returnUrl = null,
253
+ $expirationPeriod = null,
254
+ $customer = null,
255
+ $extra = null,
256
+ $webhookUrl = null
257
+ ) {
258
+ return static::create(
259
+ $amount,
260
+ $currency,
261
+ PaymentMethod::SOFORT,
262
+ $paymentMethodDetails,
263
+ $description,
264
+ $merchantOrderId,
265
+ $returnUrl,
266
+ $expirationPeriod,
267
+ $customer,
268
+ $extra,
269
+ $webhookUrl
270
+ );
271
+ }
272
+
273
+ /**
274
+ * Create a new Order with the Bancontact payment method.
275
+ *
276
+ * @param integer $amount Amount in cents.
277
+ * @param string $currency A valid currency code.
278
+ * @param string $description A description of the order.
279
+ * @param string $merchantOrderId A merchant-defined order identifier.
280
+ * @param string $returnUrl The return URL.
281
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration.
282
+ * @param array $customer Customer information.
283
+ * @param array $extra Extra information.
284
+ * @param string $webhookUrl The webhook URL.
285
+ *
286
+ * @return Order
287
+ */
288
+ public static function createWithBancontact(
289
+ $amount,
290
+ $currency,
291
+ $description = null,
292
+ $merchantOrderId = null,
293
+ $returnUrl = null,
294
+ $expirationPeriod = null,
295
+ $customer = null,
296
+ $extra = null,
297
+ $webhookUrl = null
298
+ ) {
299
+ return static::create(
300
+ $amount,
301
+ $currency,
302
+ PaymentMethod::BANCONTACT,
303
+ [],
304
+ $description,
305
+ $merchantOrderId,
306
+ $returnUrl,
307
+ $expirationPeriod,
308
+ $customer,
309
+ $extra,
310
+ $webhookUrl
311
+ );
312
+ }
313
+
314
+ /**
315
+ * @param integer $amount Amount in cents.
316
+ * @param string $currency A valid currency code.
317
+ * @param array $paymentMethodDetails An array of extra payment method details.
318
+ * @param string $description A description of the order.
319
+ * @param string $merchantOrderId A merchant-defined order identifier.
320
+ * @param string $returnUrl The return URL.
321
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration.
322
+ * @param array $customer Customer information
323
+ * @param array $extra Extra information.
324
+ * @param string $webhookUrl The webhook URL.
325
+ *
326
+ * @return Order
327
+ */
328
+ public static function createWithCod(
329
+ $amount,
330
+ $currency,
331
+ array $paymentMethodDetails = [],
332
+ $description = null,
333
+ $merchantOrderId = null,
334
+ $returnUrl = null,
335
+ $expirationPeriod = null,
336
+ $customer = null,
337
+ $extra = null,
338
+ $webhookUrl = null
339
+ ) {
340
+ return static::create(
341
+ $amount,
342
+ $currency,
343
+ PaymentMethod::COD,
344
+ $paymentMethodDetails,
345
+ $description,
346
+ $merchantOrderId,
347
+ $returnUrl,
348
+ $expirationPeriod,
349
+ $customer,
350
+ $extra,
351
+ $webhookUrl
352
+ );
353
+ }
354
+
355
+ /**
356
+ * Create a new Order.
357
+ *
358
+ * @param integer $amount Amount in cents.
359
+ * @param string $currency A valid currency code.
360
+ * @param string $paymentMethod The payment method to use.
361
+ * @param array $paymentMethodDetails An array of extra payment method details.
362
+ * @param string $description A description of the order.
363
+ * @param string $merchantOrderId A merchant-defined order identifier.
364
+ * @param string $returnUrl The return URL.
365
+ * @param string $expirationPeriod The expiration period as an ISO 8601 duration
366
+ * @param array $customer Customer information.
367
+ * @param array $extra Extra information.
368
+ * @param string $webhookUrl The webhook URL.
369
+ *
370
+ * @return Order
371
+ */
372
+ public static function create(
373
+ $amount,
374
+ $currency,
375
+ $paymentMethod,
376
+ array $paymentMethodDetails = [],
377
+ $description = null,
378
+ $merchantOrderId = null,
379
+ $returnUrl = null,
380
+ $expirationPeriod = null,
381
+ $customer = null,
382
+ $extra = null,
383
+ $webhookUrl = null
384
+ ) {
385
+ return new static(
386
+ Transactions::fromArray(
387
+ [
388
+ [
389
+ 'payment_method' => $paymentMethod,
390
+ 'payment_method_details' => $paymentMethodDetails
391
+ ]
392
+ ]
393
+ ),
394
+ Amount::fromInteger($amount),
395
+ Currency::fromString($currency),
396
+ ($description !== null) ? Description::fromString($description) : null,
397
+ ($merchantOrderId !== null) ? MerchantOrderId::fromString($merchantOrderId) : null,
398
+ ($returnUrl !== null) ? Url::fromString($returnUrl) : null,
399
+ ($expirationPeriod !== null) ? new \DateInterval($expirationPeriod) : null,
400
+ null,
401
+ null,
402
+ null,
403
+ null,
404
+ null,
405
+ null,
406
+ ($customer !== null) ? Customer::fromArray($customer) : null,
407
+ ($extra !== null) ? Extra::fromArray($extra) : null,
408
+ ($webhookUrl !== null) ? Url::fromString($webhookUrl) : null
409
+ );
410
+ }
411
+
412
+ /**
413
+ * @param array $order
414
+ * @return Order
415
+ */
416
+ public static function fromArray(array $order)
417
+ {
418
+ Guard::keyExists($order, 'transactions');
419
+ Guard::keyExists($order, 'amount');
420
+ Guard::keyExists($order, 'currency');
421
+
422
+ return new static(
423
+ Transactions::fromArray($order['transactions']),
424
+ Amount::fromInteger($order['amount']),
425
+ Currency::fromString($order['currency']),
426
+ array_key_exists('description', $order) ? Description::fromString($order['description']) : null,
427
+ array_key_exists('merchant_order_id', $order)
428
+ ? MerchantOrderId::fromString($order['merchant_order_id'])
429
+ : null,
430
+ array_key_exists('return_url', $order) ? Url::fromString($order['return_url']) : null,
431
+ array_key_exists('expiration_period', $order) ? new \DateInterval($order['expiration_period']) : null,
432
+ array_key_exists('id', $order) ? Uuid::fromString($order['id']) : null,
433
+ array_key_exists('project_id', $order) ? Uuid::fromString($order['project_id']) : null,
434
+ array_key_exists('created', $order) ? new Carbon($order['created']) : null,
435
+ array_key_exists('modified', $order) ? new Carbon($order['modified']) : null,
436
+ array_key_exists('completed', $order) ? new Carbon($order['completed']) : null,
437
+ array_key_exists('status', $order) ? Status::fromString($order['status']) : null,
438
+ array_key_exists('customer', $order) && $order['customer'] !== null
439
+ ? Customer::fromArray($order['customer']) : null,
440
+ array_key_exists('extra', $order) && $order['extra'] !== null
441
+ ? Extra::fromArray($order['extra']) : null,
442
+ array_key_exists('webhook_url', $order) ? Url::fromString($order['webhook_url']) : null
443
+ );
444
+ }
445
+
446
+ /**
447
+ * @return array
448
+ */
449
+ public function toArray()
450
+ {
451
+ return [
452
+ 'currency' => $this->getCurrency(),
453
+ 'amount' => $this->getAmount(),
454
+ 'transactions' => $this->getTransactions(),
455
+ 'id' => $this->getId(),
456
+ 'project_id' => $this->getProjectId(),
457
+ 'created' => $this->getCreated(),
458
+ 'modified' => $this->getModified(),
459
+ 'completed' => $this->getCompleted(),
460
+ 'expiration_period' => $this->getExpirationPeriod(),
461
+ 'merchant_order_id' => $this->getMerchantOrderId(),
462
+ 'status' => $this->getStatus(),
463
+ 'description' => $this->getDescription(),
464
+ 'return_url' => $this->getReturnUrl(),
465
+ 'customer' => $this->getCustomer(),
466
+ 'extra' => $this->getExtra(),
467
+ 'webhook_url' => $this->getWebhookUrl()
468
+ ];
469
+ }
470
+
471
+ /**
472
+ * @return string|null
473
+ */
474
+ public function getWebhookUrl()
475
+ {
476
+ return ($this->webhookUrl() !== null) ? $this->webhookUrl()->toString() : null;
477
+ }
478
+
479
+ /**
480
+ * @return array
481
+ */
482
+ public function getTransactions()
483
+ {
484
+ return $this->transactions()->toArray();
485
+ }
486
+
487
+ /**
488
+ * @return string
489
+ */
490
+ public function getCurrency()
491
+ {
492
+ return $this->currency()->toString();
493
+ }
494
+
495
+ /**
496
+ * @return int
497
+ */
498
+ public function getAmount()
499
+ {
500
+ return $this->amount()->toInteger();
501
+ }
502
+
503
+ /**
504
+ * @return null|string
505
+ */
506
+ public function getId()
507
+ {
508
+ return ($this->id() !== null) ? $this->id()->toString() : null;
509
+ }
510
+
511
+ /**
512
+ * @return null|string
513
+ */
514
+ public function getProjectId()
515
+ {
516
+ return ($this->projectId() !== null) ? $this->projectId()->toString() : null;
517
+ }
518
+
519
+ /**
520
+ * @return null|string
521
+ */
522
+ public function getCreated()
523
+ {
524
+ return ($this->created() !== null) ? $this->created()->toIso8601String() : null;
525
+ }
526
+
527
+ /**
528
+ * @return null|string
529
+ */
530
+ public function getModified()
531
+ {
532
+ return ($this->modified() !== null) ? $this->modified()->toIso8601String() : null;
533
+ }
534
+
535
+ /**
536
+ * @return null|string
537
+ */
538
+ public function getCompleted()
539
+ {
540
+ return ($this->completed() !== null) ? $this->completed()->toIso8601String() : null;
541
+ }
542
+
543
+ /**
544
+ * @return null|string
545
+ */
546
+ public function getExpirationPeriod()
547
+ {
548
+ return ($this->expirationPeriod() !== null)
549
+ ? $this->expirationPeriod()->format('P%yY%mM%dDT%hH%iM%sS')
550
+ : null;
551
+ }
552
+
553
+ /**
554
+ * @return string|null
555
+ */
556
+ public function getDescription()
557
+ {
558
+ return ($this->description() !== null) ? $this->description()->toString() : null;
559
+ }
560
+
561
+ /**
562
+ * @return string|null
563
+ */
564
+ public function getStatus()
565
+ {
566
+ return ($this->status() !== null) ? $this->status()->toString() : null;
567
+ }
568
+
569
+ /**
570
+ * @return string|null
571
+ */
572
+ public function getMerchantOrderId()
573
+ {
574
+ return ($this->merchantOrderId() !== null)
575
+ ? $this->merchantOrderId()->toString()
576
+ : null;
577
+ }
578
+
579
+ /**
580
+ * @return string|null
581
+ */
582
+ public function getReturnUrl()
583
+ {
584
+ return ($this->returnUrl() !== null) ? $this->returnUrl()->toString() : null;
585
+ }
586
+
587
+ /**
588
+ * @return array|null
589
+ */
590
+ public function getCustomer()
591
+ {
592
+ return ($this->customer() !== null) ? $this->customer()->toArray() : null;
593
+ }
594
+
595
+ /**
596
+ * @return array|null
597
+ */
598
+ public function getExtra()
599
+ {
600
+ return ($this->extra() !== null) ? $this->extra()->toArray() : null;
601
+ }
602
+
603
+ /**
604
+ * @return Extra|null
605
+ */
606
+ public function extra()
607
+ {
608
+ return $this->extra;
609
+ }
610
+
611
+ /**
612
+ * @return Uuid|null
613
+ */
614
+ public function id()
615
+ {
616
+ return $this->id;
617
+ }
618
+
619
+ /**
620
+ * @return Carbon|null
621
+ */
622
+ public function created()
623
+ {
624
+ return $this->created;
625
+ }
626
+
627
+ /**
628
+ * @return Carbon|null
629
+ */
630
+ public function modified()
631
+ {
632
+ return $this->modified;
633
+ }
634
+
635
+ /**
636
+ * @return Carbon|null
637
+ */
638
+ public function completed()
639
+ {
640
+ return $this->completed;
641
+ }
642
+
643
+ /**
644
+ * @return Uuid|null
645
+ */
646
+ public function projectId()
647
+ {
648
+ return $this->projectId;
649
+ }
650
+
651
+ /**
652
+ * @param string $merchantOrderId
653
+ * @return MerchantOrderId|null
654
+ */
655
+ public function merchantOrderId($merchantOrderId = null)
656
+ {
657
+ if ($merchantOrderId !== null) {
658
+ $this->merchantOrderId = MerchantOrderId::fromString($merchantOrderId);
659
+ }
660
+
661
+ return $this->merchantOrderId;
662
+ }
663
+
664
+ /**
665
+ * @return Status|null
666
+ */
667
+ public function status()
668
+ {
669
+ return $this->status;
670
+ }
671
+
672
+ /**
673
+ * @param string $currency
674
+ * @return Currency
675
+ */
676
+ public function currency($currency = null)
677
+ {
678
+ if ($currency !== null) {
679
+ $this->currency = Currency::fromString($currency);
680
+ }
681
+
682
+ return $this->currency;
683
+ }
684
+
685
+ /**
686
+ * @param int $amount
687
+ * @return Amount
688
+ */
689
+ public function amount($amount = null)
690
+ {
691
+ if ($amount !== null) {
692
+ $this->amount = Amount::fromInteger($amount);
693
+ }
694
+
695
+ return $this->amount;
696
+ }
697
+
698
+ /**
699
+ * Time interval (ISO 8601 / RFC 3339)
700
+ * @param string $expirationPeriod
701
+ * @return \DateInterval|null
702
+ */
703
+ public function expirationPeriod($expirationPeriod = null)
704
+ {
705
+ if ($expirationPeriod !== null) {
706
+ $this->expirationPeriod = new \DateInterval($expirationPeriod);
707
+ }
708
+
709
+ return $this->expirationPeriod;
710
+ }
711
+
712
+ /**
713
+ * @param string $description
714
+ * @return Description|null
715
+ */
716
+ public function description($description = null)
717
+ {
718
+ if ($description !== null) {
719
+ $this->description = Description::fromString($description);
720
+ }
721
+
722
+ return $this->description;
723
+ }
724
+
725
+ /**
726
+ * @param string $returnUrl
727
+ * @return Url|null
728
+ */
729
+ public function returnUrl($returnUrl = null)
730
+ {
731
+ if ($returnUrl !== null) {
732
+ $this->returnUrl = Url::fromString($returnUrl);
733
+ }
734
+
735
+ return $this->returnUrl;
736
+ }
737
+
738
+ /**
739
+ * @param string $webhookUrl
740
+ * @return Url|null
741
+ */
742
+ public function webhookUrl($webhookUrl = null)
743
+ {
744
+ if ($webhookUrl !== null) {
745
+ $this->webhookUrl = Url::fromString($webhookUrl);
746
+ }
747
+
748
+ return $this->webhookUrl;
749
+ }
750
+
751
+ /**
752
+ * @return Transactions
753
+ */
754
+ public function transactions()
755
+ {
756
+ return $this->transactions;
757
+ }
758
+
759
+ /**
760
+ * @return Url|null
761
+ */
762
+ public function firstTransactionPaymentUrl()
763
+ {
764
+ return $this->transactions()->firstPaymentUrl();
765
+ }
766
+
767
+ /**
768
+ * @return Customer|null
769
+ */
770
+ public function customer()
771
+ {
772
+ return $this->customer;
773
+ }
774
+
775
+ /**
776
+ * @param Transactions $transactions
777
+ * @param Amount $amount
778
+ * @param Currency $currency
779
+ * @param Description $description
780
+ * @param MerchantOrderId $merchantOrderId
781
+ * @param Url $returnUrl
782
+ * @param \DateInterval $expirationPeriod
783
+ * @param Uuid $id
784
+ * @param Uuid $projectId
785
+ * @param Carbon $created
786
+ * @param Carbon $modified
787
+ * @param Carbon $completed
788
+ * @param Status $status
789
+ * @param Customer $customer
790
+ * @param Extra $extra
791
+ * @param Url $webhookUrl
792
+ */
793
+ private function __construct(
794
+ Transactions $transactions,
795
+ Amount $amount,
796
+ Currency $currency,
797
+ Description $description = null,
798
+ MerchantOrderId $merchantOrderId = null,
799
+ Url $returnUrl = null,
800
+ \DateInterval $expirationPeriod = null,
801
+ Uuid $id = null,
802
+ Uuid $projectId = null,
803
+ Carbon $created = null,
804
+ Carbon $modified = null,
805
+ Carbon $completed = null,
806
+ Status $status = null,
807
+ Customer $customer = null,
808
+ Extra $extra = null,
809
+ Url $webhookUrl = null
810
+ ) {
811
+ $this->transactions = $transactions;
812
+ $this->amount = $amount;
813
+ $this->currency = $currency;
814
+ $this->description = $description;
815
+ $this->merchantOrderId = $merchantOrderId;
816
+ $this->returnUrl = $returnUrl;
817
+ $this->expirationPeriod = $expirationPeriod;
818
+ $this->id = $id;
819
+ $this->projectId = $projectId;
820
+ $this->created = $created;
821
+ $this->modified = $modified;
822
+ $this->completed = $completed;
823
+ $this->status = $status;
824
+ $this->customer = $customer;
825
+ $this->extra = $extra;
826
+ $this->webhookUrl = $webhookUrl;
827
+ }
828
+ }
lib/Ing/Services/ing-php/src/Order/Amount.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order;
4
+
5
+ use Assert\Assertion as Guard;
6
+
7
+ final class Amount
8
+ {
9
+ /**
10
+ * @var integer
11
+ */
12
+ private $amount;
13
+
14
+ /**
15
+ * @param integer $amount
16
+ * @return Amount
17
+ */
18
+ public static function fromInteger($amount)
19
+ {
20
+ return new static((int) $amount);
21
+ }
22
+
23
+ /**
24
+ * @return integer
25
+ */
26
+ public function toInteger()
27
+ {
28
+ return $this->amount;
29
+ }
30
+
31
+ /**
32
+ * @param integer $amount
33
+ */
34
+ private function __construct($amount)
35
+ {
36
+ Guard::min($amount, 1, 'Amount must be at least one');
37
+
38
+ $this->amount = $amount;
39
+ }
40
+ }
lib/Ing/Services/ing-php/src/Order/Customer.php ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order;
4
+
5
+ use GingerPayments\Payment\Order\Customer\MerchantCustomerId;
6
+ use GingerPayments\Payment\Order\Customer\EmailAddress;
7
+ use GingerPayments\Payment\Order\Customer\FirstName;
8
+ use GingerPayments\Payment\Order\Customer\LastName;
9
+ use GingerPayments\Payment\Order\Customer\AddressType;
10
+ use GingerPayments\Payment\Order\Customer\Address;
11
+ use GingerPayments\Payment\Order\Customer\PostalCode;
12
+ use GingerPayments\Payment\Order\Customer\Housenumber;
13
+ use GingerPayments\Payment\Order\Customer\Country;
14
+ use GingerPayments\Payment\Order\Customer\PhoneNumbers;
15
+ use GingerPayments\Payment\Order\Customer\Locale;
16
+
17
+ final class Customer
18
+ {
19
+ /**
20
+ * @var MerchantCustomerId|null
21
+ */
22
+ private $merchantCustomerId;
23
+
24
+ /**
25
+ * @var EmailAddress|null
26
+ */
27
+ private $emailAddress;
28
+
29
+ /**
30
+ * @var FirstName|null
31
+ */
32
+ private $firstName;
33
+
34
+ /**
35
+ * @var LastName|null
36
+ */
37
+ private $lastName;
38
+
39
+ /**
40
+ * @var AddressType|null
41
+ */
42
+ private $addressType;
43
+
44
+ /**
45
+ * @var Address|null
46
+ */
47
+ private $address;
48
+
49
+ /**
50
+ * @var PostalCode|null
51
+ */
52
+ private $postalCode;
53
+
54
+ /**
55
+ * @var Housenumber|null
56
+ */
57
+ private $housenumber;
58
+
59
+ /**
60
+ * @var Country|null
61
+ */
62
+ private $country;
63
+
64
+ /**
65
+ * @var PhoneNumbers|null
66
+ */
67
+ private $phoneNumbers;
68
+
69
+ /**
70
+ * @var Locale|null
71
+ */
72
+ private $locale;
73
+
74
+ /**
75
+ * @param array $details
76
+ * @return Customer
77
+ */
78
+ public static function fromArray(array $details)
79
+ {
80
+ return new static(
81
+ array_key_exists('merchant_customer_id', $details)
82
+ ? MerchantCustomerId::fromString($details['merchant_customer_id']) : null,
83
+ array_key_exists('email_address', $details) ? EmailAddress::fromString($details['email_address']) : null,
84
+ array_key_exists('first_name', $details) ? FirstName::fromString($details['first_name']) : null,
85
+ array_key_exists('last_name', $details) ? LastName::fromString($details['last_name']) : null,
86
+ array_key_exists('address_type', $details) ? AddressType::fromString($details['address_type']) : null,
87
+ array_key_exists('address', $details) ? Address::fromString($details['address']) : null,
88
+ array_key_exists('postal_code', $details) ? PostalCode::fromString($details['postal_code']) : null,
89
+ array_key_exists('housenumber', $details) ? Housenumber::fromString($details['housenumber']) : null,
90
+ array_key_exists('country', $details) ? Country::fromString($details['country']) : null,
91
+ array_key_exists('phone_numbers', $details) ? PhoneNumbers::fromArray($details['phone_numbers']) : null,
92
+ array_key_exists('locale', $details) ? Locale::fromString($details['locale']) : null
93
+ );
94
+ }
95
+
96
+ /**
97
+ * @return array
98
+ */
99
+ public function toArray()
100
+ {
101
+ return [
102
+ 'merchant_customer_id' => ($this->merchantCustomerId() !== null)
103
+ ? $this->merchantCustomerId()->toString() : null,
104
+ 'email_address' => ($this->emailAddress() !== null) ? $this->emailAddress()->toString() : null,
105
+ 'first_name' => ($this->firstName() !== null) ? $this->firstName()->toString() : null,
106
+ 'last_name' => ($this->lastName() !== null) ? $this->lastName()->toString() : null,
107
+ 'address_type' => ($this->addressType() !== null) ? $this->addressType()->toString() : null,
108
+ 'address' => ($this->address() !== null) ? $this->address()->toString() : null,
109
+ 'postal_code' => ($this->postalCode() !== null) ? $this->postalCode()->toString() : null,
110
+ 'housenumber' => ($this->housenumber() !== null) ? $this->housenumber()->toString() : null,
111
+ 'country' => ($this->country() !== null) ? $this->country()->toString() : null,
112
+ 'phone_numbers' => ($this->phoneNumbers() !== null) ? $this->phoneNumbers()->toArray() : [],
113
+ 'locale' => ($this->locale() !== null) ? $this->locale()->toString() : null
114
+ ];
115
+ }
116
+
117
+ /**
118
+ * @return MerchantCustomerId|null
119
+ */
120
+ public function merchantCustomerId()
121
+ {
122
+ return $this->merchantCustomerId;
123
+ }
124
+
125
+ /**
126
+ * @return EmailAddress|null
127
+ */
128
+ public function emailAddress()
129
+ {
130
+ return $this->emailAddress;
131
+ }
132
+
133
+ /**
134
+ * @return FirstName|null
135
+ */
136
+ public function firstName()
137
+ {
138
+ return $this->firstName;
139
+ }
140
+
141
+ /**
142
+ * @return LastName|null
143
+ */
144
+ public function lastName()
145
+ {
146
+ return $this->lastName;
147
+ }
148
+
149
+ /**
150
+ * @return AddressType|null
151
+ */
152
+ public function addressType()
153
+ {
154
+ return $this->addressType;
155
+ }
156
+
157
+ /**
158
+ * @return Address|null
159
+ */
160
+ public function address()
161
+ {
162
+ return $this->address;
163
+ }
164
+
165
+ /**
166
+ * @return PostalCode|null
167
+ */
168
+ public function postalCode()
169
+ {
170
+ return $this->postalCode;
171
+ }
172
+
173
+ /**
174
+ * @return Housenumber|null
175
+ */
176
+ public function housenumber()
177
+ {
178
+ return $this->housenumber;
179
+ }
180
+
181
+ /**
182
+ * @return Country|null
183
+ */
184
+ public function country()
185
+ {
186
+ return $this->country;
187
+ }
188
+
189
+ /**
190
+ * @return PhoneNumbers|null
191
+ */
192
+ public function phoneNumbers()
193
+ {
194
+ return $this->phoneNumbers;
195
+ }
196
+
197
+ /**
198
+ * @return Locale|null
199
+ */
200
+ public function locale()
201
+ {
202
+ return $this->locale;
203
+ }
204
+
205
+ /**
206
+ * @param MerchantCustomerId $merchantCustomerId
207
+ * @param EmailAddress $emailAddress
208
+ * @param FirstName $firstName
209
+ * @param LastName $lastName
210
+ * @param AddressType $addressType
211
+ * @param Address $address
212
+ * @param PostalCode $postalCode
213
+ * @param Housenumber $housenumber
214
+ * @param Country $country
215
+ * @param PhoneNumbers $phoneNumbers
216
+ * @param Locale $locale
217
+ */
218
+ private function __construct(
219
+ MerchantCustomerId $merchantCustomerId = null,
220
+ EmailAddress $emailAddress = null,
221
+ FirstName $firstName = null,
222
+ LastName $lastName = null,
223
+ AddressType $addressType = null,
224
+ Address $address = null,
225
+ PostalCode $postalCode = null,
226
+ Housenumber $housenumber = null,
227
+ Country $country = null,
228
+ PhoneNumbers $phoneNumbers = null,
229
+ Locale $locale = null
230
+ ) {
231
+ $this->merchantCustomerId = $merchantCustomerId;
232
+ $this->emailAddress = $emailAddress;
233
+ $this->firstName = $firstName;
234
+ $this->lastName = $lastName;
235
+ $this->addressType = $addressType;
236
+ $this->address = $address;
237
+ $this->postalCode = $postalCode;
238
+ $this->housenumber = $housenumber;
239
+ $this->country = $country;
240
+ $this->phoneNumbers = $phoneNumbers;
241
+ $this->locale = $locale;
242
+ }
243
+ }
lib/Ing/Services/ing-php/src/Order/Customer/Address.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class Address
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Customer/AddressType.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\ChoiceBasedValueObject;
6
+
7
+ final class AddressType
8
+ {
9
+ use ChoiceBasedValueObject;
10
+
11
+ /**
12
+ * Possible Address Types
13
+ */
14
+ const CUSTOMER = 'customer';
15
+ const DELIVERY = 'delivery';
16
+ const BILLING = 'billing';
17
+
18
+ /**
19
+ * @return array
20
+ */
21
+ public function possibleValues()
22
+ {
23
+ return [
24
+ self::CUSTOMER,
25
+ self::DELIVERY,
26
+ self::BILLING
27
+ ];
28
+ }
29
+
30
+ /**
31
+ * @return bool
32
+ */
33
+ public function isCustomer()
34
+ {
35
+ return $this->value === self::CUSTOMER;
36
+ }
37
+
38
+ /**
39
+ * @return bool
40
+ */
41
+ public function isDelivery()
42
+ {
43
+ return $this->value === self::DELIVERY;
44
+ }
45
+
46
+ /**
47
+ * @return bool
48
+ */
49
+ public function isBilling()
50
+ {
51
+ return $this->value === self::BILLING;
52
+ }
53
+ }
lib/Ing/Services/ing-php/src/Order/Customer/Country.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+ use GingerPayments\Payment\Common\ISO3166;
7
+ use Assert\Assertion as Guard;
8
+
9
+ final class Country
10
+ {
11
+ use StringBasedValueObject;
12
+
13
+ /**
14
+ * @param string $value
15
+ */
16
+ private function __construct($value)
17
+ {
18
+ Guard::true(
19
+ empty($value) || ISO3166::isValid($value),
20
+ 'Customer country must have ISO 3166-1 alpha-2 standard.'
21
+ );
22
+
23
+ $this->value = $value;
24
+ }
25
+ }
lib/Ing/Services/ing-php/src/Order/Customer/EmailAddress.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class EmailAddress
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ if (!empty($value)) {
18
+ Guard::email($value, 'Email Address is invalid');
19
+ }
20
+
21
+ $this->value = $value;
22
+ }
23
+ }
lib/Ing/Services/ing-php/src/Order/Customer/FirstName.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class FirstName
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Customer/Housenumber.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class Housenumber
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Customer/LastName.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class LastName
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Customer/Locale.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+ use Assert\Assertion as Guard;
7
+
8
+ final class Locale
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ if (!empty($value)) {
18
+ Guard::regex($value, '/^[a-z]{2}(_[A-Z]{2})?$/', "Locale is invalid: ".$value);
19
+ }
20
+
21
+ $this->value = $value;
22
+ }
23
+ }
lib/Ing/Services/ing-php/src/Order/Customer/MerchantCustomerId.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class MerchantCustomerId
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Customer/PhoneNumber.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class PhoneNumber
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Customer/PhoneNumbers.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use Assert\Assertion as Guard;
6
+
7
+ final class PhoneNumbers implements \Iterator
8
+ {
9
+ /**
10
+ * @var PhoneNumbers[]
11
+ */
12
+ private $phoneNumbers;
13
+
14
+ /**
15
+ * @return PhoneNumbers
16
+ */
17
+ public static function create()
18
+ {
19
+ return new static([]);
20
+ }
21
+
22
+ /**
23
+ * @param array $phoneNumbers
24
+ * @return PhoneNumbers
25
+ */
26
+ public static function fromArray(array $phoneNumbers)
27
+ {
28
+ return new static(
29
+ array_map(
30
+ function ($phoneNumber) {
31
+ return PhoneNumber::fromString($phoneNumber);
32
+ },
33
+ $phoneNumbers
34
+ )
35
+ );
36
+ }
37
+
38
+ /**
39
+ * @return array
40
+ */
41
+ public function toArray()
42
+ {
43
+ return array_map(
44
+ function (PhoneNumber $phoneNumber) {
45
+ return $phoneNumber->toString();
46
+ },
47
+ $this->phoneNumbers
48
+ );
49
+ }
50
+
51
+ /**
52
+ * @return mixed
53
+ */
54
+ public function current()
55
+ {
56
+ return current($this->phoneNumbers);
57
+ }
58
+
59
+ public function next()
60
+ {
61
+ return next($this->phoneNumbers);
62
+ }
63
+
64
+ /**
65
+ * @return mixed
66
+ */
67
+ public function key()
68
+ {
69
+ return key($this->phoneNumbers);
70
+ }
71
+
72
+ /**
73
+ * @return boolean
74
+ */
75
+ public function valid()
76
+ {
77
+ $key = key($this->phoneNumbers);
78
+ return ($key !== null && $key !== false);
79
+ }
80
+
81
+ public function rewind()
82
+ {
83
+ reset($this->phoneNumbers);
84
+ }
85
+
86
+ /**
87
+ * @param array $phoneNumbers
88
+ */
89
+ private function __construct(array $phoneNumbers = [])
90
+ {
91
+ Guard::allIsInstanceOf($phoneNumbers, 'GingerPayments\Payment\Order\Customer\PhoneNumber');
92
+
93
+ $this->phoneNumbers = $phoneNumbers;
94
+ }
95
+ }
lib/Ing/Services/ing-php/src/Order/Customer/PostalCode.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class PostalCode
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Description.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class Description
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'Description cannot be blank');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Order/Extra.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order;
4
+
5
+ final class Extra
6
+ {
7
+ /**
8
+ * @var array|null
9
+ */
10
+ private $extra;
11
+
12
+ /**
13
+ * @param array $details
14
+ * @return Extra
15
+ */
16
+ public static function fromArray(array $details)
17
+ {
18
+ return new static($details);
19
+ }
20
+
21
+ /**
22
+ * @return array
23
+ */
24
+ public function toArray()
25
+ {
26
+ return $this->extra();
27
+ }
28
+
29
+ /**
30
+ * @return array|null
31
+ */
32
+ public function extra()
33
+ {
34
+ return $this->extra;
35
+ }
36
+
37
+ /**
38
+ * @param array $extra
39
+ */
40
+ private function __construct(array $extra = null)
41
+ {
42
+ $this->extra = $extra;
43
+ }
44
+ }
lib/Ing/Services/ing-php/src/Order/MerchantOrderId.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class MerchantOrderId
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'Merchant order ID cannot be blank');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Order/Status.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order;
4
+
5
+ use GingerPayments\Payment\Common\ChoiceBasedValueObject;
6
+
7
+ final class Status
8
+ {
9
+ use ChoiceBasedValueObject;
10
+
11
+ /**
12
+ * Possible order statuses
13
+ */
14
+ const BRAND_NEW = 'new';
15
+ const PROCESSING = 'processing';
16
+ const ERROR = 'error';
17
+ const COMPLETED = 'completed';
18
+ const CANCELLED = 'cancelled';
19
+ const EXPIRED = 'expired';
20
+ const SEE_TRANSACTIONS = 'see-transactions';
21
+
22
+ /**
23
+ * @return array
24
+ */
25
+ public function possibleValues()
26
+ {
27
+ return [
28
+ self::BRAND_NEW,
29
+ self::PROCESSING,
30
+ self::ERROR,
31
+ self::COMPLETED,
32
+ self::CANCELLED,
33
+ self::EXPIRED,
34
+ self::SEE_TRANSACTIONS
35
+ ];
36
+ }
37
+
38
+ /**
39
+ * @return bool
40
+ */
41
+ public function isNew()
42
+ {
43
+ return $this->value === self::BRAND_NEW;
44
+ }
45
+
46
+ /**
47
+ * @return bool
48
+ */
49
+ public function isProcessing()
50
+ {
51
+ return $this->value === self::PROCESSING;
52
+ }
53
+
54
+ /**
55
+ * @return bool
56
+ */
57
+ public function isError()
58
+ {
59
+ return $this->value === self::ERROR;
60
+ }
61
+
62
+ /**
63
+ * @return bool
64
+ */
65
+ public function isCompleted()
66
+ {
67
+ return $this->value === self::COMPLETED;
68
+ }
69
+
70
+ /**
71
+ * @return bool
72
+ */
73
+ public function isCancelled()
74
+ {
75
+ return $this->value === self::CANCELLED;
76
+ }
77
+
78
+ /**
79
+ * @return bool
80
+ */
81
+ public function isExpired()
82
+ {
83
+ return $this->value === self::EXPIRED;
84
+ }
85
+
86
+ /**
87
+ * @return bool
88
+ */
89
+ public function isSeeTransactions()
90
+ {
91
+ return $this->value === self::SEE_TRANSACTIONS;
92
+ }
93
+ }
lib/Ing/Services/ing-php/src/Order/Transaction.php ADDED
@@ -0,0 +1,425 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use Carbon\Carbon;
7
+ use GingerPayments\Payment\Currency;
8
+ use GingerPayments\Payment\Order\Transaction\Amount as TransactionAmount;
9
+ use GingerPayments\Payment\Order\Transaction\Balance;
10
+ use GingerPayments\Payment\Order\Transaction\Description as TransactionDescription;
11
+ use GingerPayments\Payment\Order\Transaction\PaymentMethod;
12
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
13
+ use GingerPayments\Payment\Order\Transaction\Reason;
14
+ use GingerPayments\Payment\Order\Transaction\Status as TransactionStatus;
15
+ use GingerPayments\Payment\Url;
16
+ use Rhumsaa\Uuid\Uuid;
17
+
18
+ final class Transaction
19
+ {
20
+ /**
21
+ * @var Uuid|null
22
+ */
23
+ private $id;
24
+
25
+ /**
26
+ * @var Carbon|null
27
+ */
28
+ private $created;
29
+
30
+ /**
31
+ * @var Carbon|null
32
+ */
33
+ private $modified;
34
+
35
+ /**
36
+ * @var Carbon|null
37
+ */
38
+ private $completed;
39
+
40
+ /**
41
+ * @var TransactionStatus|null
42
+ */
43
+ private $status;
44
+
45
+ /**
46
+ * @var Reason|null
47
+ */
48
+ private $reason;
49
+
50
+ /**
51
+ * @var Currency|null
52
+ */
53
+ private $currency;
54
+
55
+ /**
56
+ * @var TransactionAmount|null
57
+ */
58
+ private $amount;
59
+
60
+ /**
61
+ * @var \DateInterval|null
62
+ */
63
+ private $expirationPeriod;
64
+
65
+ /**
66
+ * @var TransactionDescription|null
67
+ */
68
+ private $description;
69
+
70
+ /**
71
+ * @var Balance|null
72
+ */
73
+ private $balance;
74
+
75
+ /**
76
+ * @var PaymentMethod
77
+ */
78
+ private $paymentMethod;
79
+
80
+ /**
81
+ * @var PaymentMethodDetails
82
+ */
83
+ private $paymentMethodDetails;
84
+
85
+ /**
86
+ * @var Url|null
87
+ */
88
+ private $paymentUrl;
89
+
90
+ /**
91
+ * @param array $transaction
92
+ * @return Transaction
93
+ */
94
+ public static function fromArray(array $transaction)
95
+ {
96
+ Guard::keyExists($transaction, 'payment_method');
97
+
98
+ $paymentMethod = PaymentMethod::fromString($transaction['payment_method']);
99
+ return new static(
100
+ $paymentMethod,
101
+ PaymentMethodDetails\PaymentMethodDetailsFactory::createFromArray(
102
+ $paymentMethod,
103
+ array_key_exists(
104
+ 'payment_method_details',
105
+ $transaction
106
+ ) ? $transaction['payment_method_details'] : []
107
+ ),
108
+ array_key_exists('id', $transaction) ? Uuid::fromString($transaction['id']) : null,
109
+ array_key_exists('created', $transaction) ? new Carbon($transaction['created']) : null,
110
+ array_key_exists('modified', $transaction) ? new Carbon($transaction['modified']) : null,
111
+ array_key_exists('completed', $transaction) ? new Carbon($transaction['completed']) : null,
112
+ array_key_exists('status', $transaction) ? TransactionStatus::fromString($transaction['status']) : null,
113
+ array_key_exists('reason', $transaction) ? Reason::fromString($transaction['reason']) : null,
114
+ array_key_exists('currency', $transaction) ? Currency::fromString($transaction['currency']) : null,
115
+ array_key_exists('amount', $transaction)
116
+ ? TransactionAmount::fromInteger($transaction['amount'])
117
+ : null,
118
+ array_key_exists('expiration_period', $transaction)
119
+ ? new \DateInterval($transaction['expiration_period'])
120
+ : null,
121
+ array_key_exists('description', $transaction)
122
+ ? TransactionDescription::fromString($transaction['description'])
123
+ : null,
124
+ array_key_exists('balance', $transaction) ? Balance::fromString($transaction['balance']) : null,
125
+ array_key_exists('payment_url', $transaction) ? Url::fromString($transaction['payment_url']) : null
126
+ );
127
+ }
128
+
129
+ /**
130
+ * @return array
131
+ */
132
+ public function toArray()
133
+ {
134
+ return [
135
+ 'payment_method' => $this->getPaymentMethod(),
136
+ 'payment_method_details' => $this->getPaymentMethodDetails(),
137
+ 'id' => $this->getId(),
138
+ 'created' => $this->getCreated(),
139
+ 'modified' => $this->getModified(),
140
+ 'completed' => $this->getCompleted(),
141
+ 'status' => $this->getStatus(),
142
+ 'reason' => $this->getReason(),
143
+ 'currency' => $this->getCurrency(),
144
+ 'amount' => $this->getAmount(),
145
+ 'expiration_period' => $this->getExpirationPeriod(),
146
+ 'description' => $this->getDescription(),
147
+ 'balance' => $this->getBalance(),
148
+ 'payment_url' => $this->getPaymentUrl()
149
+ ];
150
+ }
151
+
152
+ /**
153
+ * @return TransactionStatus|null
154
+ */
155
+ public function getStatus()
156
+ {
157
+ return ($this->status() !== null) ? $this->status()->toString() : null;
158
+ }
159
+
160
+ /**
161
+ * @return Reason|null
162
+ */
163
+ public function getReason()
164
+ {
165
+ return ($this->reason() !== null) ? $this->reason()->toString() : null;
166
+ }
167
+
168
+ /**
169
+ * @return Url|null
170
+ */
171
+ public function getPaymentUrl()
172
+ {
173
+ return ($this->paymentUrl() !== null) ? $this->paymentUrl()->toString() : null;
174
+ }
175
+
176
+ /**
177
+ * @return PaymentMethodDetails
178
+ */
179
+ public function getPaymentMethodDetails()
180
+ {
181
+ return $this->paymentMethodDetails()->toArray();
182
+ }
183
+
184
+ /**
185
+ * @return PaymentMethod
186
+ */
187
+ public function getPaymentMethod()
188
+ {
189
+ return $this->paymentMethod()->toString();
190
+ }
191
+
192
+ /**
193
+ * @return Carbon|null
194
+ */
195
+ public function getModified()
196
+ {
197
+ return ($this->modified() !== null) ? $this->modified()->toIso8601String() : null;
198
+ }
199
+
200
+ /**
201
+ * @return null|Uuid
202
+ */
203
+ public function getId()
204
+ {
205
+ return ($this->id() !== null) ? $this->id()->toString() : null;
206
+ }
207
+
208
+ /**
209
+ * @return \DateInterval|null
210
+ */
211
+ public function getExpirationPeriod()
212
+ {
213
+ return ($this->expirationPeriod() !== null)
214
+ ? $this->expirationPeriod()->format('P%yY%mM%dDT%hH%iM%sS')
215
+ : null;
216
+ }
217
+
218
+ /**
219
+ * @return TransactionDescription|null
220
+ */
221
+ public function getDescription()
222
+ {
223
+ return ($this->description() !== null) ? $this->description()->toString() : null;
224
+ }
225
+
226
+ /**
227
+ * @return TransactionAmount|null
228
+ */
229
+ public function getAmount()
230
+ {
231
+ return ($this->amount() !== null) ? $this->amount()->toInteger() : null;
232
+ }
233
+
234
+ /**
235
+ * @return Balance|null
236
+ */
237
+ public function getBalance()
238
+ {
239
+ return ($this->balance() !== null) ? $this->balance()->toString() : null;
240
+ }
241
+
242
+ /**
243
+ * @return Carbon|null
244
+ */
245
+ public function getCompleted()
246
+ {
247
+ return ($this->completed() !== null) ? $this->completed()->toIso8601String() : null;
248
+ }
249
+
250
+ /**
251
+ * @return Carbon|null
252
+ */
253
+ public function getCreated()
254
+ {
255
+ return ($this->created() !== null) ? $this->created()->toIso8601String() : null;
256
+ }
257
+
258
+ /**
259
+ * @return Currency|null
260
+ */
261
+ public function getCurrency()
262
+ {
263
+ return ($this->currency() !== null) ? $this->currency()->toString() : null;
264
+ }
265
+
266
+ /**
267
+ * @return Uuid|null
268
+ */
269
+ public function id()
270
+ {
271
+ return $this->id;
272
+ }
273
+
274
+ /**
275
+ * @return Carbon|null
276
+ */
277
+ public function created()
278
+ {
279
+ return $this->created;
280
+ }
281
+
282
+ /**
283
+ * @return Carbon|null
284
+ */
285
+ public function modified()
286
+ {
287
+ return $this->modified;
288
+ }
289
+
290
+ /**
291
+ * @return Carbon|null
292
+ */
293
+ public function completed()
294
+ {
295
+ return $this->completed;
296
+ }
297
+
298
+ /**
299
+ * @return TransactionStatus|null
300
+ */
301
+ public function status()
302
+ {
303
+ return $this->status;
304
+ }
305
+
306
+ /**
307
+ * @return Reason|null
308
+ */
309
+ public function reason()
310
+ {
311
+ return $this->reason;
312
+ }
313
+
314
+ /**
315
+ * @return Currency|null
316
+ */
317
+ public function currency()
318
+ {
319
+ return $this->currency;
320
+ }
321
+
322
+ /**
323
+ * @return Amount|null
324
+ */
325
+ public function amount()
326
+ {
327
+ return $this->amount;
328
+ }
329
+
330
+ /**
331
+ * @return \DateInterval|null
332
+ */
333
+ public function expirationPeriod()
334
+ {
335
+ return $this->expirationPeriod;
336
+ }
337
+
338
+ /**
339
+ * @return Description|null
340
+ */
341
+ public function description()
342
+ {
343
+ return $this->description;
344
+ }
345
+
346
+ /**
347
+ * @return Balance|null
348
+ */
349
+ public function balance()
350
+ {
351
+ return $this->balance;
352
+ }
353
+
354
+ /**
355
+ * @return PaymentMethod
356
+ */
357
+ public function paymentMethod()
358
+ {
359
+ return $this->paymentMethod;
360
+ }
361
+
362
+ /**
363
+ * @return PaymentMethodDetails
364
+ */
365
+ public function paymentMethodDetails()
366
+ {
367
+ return $this->paymentMethodDetails;
368
+ }
369
+
370
+ /**
371
+ * @return Url|null
372
+ */
373
+ public function paymentUrl()
374
+ {
375
+ return $this->paymentUrl;
376
+ }
377
+
378
+ /**
379
+ * @param PaymentMethod $paymentMethod
380
+ * @param PaymentMethodDetails $paymentMethodDetails
381
+ * @param Uuid $id
382
+ * @param Carbon $created
383
+ * @param Carbon $modified
384
+ * @param Carbon $completed
385
+ * @param TransactionStatus $status
386
+ * @param Reason $reason
387
+ * @param Currency $currency
388
+ * @param TransactionAmount $amount
389
+ * @param \DateInterval $expirationPeriod
390
+ * @param TransactionDescription $description
391
+ * @param Balance $balance
392
+ * @param Url $paymentUrl
393
+ */
394
+ private function __construct(
395
+ PaymentMethod $paymentMethod,
396
+ PaymentMethodDetails $paymentMethodDetails,
397
+ Uuid $id = null,
398
+ Carbon $created = null,
399
+ Carbon $modified = null,
400
+ Carbon $completed = null,
401
+ TransactionStatus $status = null,
402
+ Reason $reason = null,
403
+ Currency $currency = null,
404
+ TransactionAmount $amount = null,
405
+ \DateInterval $expirationPeriod = null,
406
+ TransactionDescription $description = null,
407
+ Balance $balance = null,
408
+ Url $paymentUrl = null
409
+ ) {
410
+ $this->paymentMethod = $paymentMethod;
411
+ $this->paymentMethodDetails = $paymentMethodDetails;
412
+ $this->id = $id;
413
+ $this->created = $created;
414
+ $this->modified = $modified;
415
+ $this->completed = $completed;
416
+ $this->status = $status;
417
+ $this->reason = $reason;
418
+ $this->currency = $currency;
419
+ $this->amount = $amount;
420
+ $this->expirationPeriod = $expirationPeriod;
421
+ $this->description = $description;
422
+ $this->balance = $balance;
423
+ $this->paymentUrl = $paymentUrl;
424
+ }
425
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/Amount.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction;
4
+
5
+ use Assert\Assertion as Guard;
6
+
7
+ final class Amount
8
+ {
9
+ /**
10
+ * @var integer
11
+ */
12
+ private $amount;
13
+
14
+ /**
15
+ * @param integer $amount
16
+ * @return Amount
17
+ */
18
+ public static function fromInteger($amount)
19
+ {
20
+ return new static((int) $amount);
21
+ }
22
+
23
+ /**
24
+ * @return integer
25
+ */
26
+ public function toInteger()
27
+ {
28
+ return $this->amount;
29
+ }
30
+
31
+ /**
32
+ * @param integer $amount
33
+ */
34
+ private function __construct($amount)
35
+ {
36
+ Guard::min($amount, 1, 'Amount must be at least one');
37
+
38
+ $this->amount = $amount;
39
+ }
40
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/Balance.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Common\ChoiceBasedValueObject;
6
+
7
+ final class Balance
8
+ {
9
+ use ChoiceBasedValueObject;
10
+
11
+ /**
12
+ * Possible transaction value values
13
+ */
14
+ const INTERNAL = 'internal';
15
+ const EXTERNAL = 'external';
16
+ const TEST = 'test';
17
+
18
+ /**
19
+ * @return array
20
+ */
21
+ public function possibleValues()
22
+ {
23
+ return [
24
+ self::INTERNAL,
25
+ self::EXTERNAL,
26
+ self::TEST
27
+ ];
28
+ }
29
+
30
+ /**
31
+ * @return bool
32
+ */
33
+ public function isInternal()
34
+ {
35
+ return $this->value === self::INTERNAL;
36
+ }
37
+
38
+ /**
39
+ * @return bool
40
+ */
41
+ public function isExternal()
42
+ {
43
+ return $this->value === self::EXTERNAL;
44
+ }
45
+
46
+ /**
47
+ * @return bool
48
+ */
49
+ public function isTest()
50
+ {
51
+ return $this->value === self::TEST;
52
+ }
53
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/Description.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class Description
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'Description cannot be blank');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethod.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Common\ChoiceBasedValueObject;
6
+
7
+ final class PaymentMethod
8
+ {
9
+ use ChoiceBasedValueObject;
10
+
11
+ /**
12
+ * Possible payment methods
13
+ */
14
+ const IDEAL = 'ideal';
15
+ const CREDIT_CARD = 'credit-card';
16
+ const BANK_TRANSFER = 'bank-transfer';
17
+ const SOFORT = 'sofort';
18
+ const BANCONTACT = 'bancontact';
19
+ const COD = 'cash-on-delivery';
20
+
21
+ /**
22
+ * @return array
23
+ */
24
+ public function possibleValues()
25
+ {
26
+ return [
27
+ self::IDEAL,
28
+ self::CREDIT_CARD,
29
+ self::BANK_TRANSFER,
30
+ self::SOFORT,
31
+ self::BANCONTACT,
32
+ self::COD
33
+ ];
34
+ }
35
+
36
+ /**
37
+ * @return bool
38
+ */
39
+ public function isIdeal()
40
+ {
41
+ return $this->value === self::IDEAL;
42
+ }
43
+
44
+ /**
45
+ * @return bool
46
+ */
47
+ public function isCreditCard()
48
+ {
49
+ return $this->value === self::CREDIT_CARD;
50
+ }
51
+
52
+ /**
53
+ * @return bool
54
+ */
55
+ public function isBankTransfer()
56
+ {
57
+ return $this->value === self::BANK_TRANSFER;
58
+ }
59
+
60
+ /**
61
+ * @return bool
62
+ */
63
+ public function isSofort()
64
+ {
65
+ return $this->value === self::SOFORT;
66
+ }
67
+
68
+ /**
69
+ * @return bool
70
+ */
71
+ public function isBancontact()
72
+ {
73
+ return $this->value === self::BANCONTACT;
74
+ }
75
+
76
+ /**
77
+ * @return bool
78
+ */
79
+ public function isCashOnDelivery()
80
+ {
81
+ return $this->value === self::COD;
82
+ }
83
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction;
4
+
5
+ interface PaymentMethodDetails
6
+ {
7
+ /**
8
+ * @param array $details
9
+ * @return PaymentMethodDetails
10
+ */
11
+ public static function fromArray(array $details);
12
+
13
+ /**
14
+ * @return array
15
+ */
16
+ public function toArray();
17
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails.php ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
6
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails\SetupToken;
7
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails\VaultToken;
8
+ use Carbon\Carbon;
9
+
10
+ final class BancontactPaymentMethodDetails implements PaymentMethodDetails
11
+ {
12
+ /**
13
+ * @var Carbon|null
14
+ */
15
+ private $datetimeLocal;
16
+
17
+ /**
18
+ * @var SetupToken|null
19
+ */
20
+ private $setupToken;
21
+
22
+ /**
23
+ * @var VaultToken|null
24
+ */
25
+ private $vaultToken;
26
+
27
+ /**
28
+ * @param array $details
29
+ * @return BancontactPaymentMethodDetails
30
+ */
31
+ public static function fromArray(array $details)
32
+ {
33
+ return new static(
34
+ array_key_exists('datetime_local', $details) ? new Carbon($details['datetime_local']) : null,
35
+ array_key_exists('setup_token', $details) ? SetupToken::fromString($details['setup_token']) : null,
36
+ array_key_exists('vault_token', $details) ? VaultToken::fromString($details['vault_token']) : null
37
+ );
38
+ }
39
+
40
+ /**
41
+ * @return array
42
+ */
43
+ public function toArray()
44
+ {
45
+ return [
46
+ 'datetime_local' => ($this->datetimeLocal() !== null) ? $this->datetimeLocal()->toIso8601String() : null,
47
+ 'setup_token' => ($this->setupToken() !== null) ? $this->setupToken()->toString() : null,
48
+ 'vault_token' => ($this->vaultToken() !== null) ? $this->vaultToken()->toString() : null
49
+ ];
50
+ }
51
+
52
+ /**
53
+ * @return Carbon|null
54
+ */
55
+ public function datetimeLocal()
56
+ {
57
+ return $this->datetimeLocal;
58
+ }
59
+
60
+ /**
61
+ * @return SetupToken|null
62
+ */
63
+ public function setupToken()
64
+ {
65
+ return $this->setupToken;
66
+ }
67
+
68
+ /**
69
+ * @return VaultToken|null
70
+ */
71
+ public function vaultToken()
72
+ {
73
+ return $this->vaultToken;
74
+ }
75
+
76
+ /**
77
+ * @param Carbon $datetimeLocal
78
+ * @param SetupToken $setupToken
79
+ * @param VaultToken $vaultToken
80
+ */
81
+ private function __construct(
82
+ Carbon $datetimeLocal = null,
83
+ SetupToken $setupToken = null,
84
+ VaultToken $vaultToken = null
85
+ ) {
86
+ $this->datetimeLocal = $datetimeLocal;
87
+ $this->setupToken = $setupToken;
88
+ $this->vaultToken = $vaultToken;
89
+ }
90
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails/SetupToken.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class SetupToken
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails/VaultToken.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class VaultToken
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/CashOnDeliveryPaymentMethodDetails.php ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Iban;
6
+ use GingerPayments\Payment\SwiftBic;
7
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
8
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\ConsumerName;
9
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SofortPaymentMethodDetails\TransactionId;
10
+
11
+ final class CashOnDeliveryPaymentMethodDetails implements PaymentMethodDetails
12
+ {
13
+ /**
14
+ * @var TransactionId|null
15
+ */
16
+ private $transactionId;
17
+
18
+ /**
19
+ * @var Iban|null
20
+ */
21
+ private $consumerIban;
22
+
23
+ /**
24
+ * @var SwiftBic|null
25
+ */
26
+ private $consumerBic;
27
+
28
+ /**
29
+ * @var ConsumerName|null
30
+ */
31
+ private $consumerName;
32
+
33
+ /**
34
+ * @param array $details
35
+ * @return CashOnDeliveryPaymentMethodDetails
36
+ */
37
+ public static function fromArray(array $details)
38
+ {
39
+ return new static(
40
+ array_key_exists('transaction_id', $details) ? TransactionId::fromString($details['transaction_id']) : null,
41
+ array_key_exists('consumer_name', $details) ? ConsumerName::fromString($details['consumer_name']) : null,
42
+ array_key_exists('consumer_iban', $details) ? Iban::fromString($details['consumer_iban']) : null,
43
+ array_key_exists('consumer_bic', $details) ? SwiftBic::fromString($details['consumer_bic']) : null
44
+ );
45
+ }
46
+
47
+ /**
48
+ * @return array
49
+ */
50
+ public function toArray()
51
+ {
52
+ return [
53
+ 'transaction_id' => ($this->transactionId() !== null) ? $this->transactionId()->toString() : null,
54
+ 'consumer_name' => ($this->consumerName() !== null) ? $this->consumerName()->toString() : null,
55
+ 'consumer_iban' => ($this->consumerIban() !== null) ? $this->consumerIban()->toString() : null,
56
+ 'consumer_bic' => ($this->consumerBic() !== null) ? $this->consumerBic()->toString() : null
57
+ ];
58
+ }
59
+
60
+ /**
61
+ * @return SwiftBic|null
62
+ */
63
+ public function consumerBic()
64
+ {
65
+ return $this->consumerBic;
66
+ }
67
+
68
+ /**
69
+ * @return Iban|null
70
+ */
71
+ public function consumerIban()
72
+ {
73
+ return $this->consumerIban;
74
+ }
75
+
76
+ /**
77
+ * @return consumerName|null
78
+ */
79
+ public function consumerName()
80
+ {
81
+ return $this->consumerName;
82
+ }
83
+
84
+ /**
85
+ * @return TransactionId|null
86
+ */
87
+ public function transactionId()
88
+ {
89
+ return $this->transactionId;
90
+ }
91
+
92
+ /**
93
+ * @param TransactionId $transactionId
94
+ * @param ConsumerName $consumerName
95
+ * @param Iban $consumerIban
96
+ * @param SwiftBic $consumerBic
97
+ */
98
+ private function __construct(
99
+ TransactionId $transactionId = null,
100
+ ConsumerName $consumerName = null,
101
+ Iban $consumerIban = null,
102
+ SwiftBic $consumerBic = null
103
+ ) {
104
+ $this->transactionId = $transactionId;
105
+ $this->consumerName = $consumerName;
106
+ $this->consumerIban = $consumerIban;
107
+ $this->consumerBic = $consumerBic;
108
+ }
109
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/ConsumerName.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class ConsumerName
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/CreditCardPaymentMethodDetails.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
6
+
7
+ final class CreditCardPaymentMethodDetails implements PaymentMethodDetails
8
+ {
9
+ /**
10
+ * @param array $details
11
+ * @return CreditCardPaymentMethodDetails
12
+ */
13
+ public static function fromArray(array $details)
14
+ {
15
+ return new static();
16
+ }
17
+
18
+ /**
19
+ * @return array
20
+ */
21
+ public function toArray()
22
+ {
23
+ return [];
24
+ }
25
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails.php ADDED
@@ -0,0 +1,213 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Iban;
7
+ use GingerPayments\Payment\SwiftBic;
8
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
9
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\ConsumerCity;
10
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\Status;
11
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\TransactionId;
12
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\ConsumerCountry;
13
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\ConsumerAddress;
14
+
15
+ class IdealPaymentMethodDetails implements PaymentMethodDetails
16
+ {
17
+ /**
18
+ * @var SwiftBic
19
+ */
20
+ private $issuerId;
21
+
22
+ /**
23
+ * @var Status|null
24
+ */
25
+ private $status;
26
+
27
+ /**
28
+ * @var TransactionId|null
29
+ */
30
+ private $transactionId;
31
+
32
+ /**
33
+ * @var ConsumerName|null
34
+ */
35
+ private $consumerName;
36
+
37
+ /**
38
+ * @var ConsumerAddress|null
39
+ */
40
+ private $consumerAddress;
41
+
42
+ /**
43
+ * @var ConsumerCity|null
44
+ */
45
+ private $consumerCity;
46
+
47
+ /**
48
+ * @var ConsumerCountry|null
49
+ */
50
+ private $consumerCountry;
51
+
52
+ /**
53
+ * @var Iban|null
54
+ */
55
+ private $consumerIban;
56
+
57
+ /**
58
+ * @var SwiftBic|null
59
+ */
60
+ private $consumerBic;
61
+
62
+ /**
63
+ * @param array $details
64
+ * @return IdealPaymentMethodDetails
65
+ */
66
+ public static function fromArray(array $details)
67
+ {
68
+ Guard::keyExists($details, 'issuer_id');
69
+
70
+ return new static(
71
+ SwiftBic::fromString($details['issuer_id']),
72
+ array_key_exists('status', $details)
73
+ ? Status::fromString($details['status']) : null,
74
+ array_key_exists('transaction_id', $details)
75
+ ? TransactionId::fromString($details['transaction_id']) : null,
76
+ array_key_exists('consumer_name', $details)
77
+ ? ConsumerName::fromString($details['consumer_name']) : null,
78
+ array_key_exists('consumer_address', $details)
79
+ ? ConsumerAddress::fromString($details['consumer_address']) : null,
80
+ array_key_exists('consumer_city', $details)
81
+ ? ConsumerCity::fromString($details['consumer_city']) : null,
82
+ array_key_exists('consumer_country', $details)
83
+ ? ConsumerCountry::fromString($details['consumer_country']) : null,
84
+ array_key_exists('consumer_iban', $details)
85
+ ? Iban::fromString($details['consumer_iban']) : null,
86
+ array_key_exists('consumer_bic', $details)
87
+ ? SwiftBic::fromString($details['consumer_bic']) : null
88
+ );
89
+ }
90
+
91
+ /**
92
+ * @return array
93
+ */
94
+ public function toArray()
95
+ {
96
+ return [
97
+ 'issuer_id' => $this->issuerId()->toString(),
98
+ 'transaction_id' => ($this->transactionId() !== null) ? $this->transactionId()->toString() : null,
99
+ 'status' => ($this->status() !== null) ? $this->status()->toString() : null,
100
+ 'consumer_name' => ($this->consumerName() !== null) ? $this->consumerName()->toString() : null,
101
+ 'consumer_address' => ($this->consumerAddress() !== null) ? $this->consumerAddress()->toString() : null,
102
+ 'consumer_city' => ($this->consumerCity() !== null) ? $this->consumerCity()->toString() : null,
103
+ 'consumer_country' => ($this->consumerCountry() !== null) ? $this->consumerCountry()->toString() : null,
104
+ 'consumer_iban' => ($this->consumerIban() !== null) ? $this->consumerIban()->toString() : null,
105
+ 'consumer_bic' => ($this->consumerBic() !== null) ? $this->consumerBic()->toString() : null
106
+ ];
107
+ }
108
+
109
+ /**
110
+ * @return SwiftBic
111
+ */
112
+ public function issuerId()
113
+ {
114
+ return $this->issuerId;
115
+ }
116
+
117
+ /**
118
+ * @return Status|null
119
+ */
120
+ public function status()
121
+ {
122
+ return $this->status;
123
+ }
124
+
125
+ /**
126
+ * @return TransactionId|null
127
+ */
128
+ public function transactionId()
129
+ {
130
+ return $this->transactionId;
131
+ }
132
+
133
+ /**
134
+ * @return ConsumerName|null
135
+ */
136
+ public function consumerName()
137
+ {
138
+ return $this->consumerName;
139
+ }
140
+
141
+ /**
142
+ * @return ConsumerAddress|null
143
+ */
144
+ public function consumerAddress()
145
+ {
146
+ return $this->consumerAddress;
147
+ }
148
+
149
+ /**
150
+ * @return ConsumerCity|null
151
+ */
152
+ public function consumerCity()
153
+ {
154
+ return $this->consumerCity;
155
+ }
156
+
157
+ /**
158
+ * @return ConsumerCountry|null
159
+ */
160
+ public function consumerCountry()
161
+ {
162
+ return $this->consumerCountry;
163
+ }
164
+
165
+ /**
166
+ * @return Iban|null
167
+ */
168
+ public function consumerIban()
169
+ {
170
+ return $this->consumerIban;
171
+ }
172
+
173
+ /**
174
+ * @return SwiftBic|null
175
+ */
176
+ public function consumerBic()
177
+ {
178
+ return $this->consumerBic;
179
+ }
180
+
181
+ /**
182
+ * @param SwiftBic $issuerId
183
+ * @param Status $status
184
+ * @param TransactionId $transactionId
185
+ * @param ConsumerName $consumerName
186
+ * @param ConsumerAddress $consumerAddress
187
+ * @param ConsumerCity $consumerCity
188
+ * @param ConsumerCountry $consumerCountry
189
+ * @param Iban $consumerIban
190
+ * @param SwiftBic $consumerBic
191
+ */
192
+ private function __construct(
193
+ SwiftBic $issuerId,
194
+ Status $status = null,
195
+ TransactionId $transactionId = null,
196
+ ConsumerName $consumerName = null,
197
+ ConsumerAddress $consumerAddress = null,
198
+ ConsumerCity $consumerCity = null,
199
+ ConsumerCountry $consumerCountry = null,
200
+ Iban $consumerIban = null,
201
+ SwiftBic $consumerBic = null
202
+ ) {
203
+ $this->issuerId = $issuerId;
204
+ $this->status = $status;
205
+ $this->transactionId = $transactionId;
206
+ $this->consumerName = $consumerName;
207
+ $this->consumerAddress = $consumerAddress;
208
+ $this->consumerCity = $consumerCity;
209
+ $this->consumerCountry = $consumerCountry;
210
+ $this->consumerIban = $consumerIban;
211
+ $this->consumerBic = $consumerBic;
212
+ }
213
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/ConsumerAddress.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class ConsumerAddress
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/ConsumerCity.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class ConsumerCity
8
+ {
9
+ use StringBasedValueObject;
10
+
11
+ /**
12
+ * @param string $value
13
+ */
14
+ private function __construct($value)
15
+ {
16
+ $this->value = $value;
17
+ }
18
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/ConsumerCountry.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+ use GingerPayments\Payment\Common\ISO3166;
7
+ use Assert\Assertion as Guard;
8
+
9
+ final class ConsumerCountry
10
+ {
11
+ use StringBasedValueObject;
12
+
13
+ /**
14
+ * @param string $value
15
+ */
16
+ private function __construct($value)
17
+ {
18
+ Guard::true(
19
+ empty($value) || ISO3166::isValid($value),
20
+ 'Consumer country must have ISO 3166-1 alpha-2 country standard.'
21
+ );
22
+
23
+ $this->value = $value;
24
+ }
25
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/Status.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class Status
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'iDEAL status cannot be blank');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/TransactionId.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class TransactionId
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'iDEAL transaction ID cannot be blank');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/PaymentMethodDetailsFactory.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethod;
6
+
7
+ final class PaymentMethodDetailsFactory
8
+ {
9
+ public static function createFromArray(PaymentMethod $paymentMethod, array $paymentMethodDetails)
10
+ {
11
+ if ($paymentMethod->isIdeal()) {
12
+ return IdealPaymentMethodDetails::fromArray($paymentMethodDetails);
13
+ }
14
+
15
+ if ($paymentMethod->isCreditCard()) {
16
+ return CreditCardPaymentMethodDetails::fromArray($paymentMethodDetails);
17
+ }
18
+
19
+ if ($paymentMethod->isBankTransfer()) {
20
+ return SepaPaymentMethodDetails::fromArray($paymentMethodDetails);
21
+ }
22
+
23
+ if ($paymentMethod->isSofort()) {
24
+ return SofortPaymentMethodDetails::fromArray($paymentMethodDetails);
25
+ }
26
+
27
+ if ($paymentMethod->isBancontact()) {
28
+ return BancontactPaymentMethodDetails::fromArray($paymentMethodDetails);
29
+ }
30
+
31
+ if ($paymentMethod->isCashOnDelivery()) {
32
+ return CashOnDeliveryPaymentMethodDetails::fromArray($paymentMethodDetails);
33
+ }
34
+
35
+ throw new \InvalidArgumentException('Provided payment method not supported.');
36
+ }
37
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/SepaPaymentMethodDetails.php ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Iban;
6
+ use GingerPayments\Payment\Order\Transaction\Reference;
7
+ use GingerPayments\Payment\SwiftBic;
8
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
9
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\ConsumerName;
10
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\ConsumerAddress;
11
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\ConsumerCity;
12
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\ConsumerCountry;
13
+
14
+ final class SepaPaymentMethodDetails implements PaymentMethodDetails
15
+ {
16
+ /**
17
+ * @var Reference
18
+ */
19
+ private $reference;
20
+
21
+ /**
22
+ * @var Iban|null
23
+ */
24
+ private $consumerIban;
25
+
26
+ /**
27
+ * @var SwiftBic|null
28
+ */
29
+ private $consumerBic;
30
+
31
+ /**
32
+ * @var ConsumerName|null
33
+ */
34
+ private $consumerName;
35
+
36
+ /**
37
+ * @var ConsumerAddress|null
38
+ */
39
+ private $consumerAddress;
40
+
41
+ /**
42
+ * @var ConsumerCity|null
43
+ */
44
+ private $consumerCity;
45
+
46
+ /**
47
+ * @var ConsumerCountry|null
48
+ */
49
+ private $consumerCountry;
50
+
51
+ /**
52
+ * @param array $details
53
+ * @return SepaPaymentMethodDetails
54
+ */
55
+ public static function fromArray(array $details)
56
+ {
57
+ return new static(
58
+ array_key_exists('consumer_name', $details)
59
+ ? ConsumerName::fromString($details['consumer_name']) : null,
60
+ array_key_exists('consumer_address', $details)
61
+ ? ConsumerAddress::fromString($details['consumer_address']) : null,
62
+ array_key_exists('consumer_city', $details)
63
+ ? ConsumerCity::fromString($details['consumer_city']) : null,
64
+ array_key_exists('consumer_country', $details)
65
+ ? ConsumerCountry::fromString($details['consumer_country']) : null,
66
+ array_key_exists('consumer_iban', $details)
67
+ ? Iban::fromString($details['consumer_iban']) : null,
68
+ array_key_exists('consumer_bic', $details)
69
+ ? SwiftBic::fromString($details['consumer_bic']) : null,
70
+ array_key_exists('reference', $details)
71
+ ? Reference::fromString($details['reference']) : null
72
+ );
73
+ }
74
+
75
+ /**
76
+ * @return array
77
+ */
78
+ public function toArray()
79
+ {
80
+ return [
81
+ 'consumer_name' => ($this->consumerName() !== null) ? $this->consumerName()->toString() : null,
82
+ 'consumer_address' => ($this->consumerAddress() !== null) ? $this->consumerAddress()->toString() : null,
83
+ 'consumer_city' => ($this->consumerCity() !== null) ? $this->consumerCity()->toString() : null,
84
+ 'consumer_country' => ($this->consumerCountry() !== null) ? $this->consumerCountry()->toString() : null,
85
+ 'consumer_iban' => ($this->consumerIban() !== null) ? $this->consumerIban()->toString() : null,
86
+ 'consumer_bic' => ($this->consumerBic() !== null) ? $this->consumerBic()->toString() : null,
87
+ 'reference' => ($this->reference() !== null) ? $this->reference()->toString() : null
88
+ ];
89
+ }
90
+
91
+ /**
92
+ * @return SwiftBic|null
93
+ */
94
+ public function consumerBic()
95
+ {
96
+ return $this->consumerBic;
97
+ }
98
+
99
+ /**
100
+ * @return Iban|null
101
+ */
102
+ public function consumerIban()
103
+ {
104
+ return $this->consumerIban;
105
+ }
106
+
107
+ /**
108
+ * @return consumerName|null
109
+ */
110
+ public function consumerName()
111
+ {
112
+ return $this->consumerName;
113
+ }
114
+
115
+ /**
116
+ * @return Reference
117
+ */
118
+ public function reference()
119
+ {
120
+ return $this->reference;
121
+ }
122
+
123
+ /**
124
+ * @return ConsumerAddress|null
125
+ */
126
+ public function consumerAddress()
127
+ {
128
+ return $this->consumerAddress;
129
+ }
130
+
131
+ /**
132
+ * @return ConsumerCity|null
133
+ */
134
+ public function consumerCity()
135
+ {
136
+ return $this->consumerCity;
137
+ }
138
+
139
+ /**
140
+ * @return ConsumerCountry|null
141
+ */
142
+ public function consumerCountry()
143
+ {
144
+ return $this->consumerCountry;
145
+ }
146
+
147
+ /**
148
+ * @param ConsumerName $consumerName
149
+ * @param ConsumerAddress $consumerAddress
150
+ * @param ConsumerCity $consumerCity
151
+ * @param ConsumerCountry $consumerCountry
152
+ * @param Iban $consumerIban
153
+ * @param SwiftBic $consumerBic
154
+ * @param Reference $reference
155
+ */
156
+ private function __construct(
157
+ ConsumerName $consumerName = null,
158
+ ConsumerAddress $consumerAddress = null,
159
+ ConsumerCity $consumerCity = null,
160
+ ConsumerCountry $consumerCountry = null,
161
+ Iban $consumerIban = null,
162
+ SwiftBic $consumerBic = null,
163
+ Reference $reference = null
164
+ ) {
165
+ $this->consumerName = $consumerName;
166
+ $this->consumerAddress = $consumerAddress;
167
+ $this->consumerCity = $consumerCity;
168
+ $this->consumerCountry = $consumerCountry;
169
+ $this->consumerIban = $consumerIban;
170
+ $this->consumerBic = $consumerBic;
171
+ $this->reference = $reference;
172
+ }
173
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/SofortPaymentMethodDetails.php ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Iban;
6
+ use GingerPayments\Payment\SwiftBic;
7
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails;
8
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\ConsumerName;
9
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SofortPaymentMethodDetails\TransactionId;
10
+
11
+ final class SofortPaymentMethodDetails implements PaymentMethodDetails
12
+ {
13
+ /**
14
+ * @var TransactionId|null
15
+ */
16
+ private $transactionId;
17
+
18
+ /**
19
+ * @var Iban|null
20
+ */
21
+ private $consumerIban;
22
+
23
+ /**
24
+ * @var SwiftBic|null
25
+ */
26
+ private $consumerBic;
27
+
28
+ /**
29
+ * @var ConsumerName|null
30
+ */
31
+ private $consumerName;
32
+
33
+ /**
34
+ * @param array $details
35
+ * @return SofortPaymentMethodDetails
36
+ */
37
+ public static function fromArray(array $details)
38
+ {
39
+ return new static(
40
+ array_key_exists('transaction_id', $details) ? TransactionId::fromString($details['transaction_id']) : null,
41
+ array_key_exists('consumer_name', $details) ? ConsumerName::fromString($details['consumer_name']) : null,
42
+ array_key_exists('consumer_iban', $details) ? Iban::fromString($details['consumer_iban']) : null,
43
+ array_key_exists('consumer_bic', $details) ? SwiftBic::fromString($details['consumer_bic']) : null
44
+ );
45
+ }
46
+
47
+ /**
48
+ * @return array
49
+ */
50
+ public function toArray()
51
+ {
52
+ return [
53
+ 'transaction_id' => ($this->transactionId() !== null) ? $this->transactionId()->toString() : null,
54
+ 'consumer_name' => ($this->consumerName() !== null) ? $this->consumerName()->toString() : null,
55
+ 'consumer_iban' => ($this->consumerIban() !== null) ? $this->consumerIban()->toString() : null,
56
+ 'consumer_bic' => ($this->consumerBic() !== null) ? $this->consumerBic()->toString() : null
57
+ ];
58
+ }
59
+
60
+ /**
61
+ * @return SwiftBic|null
62
+ */
63
+ public function consumerBic()
64
+ {
65
+ return $this->consumerBic;
66
+ }
67
+
68
+ /**
69
+ * @return Iban|null
70
+ */
71
+ public function consumerIban()
72
+ {
73
+ return $this->consumerIban;
74
+ }
75
+
76
+ /**
77
+ * @return consumerName|null
78
+ */
79
+ public function consumerName()
80
+ {
81
+ return $this->consumerName;
82
+ }
83
+
84
+ /**
85
+ * @return TransactionId|null
86
+ */
87
+ public function transactionId()
88
+ {
89
+ return $this->transactionId;
90
+ }
91
+
92
+ /**
93
+ * @param TransactionId $transactionId
94
+ * @param ConsumerName $consumerName
95
+ * @param Iban $consumerIban
96
+ * @param SwiftBic $consumerBic
97
+ */
98
+ private function __construct(
99
+ TransactionId $transactionId = null,
100
+ ConsumerName $consumerName = null,
101
+ Iban $consumerIban = null,
102
+ SwiftBic $consumerBic = null
103
+ ) {
104
+ $this->transactionId = $transactionId;
105
+ $this->consumerName = $consumerName;
106
+ $this->consumerIban = $consumerIban;
107
+ $this->consumerBic = $consumerBic;
108
+ }
109
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/PaymentMethodDetails/SofortPaymentMethodDetails/TransactionId.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SofortPaymentMethodDetails;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class TransactionId
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'SOFORT transaction ID cannot be blank');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/Reason.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class Reason
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'Transaction reason cannot be blank');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/Reference.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class Reference
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::notBlank($value, 'Reference can not be empty!');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/src/Order/Transaction/Status.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Common\ChoiceBasedValueObject;
6
+
7
+ final class Status
8
+ {
9
+ use ChoiceBasedValueObject;
10
+
11
+ /**
12
+ * Possible transaction statuses
13
+ */
14
+ const BRAND_NEW = 'new';
15
+ const PENDING = 'pending';
16
+ const PROCESSING = 'processing';
17
+ const ERROR = 'error';
18
+ const COMPLETED = 'completed';
19
+ const CANCELLED = 'cancelled';
20
+ const EXPIRED = 'expired';
21
+
22
+ /**
23
+ * @return array
24
+ */
25
+ public function possibleValues()
26
+ {
27
+ return [
28
+ self::BRAND_NEW,
29
+ self::PENDING,
30
+ self::PROCESSING,
31
+ self::ERROR,
32
+ self::COMPLETED,
33
+ self::CANCELLED,
34
+ self::EXPIRED
35
+ ];
36
+ }
37
+
38
+ /**
39
+ * @return bool
40
+ */
41
+ public function isNew()
42
+ {
43
+ return $this->value === self::BRAND_NEW;
44
+ }
45
+
46
+ /**
47
+ * @return bool
48
+ */
49
+ public function isPending()
50
+ {
51
+ return $this->value === self::PENDING;
52
+ }
53
+
54
+ /**
55
+ * @return bool
56
+ */
57
+ public function isProcessing()
58
+ {
59
+ return $this->value === self::PROCESSING;
60
+ }
61
+
62
+ /**
63
+ * @return bool
64
+ */
65
+ public function isError()
66
+ {
67
+ return $this->value === self::ERROR;
68
+ }
69
+
70
+ /**
71
+ * @return bool
72
+ */
73
+ public function isCompleted()
74
+ {
75
+ return $this->value === self::COMPLETED;
76
+ }
77
+
78
+ /**
79
+ * @return bool
80
+ */
81
+ public function isCancelled()
82
+ {
83
+ return $this->value === self::CANCELLED;
84
+ }
85
+
86
+ /**
87
+ * @return bool
88
+ */
89
+ public function isExpired()
90
+ {
91
+ return $this->value === self::EXPIRED;
92
+ }
93
+ }
lib/Ing/Services/ing-php/src/Order/Transactions.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Order;
4
+
5
+ use Assert\Assertion as Guard;
6
+
7
+ final class Transactions implements \Iterator
8
+ {
9
+ /**
10
+ * @var Transaction[]
11
+ */
12
+ private $transactions;
13
+
14
+ /**
15
+ * @return Transactions
16
+ */
17
+ public static function create()
18
+ {
19
+ return new static([]);
20
+ }
21
+
22
+ /**
23
+ * @param array $transactions
24
+ * @return Transactions
25
+ */
26
+ public static function fromArray(array $transactions)
27
+ {
28
+ return new static(
29
+ array_map(
30
+ function ($transaction) {
31
+ return Transaction::fromArray($transaction);
32
+ },
33
+ $transactions
34
+ )
35
+ );
36
+ }
37
+
38
+ /**
39
+ * @return array
40
+ */
41
+ public function toArray()
42
+ {
43
+ return array_map(
44
+ function (Transaction $transaction) {
45
+ return $transaction->toArray();
46
+ },
47
+ $this->transactions
48
+ );
49
+ }
50
+
51
+ /**
52
+ * @return \GingerPayments\Payment\Url|null
53
+ */
54
+ public function firstPaymentUrl()
55
+ {
56
+ return array_key_exists(0, $this->transactions)
57
+ ? $this->transactions[0]->paymentUrl()
58
+ : null;
59
+ }
60
+
61
+ /**
62
+ * @return mixed
63
+ */
64
+ public function current()
65
+ {
66
+ return current($this->transactions);
67
+ }
68
+
69
+ public function next()
70
+ {
71
+ return next($this->transactions);
72
+ }
73
+
74
+ /**
75
+ * @return mixed
76
+ */
77
+ public function key()
78
+ {
79
+ return key($this->transactions);
80
+ }
81
+
82
+ /**
83
+ * @return boolean
84
+ */
85
+ public function valid()
86
+ {
87
+ $key = key($this->transactions);
88
+ return ($key !== null && $key !== false);
89
+ }
90
+
91
+ public function rewind()
92
+ {
93
+ reset($this->transactions);
94
+ }
95
+
96
+ /**
97
+ * @param Transaction[] $transactions
98
+ */
99
+ private function __construct(array $transactions = [])
100
+ {
101
+ Guard::allIsInstanceOf($transactions, 'GingerPayments\Payment\Order\Transaction');
102
+
103
+ $this->transactions = $transactions;
104
+ }
105
+ }
lib/Ing/Services/ing-php/src/SwiftBic.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+ use IsoCodes\SwiftBic as SwiftBicValidator;
8
+
9
+ final class SwiftBic
10
+ {
11
+ use StringBasedValueObject;
12
+
13
+ /**
14
+ * @param string $value
15
+ */
16
+ private function __construct($value)
17
+ {
18
+ Guard::true(
19
+ empty($value) || SwiftBicValidator::validate($value),
20
+ 'Must be a valid BIC/SWIFT code (ISO-9362)'
21
+ );
22
+
23
+ $this->value = $value;
24
+ }
25
+ }
lib/Ing/Services/ing-php/src/Url.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment;
4
+
5
+ use Assert\Assertion as Guard;
6
+ use GingerPayments\Payment\Common\StringBasedValueObject;
7
+
8
+ final class Url
9
+ {
10
+ use StringBasedValueObject;
11
+
12
+ /**
13
+ * @param string $value
14
+ */
15
+ private function __construct($value)
16
+ {
17
+ Guard::url($value, 'URL must be a valid URL');
18
+
19
+ $this->value = $value;
20
+ }
21
+ }
lib/Ing/Services/ing-php/tests/ClientTest.php ADDED
@@ -0,0 +1,568 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests;
4
+
5
+ use GingerPayments\Payment\Client;
6
+ use GingerPayments\Payment\Common\ArrayFunctions;
7
+ use GingerPayments\Payment\Order;
8
+ use GuzzleHttp\Exception\ClientException as HttpClientException;
9
+ use Mockery as m;
10
+
11
+ final class ClientTest extends \PHPUnit_Framework_TestCase
12
+ {
13
+ /**
14
+ * @var \Mockery\MockInterface
15
+ */
16
+ private $httpResponse;
17
+
18
+ /**
19
+ * @var \Mockery\MockInterface
20
+ */
21
+ private $httpClient;
22
+
23
+ /**
24
+ * @var Client
25
+ */
26
+ private $client;
27
+
28
+ public function setUp()
29
+ {
30
+ $this->httpResponse = m::mock('GuzzleHttp\Message\ResponseInterface');
31
+ $this->httpClient = m::mock('GuzzleHttp\Client');
32
+ $this->client = new Client($this->httpClient);
33
+ }
34
+
35
+ /**
36
+ * @test
37
+ */
38
+ public function itShouldVerifySSLUsingBundledCA()
39
+ {
40
+ $this->httpClient->shouldReceive('setDefaultOption')
41
+ ->once()
42
+ ->with('verify', realpath(dirname(__FILE__).'/../assets/cacert.pem'))
43
+ ->andReturn(null);
44
+
45
+ $this->client->useBundledCA();
46
+ }
47
+
48
+ /**
49
+ * @test
50
+ */
51
+ public function itShouldGetIdealIssuers()
52
+ {
53
+ $this->httpClient->shouldReceive('get')
54
+ ->once()
55
+ ->with('ideal/issuers/')
56
+ ->andReturn($this->httpResponse);
57
+
58
+ $this->httpResponse->shouldReceive('json')
59
+ ->once()
60
+ ->andReturn(
61
+ [
62
+ [
63
+ 'id' => 'ABNANL2A',
64
+ 'name' => 'ABN AMRO Bank',
65
+ 'list_type' => 'Nederland'
66
+ ]
67
+ ]
68
+ );
69
+
70
+ $this->assertInstanceOf(
71
+ 'GingerPayments\Payment\Ideal\Issuers',
72
+ $this->client->getIdealIssuers()
73
+ );
74
+ }
75
+
76
+ /**
77
+ * @test
78
+ */
79
+ public function itShouldCatchHttpClientExceptionsWhenGettingIdealIssuers()
80
+ {
81
+ $this->httpClient->shouldReceive('get')
82
+ ->once()
83
+ ->with('ideal/issuers/')
84
+ ->andThrow(new HttpClientException('Something happened', m::mock('GuzzleHttp\Message\Request')));
85
+
86
+ $this->setExpectedException('GingerPayments\Payment\Client\ClientException');
87
+ $this->client->getIdealIssuers();
88
+ }
89
+
90
+ /**
91
+ * @test
92
+ */
93
+ public function itShouldCreateAnOrder()
94
+ {
95
+ $order = Order::create(
96
+ 1234,
97
+ 'EUR',
98
+ 'credit-card',
99
+ [],
100
+ 'A nice description',
101
+ 'my-order-id',
102
+ 'http://www.example.com',
103
+ 'PT10M'
104
+ );
105
+
106
+ $this->httpClient->shouldReceive('post')
107
+ ->once()
108
+ ->with(
109
+ 'orders/',
110
+ m::on(
111
+ function (array $options) use ($order) {
112
+ $this->assertEquals(3, $options['timeout']);
113
+ $this->assertEquals('application/json', $options['headers']['Content-Type']);
114
+ $this->assertEquals(
115
+ ArrayFunctions::withoutNullValues($order->toArray()),
116
+ json_decode($options['body'], true)
117
+ );
118
+ return true;
119
+ }
120
+ )
121
+ )
122
+ ->andReturn($this->httpResponse);
123
+
124
+ $this->httpResponse->shouldReceive('json')
125
+ ->once()
126
+ ->andReturn(ArrayFunctions::withoutNullValues($order->toArray()));
127
+
128
+ $this->assertInstanceOf(
129
+ 'GingerPayments\Payment\Order',
130
+ $this->client->createOrder(
131
+ 1234,
132
+ 'EUR',
133
+ 'credit-card',
134
+ [],
135
+ 'A nice description',
136
+ 'my-order-id',
137
+ 'http://www.example.com',
138
+ 'PT10M'
139
+ )
140
+ );
141
+ }
142
+
143
+ /**
144
+ * @test
145
+ */
146
+ public function itShouldCreateACreditCardOrder()
147
+ {
148
+ $order = Order::create(
149
+ 1234,
150
+ 'EUR',
151
+ 'credit-card',
152
+ [],
153
+ 'A nice description',
154
+ 'my-order-id',
155
+ 'http://www.example.com',
156
+ 'PT10M'
157
+ );
158
+
159
+ $this->httpClient->shouldReceive('post')
160
+ ->once()
161
+ ->with(
162
+ 'orders/',
163
+ m::on(
164
+ function (array $options) use ($order) {
165
+ $this->assertEquals(3, $options['timeout']);
166
+ $this->assertEquals('application/json', $options['headers']['Content-Type']);
167
+ $this->assertEquals(
168
+ ArrayFunctions::withoutNullValues($order->toArray()),
169
+ json_decode($options['body'], true)
170
+ );
171
+ return true;
172
+ }
173
+ )
174
+ )
175
+ ->andReturn($this->httpResponse);
176
+
177
+ $this->httpResponse->shouldReceive('json')
178
+ ->once()
179
+ ->andReturn(ArrayFunctions::withoutNullValues($order->toArray()));
180
+
181
+ $this->assertInstanceOf(
182
+ 'GingerPayments\Payment\Order',
183
+ $this->client->createCreditCardOrder(
184
+ 1234,
185
+ 'EUR',
186
+ 'A nice description',
187
+ 'my-order-id',
188
+ 'http://www.example.com',
189
+ 'PT10M'
190
+ )
191
+ );
192
+ }
193
+
194
+ /**
195
+ * @test
196
+ */
197
+ public function itShouldCreateAnIdealOrder()
198
+ {
199
+ $order = Order::create(
200
+ 1234,
201
+ 'EUR',
202
+ 'ideal',
203
+ ['issuer_id' => 'ABNANL2A'],
204
+ 'A nice description',
205
+ 'my-order-id',
206
+ 'http://www.example.com',
207
+ 'PT10M'
208
+ );
209
+
210
+ $this->httpClient->shouldReceive('post')
211
+ ->once()
212
+ ->with(
213
+ 'orders/',
214
+ m::on(
215
+ function (array $options) use ($order) {
216
+ $this->assertEquals('application/json', $options['headers']['Content-Type']);
217
+ $this->assertEquals(
218
+ ArrayFunctions::withoutNullValues($order->toArray()),
219
+ json_decode($options['body'], true)
220
+ );
221
+ return true;
222
+ }
223
+ )
224
+ )
225
+ ->andReturn($this->httpResponse);
226
+
227
+ $this->httpResponse->shouldReceive('json')
228
+ ->once()
229
+ ->andReturn(ArrayFunctions::withoutNullValues($order->toArray()));
230
+
231
+ $this->assertInstanceOf(
232
+ 'GingerPayments\Payment\Order',
233
+ $this->client->createIdealOrder(
234
+ 1234,
235
+ 'EUR',
236
+ 'ABNANL2A',
237
+ 'A nice description',
238
+ 'my-order-id',
239
+ 'http://www.example.com',
240
+ 'PT10M'
241
+ )
242
+ );
243
+ }
244
+
245
+ /**
246
+ * @test
247
+ */
248
+ public function itShouldCreateABankTransferOrder()
249
+ {
250
+ $order = Order::create(
251
+ 1234,
252
+ 'EUR',
253
+ 'bank-transfer',
254
+ [],
255
+ 'Bank Transfer order description',
256
+ 'my-order-id',
257
+ 'http://www.example.com',
258
+ 'PT10M'
259
+ );
260
+
261
+ $this->httpClient->shouldReceive('post')
262
+ ->once()
263
+ ->with(
264
+ 'orders/',
265
+ m::on(
266
+ function (array $options) use ($order) {
267
+ $this->assertEquals('application/json', $options['headers']['Content-Type']);
268
+ $this->assertEquals(
269
+ ArrayFunctions::withoutNullValues($order->toArray()),
270
+ json_decode($options['body'], true)
271
+ );
272
+ return true;
273
+ }
274
+ )
275
+ )
276
+ ->andReturn($this->httpResponse);
277
+
278
+ $this->httpResponse->shouldReceive('json')
279
+ ->once()
280
+ ->andReturn(ArrayFunctions::withoutNullValues($order->toArray()));
281
+
282
+ $this->assertInstanceOf(
283
+ 'GingerPayments\Payment\Order',
284
+ $this->client->createSepaOrder(
285
+ 1234,
286
+ 'EUR',
287
+ [],
288
+ 'Bank Transfer order description',
289
+ 'my-order-id',
290
+ 'http://www.example.com',
291
+ 'PT10M'
292
+ )
293
+ );
294
+ }
295
+
296
+ /**
297
+ * @test
298
+ */
299
+ public function itShouldCreateBancontactOrder()
300
+ {
301
+ $order = Order::create(
302
+ 1234,
303
+ 'EUR',
304
+ 'bancontact',
305
+ [],
306
+ 'Bancontact order description',
307
+ 'my-order-id',
308
+ 'http://www.example.com',
309
+ 'PT10M'
310
+ );
311
+
312
+ $this->httpClient->shouldReceive('post')
313
+ ->once()
314
+ ->with(
315
+ 'orders/',
316
+ m::on(
317
+ function (array $options) use ($order) {
318
+ $this->assertEquals('application/json', $options['headers']['Content-Type']);
319
+ $this->assertEquals(
320
+ ArrayFunctions::withoutNullValues($order->toArray()),
321
+ json_decode($options['body'], true)
322
+ );
323
+ return true;
324
+ }
325
+ )
326
+ )
327
+ ->andReturn($this->httpResponse);
328
+
329
+ $this->httpResponse->shouldReceive('json')
330
+ ->once()
331
+ ->andReturn(ArrayFunctions::withoutNullValues($order->toArray()));
332
+
333
+ $this->assertInstanceOf(
334
+ 'GingerPayments\Payment\Order',
335
+ $this->client->createBancontactOrder(
336
+ 1234,
337
+ 'EUR',
338
+ 'Bancontact order description',
339
+ 'my-order-id',
340
+ 'http://www.example.com',
341
+ 'PT10M'
342
+ )
343
+ );
344
+ }
345
+
346
+ /**
347
+ * @test
348
+ */
349
+ public function itShouldUpdateOrder()
350
+ {
351
+ $orderData = [
352
+ 'transactions' => [['payment_method' => 'credit-card']],
353
+ 'amount' => 9999,
354
+ 'currency' => 'EUR',
355
+ 'id' => 'c384b47e-7a5e-4c91-ab65-c4eed7f26e85',
356
+ 'expiration_period' => 'PT10M',
357
+ 'merchant_order_id' => '123',
358
+ 'description' => "Test",
359
+ 'return_url' => "http://example.com",
360
+ 'webhook_url' => "http://example.com/webhook"
361
+ ];
362
+
363
+ $order = Order::fromArray($orderData);
364
+
365
+ $this->httpClient->shouldReceive('put')
366
+ ->once()
367
+ ->with(
368
+ 'orders/c384b47e-7a5e-4c91-ab65-c4eed7f26e85/',
369
+ m::on(
370
+ function (array $options) use ($order) {
371
+ $this->assertEquals(
372
+ ArrayFunctions::withoutNullValues($order->toArray()),
373
+ $options['json']
374
+ );
375
+ return true;
376
+ }
377
+ )
378
+ )
379
+ ->andReturn($this->httpResponse);
380
+
381
+ $this->httpResponse->shouldReceive('json')
382
+ ->once()
383
+ ->andReturn(ArrayFunctions::withoutNullValues($order->toArray()));
384
+
385
+ $this->assertInstanceOf(
386
+ 'GingerPayments\Payment\Order',
387
+ $this->client->updateOrder($order)
388
+ );
389
+ }
390
+
391
+ /**
392
+ * @test
393
+ */
394
+ public function itShouldThrowAnOrderNotFoundExceptionWhenUpdatingOrder()
395
+ {
396
+ $orderData = [
397
+ 'transactions' => [['payment_method' => 'credit-card']],
398
+ 'amount' => 9999,
399
+ 'currency' => 'EUR',
400
+ 'id' => 'c384b47e-7a5e-4c91-ab65-c4eed7f26e85',
401
+ 'expiration_period' => 'PT10M',
402
+ 'merchant_order_id' => '123',
403
+ 'description' => "Test",
404
+ 'return_url' => "http://example.com",
405
+ ];
406
+
407
+ $request = m::mock('GuzzleHttp\Message\Request');
408
+ $response = m::mock('GuzzleHttp\Message\Response');
409
+ $response->shouldReceive('getStatusCode')->andReturn(404);
410
+
411
+ $this->httpClient->shouldReceive('put')
412
+ ->once()
413
+ ->andThrow(new HttpClientException('Something happened', $request, $response));
414
+
415
+ $this->setExpectedException('GingerPayments\Payment\Client\OrderNotFoundException');
416
+ $this->client->updateOrder(Order::fromArray($orderData));
417
+ }
418
+
419
+ /**
420
+ * @test
421
+ */
422
+ public function itShouldThrowAClientExceptionWhenUpdatingOrder()
423
+ {
424
+ $orderData = [
425
+ 'transactions' => [['payment_method' => 'credit-card']],
426
+ 'amount' => 9999,
427
+ 'currency' => 'EUR',
428
+ 'id' => 'c384b47e-7a5e-4c91-ab65-c4eed7f26e85',
429
+ 'expiration_period' => 'PT10M',
430
+ 'merchant_order_id' => '123',
431
+ 'description' => "Test",
432
+ 'return_url' => "http://example.com",
433
+ ];
434
+
435
+ $request = m::mock('GuzzleHttp\Message\Request');
436
+
437
+ $this->httpClient->shouldReceive('put')
438
+ ->once()
439
+ ->andThrow(new HttpClientException('Something happened', $request));
440
+
441
+ $this->setExpectedException('GingerPayments\Payment\Client\ClientException');
442
+ $this->client->updateOrder(Order::fromArray($orderData));
443
+ }
444
+
445
+ /**
446
+ * @test
447
+ */
448
+ public function itShouldCreateASofortOrder()
449
+ {
450
+ $order = Order::create(
451
+ 1234,
452
+ 'EUR',
453
+ 'sofort',
454
+ [],
455
+ 'Sofort Transfer order description',
456
+ 'my-order-id',
457
+ 'http://www.example.com',
458
+ 'PT10M'
459
+ );
460
+
461
+ $this->httpClient->shouldReceive('post')
462
+ ->once()
463
+ ->with(
464
+ 'orders/',
465
+ m::on(
466
+ function (array $options) use ($order) {
467
+ $this->assertEquals('application/json', $options['headers']['Content-Type']);
468
+ $this->assertEquals(
469
+ ArrayFunctions::withoutNullValues($order->toArray()),
470
+ json_decode($options['body'], true)
471
+ );
472
+ return true;
473
+ }
474
+ )
475
+ )
476
+ ->andReturn($this->httpResponse);
477
+
478
+ $this->httpResponse->shouldReceive('json')
479
+ ->once()
480
+ ->andReturn(ArrayFunctions::withoutNullValues($order->toArray()));
481
+
482
+ $this->assertInstanceOf(
483
+ 'GingerPayments\Payment\Order',
484
+ $this->client->createSofortOrder(
485
+ 1234,
486
+ 'EUR',
487
+ [],
488
+ 'Sofort Transfer order description',
489
+ 'my-order-id',
490
+ 'http://www.example.com',
491
+ 'PT10M'
492
+ )
493
+ );
494
+ }
495
+
496
+ /**
497
+ * @test
498
+ */
499
+ public function itShouldCatchHttpClientExceptionsWhenCreatingAnOrder()
500
+ {
501
+ $this->httpClient->shouldReceive('post')
502
+ ->once()
503
+ ->andThrow(new HttpClientException('Something happened', m::mock('GuzzleHttp\Message\Request')));
504
+
505
+ $this->setExpectedException('GingerPayments\Payment\Client\ClientException');
506
+ $this->client->createOrder(1234, 'EUR', 'credit-card');
507
+ }
508
+
509
+ /**
510
+ * @test
511
+ */
512
+ public function itShouldGetAnOrder()
513
+ {
514
+ $this->httpClient->shouldReceive('get')
515
+ ->once()
516
+ ->with('orders/123456')
517
+ ->andReturn($this->httpResponse);
518
+
519
+ $this->httpResponse->shouldReceive('json')
520
+ ->once()
521
+ ->andReturn(
522
+ [
523
+ 'amount' => 1234,
524
+ 'currency' => 'EUR',
525
+ 'transactions' => [
526
+ ['payment_method' => 'credit-card']
527
+ ]
528
+ ]
529
+ );
530
+
531
+ $this->assertInstanceOf(
532
+ 'GingerPayments\Payment\Order',
533
+ $this->client->getOrder('123456')
534
+ );
535
+ }
536
+
537
+ /**
538
+ * @test
539
+ */
540
+ public function itShouldThrowAnOrderNotFoundExceptionWhenGettingAnOrder()
541
+ {
542
+ $request = m::mock('GuzzleHttp\Message\Request');
543
+ $response = m::mock('GuzzleHttp\Message\Response');
544
+ $response->shouldReceive('getStatusCode')->andReturn(404);
545
+
546
+ $this->httpClient->shouldReceive('get')
547
+ ->once()
548
+ ->andThrow(new HttpClientException('Something happened', $request, $response));
549
+
550
+ $this->setExpectedException('GingerPayments\Payment\Client\OrderNotFoundException');
551
+ $this->client->getOrder('123456');
552
+ }
553
+
554
+ /**
555
+ * @test
556
+ */
557
+ public function itShouldThrowAClientExceptionWhenGettingAnOrder()
558
+ {
559
+ $request = m::mock('GuzzleHttp\Message\Request');
560
+
561
+ $this->httpClient->shouldReceive('get')
562
+ ->once()
563
+ ->andThrow(new HttpClientException('Something happened', $request));
564
+
565
+ $this->setExpectedException('GingerPayments\Payment\Client\ClientException');
566
+ $this->client->getOrder('123456');
567
+ }
568
+ }
lib/Ing/Services/ing-php/tests/Common/ArrayFunctionsTest.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Common;
4
+
5
+ use GingerPayments\Payment\Common\ArrayFunctions;
6
+
7
+ final class ArrayFunctionsTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldRemoveNullValues()
13
+ {
14
+ $array = [
15
+ 0 => 'foo',
16
+ 1 => 'bar',
17
+ 2 => null,
18
+ 3 => [
19
+ 0 => 'foo',
20
+ 1 => null,
21
+ 2 => 'bar',
22
+ 3 => []
23
+ ],
24
+ 4 => null,
25
+ 5 => [],
26
+ 6 => ['array' => []],
27
+ 7 => [[]],
28
+ 'foo' => null,
29
+ 'foo' => []
30
+ ];
31
+
32
+ $expected = [
33
+ 0 => 'foo',
34
+ 1 => 'bar',
35
+ 3 => [
36
+ 0 => 'foo',
37
+ 2 => 'bar'
38
+ ]
39
+ ];
40
+
41
+ $this->assertEquals($expected, ArrayFunctions::withoutNullValues($array));
42
+ }
43
+ }
lib/Ing/Services/ing-php/tests/Common/ChoiceBasedValueObjectTest.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Common;
4
+
5
+ use GingerPayments\Payment\Tests\Mock\FakeChoiceBasedValueObject;
6
+
7
+ final class ChoiceBasedValueObjectTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldAcceptValidChoices()
13
+ {
14
+ foreach (['foo', 'bar', 'baz'] as $choice) {
15
+ $choiceValueObject = FakeChoiceBasedValueObject::create($choice);
16
+ $this->assertInstanceOf(
17
+ 'GingerPayments\Payment\Tests\Mock\FakeChoiceBasedValueObject',
18
+ $choiceValueObject
19
+ );
20
+ }
21
+ }
22
+
23
+ /**
24
+ * @test
25
+ */
26
+ public function itShouldGuardAgainstInvalidChoices()
27
+ {
28
+ $this->setExpectedException('Assert\InvalidArgumentException');
29
+ FakeChoiceBasedValueObject::create('invalid');
30
+ }
31
+ }
lib/Ing/Services/ing-php/tests/Common/ISO3166Test.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Common;
4
+
5
+ use GingerPayments\Payment\Common\ISO3166;
6
+
7
+ final class ISO3166Test extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldBeValidISO3166Country()
13
+ {
14
+ $this->assertTrue(ISO3166::isValid('NL'));
15
+ $this->assertFalse(ISO3166::isValid('NLD'));
16
+ }
17
+ }
lib/Ing/Services/ing-php/tests/Common/StringBasedValueObjectTest.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Common;
4
+
5
+ use GingerPayments\Payment\Tests\Mock\FakeStringBasedValueObject;
6
+
7
+ final class StringBasedValueObjectTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateAnObjectFromString()
13
+ {
14
+ $stringValueObject = FakeStringBasedValueObject::fromString('foobar');
15
+
16
+ $this->assertInstanceOf(
17
+ 'GingerPayments\Payment\Tests\Mock\FakeStringBasedValueObject',
18
+ $stringValueObject
19
+ );
20
+ }
21
+
22
+ /**
23
+ * @test
24
+ */
25
+ public function itShouldConvertToString()
26
+ {
27
+ $stringBasedValueObject = FakeStringBasedValueObject::fromString('foobar');
28
+
29
+ $this->assertInternalType('string', $stringBasedValueObject->toString());
30
+ $this->assertEquals('foobar', $stringBasedValueObject->toString());
31
+ }
32
+
33
+ /**
34
+ * @test
35
+ */
36
+ public function itShouldCastToString()
37
+ {
38
+ $stringBasedValueObject = FakeStringBasedValueObject::fromString('foobar');
39
+
40
+ $this->assertEquals(
41
+ $stringBasedValueObject->toString(),
42
+ (string) $stringBasedValueObject
43
+ );
44
+ }
45
+ }
lib/Ing/Services/ing-php/tests/CurrencyTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests;
4
+
5
+ use GingerPayments\Payment\Currency;
6
+
7
+ final class CurrencyTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Currency',
16
+ Currency::fromString('EUR')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstInvalidCurrency()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Currency::fromString('USD');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/FallbackTest.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests;
4
+
5
+ final class FallbackTest extends \PHPUnit_Framework_TestCase
6
+ {
7
+ /**
8
+ * @test
9
+ */
10
+ public function itShouldGetValidModulus()
11
+ {
12
+ $this->assertEquals(my_bcmod("7044060001970316212900", 150), "50");
13
+ }
14
+ }
lib/Ing/Services/ing-php/tests/GingerTest.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests;
4
+
5
+ use GingerPayments\Payment\Ginger;
6
+
7
+ final class GingerTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateAClient()
13
+ {
14
+ $reflectionClass = new \ReflectionClass('GingerPayments\Payment\Client');
15
+ $reflectionProperty = $reflectionClass->getProperty('httpClient');
16
+ $reflectionProperty->setAccessible(true);
17
+
18
+ $client = Ginger::createClient('f47ac10b58cc4372a5670e02b2c3d479');
19
+
20
+ /** @var \GuzzleHttp\Client $httpClient */
21
+ $httpClient = $reflectionProperty->getValue($client);
22
+ $this->assertEquals(
23
+ str_replace('{version}', Ginger::API_VERSION, Ginger::ENDPOINT_GINGER),
24
+ $httpClient->getBaseUrl()
25
+ );
26
+ $this->assertEquals(
27
+ [
28
+ 'User-Agent' => 'ing-php/'.Ginger::CLIENT_VERSION,
29
+ 'X-PHP-Version' => PHP_VERSION
30
+ ],
31
+ $httpClient->getDefaultOption('headers')
32
+ );
33
+ $this->assertEquals(
34
+ ['f47ac10b58cc4372a5670e02b2c3d479', ''],
35
+ $httpClient->getDefaultOption('auth')
36
+ );
37
+ }
38
+
39
+ /**
40
+ * @test
41
+ */
42
+ public function itShouldFailWithIncorrectAPIkey()
43
+ {
44
+ $this->setExpectedException('Assert\InvalidArgumentException');
45
+ Ginger::createClient('my-api-key');
46
+ }
47
+
48
+ /**
49
+ * @test
50
+ */
51
+ public function itShouldCreateAValidUuid()
52
+ {
53
+ $this->assertEquals(
54
+ Ginger::apiKeyToUuid('f47ac10b58cc4372a5670e02b2c3d479'),
55
+ 'f47ac10b-58cc-4372-a567-0e02b2c3d479'
56
+ );
57
+ }
58
+ }
lib/Ing/Services/ing-php/tests/IbanTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests;
4
+
5
+ use GingerPayments\Payment\Iban;
6
+
7
+ final class IbanTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Iban',
16
+ Iban::fromString('NL45ABNA0605584621')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstInvalidIban()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Iban::fromString('NL12IGNB0123467890');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Ideal/Issuer/ListTypeTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Ideal\Issuer;
4
+
5
+ use GingerPayments\Payment\Ideal\Issuer\ListType;
6
+
7
+ final class ListTypeTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Ideal\Issuer\ListType',
16
+ ListType::fromString('ABN AMRO')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ ListType::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Ideal/Issuer/NameTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Ideal\Issuer;
4
+
5
+ use GingerPayments\Payment\Ideal\Issuer\Name;
6
+
7
+ final class NameTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Ideal\Issuer\Name',
16
+ Name::fromString('ABN AMRO')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Name::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Ideal/IssuerTest.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Ideal;
4
+
5
+ use GingerPayments\Payment\Ideal\Issuer;
6
+
7
+ final class IssuerTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateFromAnArray()
13
+ {
14
+ $array = [
15
+ 'id' => 'ABNANL2A',
16
+ 'name' => 'ABN AMRO Bank',
17
+ 'list_type' => 'Nederland'
18
+ ];
19
+
20
+ $issuer = Issuer::fromArray($array);
21
+
22
+ $this->assertInstanceOf(
23
+ 'GingerPayments\Payment\Ideal\Issuer',
24
+ $issuer
25
+ );
26
+
27
+ $this->assertEquals($array['id'], (string) $issuer->id());
28
+ $this->assertEquals($array['name'], (string) $issuer->name());
29
+ $this->assertEquals($array['list_type'], (string) $issuer->listType());
30
+ }
31
+
32
+ /**
33
+ * @test
34
+ */
35
+ public function itShouldGuardAgainstMissingId()
36
+ {
37
+ $this->setExpectedException('Assert\InvalidArgumentException');
38
+ Issuer::fromArray([]);
39
+ }
40
+
41
+ /**
42
+ * @test
43
+ */
44
+ public function itShouldGuardAgainstMissingName()
45
+ {
46
+ $this->setExpectedException('Assert\InvalidArgumentException');
47
+ Issuer::fromArray(['id' => 'ABNANL2A']);
48
+ }
49
+
50
+ /**
51
+ * @test
52
+ */
53
+ public function itShouldGuardAgainstMissingListType()
54
+ {
55
+ $this->setExpectedException('Assert\InvalidArgumentException');
56
+ Issuer::fromArray(['id' => 'ABNANL2A', 'name' => 'ABN AMRO']);
57
+ }
58
+
59
+ /**
60
+ * @test
61
+ */
62
+ public function itShouldConvertToArray()
63
+ {
64
+ $array = [
65
+ 'id' => 'ABNANL2A',
66
+ 'name' => 'ABN AMRO',
67
+ 'list_type' => 'Nederland'
68
+ ];
69
+
70
+ $this->assertEquals(
71
+ $array,
72
+ Issuer::fromArray($array)->toArray()
73
+ );
74
+ }
75
+ }
lib/Ing/Services/ing-php/tests/Ideal/IssuersTest.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Ideal;
4
+
5
+ use GingerPayments\Payment\Ideal\Issuers;
6
+
7
+ final class IssuersTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreate()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Ideal\Issuers',
16
+ Issuers::create()
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldCreateFromArray()
24
+ {
25
+ $array = [
26
+ [
27
+ 'id' => 'ABNANL2A',
28
+ 'name' => 'ABN AMRO Bank',
29
+ 'list_type' => 'Nederland'
30
+ ]
31
+ ];
32
+
33
+ $issuers = Issuers::fromArray($array);
34
+ $this->assertInstanceOf(
35
+ 'GingerPayments\Payment\Ideal\Issuers',
36
+ $issuers
37
+ );
38
+ }
39
+
40
+ /**
41
+ * @test
42
+ */
43
+ public function itShouldConvertToArray()
44
+ {
45
+ $array = [
46
+ [
47
+ 'id' => 'ABNANL2A',
48
+ 'name' => 'ABN AMRO Bank',
49
+ 'list_type' => 'Nederland'
50
+ ]
51
+ ];
52
+
53
+ $this->assertEquals(
54
+ $array,
55
+ Issuers::fromArray($array)->toArray()
56
+ );
57
+ }
58
+
59
+ /**
60
+ * @test
61
+ */
62
+ public function itShouldBeTraversable()
63
+ {
64
+ $array = [
65
+ [
66
+ 'id' => 'ABNANL2A',
67
+ 'name' => 'ABN AMRO Bank',
68
+ 'list_type' => 'Nederland'
69
+ ],
70
+ [
71
+ 'id' => 'INGBNL2A',
72
+ 'name' => 'ING Bank',
73
+ 'list_type' => 'Nederland'
74
+ ]
75
+ ];
76
+
77
+ $issuers = Issuers::fromArray($array);
78
+ $iterations = 0;
79
+ foreach ($issuers as $key => $issuer) {
80
+ $this->assertEquals($iterations, $key);
81
+ $this->assertInstanceOf('GingerPayments\Payment\Ideal\Issuer', $issuer);
82
+ $iterations++;
83
+ }
84
+ $this->assertEquals(2, $iterations);
85
+ }
86
+ }
lib/Ing/Services/ing-php/tests/Mock/FakeChoiceBasedValueObject.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Mock;
4
+
5
+ use GingerPayments\Payment\Common\ChoiceBasedValueObject;
6
+
7
+ final class FakeChoiceBasedValueObject
8
+ {
9
+ use ChoiceBasedValueObject;
10
+
11
+ public static function create($value)
12
+ {
13
+ return new FakeChoiceBasedValueObject($value);
14
+ }
15
+
16
+ public function possibleValues()
17
+ {
18
+ return ['foo', 'bar', 'baz'];
19
+ }
20
+ }
lib/Ing/Services/ing-php/tests/Mock/FakeStringBasedValueObject.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Mock;
4
+
5
+ use GingerPayments\Payment\Common\StringBasedValueObject;
6
+
7
+ final class FakeStringBasedValueObject
8
+ {
9
+ use StringBasedValueObject;
10
+ }
lib/Ing/Services/ing-php/tests/Order/AmountTest.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order;
4
+
5
+ use GingerPayments\Payment\Order\Amount;
6
+
7
+ final class AmountTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidInteger()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Amount',
16
+ Amount::fromInteger(1234)
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstNegativeValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Amount::fromInteger(-1);
27
+ }
28
+
29
+ /**
30
+ * @test
31
+ */
32
+ public function itShouldConvertToInteger()
33
+ {
34
+ $this->assertEquals(3456, Amount::fromInteger(3456)->toInteger());
35
+ }
36
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/AddressTest.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\Address;
6
+
7
+ final class AddressTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\Address',
16
+ Address::fromString('Address string')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itCanBeEmptyString()
24
+ {
25
+ $this->assertEmpty(Address::fromString('')->toString());
26
+ }
27
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/AddressTypeTest.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\AddressType;
6
+
7
+ final class AddressTypeTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldBeBilling()
13
+ {
14
+ $addressType = AddressType::fromString(AddressType::BILLING);
15
+
16
+ $this->assertTrue($addressType->isBilling());
17
+
18
+ $this->assertFalse($addressType->isCustomer());
19
+ $this->assertFalse($addressType->isDelivery());
20
+ }
21
+
22
+ /**
23
+ * @test
24
+ */
25
+ public function itShouldBeCustomer()
26
+ {
27
+ $addressType = AddressType::fromString(AddressType::CUSTOMER);
28
+
29
+ $this->assertTrue($addressType->isCustomer());
30
+
31
+ $this->assertFalse($addressType->isBilling());
32
+ $this->assertFalse($addressType->isDelivery());
33
+ }
34
+
35
+ /**
36
+ * @test
37
+ */
38
+ public function itShouldBeDelivery()
39
+ {
40
+ $addressType = AddressType::fromString(AddressType::DELIVERY);
41
+
42
+ $this->assertTrue($addressType->isDelivery());
43
+
44
+ $this->assertFalse($addressType->isCustomer());
45
+ $this->assertFalse($addressType->isBilling());
46
+ }
47
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/CountryTest.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\Country;
6
+
7
+ final class CountryTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidCountry()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\Country',
16
+ Country::fromString('NL')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstInvalidCountry()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Country::fromString('NLD');
27
+ }
28
+
29
+ /**
30
+ * @test
31
+ */
32
+ public function itShouldNotValidateEmptyString()
33
+ {
34
+ $this->assertEmpty(Country::fromString('')->toString());
35
+ }
36
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/EmailAddressTest.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\EmailAddress;
6
+
7
+ final class EmailAddressTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidEmail()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\EmailAddress',
16
+ EmailAddress::fromString('email@example.com')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstAnInvalidEmail()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ EmailAddress::fromString('email.example.com');
27
+ }
28
+
29
+ /**
30
+ * @test
31
+ */
32
+ public function itShouldNotValidateEmptyString()
33
+ {
34
+ $this->assertEmpty(EmailAddress::fromString('')->toString());
35
+ }
36
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/FirstNameTest.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\FirstName;
6
+
7
+ final class FirstNameTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\FirstName',
16
+ FirstName::fromString('Firstname')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itCanBeEmptyString()
24
+ {
25
+ $this->assertEmpty(FirstName::fromString('')->toString());
26
+ }
27
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/HouseNumberTest.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\Housenumber;
6
+
7
+ final class HousenumberTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\Housenumber',
16
+ Housenumber::fromString('133-G')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itCanBeEmptyString()
24
+ {
25
+ $this->assertEmpty(Housenumber::fromString('')->toString());
26
+ }
27
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/LastNameTest.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\LastName;
6
+
7
+ final class LastNameTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\LastName',
16
+ LastName::fromString('Lastname')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itCanBeEmptyString()
24
+ {
25
+ $this->assertEmpty(LastName::fromString('')->toString());
26
+ }
27
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/LocaleTest.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\Locale;
6
+
7
+ final class LocaleTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\Locale',
16
+ Locale::fromString('en_US')
17
+ );
18
+
19
+ $this->assertInstanceOf(
20
+ 'GingerPayments\Payment\Order\Customer\Locale',
21
+ Locale::fromString('en')
22
+ );
23
+ }
24
+
25
+ /**
26
+ * @test
27
+ */
28
+ public function itCanBeEmptyString()
29
+ {
30
+ $this->assertEmpty(Locale::fromString('')->toString());
31
+ }
32
+
33
+ /**
34
+ * @test
35
+ */
36
+ public function itShouldFailOnIncorrectLocale()
37
+ {
38
+ $this->setExpectedException('Assert\InvalidArgumentException');
39
+ Locale::fromString('en_us');
40
+
41
+ $this->setExpectedException('Assert\InvalidArgumentException');
42
+ Locale::fromString('eng_US');
43
+
44
+ $this->setExpectedException('Assert\InvalidArgumentException');
45
+ Locale::fromString('en_US.UTF-8');
46
+ }
47
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/MerchantCustomerIdTest.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\MerchantCustomerId;
6
+
7
+ final class MerchantCustomerIdTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\MerchantCustomerId',
16
+ MerchantCustomerId::fromString('MT1235')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itCanBeEmptyString()
24
+ {
25
+ $this->assertEmpty(MerchantCustomerId::fromString('')->toString());
26
+ }
27
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/PhoneNumberTest.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\PhoneNumber;
6
+
7
+ final class PhoneNumberTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\PhoneNumber',
16
+ PhoneNumber::fromString('+31 (0) 6123 45678')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itCanBeEmptyString()
24
+ {
25
+ $this->assertEmpty(PhoneNumber::fromString('')->toString());
26
+ }
27
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/PhoneNumbersTest.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\PhoneNumbers;
6
+
7
+ final class PhoneNumbersTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreate()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\PhoneNumbers',
16
+ PhoneNumbers::create()
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldCreateFromArray()
24
+ {
25
+ $array = [
26
+ '+31 (0) 6123 45678',
27
+ '+372 6123 45678'
28
+ ];
29
+
30
+ $phoneNumbers = PhoneNumbers::fromArray($array);
31
+
32
+ $this->assertInstanceOf(
33
+
34
+ 'GingerPayments\Payment\Order\Customer\PhoneNumbers',
35
+ $phoneNumbers
36
+ );
37
+ }
38
+
39
+ /**
40
+ * @test
41
+ */
42
+ public function itShouldConvertToArray()
43
+ {
44
+ $array = [
45
+ '+31 (0) 6123 45678',
46
+ '+372 6123 45678'
47
+ ];
48
+
49
+ $this->assertEquals(
50
+ $array,
51
+ PhoneNumbers::fromArray($array)->toArray()
52
+ );
53
+ }
54
+
55
+ /**
56
+ * @test
57
+ */
58
+ public function itShouldBeTraversable()
59
+ {
60
+ $array = [
61
+ '+31 (0) 6123 45678',
62
+ '+372 6123 45678'
63
+ ];
64
+
65
+ $phoneNumbers = PhoneNumbers::fromArray($array);
66
+ $iterations = 0;
67
+ foreach ($phoneNumbers as $key => $phoneNumber) {
68
+ $this->assertEquals($iterations, $key);
69
+ $this->assertInstanceOf('GingerPayments\Payment\Order\Customer\PhoneNumber', $phoneNumber);
70
+ $iterations++;
71
+ }
72
+
73
+ $this->assertEquals(2, $iterations);
74
+ }
75
+ }
lib/Ing/Services/ing-php/tests/Order/Customer/PostalCodeTest.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Customer;
4
+
5
+ use GingerPayments\Payment\Order\Customer\PostalCode;
6
+
7
+ final class PostalCodeTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Customer\PostalCode',
16
+ PostalCode::fromString('1043 NX')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itCanBeEmptyString()
24
+ {
25
+ $this->assertEmpty(PostalCode::fromString('')->toString());
26
+ }
27
+ }
lib/Ing/Services/ing-php/tests/Order/CustomerTest.php ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order;
4
+
5
+ use GingerPayments\Payment\Order\Customer;
6
+
7
+ final class CustomerTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateFromArray()
13
+ {
14
+ $array = [
15
+ 'merchant_customer_id' => '123',
16
+ 'email_address' => 'email@example.com',
17
+ 'first_name' => 'Firstname',
18
+ 'last_name' => 'Lastname',
19
+ 'address_type' => 'customer',
20
+ 'address' => 'Radarweg',
21
+ 'postal_code' => '1043 NX',
22
+ 'housenumber' => '29 A-12',
23
+ 'country' => 'NL',
24
+ 'phone_numbers' => [],
25
+ 'locale' => null
26
+ ];
27
+
28
+ $customer = Customer::fromArray($array);
29
+
30
+ $this->assertInstanceOf(
31
+ 'GingerPayments\Payment\Order\Customer',
32
+ $customer
33
+ );
34
+
35
+ $this->assertEquals($array['merchant_customer_id'], (string) $customer->merchantCustomerId());
36
+ $this->assertEquals($array['email_address'], $customer->emailAddress());
37
+ $this->assertEquals($array['first_name'], (string) $customer->firstName());
38
+ $this->assertEquals($array['last_name'], (string) $customer->lastName());
39
+ $this->assertEquals($array['address_type'], (string) $customer->addressType());
40
+ $this->assertEquals($array['address'], (string) $customer->address());
41
+ $this->assertEquals($array['postal_code'], (string) $customer->postalCode());
42
+ $this->assertEquals($array['housenumber'], (string) $customer->housenumber());
43
+ $this->assertEquals($array['country'], (string) $customer->country());
44
+ $this->assertEquals($array['phone_numbers'], $customer->phoneNumbers()->toArray());
45
+ }
46
+
47
+ /**
48
+ * @test
49
+ */
50
+ public function itShouldConvertToArray()
51
+ {
52
+ $array = [
53
+ 'merchant_customer_id' => '123',
54
+ 'email_address' => 'email@example.com',
55
+ 'first_name' => 'Firstname',
56
+ 'last_name' => 'Lastname',
57
+ 'address_type' => 'customer',
58
+ 'address' => 'Radarweg',
59
+ 'postal_code' => '1043 NX',
60
+ 'housenumber' => '29 A-12',
61
+ 'country' => 'NL',
62
+ 'phone_numbers' => [],
63
+ 'locale' => null
64
+ ];
65
+
66
+ $this->assertEquals(
67
+ $array,
68
+ Customer::fromArray($array)->toArray()
69
+ );
70
+ }
71
+
72
+ /**
73
+ * @test
74
+ */
75
+ public function itShouldSetMissingValuesToNull()
76
+ {
77
+ $customer = Customer::fromArray([]);
78
+
79
+ $this->assertNull($customer->merchantCustomerId());
80
+ $this->assertNull($customer->emailAddress());
81
+ $this->assertNull($customer->firstName());
82
+ $this->assertNull($customer->lastName());
83
+ $this->assertNull($customer->addressType());
84
+ $this->assertNull($customer->address());
85
+ $this->assertNull($customer->postalCode());
86
+ $this->assertNull($customer->housenumber());
87
+ $this->assertNull($customer->country());
88
+ $this->assertNull($customer->phoneNumbers());
89
+ }
90
+ }
lib/Ing/Services/ing-php/tests/Order/DescriptionTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order;
4
+
5
+ use GingerPayments\Payment\Order\Description;
6
+
7
+ final class DescriptionTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Description',
16
+ Description::fromString('My order')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Description::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Order/ExtraTest.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order;
4
+
5
+ use GingerPayments\Payment\Order\Extra;
6
+
7
+ final class ExtraTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateFromAndToArray()
13
+ {
14
+ $array = [
15
+ 'plugin' => 'Ginger WooCommerce v1.2',
16
+ 'other_info' => [],
17
+ 'dummy'
18
+ ];
19
+
20
+ $extra = Extra::fromArray($array);
21
+
22
+ $this->assertInstanceOf(
23
+ 'GingerPayments\Payment\Order\Extra',
24
+ $extra
25
+ );
26
+
27
+ $this->assertEquals($array, $extra->extra());
28
+
29
+ $this->assertEquals(
30
+ $array,
31
+ Extra::fromArray($array)->toArray()
32
+ );
33
+ }
34
+ }
lib/Ing/Services/ing-php/tests/Order/MerchantOrderIdTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order;
4
+
5
+ use GingerPayments\Payment\Order\MerchantOrderId;
6
+
7
+ final class MerchantOrderIdTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\MerchantOrderId',
16
+ MerchantOrderId::fromString('my-id-1234')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ MerchantOrderId::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Order/StatusTest.php ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order;
4
+
5
+ use GingerPayments\Payment\Order\Status;
6
+
7
+ final class StatusTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldBeNew()
13
+ {
14
+ $status = Status::fromString(Status::BRAND_NEW);
15
+
16
+ $this->assertTrue($status->isNew());
17
+ $this->assertFalse($status->isProcessing());
18
+ $this->assertFalse($status->isError());
19
+ $this->assertFalse($status->isCompleted());
20
+ $this->assertFalse($status->isCancelled());
21
+ $this->assertFalse($status->isExpired());
22
+ $this->assertFalse($status->isSeeTransactions());
23
+ }
24
+
25
+ /**
26
+ * @test
27
+ */
28
+ public function itShouldBeProcessing()
29
+ {
30
+ $status = Status::fromString(Status::PROCESSING);
31
+
32
+ $this->assertFalse($status->isNew());
33
+ $this->assertTrue($status->isProcessing());
34
+ $this->assertFalse($status->isError());
35
+ $this->assertFalse($status->isCompleted());
36
+ $this->assertFalse($status->isCancelled());
37
+ $this->assertFalse($status->isExpired());
38
+ $this->assertFalse($status->isSeeTransactions());
39
+ }
40
+
41
+ /**
42
+ * @test
43
+ */
44
+ public function itShouldBeError()
45
+ {
46
+ $status = Status::fromString(Status::ERROR);
47
+
48
+ $this->assertFalse($status->isNew());
49
+ $this->assertFalse($status->isProcessing());
50
+ $this->assertTrue($status->isError());
51
+ $this->assertFalse($status->isCompleted());
52
+ $this->assertFalse($status->isCancelled());
53
+ $this->assertFalse($status->isExpired());
54
+ $this->assertFalse($status->isSeeTransactions());
55
+ }
56
+
57
+ /**
58
+ * @test
59
+ */
60
+ public function itShouldBeCompleted()
61
+ {
62
+ $status = Status::fromString(Status::COMPLETED);
63
+
64
+ $this->assertFalse($status->isNew());
65
+ $this->assertFalse($status->isProcessing());
66
+ $this->assertFalse($status->isError());
67
+ $this->assertTrue($status->isCompleted());
68
+ $this->assertFalse($status->isCancelled());
69
+ $this->assertFalse($status->isExpired());
70
+ $this->assertFalse($status->isSeeTransactions());
71
+ }
72
+
73
+ /**
74
+ * @test
75
+ */
76
+ public function itShouldBeCancelled()
77
+ {
78
+ $status = Status::fromString(Status::CANCELLED);
79
+
80
+ $this->assertFalse($status->isNew());
81
+ $this->assertFalse($status->isProcessing());
82
+ $this->assertFalse($status->isError());
83
+ $this->assertFalse($status->isCompleted());
84
+ $this->assertTrue($status->isCancelled());
85
+ $this->assertFalse($status->isExpired());
86
+ $this->assertFalse($status->isSeeTransactions());
87
+ }
88
+
89
+ /**
90
+ * @test
91
+ */
92
+ public function itShouldBeExpired()
93
+ {
94
+ $status = Status::fromString(Status::EXPIRED);
95
+
96
+ $this->assertFalse($status->isNew());
97
+ $this->assertFalse($status->isProcessing());
98
+ $this->assertFalse($status->isError());
99
+ $this->assertFalse($status->isCompleted());
100
+ $this->assertFalse($status->isCancelled());
101
+ $this->assertTrue($status->isExpired());
102
+ $this->assertFalse($status->isSeeTransactions());
103
+ }
104
+
105
+ /**
106
+ * @test
107
+ */
108
+ public function itShouldBeSeeTransactions()
109
+ {
110
+ $status = Status::fromString(Status::SEE_TRANSACTIONS);
111
+
112
+ $this->assertFalse($status->isNew());
113
+ $this->assertFalse($status->isProcessing());
114
+ $this->assertFalse($status->isError());
115
+ $this->assertFalse($status->isCompleted());
116
+ $this->assertFalse($status->isCancelled());
117
+ $this->assertFalse($status->isExpired());
118
+ $this->assertTrue($status->isSeeTransactions());
119
+ }
120
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/AmountTest.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\Amount;
6
+
7
+ final class AmountTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidInteger()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\Amount',
16
+ Amount::fromInteger(1234)
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstNegativeValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Amount::fromInteger(-1);
27
+ }
28
+
29
+ /**
30
+ * @test
31
+ */
32
+ public function itShouldConvertToInteger()
33
+ {
34
+ $this->assertEquals(3456, Amount::fromInteger(3456)->toInteger());
35
+ }
36
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/BalanceTest.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\Balance;
6
+
7
+ final class BalanceTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldBeInternal()
13
+ {
14
+ $balance = Balance::fromString(Balance::INTERNAL);
15
+
16
+ $this->assertTrue($balance->isInternal());
17
+ $this->assertFalse($balance->isExternal());
18
+ $this->assertFalse($balance->isTest());
19
+ }
20
+
21
+ /**
22
+ * @test
23
+ */
24
+ public function itShouldBeExternal()
25
+ {
26
+ $balance = Balance::fromString(Balance::EXTERNAL);
27
+
28
+ $this->assertFalse($balance->isInternal());
29
+ $this->assertTrue($balance->isExternal());
30
+ $this->assertFalse($balance->isTest());
31
+ }
32
+
33
+ /**
34
+ * @test
35
+ */
36
+ public function itShouldBeTest()
37
+ {
38
+ $balance = Balance::fromString(Balance::TEST);
39
+
40
+ $this->assertFalse($balance->isInternal());
41
+ $this->assertFalse($balance->isExternal());
42
+ $this->assertTrue($balance->isTest());
43
+ }
44
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/DescriptionTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\Description;
6
+
7
+ final class DescriptionTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\Description',
16
+ Description::fromString('My transaction')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Description::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails/SetupTokenTest.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails\SetupToken;
6
+
7
+ final class SetupTokenTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails\SetupToken',
16
+ SetupToken::fromString('1234-5678-9123-4567')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itCanBeEmptyString()
24
+ {
25
+ $this->assertEmpty(SetupToken::fromString('')->toString());
26
+ }
27
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/BancontactPaymentMethodDetails/VaultTokenTest.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails\VaultToken;
6
+
7
+ final class VaultTokenTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\BancontactPaymentMethodDetails\VaultToken',
16
+ VaultToken::fromString('1234-5678-9123-4567')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itCanBeEmptyString()
24
+ {
25
+ $this->assertEmpty(VaultToken::fromString('')->toString());
26
+ }
27
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/ConsumerNameTest.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\ConsumerName;
6
+
7
+ final class ConsumerNameTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\ConsumerName',
16
+ ConsumerName::fromString('FA de Vries')
17
+ );
18
+ }
19
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/CreditCardPaymentMethodDetailsTest.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\CreditCardPaymentMethodDetails;
6
+
7
+ final class CreditCardPaymentMethodDetailsTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateFromAnArray()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\CreditCardPaymentMethodDetails',
16
+ CreditCardPaymentMethodDetails::fromArray([])
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldConvertToArray()
24
+ {
25
+ $this->assertEquals(
26
+ [],
27
+ CreditCardPaymentMethodDetails::fromArray([])->toArray()
28
+ );
29
+ }
30
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/ConsumerCityTest.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\ConsumerCity;
6
+
7
+ final class ConsumerCityTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\ConsumerCity',
16
+ ConsumerCity::fromString('Amsterdam')
17
+ );
18
+ }
19
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/StatusTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\Status;
6
+
7
+ final class StatusTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\Status',
16
+ Status::fromString('completed')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Status::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetails/TransactionIdTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\TransactionId;
6
+
7
+ final class TransactionIdTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails\TransactionId',
16
+ TransactionId::fromString('completed')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ TransactionId::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/IdealPaymentMethodDetailsTest.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails;
6
+
7
+ final class IdealPaymentMethodDetailsTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateFromAnArray()
13
+ {
14
+ $paymentDetails = IdealPaymentMethodDetails::fromArray(
15
+ [
16
+ 'issuer_id' => 'ABNANL2A',
17
+ 'status' => 'completed',
18
+ 'transaction_id' => 'some-unique-id-abc123',
19
+ 'consumer_name' => 'FA de Vries',
20
+ 'consumer_city' => 'Amsterdam',
21
+ 'consumer_iban' => 'NL91ABNA0417164300',
22
+ 'consumer_bic' => 'ABNANL2A'
23
+ ]
24
+ );
25
+
26
+ $this->assertInstanceOf(
27
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails',
28
+ $paymentDetails
29
+ );
30
+
31
+ $this->assertEquals('ABNANL2A', (string) $paymentDetails->issuerId());
32
+ $this->assertEquals('completed', (string) $paymentDetails->status());
33
+ $this->assertEquals('some-unique-id-abc123', (string) $paymentDetails->transactionId());
34
+ $this->assertEquals('FA de Vries', (string) $paymentDetails->consumerName());
35
+ $this->assertEquals('Amsterdam', (string) $paymentDetails->consumerCity());
36
+ $this->assertEquals('NL91ABNA0417164300', (string) $paymentDetails->consumerIban());
37
+ $this->assertEquals('ABNANL2A', (string) $paymentDetails->consumerBic());
38
+ }
39
+
40
+ /**
41
+ * @test
42
+ */
43
+ public function itShouldGuardAgainstMissingIssuerId()
44
+ {
45
+ $this->setExpectedException('Assert\InvalidArgumentException');
46
+ IdealPaymentMethodDetails::fromArray([]);
47
+ }
48
+
49
+ /**
50
+ * @test
51
+ */
52
+ public function itShouldSetMissingValuesToNull()
53
+ {
54
+ $paymentDetails = IdealPaymentMethodDetails::fromArray(
55
+ ['issuer_id' => 'ABNANL2A']
56
+ );
57
+
58
+ $this->assertNull($paymentDetails->status());
59
+ $this->assertNull($paymentDetails->transactionId());
60
+ $this->assertNull($paymentDetails->consumerName());
61
+ $this->assertNull($paymentDetails->consumerCity());
62
+ $this->assertNull($paymentDetails->consumerIban());
63
+ $this->assertNull($paymentDetails->consumerBic());
64
+ }
65
+
66
+ /**
67
+ * @test
68
+ */
69
+ public function itShouldConvertToArray()
70
+ {
71
+ $array = [
72
+ 'issuer_id' => 'ABNANL2A',
73
+ 'status' => 'completed',
74
+ 'transaction_id' => 'some-unique-id-abc123',
75
+ 'consumer_name' => 'FA de Vries',
76
+ 'consumer_address' => 'Jacob van Campenstraat 123',
77
+ 'consumer_city' => 'Amsterdam',
78
+ 'consumer_country' => 'NL',
79
+ 'consumer_iban' => 'NL91ABNA0417164300',
80
+ 'consumer_bic' => 'ABNANL2A'
81
+ ];
82
+
83
+ $this->assertEquals(
84
+ $array,
85
+ IdealPaymentMethodDetails::fromArray($array)->toArray()
86
+ );
87
+ }
88
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/PaymentMethodDetailsFactoryTest.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethod;
6
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\PaymentMethodDetailsFactory;
7
+
8
+ final class PaymentMethodDetailsFactoryTest extends \PHPUnit_Framework_TestCase
9
+ {
10
+ /**
11
+ * @test
12
+ */
13
+ public function itShouldCreateAnIdealPaymentMethodDetails()
14
+ {
15
+ $this->assertInstanceOf(
16
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\IdealPaymentMethodDetails',
17
+ PaymentMethodDetailsFactory::createFromArray(
18
+ PaymentMethod::fromString(PaymentMethod::IDEAL),
19
+ ['issuer_id' => 'ABNANL2A']
20
+ )
21
+ );
22
+ }
23
+
24
+ /**
25
+ * @test
26
+ */
27
+ public function itShouldCreateACreditCardPaymentMethodDetails()
28
+ {
29
+ $this->assertInstanceOf(
30
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\CreditCardPaymentMethodDetails',
31
+ PaymentMethodDetailsFactory::createFromArray(
32
+ PaymentMethod::fromString(PaymentMethod::CREDIT_CARD),
33
+ []
34
+ )
35
+ );
36
+ }
37
+
38
+ /**
39
+ * @test
40
+ */
41
+ public function itShouldCreateASepaPaymentMethodDetails()
42
+ {
43
+ $this->assertInstanceOf(
44
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SepaPaymentMethodDetails',
45
+ PaymentMethodDetailsFactory::createFromArray(
46
+ PaymentMethod::fromString(PaymentMethod::BANK_TRANSFER),
47
+ []
48
+ )
49
+ );
50
+ }
51
+
52
+ /**
53
+ * @test
54
+ */
55
+ public function itShouldCreateASofortPaymentMethodDetails()
56
+ {
57
+ $this->assertInstanceOf(
58
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SofortPaymentMethodDetails',
59
+ PaymentMethodDetailsFactory::createFromArray(
60
+ PaymentMethod::fromString(PaymentMethod::SOFORT),
61
+ []
62
+ )
63
+ );
64
+ }
65
+
66
+ /**
67
+ * @test
68
+ */
69
+ public function itShouldFailWhenAnUnsupportedPaymentMethodIsProvided()
70
+ {
71
+ $paymentMethod = PaymentMethod::fromString(PaymentMethod::IDEAL);
72
+
73
+ $reflectionClass = new \ReflectionClass('GingerPayments\Payment\Order\Transaction\PaymentMethod');
74
+ $reflectionProperty = $reflectionClass->getProperty('value');
75
+ $reflectionProperty->setAccessible(true);
76
+ $reflectionProperty->setValue($paymentMethod, 'very-unsupported-method');
77
+
78
+ $this->setExpectedException('InvalidArgumentException');
79
+ PaymentMethodDetailsFactory::createFromArray($paymentMethod, []);
80
+ }
81
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/SepaPaymentMethodDetailsTest.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SepaPaymentMethodDetails;
6
+
7
+ final class SepaPaymentMethodDetailsTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateFromAnArray()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SepaPaymentMethodDetails',
16
+ SepaPaymentMethodDetails::fromArray([])
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldConvertToArray()
24
+ {
25
+ $this->assertEquals(
26
+ [
27
+ 'consumer_name' => null,
28
+ 'consumer_address' => null,
29
+ 'consumer_city' => null,
30
+ 'consumer_country' => null,
31
+ 'consumer_iban' => null,
32
+ 'consumer_bic' => null,
33
+ 'reference' => null
34
+ ],
35
+ SepaPaymentMethodDetails::fromArray([])->toArray()
36
+ );
37
+ }
38
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/SofortPaymentMethodDetails/TransactionIdTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails\SofortPaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SofortPaymentMethodDetails\TransactionId;
6
+
7
+ final class TransactionIdTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SofortPaymentMethodDetails\TransactionId',
16
+ TransactionId::fromString('DFGHDFGIFGJERGOWJ21')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ TransactionId::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodDetails/SofortPaymentMethodDetailsTest.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction\PaymentMethodDetails;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SofortPaymentMethodDetails;
6
+
7
+ final class SofortPaymentMethodDetailsTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateFromAnArray()
13
+ {
14
+ $paymentDetails = SofortPaymentMethodDetails::fromArray(
15
+ [
16
+ 'transaction_id' => 'some-unique-id-abc123',
17
+ 'consumer_name' => 'FA de Vries',
18
+ 'consumer_iban' => 'NL91ABNA0417164300',
19
+ 'consumer_bic' => 'ABNANL2A'
20
+ ]
21
+ );
22
+
23
+ $this->assertInstanceOf(
24
+ 'GingerPayments\Payment\Order\Transaction\PaymentMethodDetails\SofortPaymentMethodDetails',
25
+ $paymentDetails
26
+ );
27
+
28
+ $this->assertEquals('some-unique-id-abc123', (string) $paymentDetails->transactionId());
29
+ $this->assertEquals('FA de Vries', (string) $paymentDetails->consumerName());
30
+ $this->assertEquals('NL91ABNA0417164300', (string) $paymentDetails->consumerIban());
31
+ $this->assertEquals('ABNANL2A', (string) $paymentDetails->consumerBic());
32
+ }
33
+
34
+ /**
35
+ * @test
36
+ */
37
+ public function itShouldSetMissingValuesToNull()
38
+ {
39
+ $paymentDetails = SofortPaymentMethodDetails::fromArray([]);
40
+
41
+ $this->assertNull($paymentDetails->transactionId());
42
+ $this->assertNull($paymentDetails->consumerName());
43
+ $this->assertNull($paymentDetails->consumerIban());
44
+ $this->assertNull($paymentDetails->consumerBic());
45
+ }
46
+
47
+ /**
48
+ * @test
49
+ */
50
+ public function itShouldConvertToArray()
51
+ {
52
+ $array = [
53
+ 'transaction_id' => 'some-unique-id-abc123',
54
+ 'consumer_name' => 'FA de Vries',
55
+ 'consumer_iban' => 'NL91ABNA0417164300',
56
+ 'consumer_bic' => 'ABNANL2A'
57
+ ];
58
+
59
+ $this->assertEquals(
60
+ $array,
61
+ SofortPaymentMethodDetails::fromArray($array)->toArray()
62
+ );
63
+ }
64
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/PaymentMethodTest.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\PaymentMethod;
6
+
7
+ final class PaymentMethodTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldBeIdeal()
13
+ {
14
+ $paymentMethod = PaymentMethod::fromString(PaymentMethod::IDEAL);
15
+
16
+ $this->assertTrue($paymentMethod->isIdeal());
17
+ $this->assertFalse($paymentMethod->isCreditCard());
18
+ $this->assertFalse($paymentMethod->isBankTransfer());
19
+ }
20
+
21
+ /**
22
+ * @test
23
+ */
24
+ public function itShouldBeCreditCard()
25
+ {
26
+ $paymentMethod = PaymentMethod::fromString(PaymentMethod::CREDIT_CARD);
27
+
28
+ $this->assertTrue($paymentMethod->isCreditCard());
29
+ $this->assertFalse($paymentMethod->isIdeal());
30
+ $this->assertFalse($paymentMethod->isBankTransfer());
31
+ }
32
+
33
+ /**
34
+ * @test
35
+ */
36
+ public function itShouldBeBankTransfer()
37
+ {
38
+ $paymentMethod = PaymentMethod::fromString(PaymentMethod::BANK_TRANSFER);
39
+
40
+ $this->assertTrue($paymentMethod->isBankTransfer());
41
+ $this->assertFalse($paymentMethod->isIdeal());
42
+ $this->assertFalse($paymentMethod->isCreditCard());
43
+ }
44
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/ReasonTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\Reason;
6
+
7
+ final class ReasonTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\Reason',
16
+ Reason::fromString('Issuer is non responsive')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Reason::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/ReferenceTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\Reference;
6
+
7
+ final class ReferenceTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Order\Transaction\Reference',
16
+ Reference::fromString('ID5210201636551881')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstEmptyValue()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Reference::fromString('');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/Order/Transaction/StatusTest.php ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order\Transaction;
4
+
5
+ use GingerPayments\Payment\Order\Transaction\Status;
6
+
7
+ final class StatusTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldBeNew()
13
+ {
14
+ $status = Status::fromString(Status::BRAND_NEW);
15
+
16
+ $this->assertTrue($status->isNew());
17
+ $this->assertFalse($status->isPending());
18
+ $this->assertFalse($status->isProcessing());
19
+ $this->assertFalse($status->isError());
20
+ $this->assertFalse($status->isCompleted());
21
+ $this->assertFalse($status->isCancelled());
22
+ $this->assertFalse($status->isExpired());
23
+ }
24
+
25
+ /**
26
+ * @test
27
+ */
28
+ public function itShouldBePending()
29
+ {
30
+ $status = Status::fromString(Status::PENDING);
31
+
32
+ $this->assertFalse($status->isNew());
33
+ $this->assertTrue($status->isPending());
34
+ $this->assertFalse($status->isProcessing());
35
+ $this->assertFalse($status->isError());
36
+ $this->assertFalse($status->isCompleted());
37
+ $this->assertFalse($status->isCancelled());
38
+ $this->assertFalse($status->isExpired());
39
+ }
40
+
41
+ /**
42
+ * @test
43
+ */
44
+ public function itShouldBeProcessing()
45
+ {
46
+ $status = Status::fromString(Status::PROCESSING);
47
+
48
+ $this->assertFalse($status->isNew());
49
+ $this->assertFalse($status->isPending());
50
+ $this->assertTrue($status->isProcessing());
51
+ $this->assertFalse($status->isError());
52
+ $this->assertFalse($status->isCompleted());
53
+ $this->assertFalse($status->isCancelled());
54
+ $this->assertFalse($status->isExpired());
55
+ }
56
+
57
+ /**
58
+ * @test
59
+ */
60
+ public function itShouldBeError()
61
+ {
62
+ $status = Status::fromString(Status::ERROR);
63
+
64
+ $this->assertFalse($status->isNew());
65
+ $this->assertFalse($status->isPending());
66
+ $this->assertFalse($status->isProcessing());
67
+ $this->assertTrue($status->isError());
68
+ $this->assertFalse($status->isCompleted());
69
+ $this->assertFalse($status->isCancelled());
70
+ $this->assertFalse($status->isExpired());
71
+ }
72
+
73
+ /**
74
+ * @test
75
+ */
76
+ public function itShouldBeCompleted()
77
+ {
78
+ $status = Status::fromString(Status::COMPLETED);
79
+
80
+ $this->assertFalse($status->isNew());
81
+ $this->assertFalse($status->isPending());
82
+ $this->assertFalse($status->isProcessing());
83
+ $this->assertFalse($status->isError());
84
+ $this->assertTrue($status->isCompleted());
85
+ $this->assertFalse($status->isCancelled());
86
+ $this->assertFalse($status->isExpired());
87
+ }
88
+
89
+ /**
90
+ * @test
91
+ */
92
+ public function itShouldBeCancelled()
93
+ {
94
+ $status = Status::fromString(Status::CANCELLED);
95
+
96
+ $this->assertFalse($status->isNew());
97
+ $this->assertFalse($status->isPending());
98
+ $this->assertFalse($status->isProcessing());
99
+ $this->assertFalse($status->isError());
100
+ $this->assertFalse($status->isCompleted());
101
+ $this->assertTrue($status->isCancelled());
102
+ $this->assertFalse($status->isExpired());
103
+ }
104
+
105
+ /**
106
+ * @test
107
+ */
108
+ public function itShouldBeExpired()
109
+ {
110
+ $status = Status::fromString(Status::EXPIRED);
111
+
112
+ $this->assertFalse($status->isNew());
113
+ $this->assertFalse($status->isPending());
114
+ $this->assertFalse($status->isProcessing());
115
+ $this->assertFalse($status->isError());
116
+ $this->assertFalse($status->isCompleted());
117
+ $this->assertFalse($status->isCancelled());
118
+ $this->assertTrue($status->isExpired());
119
+ }
120
+ }
lib/Ing/Services/ing-php/tests/Order/TransactionTest.php ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order;
4
+
5
+ use GingerPayments\Payment\Order\Transaction;
6
+
7
+ final class TransactionTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldCreateFromAnArray()
13
+ {
14
+ $array = [
15
+ 'payment_method' => 'credit-card',
16
+ 'payment_method_details' => [],
17
+ 'id' => '5ac3eb32-384d-4d61-a797-9f44b1cd70e5',
18
+ 'created' => '2015-03-07T20:58:35+0100',
19
+ 'modified' => '2015-03-07T21:58:35+0100',
20
+ 'completed' => '2015-03-07T22:58:35+0100',
21
+ 'status' => 'new',
22
+ 'reason' => 'A great reason',
23
+ 'currency' => 'EUR',
24
+ 'amount' => 3400,
25
+ 'expiration_period' => 'P0Y0M0DT1H0M0S',
26
+ 'description' => 'A transaction',
27
+ 'balance' => 'internal',
28
+ 'payment_url' => 'http://www.example.com'
29
+ ];
30
+
31
+ $transaction = Transaction::fromArray($array);
32
+
33
+ $this->assertInstanceOf(
34
+ 'GingerPayments\Payment\Order\Transaction',
35
+ $transaction
36
+ );
37
+
38
+ $this->assertEquals($array['payment_method'], (string) $transaction->paymentMethod());
39
+ $this->assertEquals($array['payment_method_details'], $transaction->paymentMethodDetails()->toArray());
40
+ $this->assertEquals($array['id'], (string) $transaction->id());
41
+ $this->assertEquals($array['created'], $transaction->created()->toIso8601String());
42
+ $this->assertEquals($array['modified'], $transaction->modified()->toIso8601String());
43
+ $this->assertEquals($array['completed'], $transaction->completed()->toIso8601String());
44
+ $this->assertEquals($array['status'], (string) $transaction->status());
45
+ $this->assertEquals($array['reason'], (string) $transaction->reason());
46
+ $this->assertEquals($array['currency'], (string) $transaction->currency());
47
+ $this->assertEquals($array['amount'], $transaction->amount()->toInteger());
48
+ $this->assertEquals(
49
+ $array['expiration_period'],
50
+ $transaction->expirationPeriod()->format('P%yY%mM%dDT%hH%iM%sS')
51
+ );
52
+ $this->assertEquals($array['description'], (string) $transaction->description());
53
+ $this->assertEquals($array['balance'], (string) $transaction->balance());
54
+ $this->assertEquals($array['payment_url'], (string) $transaction->paymentUrl());
55
+ }
56
+
57
+ /**
58
+ * @test
59
+ */
60
+ public function itShouldGuardAgainstMissingPaymentMethod()
61
+ {
62
+ $this->setExpectedException('Assert\InvalidArgumentException');
63
+ Transaction::fromArray([]);
64
+ }
65
+
66
+ /**
67
+ * @test
68
+ */
69
+ public function itShouldSetMissingValuesToNull()
70
+ {
71
+ $transaction = Transaction::fromArray(['payment_method' => 'credit-card']);
72
+
73
+ $this->assertEquals([], $transaction->paymentMethodDetails()->toArray());
74
+ $this->assertNull($transaction->id());
75
+ $this->assertNull($transaction->created());
76
+ $this->assertNull($transaction->modified());
77
+ $this->assertNull($transaction->completed());
78
+ $this->assertNull($transaction->status());
79
+ $this->assertNull($transaction->reason());
80
+ $this->assertNull($transaction->currency());
81
+ $this->assertNull($transaction->amount());
82
+ $this->assertNull($transaction->expirationPeriod());
83
+ $this->assertNull($transaction->description());
84
+ $this->assertNull($transaction->balance());
85
+ $this->assertNull($transaction->paymentUrl());
86
+ }
87
+
88
+ /**
89
+ * @test
90
+ */
91
+ public function itShouldConvertToArray()
92
+ {
93
+ $array = [
94
+ 'payment_method' => 'credit-card',
95
+ 'payment_method_details' => [],
96
+ 'id' => '5ac3eb32-384d-4d61-a797-9f44b1cd70e5',
97
+ 'created' => '2015-03-07T20:58:35+0100',
98
+ 'modified' => '2015-03-07T21:58:35+0100',
99
+ 'completed' => '2015-03-07T22:58:35+0100',
100
+ 'status' => 'new',
101
+ 'reason' => 'A great reason',
102
+ 'currency' => 'EUR',
103
+ 'amount' => 3400,
104
+ 'expiration_period' => 'P0Y0M0DT1H0M0S',
105
+ 'description' => 'A transaction',
106
+ 'balance' => 'internal',
107
+ 'payment_url' => 'http://www.example.com'
108
+ ];
109
+
110
+ $this->assertEquals(
111
+ $array,
112
+ Transaction::fromArray($array)->toArray()
113
+ );
114
+ }
115
+ }
lib/Ing/Services/ing-php/tests/Order/TransactionsTest.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests\Order;
4
+
5
+ use GingerPayments\Payment\Order\Transaction;
6
+ use GingerPayments\Payment\Order\Transactions;
7
+
8
+ final class TransactionsTest extends \PHPUnit_Framework_TestCase
9
+ {
10
+ /**
11
+ * @test
12
+ */
13
+ public function itShouldCreate()
14
+ {
15
+ $this->assertInstanceOf(
16
+ 'GingerPayments\Payment\Order\Transactions',
17
+ Transactions::create()
18
+ );
19
+ }
20
+
21
+ /**
22
+ * @test
23
+ */
24
+ public function itShouldCreateFromArray()
25
+ {
26
+ $array = [['payment_method' => 'credit-card']];
27
+
28
+ $transactions = Transactions::fromArray($array);
29
+ $this->assertInstanceOf(
30
+ 'GingerPayments\Payment\Order\Transactions',
31
+ $transactions
32
+ );
33
+ }
34
+
35
+ /**
36
+ * @test
37
+ */
38
+ public function itShouldConvertToArray()
39
+ {
40
+ $array = [
41
+ [
42
+ 'payment_method' => 'credit-card',
43
+ 'payment_method_details' => [],
44
+ 'id' => '5ac3eb32-384d-4d61-a797-9f44b1cd70e5',
45
+ 'created' => '2015-03-07T20:58:35+0100',
46
+ 'modified' => '2015-03-07T21:58:35+0100',
47
+ 'completed' => '2015-03-07T22:58:35+0100',
48
+ 'status' => 'new',
49
+ 'reason' => 'A great reason',
50
+ 'currency' => 'EUR',
51
+ 'amount' => 3400,
52
+ 'expiration_period' => 'P0Y0M0DT1H0M0S',
53
+ 'description' => 'A transaction',
54
+ 'balance' => 'internal',
55
+ 'payment_url' => 'http://www.example.com'
56
+ ]
57
+ ];
58
+
59
+ $this->assertEquals(
60
+ $array,
61
+ Transactions::fromArray($array)->toArray()
62
+ );
63
+ }
64
+
65
+ /**
66
+ * @test
67
+ */
68
+ public function itShouldBeTraversable()
69
+ {
70
+ $array = [
71
+ ['payment_method' => 'credit-card'],
72
+ ['payment_method' => 'credit-card']
73
+ ];
74
+
75
+ $transactions = Transactions::fromArray($array);
76
+ $iterations = 0;
77
+ foreach ($transactions as $key => $transaction) {
78
+ $this->assertEquals($iterations, $key);
79
+ $this->assertInstanceOf('GingerPayments\Payment\Order\Transaction', $transaction);
80
+ $iterations++;
81
+ }
82
+ $this->assertEquals(2, $iterations);
83
+ }
84
+
85
+ /**
86
+ * @test
87
+ */
88
+ public function itShouldGetTheFirstPaymentUrl()
89
+ {
90
+ $transactions = Transactions::fromArray(
91
+ [['payment_method' => 'credit-card', 'payment_url' => 'http://www.example.com']]
92
+ );
93
+ $this->assertEquals('http://www.example.com', $transactions->firstPaymentUrl());
94
+ }
95
+ }
lib/Ing/Services/ing-php/tests/OrderTest.php ADDED
@@ -0,0 +1,453 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests;
4
+
5
+ use GingerPayments\Payment\Order;
6
+ use GingerPayments\Payment\Order\Transaction;
7
+
8
+ final class OrderTest extends \PHPUnit_Framework_TestCase
9
+ {
10
+ /**
11
+ * @test
12
+ */
13
+ public function itShouldCreate()
14
+ {
15
+ $customer = [
16
+ 'address' => "Radarweg 29 A-12 1043 NX Amsterdam",
17
+ 'address_type' => "customer",
18
+ 'country' => "NL",
19
+ 'email_address' => "email@example.com",
20
+ 'first_name' => "Name",
21
+ 'last_name' => "Lastname",
22
+ 'merchant_customer_id' => "2",
23
+ 'phone_numbers' => ["01234567890"],
24
+ 'postal_code' => "1043 NX",
25
+ 'housenumber' => "29 A-12"
26
+ ];
27
+
28
+ $order = Order::create(
29
+ 6500,
30
+ 'EUR',
31
+ 'credit-card',
32
+ [],
33
+ 'My description',
34
+ 'my-order-id',
35
+ 'http://www.example.com',
36
+ 'P0Y0M0DT1H0M0S',
37
+ $customer
38
+ );
39
+
40
+ $this->assertEquals(6500, $order->amount()->toInteger());
41
+ $this->assertEquals('EUR', (string) $order->currency());
42
+ $this->assertEquals('My description', (string) $order->description());
43
+ $this->assertEquals('my-order-id', (string) $order->merchantOrderId());
44
+ $this->assertEquals('http://www.example.com', (string) $order->returnUrl());
45
+ $this->assertEquals(
46
+ 'P0Y0M0DT1H0M0S',
47
+ $order->expirationPeriod()->format('P%yY%mM%dDT%hH%iM%sS')
48
+ );
49
+
50
+ /** @var Transaction $transaction */
51
+ foreach ($order->transactions() as $transaction) {
52
+ $this->assertEquals('credit-card', (string) $transaction->paymentMethod());
53
+ $this->assertEquals(
54
+ [],
55
+ $transaction->paymentMethodDetails()->toArray()
56
+ );
57
+ }
58
+ }
59
+
60
+ /**
61
+ * @test
62
+ */
63
+ public function itShouldCreateWithCreditCard()
64
+ {
65
+ $customer = [
66
+ 'address' => "Radarweg 29 A-12 1043 NX Amsterdam",
67
+ 'address_type' => "customer",
68
+ 'country' => "NL",
69
+ 'email_address' => "email@example.com",
70
+ 'first_name' => "Firstname",
71
+ 'last_name' => "Lastname",
72
+ 'merchant_customer_id' => "2",
73
+ 'phone_numbers' => ["0123456789"],
74
+ 'postal_code' => "1043 NX",
75
+ 'housenumber' => "29 A-12"
76
+ ];
77
+
78
+ $order = Order::createWithCreditCard(
79
+ 6500,
80
+ 'EUR',
81
+ 'My description',
82
+ 'my-order-id',
83
+ 'http://www.example.com',
84
+ 'P0Y0M0DT1H0M0S',
85
+ $customer
86
+ );
87
+
88
+ $this->assertEquals(6500, $order->amount()->toInteger());
89
+ $this->assertEquals('EUR', (string) $order->currency());
90
+ $this->assertEquals('My description', (string) $order->description());
91
+ $this->assertEquals('my-order-id', (string) $order->merchantOrderId());
92
+ $this->assertEquals('http://www.example.com', (string) $order->returnUrl());
93
+ $this->assertEquals(
94
+ 'P0Y0M0DT1H0M0S',
95
+ $order->expirationPeriod()->format('P%yY%mM%dDT%hH%iM%sS')
96
+ );
97
+
98
+ /** @var Transaction $transaction */
99
+ foreach ($order->transactions() as $transaction) {
100
+ $this->assertEquals('credit-card', (string) $transaction->paymentMethod());
101
+ $this->assertEquals(
102
+ [],
103
+ $transaction->paymentMethodDetails()->toArray()
104
+ );
105
+ }
106
+ }
107
+
108
+ /**
109
+ * @test
110
+ */
111
+ public function itShouldCreateWithIdeal()
112
+ {
113
+ $customer = [
114
+ 'address' => "Radarweg 29 A-12 1043 NX Amsterdam",
115
+ 'address_type' => "customer",
116
+ 'country' => "NL",
117
+ 'email_address' => "email@example.com",
118
+ 'first_name' => "Firstname",
119
+ 'last_name' => "Lastname",
120
+ 'merchant_customer_id' => "2",
121
+ 'phone_numbers' => ["0123456789"],
122
+ 'postal_code' => "1043 NX",
123
+ 'housenumber' => "29 A-12"
124
+ ];
125
+
126
+ $order = Order::createWithIdeal(
127
+ 6500,
128
+ 'EUR',
129
+ 'ABNANL2A',
130
+ 'My description',
131
+ 'my-order-id',
132
+ 'http://www.example.com',
133
+ 'P0Y0M0DT1H0M0S',
134
+ $customer
135
+ );
136
+
137
+ $this->assertEquals(6500, $order->amount()->toInteger());
138
+ $this->assertEquals('EUR', (string) $order->currency());
139
+ $this->assertEquals('My description', (string) $order->description());
140
+ $this->assertEquals('my-order-id', (string) $order->merchantOrderId());
141
+ $this->assertEquals('http://www.example.com', (string) $order->returnUrl());
142
+ $this->assertEquals(
143
+ 'P0Y0M0DT1H0M0S',
144
+ $order->expirationPeriod()->format('P%yY%mM%dDT%hH%iM%sS')
145
+ );
146
+
147
+ /** @var Transaction $transaction */
148
+ foreach ($order->transactions() as $transaction) {
149
+ $this->assertEquals('ideal', (string) $transaction->paymentMethod());
150
+ $this->assertArraySubset(
151
+ ['issuer_id' => 'ABNANL2A'],
152
+ $transaction->paymentMethodDetails()->toArray()
153
+ );
154
+ }
155
+ }
156
+
157
+ /**
158
+ * @test
159
+ */
160
+ public function itShouldCreateFromAnArray()
161
+ {
162
+ $customer = [
163
+ 'address' => "Radarweg 29 A-12 1043 NX Amsterdam",
164
+ 'address_type' => "customer",
165
+ 'country' => "NL",
166
+ 'email_address' => "email@example.com",
167
+ 'first_name' => "Firstname",
168
+ 'last_name' => "Lastname",
169
+ 'merchant_customer_id' => "2",
170
+ 'phone_numbers' => ["0123456789"],
171
+ 'postal_code' => "1043 NX",
172
+ 'housenumber' => "29 A-12"
173
+ ];
174
+
175
+ $array = [
176
+ 'transactions' => [],
177
+ 'amount' => 6200,
178
+ 'currency' => 'EUR',
179
+ 'description' => 'My amazing order',
180
+ 'merchant_order_id' => 'my-order-id',
181
+ 'return_url' => 'http://www.example.com',
182
+ 'expiration_period' => 'P0Y0M0DT1H0M0S',
183
+ 'id' => '6cc8bc83-c14a-4871-b91e-a8575db5556d',
184
+ 'project_id' => '4e8207ef-caf2-429e-a8e1-be8d628beccb',
185
+ 'created' => '2015-03-07T20:58:35+0100',
186
+ 'modified' => '2015-03-07T20:58:35+0100',
187
+ 'completed' => '2015-03-07T20:58:35+0100',
188
+ 'status' => 'new',
189
+ 'customer' => $customer
190
+ ];
191
+
192
+ $order = Order::fromArray($array);
193
+ $this->assertInstanceOf(
194
+ 'GingerPayments\Payment\Order',
195
+ $order
196
+ );
197
+
198
+ $this->assertInstanceOf(
199
+ 'GingerPayments\Payment\Order\Transactions',
200
+ $order->transactions()
201
+ );
202
+ $this->assertEquals($array['amount'], $order->amount()->toInteger());
203
+ $this->assertEquals($array['currency'], (string) $order->currency());
204
+ $this->assertEquals($array['description'], (string) $order->description());
205
+ $this->assertEquals($array['merchant_order_id'], (string) $order->merchantOrderId());
206
+ $this->assertEquals($array['return_url'], (string) $order->returnUrl());
207
+ $this->assertEquals(
208
+ $array['expiration_period'],
209
+ $order->expirationPeriod()->format('P%yY%mM%dDT%hH%iM%sS')
210
+ );
211
+ $this->assertEquals($array['id'], (string) $order->id());
212
+ $this->assertEquals($array['project_id'], (string) $order->projectId());
213
+ $this->assertEquals($array['created'], $order->created()->toIso8601String());
214
+ $this->assertEquals($array['modified'], $order->modified()->toIso8601String());
215
+ $this->assertEquals($array['completed'], $order->completed()->toIso8601String());
216
+ $this->assertEquals($array['status'], (string) $order->status());
217
+ }
218
+
219
+ /**
220
+ * @test
221
+ */
222
+ public function itShouldGuardAgainstMissingTransactions()
223
+ {
224
+ $this->setExpectedException('Assert\InvalidArgumentException');
225
+ Order::fromArray([]);
226
+ }
227
+
228
+ /**
229
+ * @test
230
+ */
231
+ public function itShouldGuardAgainstMissingAmount()
232
+ {
233
+ $this->setExpectedException('Assert\InvalidArgumentException');
234
+ Order::fromArray(
235
+ ['transactions' => []]
236
+ );
237
+ }
238
+
239
+ /**
240
+ * @test
241
+ */
242
+ public function itShouldGuardAgainstMissingCurrency()
243
+ {
244
+ $this->setExpectedException('Assert\InvalidArgumentException');
245
+ Order::fromArray(
246
+ [
247
+ 'transactions' => [],
248
+ 'amount' => 1234
249
+ ]
250
+ );
251
+ }
252
+
253
+ /**
254
+ * @test
255
+ */
256
+ public function itShouldSetMissingValuesToNull()
257
+ {
258
+ $array = [
259
+ 'transactions' => [],
260
+ 'amount' => 6200,
261
+ 'currency' => 'EUR'
262
+ ];
263
+
264
+ $order = Order::fromArray($array);
265
+ $this->assertNull($order->description());
266
+ $this->assertNull($order->merchantOrderId());
267
+ $this->assertNull($order->returnUrl());
268
+ $this->assertNull($order->expirationPeriod());
269
+ $this->assertNull($order->id());
270
+ $this->assertNull($order->projectId());
271
+ $this->assertNull($order->created());
272
+ $this->assertNull($order->modified());
273
+ $this->assertNull($order->completed());
274
+ $this->assertNull($order->status());
275
+ }
276
+
277
+ /**
278
+ * @test
279
+ */
280
+ public function itShouldConvertToArray()
281
+ {
282
+ $customer = [
283
+ 'address' => "Radarweg 29 A-12 1043 NX Amsterdam",
284
+ 'address_type' => "customer",
285
+ 'country' => "NL",
286
+ 'email_address' => "email@example.com",
287
+ 'first_name' => "Firstname",
288
+ 'last_name' => "Lastname",
289
+ 'merchant_customer_id' => "2",
290
+ 'phone_numbers' => ["0123456789"],
291
+ 'postal_code' => null,
292
+ 'housenumber' => null,
293
+ 'locale' => null
294
+ ];
295
+
296
+ $array = [
297
+ 'transactions' => [],
298
+ 'amount' => 6200,
299
+ 'currency' => 'EUR',
300
+ 'description' => 'My amazing order',
301
+ 'merchant_order_id' => 'my-order-id',
302
+ 'return_url' => 'http://www.example.com',
303
+ 'expiration_period' => 'P0Y0M0DT1H0M0S',
304
+ 'id' => '6cc8bc83-c14a-4871-b91e-a8575db5556d',
305
+ 'project_id' => '4e8207ef-caf2-429e-a8e1-be8d628beccb',
306
+ 'created' => '2015-03-07T20:58:35+0100',
307
+ 'modified' => '2015-03-07T20:58:35+0100',
308
+ 'completed' => '2015-03-07T20:58:35+0100',
309
+ 'status' => 'new',
310
+ 'customer' => $customer,
311
+ 'extra' => null,
312
+ 'webhook_url' => 'http://www.example.com/webhook'
313
+ ];
314
+
315
+ $this->assertEquals(
316
+ $array,
317
+ Order::fromArray($array)->toArray()
318
+ );
319
+ }
320
+
321
+ /**
322
+ * @test
323
+ */
324
+ public function itShouldGetTheFirstTransactionPaymentUrl()
325
+ {
326
+ $array = [
327
+ 'transactions' => [
328
+ [
329
+ 'payment_method' => 'credit-card',
330
+ 'payment_url' => 'http://www.example.com'
331
+ ]
332
+ ],
333
+ 'amount' => 6200,
334
+ 'currency' => 'EUR'
335
+ ];
336
+
337
+ $order = Order::fromArray($array);
338
+ $this->assertEquals('http://www.example.com', $order->firstTransactionPaymentUrl());
339
+ }
340
+
341
+ /**
342
+ * @test
343
+ */
344
+ public function itShouldUpdateFieldsThatAreNotReadOnly()
345
+ {
346
+ $customer = [
347
+ 'address' => "Radarweg 29 A-12 Amsterdam",
348
+ 'address_type' => "customer",
349
+ 'country' => "NL",
350
+ 'email_address' => "email@example.com",
351
+ 'first_name' => "Firstname",
352
+ 'last_name' => "Lastname",
353
+ 'merchant_customer_id' => "2",
354
+ 'phone_numbers' => ["0123456789"],
355
+ 'postal_code' => "1043 NX",
356
+ 'housenumber' => "29",
357
+ 'locale' => "en_US"
358
+ ];
359
+
360
+ $array = [
361
+ 'transactions' => [],
362
+ 'amount' => 6200,
363
+ 'currency' => 'EUR',
364
+ 'description' => 'My amazing order',
365
+ 'merchant_order_id' => 'my-order-id',
366
+ 'return_url' => 'http://www.example.com',
367
+ 'expiration_period' => 'P0Y0M0DT1H0M0S',
368
+ 'id' => '6cc8bc83-c14a-4871-b91e-a8575db5556d',
369
+ 'project_id' => '4e8207ef-caf2-429e-a8e1-be8d628beccb',
370
+ 'created' => '2015-03-07T20:58:35+0100',
371
+ 'modified' => '2015-03-07T20:58:35+0100',
372
+ 'completed' => '2015-03-07T20:58:35+0100',
373
+ 'status' => 'new',
374
+ 'customer' => $customer,
375
+ 'extra' => null,
376
+ 'webhook_url' => 'http://www.example.com/webhook'
377
+ ];
378
+
379
+ $updatedOrder = [
380
+ 'transactions' => [],
381
+ 'amount' => 9999,
382
+ 'currency' => 'EUR',
383
+ 'description' => 'New Order Description',
384
+ 'merchant_order_id' => 'NEW_MERCHANT_ORDER_ID',
385
+ 'return_url' => 'http://www.example.com/API',
386
+ 'expiration_period' => 'P0Y0M0DT2H0M0S',
387
+ 'id' => '6cc8bc83-c14a-4871-b91e-a8575db5556d',
388
+ 'project_id' => '4e8207ef-caf2-429e-a8e1-be8d628beccb',
389
+ 'created' => '2015-03-07T20:58:35+0100',
390
+ 'modified' => '2015-03-07T20:58:35+0100',
391
+ 'completed' => '2015-03-07T20:58:35+0100',
392
+ 'status' => 'new',
393
+ 'customer' => $customer,
394
+ 'extra' => null,
395
+ 'webhook_url' => 'http://www.example.com/WEBHOOK'
396
+ ];
397
+
398
+
399
+ $order = Order::fromArray($array);
400
+
401
+ $this->assertEquals(
402
+ $order->toArray(),
403
+ $array
404
+ );
405
+
406
+ $order->merchantOrderId("NEW_MERCHANT_ORDER_ID");
407
+
408
+ $this->assertNotEquals(
409
+ $order->toArray(),
410
+ $array
411
+ );
412
+
413
+ $this->assertEquals(
414
+ $order->merchantOrderId("NEW_MERCHANT_ORDER_ID")->toString(),
415
+ "NEW_MERCHANT_ORDER_ID"
416
+ );
417
+
418
+ $this->assertEquals(
419
+ $order->currency("EUR")->toString(),
420
+ "EUR"
421
+ );
422
+
423
+ $this->assertEquals(
424
+ $order->amount(9999)->toInteger(),
425
+ 9999
426
+ );
427
+
428
+ $this->assertEquals(
429
+ $order->expirationPeriod("P0Y0M0DT2H0M0S")->format('P%yY%mM%dDT%hH%iM%sS'),
430
+ "P0Y0M0DT2H0M0S"
431
+ );
432
+
433
+ $this->assertEquals(
434
+ $order->description("New Order Description")->toString(),
435
+ "New Order Description"
436
+ );
437
+
438
+ $this->assertEquals(
439
+ $order->returnUrl("http://www.example.com/API")->toString(),
440
+ "http://www.example.com/API"
441
+ );
442
+
443
+ $this->assertEquals(
444
+ $order->webhookUrl("http://www.example.com/WEBHOOK")->toString(),
445
+ "http://www.example.com/WEBHOOK"
446
+ );
447
+
448
+ $this->assertEquals(
449
+ $order->toArray(),
450
+ $updatedOrder
451
+ );
452
+ }
453
+ }
lib/Ing/Services/ing-php/tests/SwiftBicTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests;
4
+
5
+ use GingerPayments\Payment\SwiftBic;
6
+
7
+ final class SwiftBicTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\SwiftBic',
16
+ SwiftBic::fromString('ABNANL2A')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstInvalidSwiftCode()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ SwiftBic::fromString('very-invalid-code');
27
+ }
28
+ }
lib/Ing/Services/ing-php/tests/UrlTest.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace GingerPayments\Payment\Tests;
4
+
5
+ use GingerPayments\Payment\Url;
6
+
7
+ final class UrlTest extends \PHPUnit_Framework_TestCase
8
+ {
9
+ /**
10
+ * @test
11
+ */
12
+ public function itShouldInstantiateFromAValidString()
13
+ {
14
+ $this->assertInstanceOf(
15
+ 'GingerPayments\Payment\Url',
16
+ Url::fromString('http://www.google.com')
17
+ );
18
+ }
19
+
20
+ /**
21
+ * @test
22
+ */
23
+ public function itShouldGuardAgainstAnInvalidUrl()
24
+ {
25
+ $this->setExpectedException('Assert\InvalidArgumentException');
26
+ Url::fromString('very-invalid');
27
+ }
28
+ }
lib/Ing/Services/ing-php/vendor/alcohol/iso3166/ISO3166.php ADDED
@@ -0,0 +1,1878 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * (c) Rob Bast <rob.bast@gmail.com>
5
+ *
6
+ * For the full copyright and license information, please view
7
+ * the LICENSE file that was distributed with this source code.
8
+ */
9
+
10
+ namespace Alcohol;
11
+
12
+ /**
13
+ * A library providing ISO 3166-1 data.
14
+ */
15
+ class ISO3166
16
+ {
17
+ /**
18
+ * @used-by ::getByAlpha2()
19
+ * @used-by ::getByAlpha3()
20
+ *
21
+ * @param string $code
22
+ *
23
+ * @throws \OutOfBoundsException
24
+ * @return array
25
+ */
26
+ public function getByCode($code)
27
+ {
28
+ foreach ($this->countries as $country) {
29
+ if (0 === strcasecmp($code, $country['alpha2']) ||
30
+ 0 === strcasecmp($code, $country['alpha3'])) {
31
+ return $country;
32
+ }
33
+ }
34
+
35
+ throw new \OutOfBoundsException('ISO 3166-1 does not contain: ' . $code);
36
+ }
37
+
38
+ /**
39
+ * @uses ::getByCode()
40
+ *
41
+ * @param string $alpha2
42
+ *
43
+ * @throws \DomainException
44
+ * @return array
45
+ */
46
+ public function getByAlpha2($alpha2)
47
+ {
48
+ if (!preg_match('/^[a-zA-Z]{2}$/', $alpha2)) {
49
+ throw new \DomainException('Not a valid alpha2: ' . $alpha2);
50
+ }
51
+
52
+ return $this->getByCode($alpha2);
53
+ }
54
+
55
+ /**
56
+ * @uses ::getByCode()
57
+ *
58
+ * @param string $alpha3
59
+ *
60
+ * @throws \DomainException
61
+ * @return array
62
+ */
63
+ public function getByAlpha3($alpha3)
64
+ {
65
+ if (!preg_match('/^[a-zA-Z]{3}$/', $alpha3)) {
66
+ throw new \DomainException('Not a valid alpha3: ' . $alpha3);
67
+ }
68
+
69
+ return $this->getByCode($alpha3);
70
+ }
71
+
72
+ /**
73
+ * @param string $numeric
74
+ *
75
+ * @throws \DomainException
76
+ * @throws \OutOfBoundsException
77
+ * @return array
78
+ */
79
+ public function getByNumeric($numeric)
80
+ {
81
+ if (!preg_match('/^[0-9]{3}$/', $numeric)) {
82
+ throw new \DomainException('Not a valid numeric: ' . $numeric);
83
+ }
84
+
85
+ foreach ($this->countries as $country) {
86
+ if (0 === strcasecmp($numeric, $country['numeric'])) {
87
+ return $country;
88
+ }
89
+ }
90
+
91
+ throw new \OutOfBoundsException('ISO 3166-1 does not contain: ' . $numeric);
92
+ }
93
+
94
+ /**
95
+ * @uses ::$countries
96
+ *
97
+ * @return array
98
+ */
99
+ public function getAll()
100
+ {
101
+ return $this->countries;
102
+ }
103
+
104
+ /**
105
+ * @used-by ::getAll()
106
+ *
107
+ * @var array
108
+ */
109
+ protected $countries = [
110
+ [
111
+ 'name' => 'Afghanistan',
112
+ 'alpha2' => 'AF',
113
+ 'alpha3' => 'AFG',
114
+ 'numeric' => '004',
115
+ 'currency' => 'AFN',
116
+ ],
117
+ [
118
+ 'name' => 'Ă…land Islands',
119
+ 'alpha2' => 'AX',
120
+ 'alpha3' => 'ALA',
121
+ 'numeric' => '248',
122
+ 'currency' => 'EUR',
123
+ ],
124
+ [
125
+ 'name' => 'Albania',
126
+ 'alpha2' => 'AL',
127
+ 'alpha3' => 'ALB',
128
+ 'numeric' => '008',
129
+ 'currency' => 'ALL',
130
+ ],
131
+ [
132
+ 'name' => 'Algeria',
133
+ 'alpha2' => 'DZ',
134
+ 'alpha3' => 'DZA',
135
+ 'numeric' => '012',
136
+ 'currency' => 'DZD',
137
+ ],
138
+ [
139
+ 'name' => 'American Samoa',
140
+ 'alpha2' => 'AS',
141
+ 'alpha3' => 'ASM',
142
+ 'numeric' => '016',
143
+ 'currency' => 'USD',
144
+ ],
145
+ [
146
+ 'name' => 'Andorra',
147
+ 'alpha2' => 'AD',
148
+ 'alpha3' => 'AND',
149
+ 'numeric' => '020',
150
+ 'currency' => 'EUR',
151
+ ],
152
+ [
153
+ 'name' => 'Angola',
154
+ 'alpha2' => 'AO',
155
+ 'alpha3' => 'AGO',
156
+ 'numeric' => '024',
157
+ 'currency' => 'AOA',
158
+ ],
159
+ [
160
+ 'name' => 'Anguilla',
161
+ 'alpha2' => 'AI',
162
+ 'alpha3' => 'AIA',
163
+ 'numeric' => '660',
164
+ 'currency' => 'XCD',
165
+ ],
166
+ [
167
+ 'name' => 'Antarctica',
168
+ 'alpha2' => 'AQ',
169
+ 'alpha3' => 'ATA',
170
+ 'numeric' => '010',
171
+ 'currency' => 'NOK',
172
+ ],
173
+ [
174
+ 'name' => 'Antigua and Barbuda',
175
+ 'alpha2' => 'AG',
176
+ 'alpha3' => 'ATG',
177
+ 'numeric' => '028',
178
+ 'currency' => 'XCD',
179
+ ],
180
+ [
181
+ 'name' => 'Argentina',
182
+ 'alpha2' => 'AR',
183
+ 'alpha3' => 'ARG',
184
+ 'numeric' => '032',
185
+ 'currency' => 'ARS',
186
+ ],
187
+ [
188
+ 'name' => 'Armenia',
189
+ 'alpha2' => 'AM',
190
+ 'alpha3' => 'ARM',
191
+ 'numeric' => '051',
192
+ 'currency' => 'AMD',
193
+ ],
194
+ [
195
+ 'name' => 'Aruba',
196
+ 'alpha2' => 'AW',
197
+ 'alpha3' => 'ABW',
198
+ 'numeric' => '533',
199
+ 'currency' => 'AWG',
200
+ ],
201
+ [
202
+ 'name' => 'Australia',
203
+ 'alpha2' => 'AU',
204
+ 'alpha3' => 'AUS',
205
+ 'numeric' => '036',
206
+ 'currency' => 'AUD',
207
+ ],
208
+ [
209
+ 'name' => 'Austria',
210
+ 'alpha2' => 'AT',
211
+ 'alpha3' => 'AUT',
212
+ 'numeric' => '040',
213
+ 'currency' => 'EUR',
214
+ ],
215
+ [
216
+ 'name' => 'Azerbaijan',
217
+ 'alpha2' => 'AZ',
218
+ 'alpha3' => 'AZE',
219
+ 'numeric' => '031',
220
+ 'currency' => 'AZN',
221
+ ],
222
+ [
223
+ 'name' => 'Bahamas',
224
+ 'alpha2' => 'BS',
225
+ 'alpha3' => 'BHS',
226
+ 'numeric' => '044',
227
+ 'currency' => 'BSD',
228
+ ],
229
+ [
230
+ 'name' => 'Bahrain',
231
+ 'alpha2' => 'BH',
232
+ 'alpha3' => 'BHR',
233
+ 'numeric' => '048',
234
+ 'currency' => 'BHD',
235
+ ],
236
+ [
237
+ 'name' => 'Bangladesh',
238
+ 'alpha2' => 'BD',
239
+ 'alpha3' => 'BGD',
240
+ 'numeric' => '050',
241
+ 'currency' => 'BDT',
242
+ ],
243
+ [
244
+ 'name' => 'Barbados',
245
+ 'alpha2' => 'BB',
246
+ 'alpha3' => 'BRB',
247
+ 'numeric' => '052',
248
+ 'currency' => 'BBD',
249
+ ],
250
+ [
251
+ 'name' => 'Belarus',
252
+ 'alpha2' => 'BY',
253
+ 'alpha3' => 'BLR',
254
+ 'numeric' => '112',
255
+ 'currency' => 'BYR',
256
+ ],
257
+ [
258
+ 'name' => 'Belgium',
259
+ 'alpha2' => 'BE',
260
+ 'alpha3' => 'BEL',
261
+ 'numeric' => '056',
262
+ 'currency' => 'EUR',
263
+ ],
264
+ [
265
+ 'name' => 'Belize',
266
+ 'alpha2' => 'BZ',
267
+ 'alpha3' => 'BLZ',
268
+ 'numeric' => '084',
269
+ 'currency' => 'BZD',
270
+ ],
271
+ [
272
+ 'name' => 'Benin',
273
+ 'alpha2' => 'BJ',
274
+ 'alpha3' => 'BEN',
275
+ 'numeric' => '204',
276
+ 'currency' => 'XOF',
277
+ ],
278
+ [
279
+ 'name' => 'Bermuda',
280
+ 'alpha2' => 'BM',
281
+ 'alpha3' => 'BMU',
282
+ 'numeric' => '060',
283
+ 'currency' => 'BMD',
284
+ ],
285
+ [
286
+ 'name' => 'Bhutan',
287
+ 'alpha2' => 'BT',
288
+ 'alpha3' => 'BTN',
289
+ 'numeric' => '064',
290
+ 'currency' => 'BTN',
291
+ ],
292
+ [
293
+ 'name' => 'Bolivia (Plurinational State of)',
294
+ 'alpha2' => 'BO',
295
+ 'alpha3' => 'BOL',
296
+ 'numeric' => '068',
297
+ 'currency' => 'BOB',
298
+ ],
299
+ [
300
+ 'name' => 'Bonaire, Sint Eustatius and Saba',
301
+ 'alpha2' => 'BQ',
302
+ 'alpha3' => 'BES',
303
+ 'numeric' => '535',
304
+ 'currency' => 'USD',
305
+ ],
306
+ [
307
+ 'name' => 'Bosnia and Herzegovina',
308
+ 'alpha2' => 'BA',
309
+ 'alpha3' => 'BIH',
310
+ 'numeric' => '070',
311
+ 'currency' => 'BAM',
312
+ ],
313
+ [
314
+ 'name' => 'Botswana',
315
+ 'alpha2' => 'BW',
316
+ 'alpha3' => 'BWA',
317
+ 'numeric' => '072',
318
+ 'currency' => 'BWP',
319
+ ],
320
+ [
321
+ 'name' => 'Bouvet Island',
322
+ 'alpha2' => 'BV',
323
+ 'alpha3' => 'BVT',
324
+ 'numeric' => '074',
325
+ 'currency' => 'NOK',
326
+ ],
327
+ [
328
+ 'name' => 'Brazil',
329
+ 'alpha2' => 'BR',
330
+ 'alpha3' => 'BRA',
331
+ 'numeric' => '076',
332
+ 'currency' => 'BRL',
333
+ ],
334
+ [
335
+ 'name' => 'British Indian Ocean Territory',
336
+ 'alpha2' => 'IO',
337
+ 'alpha3' => 'IOT',
338
+ 'numeric' => '086',
339
+ 'currency' => 'GBP',
340
+ ],
341
+ [
342
+ 'name' => 'Brunei Darussalam',
343
+ 'alpha2' => 'BN',
344
+ 'alpha3' => 'BRN',
345
+ 'numeric' => '096',
346
+ 'currency' => [
347
+ 'BND',
348
+ 'SGD',
349
+ ],
350
+ ],
351
+ [
352
+ 'name' => 'Bulgaria',
353
+ 'alpha2' => 'BG',
354
+ 'alpha3' => 'BGR',
355
+ 'numeric' => '100',
356
+ 'currency' => 'BGN',
357
+ ],
358
+ [
359
+ 'name' => 'Burkina Faso',
360
+ 'alpha2' => 'BF',
361
+ 'alpha3' => 'BFA',
362
+ 'numeric' => '854',
363
+ 'currency' => 'XOF',
364
+ ],
365
+ [
366
+ 'name' => 'Burundi',
367
+ 'alpha2' => 'BI',
368
+ 'alpha3' => 'BDI',
369
+ 'numeric' => '108',
370
+ 'currency' => 'BIF',
371
+ ],
372
+ [
373
+ 'name' => 'Cambodia',
374
+ 'alpha2' => 'KH',
375
+ 'alpha3' => 'KHM',
376
+ 'numeric' => '116',
377
+ 'currency' => 'KHR',
378
+ ],
379
+ [
380
+ 'name' => 'Cameroon',
381
+ 'alpha2' => 'CM',
382
+ 'alpha3' => 'CMR',
383
+ 'numeric' => '120',
384
+ 'currency' => 'XAF',
385
+ ],
386
+ [
387
+ 'name' => 'Canada',
388
+ 'alpha2' => 'CA',
389
+ 'alpha3' => 'CAN',
390
+ 'numeric' => '124',
391
+ 'currency' => 'CAD',
392
+ ],
393
+ [
394
+ 'name' => 'Cabo Verde',
395
+ 'alpha2' => 'CV',
396
+ 'alpha3' => 'CPV',
397
+ 'numeric' => '132',
398
+ 'currency' => 'CVE',
399
+ ],
400
+ [
401
+ 'name' => 'Cayman Islands',
402
+ 'alpha2' => 'KY',
403
+ 'alpha3' => 'CYM',
404
+ 'numeric' => '136',
405
+ 'currency' => 'KYD',
406
+ ],
407
+ [
408
+ 'name' => 'Central African Republic',
409
+ 'alpha2' => 'CF',
410
+ 'alpha3' => 'CAF',
411
+ 'numeric' => '140',
412
+ 'currency' => 'XAF',
413
+ ],
414
+ [
415
+ 'name' => 'Chad',
416
+ 'alpha2' => 'TD',
417
+ 'alpha3' => 'TCD',
418
+ 'numeric' => '148',
419
+ 'currency' => 'XAF',
420
+ ],
421
+ [
422
+ 'name' => 'Chile',
423
+ 'alpha2' => 'CL',
424
+ 'alpha3' => 'CHL',
425
+ 'numeric' => '152',
426
+ 'currency' => 'CLP',
427
+ ],
428
+ [
429
+ 'name' => 'China',
430
+ 'alpha2' => 'CN',
431
+ 'alpha3' => 'CHN',
432
+ 'numeric' => '156',
433
+ 'currency' => 'CNY',
434
+ ],
435
+ [
436
+ 'name' => 'Christmas Island',
437
+ 'alpha2' => 'CX',
438
+ 'alpha3' => 'CXR',
439
+ 'numeric' => '162',
440
+ 'currency' => 'AUD',
441
+ ],
442
+ [
443
+ 'name' => 'Cocos (Keeling) Islands',
444
+ 'alpha2' => 'CC',
445
+ 'alpha3' => 'CCK',
446
+ 'numeric' => '166',
447
+ 'currency' => 'AUD',
448
+ ],
449
+ [
450
+ 'name' => 'Colombia',
451
+ 'alpha2' => 'CO',
452
+ 'alpha3' => 'COL',
453
+ 'numeric' => '170',
454
+ 'currency' => 'COP',
455
+ ],
456
+ [
457
+ 'name' => 'Comoros',
458
+ 'alpha2' => 'KM',
459
+ 'alpha3' => 'COM',
460
+ 'numeric' => '174',
461
+ 'currency' => 'KMF',
462
+ ],
463
+ [
464
+ 'name' => 'Congo',
465
+ 'alpha2' => 'CG',
466
+ 'alpha3' => 'COG',
467
+ 'numeric' => '178',
468
+ 'currency' => 'XAF',
469
+ ],
470
+ [
471
+ 'name' => 'Congo (Democratic Republic of the)',
472
+ 'alpha2' => 'CD',
473
+ 'alpha3' => 'COD',
474
+ 'numeric' => '180',
475
+ 'currency' => 'CDF',
476
+ ],
477
+ [
478
+ 'name' => 'Cook Islands',
479
+ 'alpha2' => 'CK',
480
+ 'alpha3' => 'COK',
481
+ 'numeric' => '184',
482
+ 'currency' => 'NZD',
483
+ ],
484
+ [
485
+ 'name' => 'Costa Rica',
486
+ 'alpha2' => 'CR',
487
+ 'alpha3' => 'CRI',
488
+ 'numeric' => '188',
489
+ 'currency' => 'CRC',
490
+ ],
491
+ [
492
+ 'name' => 'CĂ´te d\'Ivoire',
493
+ 'alpha2' => 'CI',
494
+ 'alpha3' => 'CIV',
495
+ 'numeric' => '384',
496
+ 'currency' => 'XOF',
497
+ ],
498
+ [
499
+ 'name' => 'Croatia',
500
+ 'alpha2' => 'HR',
501
+ 'alpha3' => 'HRV',
502
+ 'numeric' => '191',
503
+ 'currency' => 'HRK',
504
+ ],
505
+ [
506
+ 'name' => 'Cuba',
507
+ 'alpha2' => 'CU',
508
+ 'alpha3' => 'CUB',
509
+ 'numeric' => '192',
510
+ 'currency' => [
511
+ 'CUP',
512
+ 'CUC',
513
+ ],
514
+ ],
515
+ [
516
+ 'name' => 'Curaçao',
517
+ 'alpha2' => 'CW',
518
+ 'alpha3' => 'CUW',
519
+ 'numeric' => '531',
520
+ 'currency' => 'ANG',
521
+ ],
522
+ [
523
+ 'name' => 'Cyprus',
524
+ 'alpha2' => 'CY',
525
+ 'alpha3' => 'CYP',
526
+ 'numeric' => '196',
527
+ 'currency' => 'EUR',
528
+ ],
529
+ [
530
+ 'name' => 'Czech Republic',
531
+ 'alpha2' => 'CZ',
532
+ 'alpha3' => 'CZE',
533
+ 'numeric' => '203',
534
+ 'currency' => 'CZK',
535
+ ],
536
+ [
537
+ 'name' => 'Denmark',
538
+ 'alpha2' => 'DK',
539
+ 'alpha3' => 'DNK',
540
+ 'numeric' => '208',
541
+ 'currency' => 'DKK',
542
+ ],
543
+ [
544
+ 'name' => 'Djibouti',
545
+ 'alpha2' => 'DJ',
546
+ 'alpha3' => 'DJI',
547
+ 'numeric' => '262',
548
+ 'currency' => 'DJF',
549
+ ],
550
+ [
551
+ 'name' => 'Dominica',
552
+ 'alpha2' => 'DM',
553
+ 'alpha3' => 'DMA',
554
+ 'numeric' => '212',
555
+ 'currency' => 'XCD',
556
+ ],
557
+ [
558
+ 'name' => 'Dominican Republic',
559
+ 'alpha2' => 'DO',
560
+ 'alpha3' => 'DOM',
561
+ 'numeric' => '214',
562
+ 'currency' => 'DOP',
563
+ ],
564
+ [
565
+ 'name' => 'Ecuador',
566
+ 'alpha2' => 'EC',
567
+ 'alpha3' => 'ECU',
568
+ 'numeric' => '218',
569
+ 'currency' => 'USD',
570
+ ],
571
+ [
572
+ 'name' => 'Egypt',
573
+ 'alpha2' => 'EG',
574
+ 'alpha3' => 'EGY',
575
+ 'numeric' => '818',
576
+ 'currency' => 'EGP',
577
+ ],
578
+ [
579
+ 'name' => 'El Salvador',
580
+ 'alpha2' => 'SV',
581
+ 'alpha3' => 'SLV',
582
+ 'numeric' => '222',
583
+ 'currency' => 'USD',
584
+ ],
585
+ [
586
+ 'name' => 'Equatorial Guinea',
587
+ 'alpha2' => 'GQ',
588
+ 'alpha3' => 'GNQ',
589
+ 'numeric' => '226',
590
+ 'currency' => 'XAF',
591
+ ],
592
+ [
593
+ 'name' => 'Eritrea',
594
+ 'alpha2' => 'ER',
595
+ 'alpha3' => 'ERI',
596
+ 'numeric' => '232',
597
+ 'currency' => 'ERN',
598
+ ],
599
+ [
600
+ 'name' => 'Estonia',
601
+ 'alpha2' => 'EE',
602
+ 'alpha3' => 'EST',
603
+ 'numeric' => '233',
604
+ 'currency' => 'EEK',
605
+ ],
606
+ [
607
+ 'name' => 'Ethiopia',
608
+ 'alpha2' => 'ET',
609
+ 'alpha3' => 'ETH',
610
+ 'numeric' => '231',
611
+ 'currency' => 'ETB',
612
+ ],
613
+ [
614
+ 'name' => 'Falkland Islands (Malvinas)',
615
+ 'alpha2' => 'FK',
616
+ 'alpha3' => 'FLK',
617
+ 'numeric' => '238',
618
+ 'currency' => 'FKP',
619
+ ],
620
+ [
621
+ 'name' => 'Faroe Islands',
622
+ 'alpha2' => 'FO',
623
+ 'alpha3' => 'FRO',
624
+ 'numeric' => '234',
625
+ 'currency' => 'DKK',
626
+ ],
627
+ [
628
+ 'name' => 'Fiji',
629
+ 'alpha2' => 'FJ',
630
+ 'alpha3' => 'FJI',
631
+ 'numeric' => '242',
632
+ 'currency' => 'FJD',
633
+ ],
634
+ [
635
+ 'name' => 'Finland',
636
+ 'alpha2' => 'FI',
637
+ 'alpha3' => 'FIN',
638
+ 'numeric' => '246',
639
+ 'currency' => 'EUR',
640
+ ],
641
+ [
642
+ 'name' => 'France',
643
+ 'alpha2' => 'FR',
644
+ 'alpha3' => 'FRA',
645
+ 'numeric' => '250',
646
+ 'currency' => 'EUR',
647
+ ],
648
+ [
649
+ 'name' => 'French Guiana',
650
+ 'alpha2' => 'GF',
651
+ 'alpha3' => 'GUF',
652
+ 'numeric' => '254',
653
+ 'currency' => 'EUR',
654
+ ],
655
+ [
656
+ 'name' => 'French Polynesia',
657
+ 'alpha2' => 'PF',
658
+ 'alpha3' => 'PYF',
659
+ 'numeric' => '258',
660
+ 'currency' => 'XPF',
661
+ ],
662
+ [
663
+ 'name' => 'French Southern Territories',
664
+ 'alpha2' => 'TF',
665
+ 'alpha3' => 'ATF',
666
+ 'numeric' => '260',
667
+ 'currency' => 'EUR',
668
+ ],
669
+ [
670
+ 'name' => 'Gabon',
671
+ 'alpha2' => 'GA',
672
+ 'alpha3' => 'GAB',
673
+ 'numeric' => '266',
674
+ 'currency' => 'XAF',
675
+ ],
676
+ [
677
+ 'name' => 'Gambia',
678
+ 'alpha2' => 'GM',
679
+ 'alpha3' => 'GMB',
680
+ 'numeric' => '270',
681
+ 'currency' => 'GMD',
682
+ ],
683
+ [
684
+ 'name' => 'Georgia',
685
+ 'alpha2' => 'GE',
686
+ 'alpha3' => 'GEO',
687
+ 'numeric' => '268',
688
+ 'currency' => 'GEL',
689
+ ],
690
+ [
691
+ 'name' => 'Germany',
692
+ 'alpha2' => 'DE',
693
+ 'alpha3' => 'DEU',
694
+ 'numeric' => '276',
695
+ 'currency' => 'EUR',
696
+ ],
697
+ [
698
+ 'name' => 'Ghana',
699
+ 'alpha2' => 'GH',
700
+ 'alpha3' => 'GHA',
701
+ 'numeric' => '288',
702
+ 'currency' => 'GHS',
703
+ ],
704
+ [
705
+ 'name' => 'Gibraltar',
706
+ 'alpha2' => 'GI',
707
+ 'alpha3' => 'GIB',
708
+ 'numeric' => '292',
709
+ 'currency' => 'GIP',
710
+ ],
711
+ [
712
+ 'name' => 'Greece',
713
+ 'alpha2' => 'GR',
714
+ 'alpha3' => 'GRC',
715
+ 'numeric' => '300',
716
+ 'currency' => 'EUR',
717
+ ],
718
+ [
719
+ 'name' => 'Greenland',
720
+ 'alpha2' => 'GL',
721
+ 'alpha3' => 'GRL',
722
+ 'numeric' => '304',
723
+ 'currency' => 'DKK',
724
+ ],
725
+ [
726
+ 'name' => 'Grenada',
727
+ 'alpha2' => 'GD',
728
+ 'alpha3' => 'GRD',
729
+ 'numeric' => '308',
730
+ 'currency' => 'XCD',
731
+ ],
732
+ [
733
+ 'name' => 'Guadeloupe',
734
+ 'alpha2' => 'GP',
735
+ 'alpha3' => 'GLP',
736
+ 'numeric' => '312',
737
+ 'currency' => 'EUR',
738
+ ],
739
+ [
740
+ 'name' => 'Guam',
741
+ 'alpha2' => 'GU',
742
+ 'alpha3' => 'GUM',
743
+ 'numeric' => '316',
744
+ 'currency' => 'USD',
745
+ ],
746
+ [
747
+ 'name' => 'Guatemala',
748
+ 'alpha2' => 'GT',
749
+ 'alpha3' => 'GTM',
750
+ 'numeric' => '320',
751
+ 'currency' => 'GTQ',
752
+ ],
753
+ [
754
+ 'name' => 'Guernsey',
755
+ 'alpha2' => 'GG',
756
+ 'alpha3' => 'GGY',
757
+ 'numeric' => '831',
758
+ 'currency' => 'GBP',
759
+ ],
760
+ [
761
+ 'name' => 'Guinea',
762
+ 'alpha2' => 'GN',
763
+ 'alpha3' => 'GIN',
764
+ 'numeric' => '324',
765
+ 'currency' => 'GNF',
766
+ ],
767
+ [
768
+ 'name' => 'Guinea-Bissau',
769
+ 'alpha2' => 'GW',
770
+ 'alpha3' => 'GNB',
771
+ 'numeric' => '624',
772
+ 'currency' => 'XOF',
773
+ ],
774
+ [
775
+ 'name' => 'Guyana',
776
+ 'alpha2' => 'GY',
777
+ 'alpha3' => 'GUY',
778
+ 'numeric' => '328',
779
+ 'currency' => 'GYD',
780
+ ],
781
+ [
782
+ 'name' => 'Haiti',
783
+ 'alpha2' => 'HT',
784
+ 'alpha3' => 'HTI',
785
+ 'numeric' => '332',
786
+ 'currency' => 'HTG',
787
+ ],
788
+ [
789
+ 'name' => 'Heard Island and McDonald Islands',
790
+ 'alpha2' => 'HM',
791
+ 'alpha3' => 'HMD',
792
+ 'numeric' => '334',
793
+ 'currency' => 'AUD',
794
+ ],
795
+ [
796
+ 'name' => 'Holy See',
797
+ 'alpha2' => 'VA',
798
+ 'alpha3' => 'VAT',
799
+ 'numeric' => '336',
800
+ 'currency' => 'EUR',
801
+ ],
802
+ [
803
+ 'name' => 'Honduras',
804
+ 'alpha2' => 'HN',
805
+ 'alpha3' => 'HND',
806
+ 'numeric' => '340',
807
+ 'currency' => 'HNL',
808
+ ],
809
+ [
810
+ 'name' => 'Hong Kong',
811
+ 'alpha2' => 'HK',
812
+ 'alpha3' => 'HKG',
813
+ 'numeric' => '344',
814
+ 'currency' => 'HKD',
815
+ ],
816
+ [
817
+ 'name' => 'Hungary',
818
+ 'alpha2' => 'HU',
819
+ 'alpha3' => 'HUN',
820
+ 'numeric' => '348',
821
+ 'currency' => 'HUF',
822
+ ],
823
+ [
824
+ 'name' => 'Iceland',
825
+ 'alpha2' => 'IS',
826
+ 'alpha3' => 'ISL',
827
+ 'numeric' => '352',
828
+ 'currency' => 'ISK',
829
+ ],
830
+ [
831
+ 'name' => 'India',
832
+ 'alpha2' => 'IN',
833
+ 'alpha3' => 'IND',
834
+ 'numeric' => '356',
835
+ 'currency' => 'INR',
836
+ ],
837
+ [
838
+ 'name' => 'Indonesia',
839
+ 'alpha2' => 'ID',
840
+ 'alpha3' => 'IDN',
841
+ 'numeric' => '360',
842
+ 'currency' => 'IDR',
843
+ ],
844
+ [
845
+ 'name' => 'Iran (Islamic Republic of)',
846
+ 'alpha2' => 'IR',
847
+ 'alpha3' => 'IRN',
848
+ 'numeric' => '364',
849
+ 'currency' => 'IRR',
850
+ ],
851
+ [
852
+ 'name' => 'Iraq',
853
+ 'alpha2' => 'IQ',
854
+ 'alpha3' => 'IRQ',
855
+ 'numeric' => '368',
856
+ 'currency' => 'IQD',
857
+ ],
858
+ [
859
+ 'name' => 'Ireland',
860
+ 'alpha2' => 'IE',
861
+ 'alpha3' => 'IRL',
862
+ 'numeric' => '372',
863
+ 'currency' => 'EUR',
864
+ ],
865
+ [
866
+ 'name' => 'Isle of Man',
867
+ 'alpha2' => 'IM',
868
+ 'alpha3' => 'IMN',
869
+ 'numeric' => '833',
870
+ 'currency' => 'GBP',
871
+ ],
872
+ [
873
+ 'name' => 'Israel',
874
+ 'alpha2' => 'IL',
875
+ 'alpha3' => 'ISR',
876
+ 'numeric' => '376',
877
+ 'currency' => 'ILS',
878
+ ],
879
+ [
880
+ 'name' => 'Italy',
881
+ 'alpha2' => 'IT',
882
+ 'alpha3' => 'ITA',
883
+ 'numeric' => '380',
884
+ 'currency' => 'EUR',
885
+ ],
886
+ [
887
+ 'name' => 'Jamaica',
888
+ 'alpha2' => 'JM',
889
+ 'alpha3' => 'JAM',
890
+ 'numeric' => '388',
891
+ 'currency' => 'JMD',
892
+ ],
893
+ [
894
+ 'name' => 'Japan',
895
+ 'alpha2' => 'JP',
896
+ 'alpha3' => 'JPN',
897
+ 'numeric' => '392',
898
+ 'currency' => 'JPY',
899
+ ],
900
+ [
901
+ 'name' => 'Jersey',
902
+ 'alpha2' => 'JE',
903
+ 'alpha3' => 'JEY',
904
+ 'numeric' => '832',
905
+ 'currency' => 'GBP',
906
+ ],
907
+ [
908
+ 'name' => 'Jordan',
909
+ 'alpha2' => 'JO',
910
+ 'alpha3' => 'JOR',
911
+ 'numeric' => '400',
912
+ 'currency' => 'JOD',
913
+ ],
914
+ [
915
+ 'name' => 'Kazakhstan',
916
+ 'alpha2' => 'KZ',
917
+ 'alpha3' => 'KAZ',
918
+ 'numeric' => '398',
919
+ 'currency' => 'KZT',
920
+ ],
921
+ [
922
+ 'name' => 'Kenya',
923
+ 'alpha2' => 'KE',
924
+ 'alpha3' => 'KEN',
925
+ 'numeric' => '404',
926
+ 'currency' => 'KES',
927
+ ],
928
+ [
929
+ 'name' => 'Kiribati',
930
+ 'alpha2' => 'KI',
931
+ 'alpha3' => 'KIR',
932
+ 'numeric' => '296',
933
+ 'currency' => 'AUD',
934
+ ],
935
+ [
936
+ 'name' => 'Korea (Democratic People\'s Republic of)',
937
+ 'alpha2' => 'KP',
938
+ 'alpha3' => 'PRK',
939
+ 'numeric' => '408',
940
+ 'currency' => 'KPW',
941
+ ],
942
+ [
943
+ 'name' => 'Korea (Republic of)',
944
+ 'alpha2' => 'KR',
945
+ 'alpha3' => 'KOR',
946
+ 'numeric' => '410',
947
+ 'currency' => 'KRW',
948
+ ],
949
+ [
950
+ 'name' => 'Kuwait',
951
+ 'alpha2' => 'KW',
952
+ 'alpha3' => 'KWT',
953
+ 'numeric' => '414',
954
+ 'currency' => 'KWD',
955
+ ],
956
+ [
957
+ 'name' => 'Kyrgyzstan',
958
+ 'alpha2' => 'KG',
959
+ 'alpha3' => 'KGZ',
960
+ 'numeric' => '417',
961
+ 'currency' => 'KGS',
962
+ ],
963
+ [
964
+ 'name' => 'Lao People\'s Democratic Republic',
965
+ 'alpha2' => 'LA',
966
+ 'alpha3' => 'LAO',
967
+ 'numeric' => '418',
968
+ 'currency' => 'LAK',
969
+ ],
970
+ [
971
+ 'name' => 'Latvia',
972
+ 'alpha2' => 'LV',
973
+ 'alpha3' => 'LVA',
974
+ 'numeric' => '428',
975
+ 'currency' => 'LVL',
976
+ ],
977
+ [
978
+ 'name' => 'Lebanon',
979
+ 'alpha2' => 'LB',
980
+ 'alpha3' => 'LBN',
981
+ 'numeric' => '422',
982
+ 'currency' => 'LBP',
983
+ ],
984
+ [
985
+ 'name' => 'Lesotho',
986
+ 'alpha2' => 'LS',
987
+ 'alpha3' => 'LSO',
988
+ 'numeric' => '426',
989
+ 'currency' => [
990
+ 'LSL',
991
+ 'ZAR',
992
+ ],
993
+ ],
994
+ [
995
+ 'name' => 'Liberia',
996
+ 'alpha2' => 'LR',
997
+ 'alpha3' => 'LBR',
998
+ 'numeric' => '430',
999
+ 'currency' => 'LRD',
1000
+ ],
1001
+ [
1002
+ 'name' => 'Libya',
1003
+ 'alpha2' => 'LY',
1004
+ 'alpha3' => 'LBY',
1005
+ 'numeric' => '434',
1006
+ 'currency' => 'LYD',
1007
+ ],
1008
+ [
1009
+ 'name' => 'Liechtenstein',
1010
+ 'alpha2' => 'LI',
1011
+ 'alpha3' => 'LIE',
1012
+ 'numeric' => '438',
1013
+ 'currency' => 'CHF',
1014
+ ],
1015
+ [
1016
+ 'name' => 'Lithuania',
1017
+ 'alpha2' => 'LT',
1018
+ 'alpha3' => 'LTU',
1019
+ 'numeric' => '440',
1020
+ 'currency' => 'EUR',
1021
+ ],
1022
+ [
1023
+ 'name' => 'Luxembourg',
1024
+ 'alpha2' => 'LU',
1025
+ 'alpha3' => 'LUX',
1026
+ 'numeric' => '442',
1027
+ 'currency' => 'EUR',
1028
+ ],
1029
+ [
1030
+ 'name' => 'Macao',
1031
+ 'alpha2' => 'MO',
1032
+ 'alpha3' => 'MAC',
1033
+ 'numeric' => '446',
1034
+ 'currency' => 'MOP',
1035
+ ],
1036
+ [
1037
+ 'name' => 'Macedonia, the former Yugoslav Republic of',
1038
+ 'alpha2' => 'MK',
1039
+ 'alpha3' => 'MKD',
1040
+ 'numeric' => '807',
1041
+ 'currency' => 'MKD',
1042
+ ],
1043
+ [
1044
+ 'name' => 'Madagascar',
1045
+ 'alpha2' => 'MG',
1046
+ 'alpha3' => 'MDG',
1047
+ 'numeric' => '450',
1048
+ 'currency' => 'MGA',
1049
+ ],
1050
+ [
1051
+ 'name' => 'Malawi',
1052
+ 'alpha2' => 'MW',
1053
+ 'alpha3' => 'MWI',
1054
+ 'numeric' => '454',
1055
+ 'currency' => 'MWK',
1056
+ ],
1057
+ [
1058
+ 'name' => 'Malaysia',
1059
+ 'alpha2' => 'MY',
1060
+ 'alpha3' => 'MYS',
1061
+ 'numeric' => '458',
1062
+ 'currency' => 'MYR',
1063
+ ],
1064
+ [
1065
+ 'name' => 'Maldives',
1066
+ 'alpha2' => 'MV',
1067
+ 'alpha3' => 'MDV',
1068
+ 'numeric' => '462',
1069
+ 'currency' => 'MVR',
1070
+ ],
1071
+ [
1072
+ 'name' => 'Mali',
1073
+ 'alpha2' => 'ML',
1074
+ 'alpha3' => 'MLI',
1075
+ 'numeric' => '466',
1076
+ 'currency' => 'XOF',
1077
+ ],
1078
+ [
1079
+ 'name' => 'Malta',
1080
+ 'alpha2' => 'MT',
1081
+ 'alpha3' => 'MLT',
1082
+ 'numeric' => '470',
1083
+ 'currency' => 'EUR',
1084
+ ],
1085
+ [
1086
+ 'name' => 'Marshall Islands',
1087
+ 'alpha2' => 'MH',
1088
+ 'alpha3' => 'MHL',
1089
+ 'numeric' => '584',
1090
+ 'currency' => 'USD',
1091
+ ],
1092
+ [
1093
+ 'name' => 'Martinique',
1094
+ 'alpha2' => 'MQ',
1095
+ 'alpha3' => 'MTQ',
1096
+ 'numeric' => '474',
1097
+ 'currency' => 'EUR',
1098
+ ],
1099
+ [
1100
+ 'name' => 'Mauritania',
1101
+ 'alpha2' => 'MR',
1102
+ 'alpha3' => 'MRT',
1103
+ 'numeric' => '478',
1104
+ 'currency' => 'MRO',
1105
+ ],
1106
+ [
1107
+ 'name' => 'Mauritius',
1108
+ 'alpha2' => 'MU',
1109
+ 'alpha3' => 'MUS',
1110
+ 'numeric' => '480',
1111
+ 'currency' => 'MUR',
1112
+ ],
1113
+ [
1114
+ 'name' => 'Mayotte',
1115
+ 'alpha2' => 'YT',
1116
+ 'alpha3' => 'MYT',
1117
+ 'numeric' => '175',
1118
+ 'currency' => 'EUR',
1119
+ ],
1120
+ [
1121
+ 'name' => 'Mexico',
1122
+ 'alpha2' => 'MX',
1123
+ 'alpha3' => 'MEX',
1124
+ 'numeric' => '484',
1125
+ 'currency' => 'MXN',
1126
+ ],
1127
+ [
1128
+ 'name' => 'Micronesia (Federated States of)',
1129
+ 'alpha2' => 'FM',
1130
+ 'alpha3' => 'FSM',
1131
+ 'numeric' => '583',
1132
+ 'currency' => 'USD',
1133
+ ],
1134
+ [
1135
+ 'name' => 'Moldova (Republic of)',
1136
+ 'alpha2' => 'MD',
1137
+ 'alpha3' => 'MDA',
1138
+ 'numeric' => '498',
1139
+ 'currency' => 'MDL',
1140
+ ],
1141
+ [
1142
+ 'name' => 'Monaco',
1143
+ 'alpha2' => 'MC',
1144
+ 'alpha3' => 'MCO',
1145
+ 'numeric' => '492',
1146
+ 'currency' => 'EUR',
1147
+ ],
1148
+ [
1149
+ 'name' => 'Mongolia',
1150
+ 'alpha2' => 'MN',
1151
+ 'alpha3' => 'MNG',
1152
+ 'numeric' => '496',
1153
+ 'currency' => 'MNT',
1154
+ ],
1155
+ [
1156
+ 'name' => 'Montenegro',
1157
+ 'alpha2' => 'ME',
1158
+ 'alpha3' => 'MNE',
1159
+ 'numeric' => '499',
1160
+ 'currency' => 'EUR',
1161
+ ],
1162
+ [
1163
+ 'name' => 'Montserrat',
1164
+ 'alpha2' => 'MS',
1165
+ 'alpha3' => 'MSR',
1166
+ 'numeric' => '500',
1167
+ 'currency' => 'XCD',
1168
+ ],
1169
+ [
1170
+ 'name' => 'Morocco',
1171
+ 'alpha2' => 'MA',
1172
+ 'alpha3' => 'MAR',
1173
+ 'numeric' => '504',
1174
+ 'currency' => 'MAD',
1175
+ ],
1176
+ [
1177
+ 'name' => 'Mozambique',
1178
+ 'alpha2' => 'MZ',
1179
+ 'alpha3' => 'MOZ',
1180
+ 'numeric' => '508',
1181
+ 'currency' => 'MZN',
1182
+ ],
1183
+ [
1184
+ 'name' => 'Myanmar',
1185
+ 'alpha2' => 'MM',
1186
+ 'alpha3' => 'MMR',
1187
+ 'numeric' => '104',
1188
+ 'currency' => 'MMK',
1189
+ ],
1190
+ [
1191
+ 'name' => 'Namibia',
1192
+ 'alpha2' => 'NA',
1193
+ 'alpha3' => 'NAM',
1194
+ 'numeric' => '516',
1195
+ 'currency' => [
1196
+ 'NAD',
1197
+ 'ZAR',
1198
+ ],
1199
+ ],
1200
+ [
1201
+ 'name' => 'Nauru',
1202
+ 'alpha2' => 'NR',
1203
+ 'alpha3' => 'NRU',
1204
+ 'numeric' => '520',
1205
+ 'currency' => 'AUD',
1206
+ ],
1207
+ [
1208
+ 'name' => 'Nepal',
1209
+ 'alpha2' => 'NP',
1210
+ 'alpha3' => 'NPL',
1211
+ 'numeric' => '524',
1212
+ 'currency' => 'NPR',
1213
+ ],
1214
+ [
1215
+ 'name' => 'Netherlands',
1216
+ 'alpha2' => 'NL',
1217
+ 'alpha3' => 'NLD',
1218
+ 'numeric' => '528',
1219
+ 'currency' => 'EUR',
1220
+ ],
1221
+ [
1222
+ 'name' => 'New Caledonia',
1223
+ 'alpha2' => 'NC',
1224
+ 'alpha3' => 'NCL',
1225
+ 'numeric' => '540',
1226
+ 'currency' => 'XPF',
1227
+ ],
1228
+ [
1229
+ 'name' => 'New Zealand',
1230
+ 'alpha2' => 'NZ',
1231
+ 'alpha3' => 'NZL',
1232
+ 'numeric' => '554',
1233
+ 'currency' => 'NZD',
1234
+ ],
1235
+ [
1236
+ 'name' => 'Nicaragua',
1237
+ 'alpha2' => 'NI',
1238
+ 'alpha3' => 'NIC',
1239
+ 'numeric' => '558',
1240
+ 'currency' => 'NIO',
1241
+ ],
1242
+ [
1243
+ 'name' => 'Niger',
1244
+ 'alpha2' => 'NE',
1245
+ 'alpha3' => 'NER',
1246
+ 'numeric' => '562',
1247
+ 'currency' => 'XOF',
1248
+ ],
1249
+ [
1250
+ 'name' => 'Nigeria',
1251
+ 'alpha2' => 'NG',
1252
+ 'alpha3' => 'NGA',
1253
+ 'numeric' => '566',
1254
+ 'currency' => 'NGN',
1255
+ ],
1256
+ [
1257
+ 'name' => 'Niue',
1258
+ 'alpha2' => 'NU',
1259
+ 'alpha3' => 'NIU',
1260
+ 'numeric' => '570',
1261
+ 'currency' => 'NZD',
1262
+ ],
1263
+ [
1264
+ 'name' => 'Norfolk Island',
1265
+ 'alpha2' => 'NF',
1266
+ 'alpha3' => 'NFK',
1267
+ 'numeric' => '574',
1268
+ 'currency' => 'AUD',
1269
+ ],
1270
+ [
1271
+ 'name' => 'Northern Mariana Islands',
1272
+ 'alpha2' => 'MP',
1273
+ 'alpha3' => 'MNP',
1274
+ 'numeric' => '580',
1275
+ 'currency' => 'USD',
1276
+ ],
1277
+ [
1278
+ 'name' => 'Norway',
1279
+ 'alpha2' => 'NO',
1280
+ 'alpha3' => 'NOR',
1281
+ 'numeric' => '578',
1282
+ 'currency' => 'NOK',
1283
+ ],
1284
+ [
1285
+ 'name' => 'Oman',
1286
+ 'alpha2' => 'OM',
1287
+ 'alpha3' => 'OMN',
1288
+ 'numeric' => '512',
1289
+ 'currency' => 'OMR',
1290
+ ],
1291
+ [
1292
+ 'name' => 'Pakistan',
1293
+ 'alpha2' => 'PK',
1294
+ 'alpha3' => 'PAK',
1295
+ 'numeric' => '586',
1296
+ 'currency' => 'PKR',
1297
+ ],
1298
+ [
1299
+ 'name' => 'Palau',
1300
+ 'alpha2' => 'PW',
1301
+ 'alpha3' => 'PLW',
1302
+ 'numeric' => '585',
1303
+ 'currency' => 'USD',
1304
+ ],
1305
+ [
1306
+ 'name' => 'Palestine, State of',
1307
+ 'alpha2' => 'PS',
1308
+ 'alpha3' => 'PSE',
1309
+ 'numeric' => '275',
1310
+ 'currency' => 'ILS',
1311
+ ],
1312
+ [
1313
+ 'name' => 'Panama',
1314
+ 'alpha2' => 'PA',
1315
+ 'alpha3' => 'PAN',
1316
+ 'numeric' => '591',
1317
+ 'currency' => 'PAB',
1318
+ ],
1319
+ [
1320
+ 'name' => 'Papua New Guinea',
1321
+ 'alpha2' => 'PG',
1322
+ 'alpha3' => 'PNG',
1323
+ 'numeric' => '598',
1324
+ 'currency' => 'PGK',
1325
+ ],
1326
+ [
1327
+ 'name' => 'Paraguay',
1328
+ 'alpha2' => 'PY',
1329
+ 'alpha3' => 'PRY',
1330
+ 'numeric' => '600',
1331
+ 'currency' => 'PYG',
1332
+ ],
1333
+ [
1334
+ 'name' => 'Peru',
1335
+ 'alpha2' => 'PE',
1336
+ 'alpha3' => 'PER',
1337
+ 'numeric' => '604',
1338
+ 'currency' => 'PEN',
1339
+ ],
1340
+ [
1341
+ 'name' => 'Philippines',
1342
+ 'alpha2' => 'PH',
1343
+ 'alpha3' => 'PHL',
1344
+ 'numeric' => '608',
1345
+ 'currency' => 'PHP',
1346
+ ],
1347
+ [
1348
+ 'name' => 'Pitcairn',
1349
+ 'alpha2' => 'PN',
1350
+ 'alpha3' => 'PCN',
1351
+ 'numeric' => '612',
1352
+ 'currency' => 'NZD',
1353
+ ],
1354
+ [
1355
+ 'name' => 'Poland',
1356
+ 'alpha2' => 'PL',
1357
+ 'alpha3' => 'POL',
1358
+ 'numeric' => '616',
1359
+ 'currency' => 'PLN',
1360
+ ],
1361
+ [
1362
+ 'name' => 'Portugal',
1363
+ 'alpha2' => 'PT',
1364
+ 'alpha3' => 'PRT',
1365
+ 'numeric' => '620',
1366
+ 'currency' => 'EUR',
1367
+ ],
1368
+ [
1369
+ 'name' => 'Puerto Rico',
1370
+ 'alpha2' => 'PR',
1371
+ 'alpha3' => 'PRI',
1372
+ 'numeric' => '630',
1373
+ 'currency' => 'USD',
1374
+ ],
1375
+ [
1376
+ 'name' => 'Qatar',
1377
+ 'alpha2' => 'QA',
1378
+ 'alpha3' => 'QAT',
1379
+ 'numeric' => '634',
1380
+ 'currency' => 'QAR',
1381
+ ],
1382
+ [
1383
+ 'name' => 'RĂ©union',
1384
+ 'alpha2' => 'RE',
1385
+ 'alpha3' => 'REU',
1386
+ 'numeric' => '638',
1387
+ 'currency' => 'EUR',
1388
+ ],
1389
+ [
1390
+ 'name' => 'Romania',
1391
+ 'alpha2' => 'RO',
1392
+ 'alpha3' => 'ROU',
1393
+ 'numeric' => '642',
1394
+ 'currency' => 'RON',
1395
+ ],
1396
+ [
1397
+ 'name' => 'Russian Federation',
1398
+ 'alpha2' => 'RU',
1399
+ 'alpha3' => 'RUS',
1400
+ 'numeric' => '643',
1401
+ 'currency' => 'RUB',
1402
+ ],
1403
+ [
1404
+ 'name' => 'Rwanda',
1405
+ 'alpha2' => 'RW',
1406
+ 'alpha3' => 'RWA',
1407
+ 'numeric' => '646',
1408
+ 'currency' => 'RWF',
1409
+ ],
1410
+ [
1411
+ 'name' => 'Saint Barthélemy',
1412
+ 'alpha2' => 'BL',
1413
+ 'alpha3' => 'BLM',
1414
+ 'numeric' => '652',
1415
+ 'currency' => 'EUR',
1416
+ ],
1417
+ [
1418
+ 'name' => 'Saint Helena, Ascension and Tristan da Cunha',
1419
+ 'alpha2' => 'SH',
1420
+ 'alpha3' => 'SHN',
1421
+ 'numeric' => '654',
1422
+ 'currency' => 'SHP',
1423
+ ],
1424
+ [
1425
+ 'name' => 'Saint Kitts and Nevis',
1426
+ 'alpha2' => 'KN',
1427
+ 'alpha3' => 'KNA',
1428
+ 'numeric' => '659',
1429
+ 'currency' => 'XCD',
1430
+ ],
1431
+ [
1432
+ 'name' => 'Saint Lucia',
1433
+ 'alpha2' => 'LC',
1434
+ 'alpha3' => 'LCA',
1435
+ 'numeric' => '662',
1436
+ 'currency' => 'XCD',
1437
+ ],
1438
+ [
1439
+ 'name' => 'Saint Martin (French part)',
1440
+ 'alpha2' => 'MF',
1441
+ 'alpha3' => 'MAF',
1442
+ 'numeric' => '663',
1443
+ 'currency' => [
1444
+ 'EUR',
1445
+ 'USD',
1446
+ ],
1447
+ ],
1448
+ [
1449
+ 'name' => 'Saint Pierre and Miquelon',
1450
+ 'alpha2' => 'PM',
1451
+ 'alpha3' => 'SPM',
1452
+ 'numeric' => '666',
1453
+ 'currency' => 'EUR',
1454
+ ],
1455
+ [
1456
+ 'name' => 'Saint Vincent and the Grenadines',
1457
+ 'alpha2' => 'VC',
1458
+ 'alpha3' => 'VCT',
1459
+ 'numeric' => '670',
1460
+ 'currency' => 'XCD',
1461
+ ],
1462
+ [
1463
+ 'name' => 'Samoa',
1464
+ 'alpha2' => 'WS',
1465
+ 'alpha3' => 'WSM',
1466
+ 'numeric' => '882',
1467
+ 'currency' => 'WST',
1468
+ ],
1469
+ [
1470
+ 'name' => 'San Marino',
1471
+ 'alpha2' => 'SM',
1472
+ 'alpha3' => 'SMR',
1473
+ 'numeric' => '674',
1474
+ 'currency' => 'EUR',
1475
+ ],
1476
+ [
1477
+ 'name' => 'Sao Tome and Principe',
1478
+ 'alpha2' => 'ST',
1479
+ 'alpha3' => 'STP',
1480
+ 'numeric' => '678',
1481
+ 'currency' => 'STD',
1482
+ ],
1483
+ [
1484
+ 'name' => 'Saudi Arabia',
1485
+ 'alpha2' => 'SA',
1486
+ 'alpha3' => 'SAU',
1487
+ 'numeric' => '682',
1488
+ 'currency' => 'SAR',
1489
+ ],
1490
+ [
1491
+ 'name' => 'Senegal',
1492
+ 'alpha2' => 'SN',
1493
+ 'alpha3' => 'SEN',
1494
+ 'numeric' => '686',
1495
+ 'currency' => 'XOF',
1496
+ ],
1497
+ [
1498
+ 'name' => 'Serbia',
1499
+ 'alpha2' => 'RS',
1500
+ 'alpha3' => 'SRB',
1501
+ 'numeric' => '688',
1502
+ 'currency' => 'RSD',
1503
+ ],
1504
+ [
1505
+ 'name' => 'Seychelles',
1506
+ 'alpha2' => 'SC',
1507
+ 'alpha3' => 'SYC',
1508
+ 'numeric' => '690',
1509
+ 'currency' => 'SCR',
1510
+ ],
1511
+ [
1512
+ 'name' => 'Sierra Leone',
1513
+ 'alpha2' => 'SL',
1514
+ 'alpha3' => 'SLE',
1515
+ 'numeric' => '694',
1516
+ 'currency' => 'SLL',
1517
+ ],
1518
+ [
1519
+ 'name' => 'Singapore',
1520
+ 'alpha2' => 'SG',
1521
+ 'alpha3' => 'SGP',
1522
+ 'numeric' => '702',
1523
+ 'currency' => 'SGD',
1524
+ ],
1525
+ [
1526
+ 'name' => 'Sint Maarten (Dutch part)',
1527
+ 'alpha2' => 'SX',
1528
+ 'alpha3' => 'SXM',
1529
+ 'numeric' => '534',
1530
+ 'currency' => 'ANG',
1531
+ ],
1532
+ [
1533
+ 'name' => 'Slovakia',
1534
+ 'alpha2' => 'SK',
1535
+ 'alpha3' => 'SVK',
1536
+ 'numeric' => '703',
1537
+ 'currency' => 'EUR',
1538
+ ],
1539
+ [
1540
+ 'name' => 'Slovenia',
1541
+ 'alpha2' => 'SI',
1542
+ 'alpha3' => 'SVN',
1543
+ 'numeric' => '705',
1544
+ 'currency' => 'EUR',
1545
+ ],
1546
+ [
1547
+ 'name' => 'Solomon Islands',
1548
+ 'alpha2' => 'SB',
1549
+ 'alpha3' => 'SLB',
1550
+ 'numeric' => '090',
1551
+ 'currency' => 'SBD',
1552
+ ],
1553
+ [
1554
+ 'name' => 'Somalia',
1555
+ 'alpha2' => 'SO',
1556
+ 'alpha3' => 'SOM',
1557
+ 'numeric' => '706',
1558
+ 'currency' => 'SOS',
1559
+ ],
1560
+ [
1561
+ 'name' => 'South Africa',
1562
+ 'alpha2' => 'ZA',
1563
+ 'alpha3' => 'ZAF',
1564
+ 'numeric' => '710',
1565
+ 'currency' => 'ZAR',
1566
+ ],
1567
+ [
1568
+ 'name' => 'South Georgia and the South Sandwich Islands',
1569
+ 'alpha2' => 'GS',
1570
+ 'alpha3' => 'SGS',
1571
+ 'numeric' => '239',
1572
+ 'currency' => 'GBP',
1573
+ ],
1574
+ [
1575
+ 'name' => 'South Sudan',
1576
+ 'alpha2' => 'SS',
1577
+ 'alpha3' => 'SSD',
1578
+ 'numeric' => '728',
1579
+ 'currency' => 'SSP',
1580
+ ],
1581
+ [
1582
+ 'name' => 'Spain',
1583
+ 'alpha2' => 'ES',
1584
+ 'alpha3' => 'ESP',
1585
+ 'numeric' => '724',
1586
+ 'currency' => 'EUR',
1587
+ ],
1588
+ [
1589
+ 'name' => 'Sri Lanka',
1590
+ 'alpha2' => 'LK',
1591
+ 'alpha3' => 'LKA',
1592
+ 'numeric' => '144',
1593
+ 'currency' => 'LKR',
1594
+ ],
1595
+ [
1596
+ 'name' => 'Sudan',
1597
+ 'alpha2' => 'SD',
1598
+ 'alpha3' => 'SDN',
1599
+ 'numeric' => '729',
1600
+ 'currency' => 'SDG',
1601
+ ],
1602
+ [
1603
+ 'name' => 'Suriname',
1604
+ 'alpha2' => 'SR',
1605
+ 'alpha3' => 'SUR',
1606
+ 'numeric' => '740',
1607
+ 'currency' => 'SRD',
1608
+ ],
1609
+ [
1610
+ 'name' => 'Svalbard and Jan Mayen',
1611
+ 'alpha2' => 'SJ',
1612
+ 'alpha3' => 'SJM',
1613
+ 'numeric' => '744',
1614
+ 'currency' => 'NOK',
1615
+ ],
1616
+ [
1617
+ 'name' => 'Swaziland',
1618
+ 'alpha2' => 'SZ',
1619
+ 'alpha3' => 'SWZ',
1620
+ 'numeric' => '748',
1621
+ 'currency' => [
1622
+ 'SZL',
1623
+ 'ZAR',
1624
+ ],
1625
+ ],
1626
+ [
1627
+ 'name' => 'Sweden',
1628
+ 'alpha2' => 'SE',
1629
+ 'alpha3' => 'SWE',
1630
+ 'numeric' => '752',
1631
+ 'currency' => 'SEK',
1632
+ ],
1633
+ [
1634
+ 'name' => 'Switzerland',
1635
+ 'alpha2' => 'CH',
1636
+ 'alpha3' => 'CHE',
1637
+ 'numeric' => '756',
1638
+ 'currency' => 'CHF',
1639
+ ],
1640
+ [
1641
+ 'name' => 'Syrian Arab Republic',
1642
+ 'alpha2' => 'SY',
1643
+ 'alpha3' => 'SYR',
1644
+ 'numeric' => '760',
1645
+ 'currency' => 'SYP',
1646
+ ],
1647
+ [
1648
+ 'name' => 'Taiwan (Province of China)',
1649
+ 'alpha2' => 'TW',
1650
+ 'alpha3' => 'TWN',
1651
+ 'numeric' => '158',
1652
+ 'currency' => 'TWD',
1653
+ ],
1654
+ [
1655
+ 'name' => 'Tajikistan',
1656
+ 'alpha2' => 'TJ',
1657
+ 'alpha3' => 'TJK',
1658
+ 'numeric' => '762',
1659
+ 'currency' => 'TJS',
1660
+ ],
1661
+ [
1662
+ 'name' => 'Tanzania, United Republic of',
1663
+ 'alpha2' => 'TZ',
1664
+ 'alpha3' => 'TZA',
1665
+ 'numeric' => '834',
1666
+ 'currency' => 'TZS',
1667
+ ],
1668
+ [
1669
+ 'name' => 'Thailand',
1670
+ 'alpha2' => 'TH',
1671
+ 'alpha3' => 'THA',
1672
+ 'numeric' => '764',
1673
+ 'currency' => 'THB',
1674
+ ],
1675
+ [
1676
+ 'name' => 'Timor-Leste',
1677
+ 'alpha2' => 'TL',
1678
+ 'alpha3' => 'TLS',
1679
+ 'numeric' => '626',
1680
+ 'currency' => 'USD',
1681
+ ],
1682
+ [
1683
+ 'name' => 'Togo',
1684
+ 'alpha2' => 'TG',
1685
+ 'alpha3' => 'TGO',
1686
+ 'numeric' => '768',
1687
+ 'currency' => 'XOF',
1688
+ ],
1689
+ [
1690
+ 'name' => 'Tokelau',
1691
+ 'alpha2' => 'TK',
1692
+ 'alpha3' => 'TKL',
1693
+ 'numeric' => '772',
1694
+ 'currency' => 'NZD',
1695
+ ],
1696
+ [
1697
+ 'name' => 'Tonga',
1698
+ 'alpha2' => 'TO',
1699
+ 'alpha3' => 'TON',
1700
+ 'numeric' => '776',
1701
+ 'currency' => 'TOP',
1702
+ ],
1703
+ [
1704
+ 'name' => 'Trinidad and Tobago',
1705
+ 'alpha2' => 'TT',
1706
+ 'alpha3' => 'TTO',
1707
+ 'numeric' => '780',
1708
+ 'currency' => 'TTD',
1709
+ ],
1710
+ [
1711
+ 'name' => 'Tunisia',
1712
+ 'alpha2' => 'TN',
1713
+ 'alpha3' => 'TUN',
1714
+ 'numeric' => '788',
1715
+ 'currency' => 'TND',
1716
+ ],
1717
+ [
1718
+ 'name' => 'Turkey',
1719
+ 'alpha2' => 'TR',
1720
+ 'alpha3' => 'TUR',
1721
+ 'numeric' => '792',
1722
+ 'currency' => 'TRY',
1723
+ ],
1724
+ [
1725
+ 'name' => 'Turkmenistan',
1726
+ 'alpha2' => 'TM',
1727
+ 'alpha3' => 'TKM',
1728
+ 'numeric' => '795',
1729
+ 'currency' => 'TMT',
1730
+ ],
1731
+ [
1732
+ 'name' => 'Turks and Caicos Islands',
1733
+ 'alpha2' => 'TC',
1734
+ 'alpha3' => 'TCA',
1735
+ 'numeric' => '796',
1736
+ 'currency' => 'USD',
1737
+ ],
1738
+ [
1739
+ 'name' => 'Tuvalu',
1740
+ 'alpha2' => 'TV',
1741
+ 'alpha3' => 'TUV',
1742
+ 'numeric' => '798',
1743
+ 'currency' => 'AUD',
1744
+ ],
1745
+ [
1746
+ 'name' => 'Uganda',
1747
+ 'alpha2' => 'UG',
1748
+ 'alpha3' => 'UGA',
1749
+ 'numeric' => '800',
1750
+ 'currency' => 'UGX',
1751
+ ],
1752
+ [
1753
+ 'name' => 'Ukraine',
1754
+ 'alpha2' => 'UA',
1755
+ 'alpha3' => 'UKR',
1756
+ 'numeric' => '804',
1757
+ 'currency' => 'UAH',
1758
+ ],
1759
+ [
1760
+ 'name' => 'United Arab Emirates',
1761
+ 'alpha2' => 'AE',
1762
+ 'alpha3' => 'ARE',
1763
+ 'numeric' => '784',
1764
+ 'currency' => 'AED',
1765
+ ],
1766
+ [
1767
+ 'name' => 'United Kingdom of Great Britain and Northern Ireland',
1768
+ 'alpha2' => 'GB',
1769
+ 'alpha3' => 'GBR',
1770
+ 'numeric' => '826',
1771
+ 'currency' => 'GBP',
1772
+ ],
1773
+ [
1774
+ 'name' => 'United States of America',
1775
+ 'alpha2' => 'US',
1776
+ 'alpha3' => 'USA',
1777
+ 'numeric' => '840',
1778
+ 'currency' => 'USD',
1779
+ ],
1780
+ [
1781
+ 'name' => 'United States Minor Outlying Islands',
1782
+ 'alpha2' => 'UM',
1783
+ 'alpha3' => 'UMI',
1784
+ 'numeric' => '581',
1785
+ 'currency' => 'USD',
1786
+ ],
1787
+ [
1788
+ 'name' => 'Uruguay',
1789
+ 'alpha2' => 'UY',
1790
+ 'alpha3' => 'URY',
1791
+ 'numeric' => '858',
1792
+ 'currency' => 'UYU',
1793
+ ],
1794
+ [
1795
+ 'name' => 'Uzbekistan',
1796
+ 'alpha2' => 'UZ',
1797
+ 'alpha3' => 'UZB',
1798
+ 'numeric' => '860',
1799
+ 'currency' => 'UZS',
1800
+ ],
1801
+ [
1802
+ 'name' => 'Vanuatu',
1803
+ 'alpha2' => 'VU',
1804
+ 'alpha3' => 'VUT',
1805
+ 'numeric' => '548',
1806
+ 'currency' => 'VUV',
1807
+ ],
1808
+ [
1809
+ 'name' => 'Venezuela (Bolivarian Republic of)',
1810
+ 'alpha2' => 'VE',
1811
+ 'alpha3' => 'VEN',
1812
+ 'numeric' => '862',
1813
+ 'currency' => 'VEF',
1814
+ ],
1815
+ [
1816
+ 'name' => 'Viet Nam',
1817
+ 'alpha2' => 'VN',
1818
+ 'alpha3' => 'VNM',
1819
+ 'numeric' => '704',
1820
+ 'currency' => 'VND',
1821
+ ],
1822
+ [
1823
+ 'name' => 'Virgin Islands (British)',
1824
+ 'alpha2' => 'VG',
1825
+ 'alpha3' => 'VGB',
1826
+ 'numeric' => '092',
1827
+ 'currency' => 'USD',
1828
+ ],
1829
+ [
1830
+ 'name' => 'Virgin Islands (U.S.)',
1831
+ 'alpha2' => 'VI',
1832
+ 'alpha3' => 'VIR',
1833
+ 'numeric' => '850',
1834
+ 'currency' => 'USD',
1835
+ ],
1836
+ [
1837
+ 'name' => 'Wallis and Futuna',
1838
+ 'alpha2' => 'WF',
1839
+ 'alpha3' => 'WLF',
1840
+ 'numeric' => '876',
1841
+ 'currency' => 'XPF',
1842
+ ],
1843
+ [
1844
+ 'name' => 'Western Sahara',
1845
+ 'alpha2' => 'EH',
1846
+ 'alpha3' => 'ESH',
1847
+ 'numeric' => '732',
1848
+ 'currency' => 'MAD',
1849
+ ],
1850
+ [
1851
+ 'name' => 'Yemen',
1852
+ 'alpha2' => 'YE',
1853
+ 'alpha3' => 'YEM',
1854
+ 'numeric' => '887',
1855
+ 'currency' => 'YER',
1856
+ ],
1857
+ [
1858
+ 'name' => 'Zambia',
1859
+ 'alpha2' => 'ZM',
1860
+ 'alpha3' => 'ZMB',
1861
+ 'numeric' => '894',
1862
+ 'currency' => 'ZMW',
1863
+ ],
1864
+ [
1865
+ 'name' => 'Zimbabwe',
1866
+ 'alpha2' => 'ZW',
1867
+ 'alpha3' => 'ZWE',
1868
+ 'numeric' => '716',
1869
+ 'currency' => [
1870
+ 'BWP',
1871
+ 'EUR',
1872
+ 'GBP',
1873
+ 'USD',
1874
+ 'ZAR',
1875
+ ],
1876
+ ],
1877
+ ];
1878
+ }
lib/Ing/Services/ing-php/vendor/alcohol/iso3166/ISO3166Test.php ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * (c) Rob Bast <rob.bast@gmail.com>
5
+ *
6
+ * For the full copyright and license information, please view
7
+ * the LICENSE file that was distributed with this source code.
8
+ */
9
+
10
+ namespace Alcohol\Tests;
11
+
12
+ use Alcohol\ISO3166;
13
+
14
+ class ISO3166Test extends \PHPUnit_Framework_TestCase
15
+ {
16
+ /**
17
+ * @testdox Calling getByAlpha2 with an invalid alpha2 throws a DomainException.
18
+ * @dataProvider invalidAlpha2Provider
19
+ * @param string $alpha2
20
+ * @expectedException \DomainException
21
+ * @expectedExceptionMessageRegExp /^Not a valid alpha2: .*$/
22
+ */
23
+ public function testGetByAlpha2Invalid($alpha2)
24
+ {
25
+ $iso3166 = new ISO3166();
26
+ $iso3166->getByAlpha2($alpha2);
27
+ }
28
+
29
+ /**
30
+ * @testdox Calling getByAlpha2 with an unknown alpha2 throws a OutOfBoundsException.
31
+ * @expectedException \OutOfBoundsException
32
+ * @expectedExceptionMessage ISO 3166-1 does not contain: ZZ
33
+ */
34
+ public function testGetByAlpha2Unknown()
35
+ {
36
+ $iso3166 = new ISO3166();
37
+ $iso3166->getByAlpha2('ZZ');
38
+ }
39
+
40
+ /**
41
+ * @testdox Calling getByAlpha2 with a known alpha2 returns an associative array with the data.
42
+ * @dataProvider alpha2Provider
43
+ * @param string $alpha2
44
+ * @param array $expected
45
+ */
46
+ public function testGetByAlpha2($alpha2, array $expected)
47
+ {
48
+ $iso3166 = new ISO3166();
49
+ $this->assertEquals($expected, $iso3166->getByAlpha2($alpha2));
50
+ }
51
+
52
+ /**
53
+ * @testdox Calling getByAlpha3 with an invalid alpha3 throws a DomainException.
54
+ * @param string $alpha3
55
+ * @dataProvider invalidAlpha3Provider
56
+ * @expectedException \DomainException
57
+ * @expectedExceptionMessageRegExp /^Not a valid alpha3: .*$/
58
+ */
59
+ public function testGetByAlpha3Invalid($alpha3)
60
+ {
61
+ $iso3166 = new ISO3166();
62
+ $iso3166->getByAlpha3($alpha3);
63
+ }
64
+
65
+ /**
66
+ * @testdox Calling getByAlpha3 with an unknown alpha3 throws a OutOfBoundsException.
67
+ * @expectedException \OutOfBoundsException
68
+ * @expectedExceptionMessage ISO 3166-1 does not contain: ZZZ
69
+ */
70
+ public function testGetByAlpha3Unknown()
71
+ {
72
+ $iso3166 = new ISO3166();
73
+ $iso3166->getByAlpha3('ZZZ');
74
+ }
75
+
76
+ /**
77
+ * @testdox Calling getByAlpha3 with a known alpha3 returns an associative array with the data.
78
+ * @dataProvider alpha3Provider
79
+ * @param string $alpha3
80
+ * @param array $expected
81
+ */
82
+ public function testGetByAlpha3($alpha3, array $expected)
83
+ {
84
+ $iso3166 = new ISO3166();
85
+ $this->assertEquals($expected, $iso3166->getByAlpha3($alpha3));
86
+ }
87
+
88
+ /**
89
+ * @testdox Calling getByNumeric with an invalid numeric throws a DomainException.
90
+ * @param string $numeric
91
+ * @dataProvider invalidNumericProvider
92
+ * @expectedException \DomainException
93
+ * @expectedExceptionMessageRegExp /^Not a valid numeric: .*$/
94
+ */
95
+ public function testGetByNumericInvalid($numeric)
96
+ {
97
+ $iso3166 = new ISO3166();
98
+ $iso3166->getByNumeric($numeric);
99
+ }
100
+
101
+ /**
102
+ * @testdox Calling getByNumeric with an unknown numeric throws a OutOfBoundsException.
103
+ * @expectedException \OutOfBoundsException
104
+ * @expectedExceptionMessage ISO 3166-1 does not contain: 000
105
+ */
106
+ public function testGetByNumericUnknown()
107
+ {
108
+ $iso3166 = new ISO3166();
109
+ $iso3166->getByNumeric('000');
110
+ }
111
+
112
+ /**
113
+ * @testdox Calling getByNumeric with a known numeric returns an associative array with the data.
114
+ * @dataProvider numericProvider
115
+ * @param string $numeric
116
+ * @param array $expected
117
+ */
118
+ public function testGetByNumeric($numeric, $expected)
119
+ {
120
+ $iso3166 = new ISO3166();
121
+ $this->assertEquals($expected, $iso3166->getByNumeric($numeric));
122
+ }
123
+
124
+ /**
125
+ * @testdox Calling getAll returns an array with all elements.
126
+ */
127
+ public function testGetAll()
128
+ {
129
+ $iso3166 = new ISO3166();
130
+ $this->assertInternalType('array', $iso3166->getAll());
131
+ $this->assertCount(249, $iso3166->getAll());
132
+ }
133
+
134
+ /**
135
+ * @return array
136
+ */
137
+ public function invalidAlpha2Provider()
138
+ {
139
+ return [['Z'], ['ZZZ'], [1], [123]];
140
+ }
141
+
142
+ /**
143
+ * @return array
144
+ */
145
+ public function alpha2Provider()
146
+ {
147
+ return $this->getCountries('alpha2');
148
+ }
149
+
150
+ /**
151
+ * @return array
152
+ */
153
+ public function invalidAlpha3Provider()
154
+ {
155
+ return [['ZZ'], ['ZZZZ'], [12], [1234]];
156
+ }
157
+
158
+ /**
159
+ * @return array
160
+ */
161
+ public function alpha3Provider()
162
+ {
163
+ return $this->getCountries('alpha3');
164
+ }
165
+
166
+ /**
167
+ * @return array
168
+ */
169
+ public function invalidNumericProvider()
170
+ {
171
+ return [['00'], ['0000'], ['ZZ'], ['ZZZZ']];
172
+ }
173
+
174
+ /**
175
+ * @return array
176
+ */
177
+ public function numericProvider()
178
+ {
179
+ return $this->getCountries('numeric');
180
+ }
181
+
182
+ /**
183
+ * @return array
184
+ */
185
+ private function getCountries($indexedBy)
186
+ {
187
+ $reflected = new \ReflectionClass('Alcohol\ISO3166');
188
+ $countries = $reflected->getProperty('countries');
189
+ $countries->setAccessible(true);
190
+ $countries = $countries->getValue(new ISO3166());
191
+
192
+ return array_reduce(
193
+ $countries,
194
+ function (array $carry, array $country) use ($indexedBy) {
195
+ $carry[] = [$country[$indexedBy], $country];
196
+ return $carry;
197
+ },
198
+ []
199
+ );
200
+ }
201
+ }
lib/Ing/Services/ing-php/vendor/alcohol/iso3166/LICENSE ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (C) 2014 Rob Bast <rob.bast@gmail.com>
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
lib/Ing/Services/ing-php/vendor/alcohol/iso3166/composer.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "alcohol/iso3166",
3
+ "description": "ISO 3166-1 PHP Library",
4
+ "keywords": ["ISO 3166", "ISO", "3166", "3166-1", "countries", "library"],
5
+ "homepage": "http://alcohol.github.io/iso3166/",
6
+ "license": "MIT",
7
+ "authors": [{
8
+ "name": "Rob Bast",
9
+ "email": "rob.bast@gmail.com"
10
+ }],
11
+ "support": {
12
+ "issues": "https://github.com/alcohol/iso3166/issues",
13
+ "source": "https://github.com/alcohol/iso3166"
14
+ },
15
+ "require": {
16
+ "php": ">=5.4"
17
+ },
18
+ "autoload": {
19
+ "psr-4": {
20
+ "Alcohol\\": "."
21
+ }
22
+ },
23
+ "require-dev": {
24
+ "phpunit/phpunit": "~4.6",
25
+ "phpunit/php-invoker": "@stable"
26
+ },
27
+ "autoload-dev": {
28
+ "psr-4": {
29
+ "Alcohol\\Tests\\": "."
30
+ }
31
+ },
32
+ "extra": {
33
+ "branch-alias": {
34
+ "dev-master": "3.x-dev"
35
+ }
36
+ }
37
+ }
lib/Ing/Services/ing-php/vendor/alcohol/iso3166/phpunit.xml.dist ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <phpunit
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.7/phpunit.xsd"
5
+ backupGlobals="false"
6
+ bootstrap="vendor/autoload.php"
7
+ stderr="true"
8
+ >
9
+
10
+ <testsuites>
11
+ <testsuite name="ISO3166 Test Suite">
12
+ <file>ISO3166Test.php</file>
13
+ </testsuite>
14
+ </testsuites>
15
+
16
+ <filter>
17
+ <whitelist>
18
+ <file>ISO3166.php</file>
19
+ </whitelist>
20
+ </filter>
21
+
22
+ </phpunit>
lib/Ing/Services/ing-php/vendor/autoload.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload.php @generated by Composer
4
+
5
+ require_once __DIR__ . '/composer' . '/autoload_real.php';
6
+
7
+ return ComposerAutoloaderInit7ff6aa8a97863a0afac29ee99103185f::getLoader();
lib/Ing/Services/ing-php/vendor/beberlei/assert/.php_cs ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $finder = PhpCsFixer\Finder::create()
4
+ ->in(__DIR__);
5
+
6
+ $rules = array(
7
+ 'psr0' => false,
8
+ '@PSR2' => true,
9
+ );
10
+
11
+ $cacheDir = getenv('TRAVIS') ? getenv('HOME') . '/.php-cs-fixer' : __DIR__;
12
+
13
+ return PhpCsFixer\Config::create()
14
+ ->setRules($rules)
15
+ ->finder($finder)
16
+ ->setUsingCache(true)
17
+ ->setCacheFile($cacheDir . '/.php_cs.cache');
lib/Ing/Services/ing-php/vendor/beberlei/assert/composer.json ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "beberlei/assert",
3
+ "description": "Thin assertion library for input validation in business models.",
4
+ "authors": [
5
+ {
6
+ "name": "Benjamin Eberlei",
7
+ "email": "kontakt@beberlei.de",
8
+ "role": "Lead Developer"
9
+ },
10
+ {
11
+ "name": "Richard Quadling",
12
+ "email": "rquadling@gmail.com",
13
+ "role": "Collaborator"
14
+ }
15
+ ],
16
+ "license": "BSD-2-Clause",
17
+ "keywords": [
18
+ "assert",
19
+ "assertion",
20
+ "validation"
21
+ ],
22
+ "require": {
23
+ "php": ">=5.3",
24
+ "ext-mbstring": "*"
25
+ },
26
+ "require-dev": {
27
+ "friendsofphp/php-cs-fixer": "2.0.0-alpha",
28
+ "phpunit/phpunit": "@stable"
29
+ },
30
+ "autoload": {
31
+ "psr-0": {
32
+ "Assert": "lib/"
33
+ },
34
+ "files": [
35
+ "lib/Assert/functions.php"
36
+ ]
37
+ },
38
+ "scripts": {
39
+ "assert:generate-docs": "php bin/generate_method_docs.php",
40
+ "assert:cs-lint": "php-cs-fixer fix --diff --verbose --dry-run",
41
+ "assert:cs-fix": "php-cs-fixer fix . -vv || true"
42
+ }
43
+ }
lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/Assertion.php ADDED
@@ -0,0 +1,2184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Assert
4
+ *
5
+ * LICENSE
6
+ *
7
+ * This source file is subject to the new BSD license that is bundled
8
+ * with this package in the file LICENSE.txt.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to kontakt@beberlei.de so I can send you a copy immediately.
12
+ */
13
+
14
+ namespace Assert;
15
+
16
+ use BadMethodCallException;
17
+
18
+ /**
19
+ * Assert library
20
+ *
21
+ * @author Benjamin Eberlei <kontakt@beberlei.de>
22
+ *
23
+ * @method static bool allAlnum($value, $message = null, $propertyPath = null) Assert that value is alphanumeric for all values.
24
+ * @method static bool allBetween($value, $lowerLimit, $upperLimit, $message = null, $propertyPath = null) Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit for all values.
25
+ * @method static bool allBetweenExclusive($value, $lowerLimit, $upperLimit, $message = null, $propertyPath = null) Assert that a value is greater than a lower limit, and less than an upper limit for all values.
26
+ * @method static bool allBetweenLength($value, $minLength, $maxLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string length is between min,max lengths for all values.
27
+ * @method static bool allBoolean($value, $message = null, $propertyPath = null) Assert that value is php boolean for all values.
28
+ * @method static bool allChoice($value, $choices, $message = null, $propertyPath = null) Assert that value is in array of choices for all values.
29
+ * @method static bool allChoicesNotEmpty($values, $choices, $message = null, $propertyPath = null) Determines if the values array has every choice as key and that this choice has content for all values.
30
+ * @method static bool allClassExists($value, $message = null, $propertyPath = null) Assert that the class exists for all values.
31
+ * @method static bool allContains($string, $needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string contains a sequence of chars for all values.
32
+ * @method static bool allCount($countable, $count, $message = null, $propertyPath = null) Assert that the count of countable is equal to count for all values.
33
+ * @method static bool allDate($value, $format, $message = null, $propertyPath = null) Assert that date is valid and corresponds to the given format for all values.
34
+ * @method static bool allDigit($value, $message = null, $propertyPath = null) Validates if an integer or integerish is a digit for all values.
35
+ * @method static bool allDirectory($value, $message = null, $propertyPath = null) Assert that a directory exists for all values.
36
+ * @method static bool allE164($value, $message = null, $propertyPath = null) Assert that the given string is a valid E164 Phone Number for all values.
37
+ * @method static bool allEmail($value, $message = null, $propertyPath = null) Assert that value is an email adress (using input_filter/FILTER_VALIDATE_EMAIL) for all values.
38
+ * @method static bool allEndsWith($string, $needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string ends with a sequence of chars for all values.
39
+ * @method static bool allEq($value, $value2, $message = null, $propertyPath = null) Assert that two values are equal (using == ) for all values.
40
+ * @method static bool allFalse($value, $message = null, $propertyPath = null) Assert that the value is boolean False for all values.
41
+ * @method static bool allFile($value, $message = null, $propertyPath = null) Assert that a file exists for all values.
42
+ * @method static bool allFloat($value, $message = null, $propertyPath = null) Assert that value is a php float for all values.
43
+ * @method static bool allGreaterOrEqualThan($value, $limit, $message = null, $propertyPath = null) Determines if the value is greater or equal than given limit for all values.
44
+ * @method static bool allGreaterThan($value, $limit, $message = null, $propertyPath = null) Determines if the value is greater than given limit for all values.
45
+ * @method static bool allImplementsInterface($class, $interfaceName, $message = null, $propertyPath = null) Assert that the class implements the interface for all values.
46
+ * @method static bool allInArray($value, $choices, $message = null, $propertyPath = null) Alias of {@see choice()} for all values.
47
+ * @method static bool allInteger($value, $message = null, $propertyPath = null) Assert that value is a php integer for all values.
48
+ * @method static bool allIntegerish($value, $message = null, $propertyPath = null) Assert that value is a php integer'ish for all values.
49
+ * @method static bool allInterfaceExists($value, $message = null, $propertyPath = null) Assert that the interface exists for all values.
50
+ * @method static bool allIp($value, $flag = null, $message = null, $propertyPath = null) Assert that value is an IPv4 or IPv6 address for all values.
51
+ * @method static bool allIpv4($value, $flag = null, $message = null, $propertyPath = null) Assert that value is an IPv4 address for all values.
52
+ * @method static bool allIpv6($value, $flag = null, $message = null, $propertyPath = null) Assert that value is an IPv6 address for all values.
53
+ * @method static bool allIsArray($value, $message = null, $propertyPath = null) Assert that value is an array for all values.
54
+ * @method static bool allIsArrayAccessible($value, $message = null, $propertyPath = null) Assert that value is an array or an array-accessible object for all values.
55
+ * @method static bool allIsCallable($value, $message = null, $propertyPath = null) Determines that the provided value is callable for all values.
56
+ * @method static bool allIsInstanceOf($value, $className, $message = null, $propertyPath = null) Assert that value is instance of given class-name for all values.
57
+ * @method static bool allIsJsonString($value, $message = null, $propertyPath = null) Assert that the given string is a valid json string for all values.
58
+ * @method static bool allIsObject($value, $message = null, $propertyPath = null) Determines that the provided value is an object for all values.
59
+ * @method static bool allIsTraversable($value, $message = null, $propertyPath = null) Assert that value is an array or a traversable object for all values.
60
+ * @method static bool allKeyExists($value, $key, $message = null, $propertyPath = null) Assert that key exists in an array for all values.
61
+ * @method static bool allKeyIsset($value, $key, $message = null, $propertyPath = null) Assert that key exists in an array/array-accessible object using isset() for all values.
62
+ * @method static bool allKeyNotExists($value, $key, $message = null, $propertyPath = null) Assert that key does not exist in an array for all values.
63
+ * @method static bool allLength($value, $length, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string has a given length for all values.
64
+ * @method static bool allLessOrEqualThan($value, $limit, $message = null, $propertyPath = null) Determines if the value is less or than given limit for all values.
65
+ * @method static bool allLessThan($value, $limit, $message = null, $propertyPath = null) Determines if the value is less than given limit for all values.
66
+ * @method static bool allMax($value, $maxValue, $message = null, $propertyPath = null) Assert that a number is smaller as a given limit for all values.
67
+ * @method static bool allMaxLength($value, $maxLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string value is not longer than $maxLength chars for all values.
68
+ * @method static bool allMethodExists($value, $object, $message = null, $propertyPath = null) Determines that the named method is defined in the provided object for all values.
69
+ * @method static bool allMin($value, $minValue, $message = null, $propertyPath = null) Assert that a value is at least as big as a given limit for all values.
70
+ * @method static bool allMinLength($value, $minLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that a string is at least $minLength chars long for all values.
71
+ * @method static bool allNoContent($value, $message = null, $propertyPath = null) Assert that value is empty for all values.
72
+ * @method static bool allNotBlank($value, $message = null, $propertyPath = null) Assert that value is not blank for all values.
73
+ * @method static bool allNotEmpty($value, $message = null, $propertyPath = null) Assert that value is not empty for all values.
74
+ * @method static bool allNotEmptyKey($value, $key, $message = null, $propertyPath = null) Assert that key exists in an array/array-accessible object and it's value is not empty for all values.
75
+ * @method static bool allNotEq($value1, $value2, $message = null, $propertyPath = null) Assert that two values are not equal (using == ) for all values.
76
+ * @method static bool allNotInArray($value, $choices, $message = null, $propertyPath = null) Assert that value is not in array of choices for all values.
77
+ * @method static bool allNotIsInstanceOf($value, $className, $message = null, $propertyPath = null) Assert that value is not instance of given class-name for all values.
78
+ * @method static bool allNotNull($value, $message = null, $propertyPath = null) Assert that value is not null for all values.
79
+ * @method static bool allNotSame($value1, $value2, $message = null, $propertyPath = null) Assert that two values are not the same (using === ) for all values.
80
+ * @method static bool allNull($value, $message = null, $propertyPath = null) Assert that value is null for all values.
81
+ * @method static bool allNumeric($value, $message = null, $propertyPath = null) Assert that value is numeric for all values.
82
+ * @method static bool allRange($value, $minValue, $maxValue, $message = null, $propertyPath = null) Assert that value is in range of numbers for all values.
83
+ * @method static bool allReadable($value, $message = null, $propertyPath = null) Assert that the value is something readable for all values.
84
+ * @method static bool allRegex($value, $pattern, $message = null, $propertyPath = null) Assert that value matches a regex for all values.
85
+ * @method static bool allSame($value, $value2, $message = null, $propertyPath = null) Assert that two values are the same (using ===) for all values.
86
+ * @method static bool allSatisfy($value, $callback, $message = null, $propertyPath = null) Assert that the provided value is valid according to a callback for all values.
87
+ * @method static bool allScalar($value, $message = null, $propertyPath = null) Assert that value is a PHP scalar for all values.
88
+ * @method static bool allStartsWith($string, $needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string starts with a sequence of chars for all values.
89
+ * @method static bool allString($value, $message = null, $propertyPath = null) Assert that value is a string for all values.
90
+ * @method static bool allSubclassOf($value, $className, $message = null, $propertyPath = null) Assert that value is subclass of given class-name for all values.
91
+ * @method static bool allTrue($value, $message = null, $propertyPath = null) Assert that the value is boolean True for all values.
92
+ * @method static bool allUrl($value, $message = null, $propertyPath = null) Assert that value is an URL for all values.
93
+ * @method static bool allUuid($value, $message = null, $propertyPath = null) Assert that the given string is a valid UUID for all values.
94
+ * @method static bool allWriteable($value, $message = null, $propertyPath = null) Assert that the value is something writeable for all values.
95
+ * @method static bool nullOrAlnum($value, $message = null, $propertyPath = null) Assert that value is alphanumeric or that the value is null.
96
+ * @method static bool nullOrBetween($value, $lowerLimit, $upperLimit, $message = null, $propertyPath = null) Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit or that the value is null.
97
+ * @method static bool nullOrBetweenExclusive($value, $lowerLimit, $upperLimit, $message = null, $propertyPath = null) Assert that a value is greater than a lower limit, and less than an upper limit or that the value is null.
98
+ * @method static bool nullOrBetweenLength($value, $minLength, $maxLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string length is between min,max lengths or that the value is null.
99
+ * @method static bool nullOrBoolean($value, $message = null, $propertyPath = null) Assert that value is php boolean or that the value is null.
100
+ * @method static bool nullOrChoice($value, $choices, $message = null, $propertyPath = null) Assert that value is in array of choices or that the value is null.
101
+ * @method static bool nullOrChoicesNotEmpty($values, $choices, $message = null, $propertyPath = null) Determines if the values array has every choice as key and that this choice has content or that the value is null.
102
+ * @method static bool nullOrClassExists($value, $message = null, $propertyPath = null) Assert that the class exists or that the value is null.
103
+ * @method static bool nullOrContains($string, $needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string contains a sequence of chars or that the value is null.
104
+ * @method static bool nullOrCount($countable, $count, $message = null, $propertyPath = null) Assert that the count of countable is equal to count or that the value is null.
105
+ * @method static bool nullOrDate($value, $format, $message = null, $propertyPath = null) Assert that date is valid and corresponds to the given format or that the value is null.
106
+ * @method static bool nullOrDigit($value, $message = null, $propertyPath = null) Validates if an integer or integerish is a digit or that the value is null.
107
+ * @method static bool nullOrDirectory($value, $message = null, $propertyPath = null) Assert that a directory exists or that the value is null.
108
+ * @method static bool nullOrE164($value, $message = null, $propertyPath = null) Assert that the given string is a valid E164 Phone Number or that the value is null.
109
+ * @method static bool nullOrEmail($value, $message = null, $propertyPath = null) Assert that value is an email adress (using input_filter/FILTER_VALIDATE_EMAIL) or that the value is null.
110
+ * @method static bool nullOrEndsWith($string, $needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string ends with a sequence of chars or that the value is null.
111
+ * @method static bool nullOrEq($value, $value2, $message = null, $propertyPath = null) Assert that two values are equal (using == ) or that the value is null.
112
+ * @method static bool nullOrFalse($value, $message = null, $propertyPath = null) Assert that the value is boolean False or that the value is null.
113
+ * @method static bool nullOrFile($value, $message = null, $propertyPath = null) Assert that a file exists or that the value is null.
114
+ * @method static bool nullOrFloat($value, $message = null, $propertyPath = null) Assert that value is a php float or that the value is null.
115
+ * @method static bool nullOrGreaterOrEqualThan($value, $limit, $message = null, $propertyPath = null) Determines if the value is greater or equal than given limit or that the value is null.
116
+ * @method static bool nullOrGreaterThan($value, $limit, $message = null, $propertyPath = null) Determines if the value is greater than given limit or that the value is null.
117
+ * @method static bool nullOrImplementsInterface($class, $interfaceName, $message = null, $propertyPath = null) Assert that the class implements the interface or that the value is null.
118
+ * @method static bool nullOrInArray($value, $choices, $message = null, $propertyPath = null) Alias of {@see choice()} or that the value is null.
119
+ * @method static bool nullOrInteger($value, $message = null, $propertyPath = null) Assert that value is a php integer or that the value is null.
120
+ * @method static bool nullOrIntegerish($value, $message = null, $propertyPath = null) Assert that value is a php integer'ish or that the value is null.
121
+ * @method static bool nullOrInterfaceExists($value, $message = null, $propertyPath = null) Assert that the interface exists or that the value is null.
122
+ * @method static bool nullOrIp($value, $flag = null, $message = null, $propertyPath = null) Assert that value is an IPv4 or IPv6 address or that the value is null.
123
+ * @method static bool nullOrIpv4($value, $flag = null, $message = null, $propertyPath = null) Assert that value is an IPv4 address or that the value is null.
124
+ * @method static bool nullOrIpv6($value, $flag = null, $message = null, $propertyPath = null) Assert that value is an IPv6 address or that the value is null.
125
+ * @method static bool nullOrIsArray($value, $message = null, $propertyPath = null) Assert that value is an array or that the value is null.
126
+ * @method static bool nullOrIsArrayAccessible($value, $message = null, $propertyPath = null) Assert that value is an array or an array-accessible object or that the value is null.
127
+ * @method static bool nullOrIsCallable($value, $message = null, $propertyPath = null) Determines that the provided value is callable or that the value is null.
128
+ * @method static bool nullOrIsInstanceOf($value, $className, $message = null, $propertyPath = null) Assert that value is instance of given class-name or that the value is null.
129
+ * @method static bool nullOrIsJsonString($value, $message = null, $propertyPath = null) Assert that the given string is a valid json string or that the value is null.
130
+ * @method static bool nullOrIsObject($value, $message = null, $propertyPath = null) Determines that the provided value is an object or that the value is null.
131
+ * @method static bool nullOrIsTraversable($value, $message = null, $propertyPath = null) Assert that value is an array or a traversable object or that the value is null.
132
+ * @method static bool nullOrKeyExists($value, $key, $message = null, $propertyPath = null) Assert that key exists in an array or that the value is null.
133
+ * @method static bool nullOrKeyIsset($value, $key, $message = null, $propertyPath = null) Assert that key exists in an array/array-accessible object using isset() or that the value is null.
134
+ * @method static bool nullOrKeyNotExists($value, $key, $message = null, $propertyPath = null) Assert that key does not exist in an array or that the value is null.
135
+ * @method static bool nullOrLength($value, $length, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string has a given length or that the value is null.
136
+ * @method static bool nullOrLessOrEqualThan($value, $limit, $message = null, $propertyPath = null) Determines if the value is less or than given limit or that the value is null.
137
+ * @method static bool nullOrLessThan($value, $limit, $message = null, $propertyPath = null) Determines if the value is less than given limit or that the value is null.
138
+ * @method static bool nullOrMax($value, $maxValue, $message = null, $propertyPath = null) Assert that a number is smaller as a given limit or that the value is null.
139
+ * @method static bool nullOrMaxLength($value, $maxLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string value is not longer than $maxLength chars or that the value is null.
140
+ * @method static bool nullOrMethodExists($value, $object, $message = null, $propertyPath = null) Determines that the named method is defined in the provided object or that the value is null.
141
+ * @method static bool nullOrMin($value, $minValue, $message = null, $propertyPath = null) Assert that a value is at least as big as a given limit or that the value is null.
142
+ * @method static bool nullOrMinLength($value, $minLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that a string is at least $minLength chars long or that the value is null.
143
+ * @method static bool nullOrNoContent($value, $message = null, $propertyPath = null) Assert that value is empty or that the value is null.
144
+ * @method static bool nullOrNotBlank($value, $message = null, $propertyPath = null) Assert that value is not blank or that the value is null.
145
+ * @method static bool nullOrNotEmpty($value, $message = null, $propertyPath = null) Assert that value is not empty or that the value is null.
146
+ * @method static bool nullOrNotEmptyKey($value, $key, $message = null, $propertyPath = null) Assert that key exists in an array/array-accessible object and it's value is not empty or that the value is null.
147
+ * @method static bool nullOrNotEq($value1, $value2, $message = null, $propertyPath = null) Assert that two values are not equal (using == ) or that the value is null.
148
+ * @method static bool nullOrNotInArray($value, $choices, $message = null, $propertyPath = null) Assert that value is not in array of choices or that the value is null.
149
+ * @method static bool nullOrNotIsInstanceOf($value, $className, $message = null, $propertyPath = null) Assert that value is not instance of given class-name or that the value is null.
150
+ * @method static bool nullOrNotNull($value, $message = null, $propertyPath = null) Assert that value is not null or that the value is null.
151
+ * @method static bool nullOrNotSame($value1, $value2, $message = null, $propertyPath = null) Assert that two values are not the same (using === ) or that the value is null.
152
+ * @method static bool nullOrNull($value, $message = null, $propertyPath = null) Assert that value is null or that the value is null.
153
+ * @method static bool nullOrNumeric($value, $message = null, $propertyPath = null) Assert that value is numeric or that the value is null.
154
+ * @method static bool nullOrRange($value, $minValue, $maxValue, $message = null, $propertyPath = null) Assert that value is in range of numbers or that the value is null.
155
+ * @method static bool nullOrReadable($value, $message = null, $propertyPath = null) Assert that the value is something readable or that the value is null.
156
+ * @method static bool nullOrRegex($value, $pattern, $message = null, $propertyPath = null) Assert that value matches a regex or that the value is null.
157
+ * @method static bool nullOrSame($value, $value2, $message = null, $propertyPath = null) Assert that two values are the same (using ===) or that the value is null.
158
+ * @method static bool nullOrSatisfy($value, $callback, $message = null, $propertyPath = null) Assert that the provided value is valid according to a callback or that the value is null.
159
+ * @method static bool nullOrScalar($value, $message = null, $propertyPath = null) Assert that value is a PHP scalar or that the value is null.
160
+ * @method static bool nullOrStartsWith($string, $needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string starts with a sequence of chars or that the value is null.
161
+ * @method static bool nullOrString($value, $message = null, $propertyPath = null) Assert that value is a string or that the value is null.
162
+ * @method static bool nullOrSubclassOf($value, $className, $message = null, $propertyPath = null) Assert that value is subclass of given class-name or that the value is null.
163
+ * @method static bool nullOrTrue($value, $message = null, $propertyPath = null) Assert that the value is boolean True or that the value is null.
164
+ * @method static bool nullOrUrl($value, $message = null, $propertyPath = null) Assert that value is an URL or that the value is null.
165
+ * @method static bool nullOrUuid($value, $message = null, $propertyPath = null) Assert that the given string is a valid UUID or that the value is null.
166
+ * @method static bool nullOrWriteable($value, $message = null, $propertyPath = null) Assert that the value is something writeable or that the value is null.
167
+ */
168
+ class Assertion
169
+ {
170
+ const INVALID_FLOAT = 9;
171
+ const INVALID_INTEGER = 10;
172
+ const INVALID_DIGIT = 11;
173
+ const INVALID_INTEGERISH = 12;
174
+ const INVALID_BOOLEAN = 13;
175
+ const VALUE_EMPTY = 14;
176
+ const VALUE_NULL = 15;
177
+ const VALUE_NOT_NULL = 25;
178
+ const INVALID_STRING = 16;
179
+ const INVALID_REGEX = 17;
180
+ const INVALID_MIN_LENGTH = 18;
181
+ const INVALID_MAX_LENGTH = 19;
182
+ const INVALID_STRING_START = 20;
183
+ const INVALID_STRING_CONTAINS = 21;
184
+ const INVALID_CHOICE = 22;
185
+ const INVALID_NUMERIC = 23;
186
+ const INVALID_ARRAY = 24;
187
+ const INVALID_KEY_EXISTS = 26;
188
+ const INVALID_NOT_BLANK = 27;
189
+ const INVALID_INSTANCE_OF = 28;
190
+ const INVALID_SUBCLASS_OF = 29;
191
+ const INVALID_RANGE = 30;
192
+ const INVALID_ALNUM = 31;
193
+ const INVALID_TRUE = 32;
194
+ const INVALID_EQ = 33;
195
+ const INVALID_SAME = 34;
196
+ const INVALID_MIN = 35;
197
+ const INVALID_MAX = 36;
198
+ const INVALID_LENGTH = 37;
199
+ const INVALID_FALSE = 38;
200
+ const INVALID_STRING_END = 39;
201
+ const INVALID_UUID = 40;
202
+ const INVALID_COUNT = 41;
203
+ const INVALID_NOT_EQ = 42;
204
+ const INVALID_NOT_SAME = 43;
205
+ const INVALID_TRAVERSABLE = 44;
206
+ const INVALID_ARRAY_ACCESSIBLE = 45;
207
+ const INVALID_KEY_ISSET = 46;
208
+ const INVALID_VALUE_IN_ARRAY = 47;
209
+ const INVALID_E164 = 48;
210
+ const INVALID_DIRECTORY = 101;
211
+ const INVALID_FILE = 102;
212
+ const INVALID_READABLE = 103;
213
+ const INVALID_WRITEABLE = 104;
214
+ const INVALID_CLASS = 105;
215
+ const INVALID_INTERFACE = 106;
216
+ const INVALID_EMAIL = 201;
217
+ const INTERFACE_NOT_IMPLEMENTED = 202;
218
+ const INVALID_URL = 203;
219
+ const INVALID_NOT_INSTANCE_OF = 204;
220
+ const VALUE_NOT_EMPTY = 205;
221
+ const INVALID_JSON_STRING = 206;
222
+ const INVALID_OBJECT = 207;
223
+ const INVALID_METHOD = 208;
224
+ const INVALID_SCALAR = 209;
225
+ const INVALID_LESS = 210;
226
+ const INVALID_LESS_OR_EQUAL = 211;
227
+ const INVALID_GREATER = 212;
228
+ const INVALID_GREATER_OR_EQUAL = 213;
229
+ const INVALID_DATE = 214;
230
+ const INVALID_CALLABLE = 215;
231
+ const INVALID_KEY_NOT_EXISTS = 216;
232
+ const INVALID_SATISFY = 217;
233
+ const INVALID_IP = 218;
234
+ const INVALID_BETWEEN = 219;
235
+ const INVALID_BETWEEN_EXCLUSIVE = 220;
236
+
237
+ /**
238
+ * Exception to throw when an assertion failed.
239
+ *
240
+ * @var string
241
+ */
242
+ protected static $exceptionClass = 'Assert\InvalidArgumentException';
243
+
244
+ /**
245
+ * Helper method that handles building the assertion failure exceptions.
246
+ * They are returned from this method so that the stack trace still shows
247
+ * the assertions method.
248
+ *
249
+ * @param mixed $value
250
+ * @param string $message
251
+ * @param int $code
252
+ * @param string|null $propertyPath
253
+ * @param array $constraints
254
+ *
255
+ * @return mixed
256
+ */
257
+ protected static function createException($value, $message, $code, $propertyPath, array $constraints = array())
258
+ {
259
+ $exceptionClass = static::$exceptionClass;
260
+ return new $exceptionClass($message, $code, $propertyPath, $value, $constraints);
261
+ }
262
+
263
+ /**
264
+ * Assert that two values are equal (using == ).
265
+ *
266
+ * @param mixed $value
267
+ * @param mixed $value2
268
+ * @param string|null $message
269
+ * @param string|null $propertyPath
270
+ * @return bool
271
+ * @throws \Assert\AssertionFailedException
272
+ */
273
+ public static function eq($value, $value2, $message = null, $propertyPath = null)
274
+ {
275
+ if ($value != $value2) {
276
+ $message = sprintf(
277
+ $message ?: 'Value "%s" does not equal expected value "%s".',
278
+ static::stringify($value),
279
+ static::stringify($value2)
280
+ );
281
+
282
+ throw static::createException($value, $message, static::INVALID_EQ, $propertyPath, array('expected' => $value2));
283
+ }
284
+
285
+ return true;
286
+ }
287
+
288
+ /**
289
+ * Assert that two values are the same (using ===).
290
+ *
291
+ * @param mixed $value
292
+ * @param mixed $value2
293
+ * @param string|null $message
294
+ * @param string|null $propertyPath
295
+ * @return bool
296
+ * @throws \Assert\AssertionFailedException
297
+ */
298
+ public static function same($value, $value2, $message = null, $propertyPath = null)
299
+ {
300
+ if ($value !== $value2) {
301
+ $message = sprintf(
302
+ $message ?: 'Value "%s" is not the same as expected value "%s".',
303
+ static::stringify($value),
304
+ static::stringify($value2)
305
+ );
306
+
307
+ throw static::createException($value, $message, static::INVALID_SAME, $propertyPath, array('expected' => $value2));
308
+ }
309
+
310
+ return true;
311
+ }
312
+
313
+ /**
314
+ * Assert that two values are not equal (using == ).
315
+ *
316
+ * @param mixed $value1
317
+ * @param mixed $value2
318
+ * @param string|null $message
319
+ * @param string|null $propertyPath
320
+ * @return bool
321
+ * @throws \Assert\AssertionFailedException
322
+ */
323
+ public static function notEq($value1, $value2, $message = null, $propertyPath = null)
324
+ {
325
+ if ($value1 == $value2) {
326
+ $message = sprintf(
327
+ $message ?: 'Value "%s" is equal to expected value "%s".',
328
+ static::stringify($value1),
329
+ static::stringify($value2)
330
+ );
331
+ throw static::createException($value1, $message, static::INVALID_NOT_EQ, $propertyPath, array('expected' => $value2));
332
+ }
333
+
334
+ return true;
335
+ }
336
+
337
+ /**
338
+ * Assert that two values are not the same (using === ).
339
+ *
340
+ * @param mixed $value1
341
+ * @param mixed $value2
342
+ * @param string|null $message
343
+ * @param string|null $propertyPath
344
+ * @return bool
345
+ * @throws \Assert\AssertionFailedException
346
+ */
347
+ public static function notSame($value1, $value2, $message = null, $propertyPath = null)
348
+ {
349
+ if ($value1 === $value2) {
350
+ $message = sprintf(
351
+ $message ?: 'Value "%s" is the same as expected value "%s".',
352
+ static::stringify($value1),
353
+ static::stringify($value2)
354
+ );
355
+ throw static::createException($value1, $message, static::INVALID_NOT_SAME, $propertyPath, array('expected' => $value2));
356
+ }
357
+
358
+ return true;
359
+ }
360
+
361
+ /**
362
+ * Assert that value is not in array of choices.
363
+ *
364
+ * @param mixed $value
365
+ * @param array $choices
366
+ * @param string|null $message
367
+ * @param string|null $propertyPath
368
+ * @return bool
369
+ * @throws \Assert\AssertionFailedException
370
+ */
371
+ public static function notInArray($value, array $choices, $message = null, $propertyPath = null)
372
+ {
373
+ if (in_array($value, $choices) === true) {
374
+ $message = sprintf(
375
+ $message ?: 'Value "%s" is in given "%s".',
376
+ static::stringify($value),
377
+ static::stringify($choices)
378
+ );
379
+ throw static::createException($value, $message, static::INVALID_VALUE_IN_ARRAY, $propertyPath);
380
+ }
381
+
382
+ return true;
383
+ }
384
+
385
+ /**
386
+ * Assert that value is a php integer.
387
+ *
388
+ * @param mixed $value
389
+ * @param string|null $message
390
+ * @param string|null $propertyPath
391
+ * @return bool
392
+ * @throws \Assert\AssertionFailedException
393
+ */
394
+ public static function integer($value, $message = null, $propertyPath = null)
395
+ {
396
+ if (! is_int($value)) {
397
+ $message = sprintf(
398
+ $message ?: 'Value "%s" is not an integer.',
399
+ static::stringify($value)
400
+ );
401
+
402
+ throw static::createException($value, $message, static::INVALID_INTEGER, $propertyPath);
403
+ }
404
+
405
+ return true;
406
+ }
407
+
408
+ /**
409
+ * Assert that value is a php float.
410
+ *
411
+ * @param mixed $value
412
+ * @param string|null $message
413
+ * @param string|null $propertyPath
414
+ * @return bool
415
+ * @throws \Assert\AssertionFailedException
416
+ */
417
+ public static function float($value, $message = null, $propertyPath = null)
418
+ {
419
+ if (! is_float($value)) {
420
+ $message = sprintf(
421
+ $message ?: 'Value "%s" is not a float.',
422
+ static::stringify($value)
423
+ );
424
+
425
+ throw static::createException($value, $message, static::INVALID_FLOAT, $propertyPath);
426
+ }
427
+
428
+ return true;
429
+ }
430
+
431
+ /**
432
+ * Validates if an integer or integerish is a digit.
433
+ *
434
+ * @param mixed $value
435
+ * @param string|null $message
436
+ * @param string|null $propertyPath
437
+ * @return bool
438
+ * @throws \Assert\AssertionFailedException
439
+ */
440
+ public static function digit($value, $message = null, $propertyPath = null)
441
+ {
442
+ if (! ctype_digit((string)$value)) {
443
+ $message = sprintf(
444
+ $message ?: 'Value "%s" is not a digit.',
445
+ static::stringify($value)
446
+ );
447
+
448
+ throw static::createException($value, $message, static::INVALID_DIGIT, $propertyPath);
449
+ }
450
+
451
+ return true;
452
+ }
453
+
454
+ /**
455
+ * Assert that value is a php integer'ish.
456
+ *
457
+ * @param mixed $value
458
+ * @param string|null $message
459
+ * @param string|null $propertyPath
460
+ * @return bool
461
+ * @throws \Assert\AssertionFailedException
462
+ */
463
+ public static function integerish($value, $message = null, $propertyPath = null)
464
+ {
465
+ if (is_object($value) || strval(intval($value)) != $value || is_bool($value) || is_null($value)) {
466
+ $message = sprintf(
467
+ $message ?: 'Value "%s" is not an integer or a number castable to integer.',
468
+ static::stringify($value)
469
+ );
470
+
471
+ throw static::createException($value, $message, static::INVALID_INTEGERISH, $propertyPath);
472
+ }
473
+
474
+ return true;
475
+ }
476
+
477
+ /**
478
+ * Assert that value is php boolean
479
+ *
480
+ * @param mixed $value
481
+ * @param string|null $message
482
+ * @param string|null $propertyPath
483
+ * @return bool
484
+ * @throws \Assert\AssertionFailedException
485
+ */
486
+ public static function boolean($value, $message = null, $propertyPath = null)
487
+ {
488
+ if (! is_bool($value)) {
489
+ $message = sprintf(
490
+ $message ?: 'Value "%s" is not a boolean.',
491
+ static::stringify($value)
492
+ );
493
+
494
+ throw static::createException($value, $message, static::INVALID_BOOLEAN, $propertyPath);
495
+ }
496
+
497
+ return true;
498
+ }
499
+
500
+ /**
501
+ * Assert that value is a PHP scalar
502
+ *
503
+ * @param mixed $value
504
+ * @param string|null $message
505
+ * @param string|null $propertyPath
506
+ * @return bool
507
+ * @throws \Assert\AssertionFailedException
508
+ */
509
+ public static function scalar($value, $message = null, $propertyPath = null)
510
+ {
511
+ if (!is_scalar($value)) {
512
+ $message = sprintf(
513
+ $message ?: 'Value "%s" is not a scalar.',
514
+ static::stringify($value)
515
+ );
516
+
517
+ throw static::createException($value, $message, static::INVALID_SCALAR, $propertyPath);
518
+ }
519
+
520
+ return true;
521
+ }
522
+
523
+ /**
524
+ * Assert that value is not empty
525
+ *
526
+ * @param mixed $value
527
+ * @param string|null $message
528
+ * @param string|null $propertyPath
529
+ * @return bool
530
+ * @throws \Assert\AssertionFailedException
531
+ */
532
+ public static function notEmpty($value, $message = null, $propertyPath = null)
533
+ {
534
+ if (empty($value)) {
535
+ $message = sprintf(
536
+ $message ?: 'Value "%s" is empty, but non empty value was expected.',
537
+ static::stringify($value)
538
+ );
539
+
540
+ throw static::createException($value, $message, static::VALUE_EMPTY, $propertyPath);
541
+ }
542
+
543
+ return true;
544
+ }
545
+
546
+ /**
547
+ * Assert that value is empty
548
+ *
549
+ * @param mixed $value
550
+ * @param string|null $message
551
+ * @param string|null $propertyPath
552
+ * @return bool
553
+ * @throws \Assert\AssertionFailedException
554
+ */
555
+ public static function noContent($value, $message = null, $propertyPath = null)
556
+ {
557
+ if (!empty($value)) {
558
+ $message = sprintf(
559
+ $message ?: 'Value "%s" is not empty, but empty value was expected.',
560
+ static::stringify($value)
561
+ );
562
+
563
+ throw static::createException($value, $message, static::VALUE_NOT_EMPTY, $propertyPath);
564
+ }
565
+
566
+ return true;
567
+ }
568
+
569
+ /**
570
+ * Assert that value is null
571
+ *
572
+ * @param mixed $value
573
+ * @param string|null $message
574
+ * @param string|null $propertyPath
575
+ * @return bool
576
+ * @throws \Assert\AssertionFailedException
577
+ */
578
+ public static function null($value, $message = null, $propertyPath = null)
579
+ {
580
+ if ($value !== null) {
581
+ $message = sprintf(
582
+ $message ?: 'Value "%s" is not null, but null value was expected.',
583
+ static::stringify($value)
584
+ );
585
+
586
+ throw static::createException($value, $message, static::VALUE_NOT_NULL, $propertyPath);
587
+ }
588
+
589
+ return true;
590
+ }
591
+
592
+ /**
593
+ * Assert that value is not null
594
+ *
595
+ * @param mixed $value
596
+ * @param string|null $message
597
+ * @param string|null $propertyPath
598
+ * @return bool
599
+ * @throws \Assert\AssertionFailedException
600
+ */
601
+ public static function notNull($value, $message = null, $propertyPath = null)
602
+ {
603
+ if ($value === null) {
604
+ $message = sprintf(
605
+ $message ?: 'Value "%s" is null, but non null value was expected.',
606
+ static::stringify($value)
607
+ );
608
+
609
+ throw static::createException($value, $message, static::VALUE_NULL, $propertyPath);
610
+ }
611
+
612
+ return true;
613
+ }
614
+
615
+ /**
616
+ * Assert that value is a string
617
+ *
618
+ * @param mixed $value
619
+ * @param string|null $message
620
+ * @param string|null $propertyPath
621
+ * @return bool
622
+ * @throws \Assert\AssertionFailedException
623
+ */
624
+ public static function string($value, $message = null, $propertyPath = null)
625
+ {
626
+ if (! is_string($value)) {
627
+ $message = sprintf(
628
+ $message ?: 'Value "%s" expected to be string, type %s given.',
629
+ static::stringify($value),
630
+ gettype($value)
631
+ );
632
+
633
+ throw static::createException($value, $message, static::INVALID_STRING, $propertyPath);
634
+ }
635
+
636
+ return true;
637
+ }
638
+
639
+ /**
640
+ * Assert that value matches a regex
641
+ *
642
+ * @param mixed $value
643
+ * @param string $pattern
644
+ * @param string|null $message
645
+ * @param string|null $propertyPath
646
+ * @return bool
647
+ * @throws \Assert\AssertionFailedException
648
+ */
649
+ public static function regex($value, $pattern, $message = null, $propertyPath = null)
650
+ {
651
+ static::string($value, $message, $propertyPath);
652
+
653
+ if (! preg_match($pattern, $value)) {
654
+ $message = sprintf(
655
+ $message ?: 'Value "%s" does not match expression.',
656
+ static::stringify($value)
657
+ );
658
+
659
+ throw static::createException($value, $message, static::INVALID_REGEX, $propertyPath, array('pattern' => $pattern));
660
+ }
661
+
662
+ return true;
663
+ }
664
+
665
+ /**
666
+ * Assert that string has a given length.
667
+ *
668
+ * @param mixed $value
669
+ * @param int $length
670
+ * @param string|null $message
671
+ * @param string|null $propertyPath
672
+ * @param string $encoding
673
+ * @return bool
674
+ * @throws \Assert\AssertionFailedException
675
+ */
676
+ public static function length($value, $length, $message = null, $propertyPath = null, $encoding = 'utf8')
677
+ {
678
+ static::string($value, $message, $propertyPath);
679
+
680
+ if (mb_strlen($value, $encoding) !== $length) {
681
+ $message = sprintf(
682
+ $message ?: 'Value "%s" has to be %d exactly characters long, but length is %d.',
683
+ static::stringify($value),
684
+ $length,
685
+ mb_strlen($value, $encoding)
686
+ );
687
+
688
+ $constraints = array('length' => $length, 'encoding' => $encoding);
689
+ throw static::createException($value, $message, static::INVALID_LENGTH, $propertyPath, $constraints);
690
+ }
691
+
692
+ return true;
693
+ }
694
+
695
+ /**
696
+ * Assert that a string is at least $minLength chars long.
697
+ *
698
+ * @param mixed $value
699
+ * @param int $minLength
700
+ * @param string|null $message
701
+ * @param string|null $propertyPath
702
+ * @param string $encoding
703
+ * @return bool
704
+ * @throws \Assert\AssertionFailedException
705
+ */
706
+ public static function minLength($value, $minLength, $message = null, $propertyPath = null, $encoding = 'utf8')
707
+ {
708
+ static::string($value, $message, $propertyPath);
709
+
710
+ if (mb_strlen($value, $encoding) < $minLength) {
711
+ $message = sprintf(
712
+ $message ?: 'Value "%s" is too short, it should have more than %d characters, but only has %d characters.',
713
+ static::stringify($value),
714
+ $minLength,
715
+ mb_strlen($value, $encoding)
716
+ );
717
+
718
+ $constraints = array('min_length' => $minLength, 'encoding' => $encoding);
719
+ throw static::createException($value, $message, static::INVALID_MIN_LENGTH, $propertyPath, $constraints);
720
+ }
721
+
722
+ return true;
723
+ }
724
+
725
+ /**
726
+ * Assert that string value is not longer than $maxLength chars.
727
+ *
728
+ * @param mixed $value
729
+ * @param integer $maxLength
730
+ * @param string|null $message
731
+ * @param string|null $propertyPath
732
+ * @param string $encoding
733
+ * @return bool
734
+ * @throws \Assert\AssertionFailedException
735
+ */
736
+ public static function maxLength($value, $maxLength, $message = null, $propertyPath = null, $encoding = 'utf8')
737
+ {
738
+ static::string($value, $message, $propertyPath);
739
+
740
+ if (mb_strlen($value, $encoding) > $maxLength) {
741
+ $message = sprintf(
742
+ $message ?: 'Value "%s" is too long, it should have no more than %d characters, but has %d characters.',
743
+ static::stringify($value),
744
+ $maxLength,
745
+ mb_strlen($value, $encoding)
746
+ );
747
+
748
+ $constraints = array('max_length' => $maxLength, 'encoding' => $encoding);
749
+ throw static::createException($value, $message, static::INVALID_MAX_LENGTH, $propertyPath, $constraints);
750
+ }
751
+
752
+ return true;
753
+ }
754
+
755
+ /**
756
+ * Assert that string length is between min,max lengths.
757
+ *
758
+ * @param mixed $value
759
+ * @param integer $minLength
760
+ * @param integer $maxLength
761
+ * @param string|null $message
762
+ * @param string|null $propertyPath
763
+ * @param string $encoding
764
+ * @return bool
765
+ * @throws \Assert\AssertionFailedException
766
+ */
767
+ public static function betweenLength($value, $minLength, $maxLength, $message = null, $propertyPath = null, $encoding = 'utf8')
768
+ {
769
+ static::string($value, $message, $propertyPath);
770
+
771
+ if (mb_strlen($value, $encoding) < $minLength) {
772
+ $message = sprintf(
773
+ $message ?: 'Value "%s" is too short, it should have at least %d characters, but only has %d characters.',
774
+ static::stringify($value),
775
+ $minLength,
776
+ mb_strlen($value, $encoding)
777
+ );
778
+
779
+ $constraints = array('min_length' => $minLength, 'encoding' => $encoding);
780
+ throw static::createException($value, $message, static::INVALID_MIN_LENGTH, $propertyPath, $constraints);
781
+ }
782
+
783
+ if (mb_strlen($value, $encoding) > $maxLength) {
784
+ $message = sprintf(
785
+ $message ?: 'Value "%s" is too long, it should have no more than %d characters, but has %d characters.',
786
+ static::stringify($value),
787
+ $maxLength,
788
+ mb_strlen($value, $encoding)
789
+ );
790
+
791
+ $constraints = array('max_length' => $maxLength, 'encoding' => $encoding);
792
+ throw static::createException($value, $message, static::INVALID_MAX_LENGTH, $propertyPath, $constraints);
793
+ }
794
+
795
+ return true;
796
+ }
797
+
798
+ /**
799
+ * Assert that string starts with a sequence of chars.
800
+ *
801
+ * @param mixed $string
802
+ * @param string $needle
803
+ * @param string|null $message
804
+ * @param string|null $propertyPath
805
+ * @param string $encoding
806
+ * @return bool
807
+ * @throws \Assert\AssertionFailedException
808
+ */
809
+ public static function startsWith($string, $needle, $message = null, $propertyPath = null, $encoding = 'utf8')
810
+ {
811
+ static::string($string, $message, $propertyPath);
812
+
813
+ if (mb_strpos($string, $needle, null, $encoding) !== 0) {
814
+ $message = sprintf(
815
+ $message ?: 'Value "%s" does not start with "%s".',
816
+ static::stringify($string),
817
+ static::stringify($needle)
818
+ );
819
+
820
+ $constraints = array('needle' => $needle, 'encoding' => $encoding);
821
+ throw static::createException($string, $message, static::INVALID_STRING_START, $propertyPath, $constraints);
822
+ }
823
+
824
+ return true;
825
+ }
826
+
827
+ /**
828
+ * Assert that string ends with a sequence of chars.
829
+ *
830
+ * @param mixed $string
831
+ * @param string $needle
832
+ * @param string|null $message
833
+ * @param string|null $propertyPath
834
+ * @param string $encoding
835
+ * @return bool
836
+ * @throws \Assert\AssertionFailedException
837
+ */
838
+ public static function endsWith($string, $needle, $message = null, $propertyPath = null, $encoding = 'utf8')
839
+ {
840
+ static::string($string, $message, $propertyPath);
841
+
842
+ $stringPosition = mb_strlen($string, $encoding) - mb_strlen($needle, $encoding);
843
+
844
+ if (mb_strripos($string, $needle, null, $encoding) !== $stringPosition) {
845
+ $message = sprintf(
846
+ $message ?: 'Value "%s" does not end with "%s".',
847
+ static::stringify($string),
848
+ static::stringify($needle)
849
+ );
850
+
851
+ $constraints = array('needle' => $needle, 'encoding' => $encoding);
852
+ throw static::createException($string, $message, static::INVALID_STRING_END, $propertyPath, $constraints);
853
+ }
854
+
855
+ return true;
856
+ }
857
+
858
+ /**
859
+ * Assert that string contains a sequence of chars.
860
+ *
861
+ * @param mixed $string
862
+ * @param string $needle
863
+ * @param string|null $message
864
+ * @param string|null $propertyPath
865
+ * @param string $encoding
866
+ * @return bool
867
+ * @throws \Assert\AssertionFailedException
868
+ */
869
+ public static function contains($string, $needle, $message = null, $propertyPath = null, $encoding = 'utf8')
870
+ {
871
+ static::string($string, $message, $propertyPath);
872
+
873
+ if (mb_strpos($string, $needle, null, $encoding) === false) {
874
+ $message = sprintf(
875
+ $message ?: 'Value "%s" does not contain "%s".',
876
+ static::stringify($string),
877
+ static::stringify($needle)
878
+ );
879
+
880
+ $constraints = array('needle' => $needle, 'encoding' => $encoding);
881
+ throw static::createException($string, $message, static::INVALID_STRING_CONTAINS, $propertyPath, $constraints);
882
+ }
883
+
884
+ return true;
885
+ }
886
+
887
+ /**
888
+ * Assert that value is in array of choices.
889
+ *
890
+ * @param mixed $value
891
+ * @param array $choices
892
+ * @param string|null $message
893
+ * @param string|null $propertyPath
894
+ * @return bool
895
+ * @throws \Assert\AssertionFailedException
896
+ */
897
+ public static function choice($value, array $choices, $message = null, $propertyPath = null)
898
+ {
899
+ if (! in_array($value, $choices, true)) {
900
+ $message = sprintf(
901
+ $message ?: 'Value "%s" is not an element of the valid values: %s',
902
+ static::stringify($value),
903
+ implode(", ", array_map('Assert\Assertion::stringify', $choices))
904
+ );
905
+
906
+ throw static::createException($value, $message, static::INVALID_CHOICE, $propertyPath, array('choices' => $choices));
907
+ }
908
+
909
+ return true;
910
+ }
911
+
912
+ /**
913
+ * Alias of {@see choice()}
914
+ *
915
+ * @param mixed $value
916
+ * @param array $choices
917
+ * @param string|null $message
918
+ * @param string|null $propertyPath
919
+ * @return bool
920
+ */
921
+ public static function inArray($value, array $choices, $message = null, $propertyPath = null)
922
+ {
923
+ return static::choice($value, $choices, $message, $propertyPath);
924
+ }
925
+
926
+ /**
927
+ * Assert that value is numeric.
928
+ *
929
+ * @param mixed $value
930
+ * @param string|null $message
931
+ * @param string|null $propertyPath
932
+ * @return bool
933
+ * @throws \Assert\AssertionFailedException
934
+ */
935
+ public static function numeric($value, $message = null, $propertyPath = null)
936
+ {
937
+ if (! is_numeric($value)) {
938
+ $message = sprintf(
939
+ $message ?: 'Value "%s" is not numeric.',
940
+ static::stringify($value)
941
+ );
942
+
943
+ throw static::createException($value, $message, static::INVALID_NUMERIC, $propertyPath);
944
+ }
945
+
946
+ return true;
947
+ }
948
+
949
+ /**
950
+ * Assert that value is an array.
951
+ *
952
+ * @param mixed $value
953
+ * @param string|null $message
954
+ * @param string|null $propertyPath
955
+ * @return bool
956
+ * @throws \Assert\AssertionFailedException
957
+ */
958
+ public static function isArray($value, $message = null, $propertyPath = null)
959
+ {
960
+ if (! is_array($value)) {
961
+ $message = sprintf(
962
+ $message ?: 'Value "%s" is not an array.',
963
+ static::stringify($value)
964
+ );
965
+
966
+ throw static::createException($value, $message, static::INVALID_ARRAY, $propertyPath);
967
+ }
968
+
969
+ return true;
970
+ }
971
+
972
+ /**
973
+ * Assert that value is an array or a traversable object.
974
+ *
975
+ * @param mixed $value
976
+ * @param string|null $message
977
+ * @param string|null $propertyPath
978
+ * @return bool
979
+ * @throws \Assert\AssertionFailedException
980
+ */
981
+ public static function isTraversable($value, $message = null, $propertyPath = null)
982
+ {
983
+ if (! is_array($value) && ! $value instanceof \Traversable) {
984
+ $message = sprintf(
985
+ $message ?: 'Value "%s" is not an array and does not implement Traversable.',
986
+ static::stringify($value)
987
+ );
988
+
989
+ throw static::createException($value, $message, static::INVALID_TRAVERSABLE, $propertyPath);
990
+ }
991
+
992
+ return true;
993
+ }
994
+
995
+ /**
996
+ * Assert that value is an array or an array-accessible object.
997
+ *
998
+ * @param mixed $value
999
+ * @param string|null $message
1000
+ * @param string|null $propertyPath
1001
+ * @return bool
1002
+ * @throws \Assert\AssertionFailedException
1003
+ */
1004
+ public static function isArrayAccessible($value, $message = null, $propertyPath = null)
1005
+ {
1006
+ if (! is_array($value) && ! $value instanceof \ArrayAccess) {
1007
+ $message = sprintf(
1008
+ $message ?: 'Value "%s" is not an array and does not implement ArrayAccess.',
1009
+ static::stringify($value)
1010
+ );
1011
+
1012
+ throw static::createException($value, $message, static::INVALID_ARRAY_ACCESSIBLE, $propertyPath);
1013
+ }
1014
+
1015
+ return true;
1016
+ }
1017
+
1018
+ /**
1019
+ * Assert that key exists in an array
1020
+ *
1021
+ * @param mixed $value
1022
+ * @param string|integer $key
1023
+ * @param string|null $message
1024
+ * @param string|null $propertyPath
1025
+ * @return bool
1026
+ * @throws \Assert\AssertionFailedException
1027
+ */
1028
+ public static function keyExists($value, $key, $message = null, $propertyPath = null)
1029
+ {
1030
+ static::isArray($value, $message, $propertyPath);
1031
+
1032
+ if (! array_key_exists($key, $value)) {
1033
+ $message = sprintf(
1034
+ $message ?: 'Array does not contain an element with key "%s"',
1035
+ static::stringify($key)
1036
+ );
1037
+
1038
+ throw static::createException($value, $message, static::INVALID_KEY_EXISTS, $propertyPath, array('key' => $key));
1039
+ }
1040
+
1041
+ return true;
1042
+ }
1043
+
1044
+ /**
1045
+ * Assert that key does not exist in an array
1046
+ *
1047
+ * @param mixed $value
1048
+ * @param string|integer $key
1049
+ * @param string|null $message
1050
+ * @param string|null $propertyPath
1051
+ * @return bool
1052
+ * @throws \Assert\AssertionFailedException
1053
+ */
1054
+ public static function keyNotExists($value, $key, $message = null, $propertyPath = null)
1055
+ {
1056
+ static::isArray($value, $message, $propertyPath);
1057
+
1058
+ if (array_key_exists($key, $value)) {
1059
+ $message = sprintf(
1060
+ $message ?: 'Array contains an element with key "%s"',
1061
+ self::stringify($key)
1062
+ );
1063
+
1064
+ throw static::createException($value, $message, static::INVALID_KEY_NOT_EXISTS, $propertyPath, array('key' => $key));
1065
+ }
1066
+
1067
+ return true;
1068
+ }
1069
+
1070
+ /**
1071
+ * Assert that key exists in an array/array-accessible object using isset()
1072
+ *
1073
+ * @param mixed $value
1074
+ * @param string|integer $key
1075
+ * @param string|null $message
1076
+ * @param string|null $propertyPath
1077
+ * @return bool
1078
+ * @throws \Assert\AssertionFailedException
1079
+ */
1080
+ public static function keyIsset($value, $key, $message = null, $propertyPath = null)
1081
+ {
1082
+ static::isArrayAccessible($value, $message, $propertyPath);
1083
+
1084
+ if (! isset($value[$key])) {
1085
+ $message = sprintf(
1086
+ $message ?: 'The element with key "%s" was not found',
1087
+ static::stringify($key)
1088
+ );
1089
+
1090
+ throw static::createException($value, $message, static::INVALID_KEY_ISSET, $propertyPath, array('key' => $key));
1091
+ }
1092
+
1093
+ return true;
1094
+ }
1095
+
1096
+ /**
1097
+ * Assert that key exists in an array/array-accessible object and it's value is not empty.
1098
+ *
1099
+ * @param mixed $value
1100
+ * @param string|integer $key
1101
+ * @param string|null $message
1102
+ * @param string|null $propertyPath
1103
+ * @return bool
1104
+ * @throws \Assert\AssertionFailedException
1105
+ */
1106
+ public static function notEmptyKey($value, $key, $message = null, $propertyPath = null)
1107
+ {
1108
+ static::keyIsset($value, $key, $message, $propertyPath);
1109
+ static::notEmpty($value[$key], $message, $propertyPath);
1110
+
1111
+ return true;
1112
+ }
1113
+
1114
+ /**
1115
+ * Assert that value is not blank
1116
+ *
1117
+ * @param mixed $value
1118
+ * @param string|null $message
1119
+ * @param string|null $propertyPath
1120
+ * @return bool
1121
+ * @throws \Assert\AssertionFailedException
1122
+ */
1123
+ public static function notBlank($value, $message = null, $propertyPath = null)
1124
+ {
1125
+ if (false === $value || (empty($value) && '0' != $value) || (is_string($value) && '' === trim($value))) {
1126
+ $message = sprintf(
1127
+ $message ?: 'Value "%s" is blank, but was expected to contain a value.',
1128
+ static::stringify($value)
1129
+ );
1130
+
1131
+ throw static::createException($value, $message, static::INVALID_NOT_BLANK, $propertyPath);
1132
+ }
1133
+
1134
+ return true;
1135
+ }
1136
+
1137
+ /**
1138
+ * Assert that value is instance of given class-name.
1139
+ *
1140
+ * @param mixed $value
1141
+ * @param string $className
1142
+ * @param string|null $message
1143
+ * @param string|null $propertyPath
1144
+ * @return bool
1145
+ * @throws \Assert\AssertionFailedException
1146
+ */
1147
+ public static function isInstanceOf($value, $className, $message = null, $propertyPath = null)
1148
+ {
1149
+ if (! ($value instanceof $className)) {
1150
+ $message = sprintf(
1151
+ $message ?: 'Class "%s" was expected to be instanceof of "%s" but is not.',
1152
+ static::stringify($value),
1153
+ $className
1154
+ );
1155
+
1156
+ throw static::createException($value, $message, static::INVALID_INSTANCE_OF, $propertyPath, array('class' => $className));
1157
+ }
1158
+
1159
+ return true;
1160
+ }
1161
+
1162
+ /**
1163
+ * Assert that value is not instance of given class-name.
1164
+ *
1165
+ * @param mixed $value
1166
+ * @param string $className
1167
+ * @param string|null $message
1168
+ * @param string|null $propertyPath
1169
+ * @return bool
1170
+ * @throws \Assert\AssertionFailedException
1171
+ */
1172
+ public static function notIsInstanceOf($value, $className, $message = null, $propertyPath = null)
1173
+ {
1174
+ if ($value instanceof $className) {
1175
+ $message = sprintf(
1176
+ $message ?: 'Class "%s" was not expected to be instanceof of "%s".',
1177
+ static::stringify($value),
1178
+ $className
1179
+ );
1180
+
1181
+ throw static::createException($value, $message, static::INVALID_NOT_INSTANCE_OF, $propertyPath, array('class' => $className));
1182
+ }
1183
+
1184
+ return true;
1185
+ }
1186
+
1187
+ /**
1188
+ * Assert that value is subclass of given class-name.
1189
+ *
1190
+ * @param mixed $value
1191
+ * @param string $className
1192
+ * @param string|null $message
1193
+ * @param string|null $propertyPath
1194
+ * @return bool
1195
+ * @throws \Assert\AssertionFailedException
1196
+ */
1197
+ public static function subclassOf($value, $className, $message = null, $propertyPath = null)
1198
+ {
1199
+ if (! is_subclass_of($value, $className)) {
1200
+ $message = sprintf(
1201
+ $message ?: 'Class "%s" was expected to be subclass of "%s".',
1202
+ static::stringify($value),
1203
+ $className
1204
+ );
1205
+
1206
+ throw static::createException($value, $message, static::INVALID_SUBCLASS_OF, $propertyPath, array('class' => $className));
1207
+ }
1208
+
1209
+ return true;
1210
+ }
1211
+
1212
+ /**
1213
+ * Assert that value is in range of numbers.
1214
+ *
1215
+ * @param mixed $value
1216
+ * @param integer $minValue
1217
+ * @param integer $maxValue
1218
+ * @param string|null $message
1219
+ * @param string|null $propertyPath
1220
+ * @return bool
1221
+ * @throws \Assert\AssertionFailedException
1222
+ */
1223
+ public static function range($value, $minValue, $maxValue, $message = null, $propertyPath = null)
1224
+ {
1225
+ static::numeric($value, $message, $propertyPath);
1226
+
1227
+ if ($value < $minValue || $value > $maxValue) {
1228
+ $message = sprintf(
1229
+ $message ?: 'Number "%s" was expected to be at least "%d" and at most "%d".',
1230
+ static::stringify($value),
1231
+ static::stringify($minValue),
1232
+ static::stringify($maxValue)
1233
+ );
1234
+
1235
+ throw static::createException($value, $message, static::INVALID_RANGE, $propertyPath, array('min' => $minValue, 'max' => $maxValue));
1236
+ }
1237
+
1238
+ return true;
1239
+ }
1240
+
1241
+ /**
1242
+ * Assert that a value is at least as big as a given limit
1243
+ *
1244
+ * @param mixed $value
1245
+ * @param mixed $minValue
1246
+ * @param string|null $message
1247
+ * @param string|null $propertyPath
1248
+ * @return bool
1249
+ * @throws \Assert\AssertionFailedException
1250
+ */
1251
+ public static function min($value, $minValue, $message = null, $propertyPath = null)
1252
+ {
1253
+ static::numeric($value, $message, $propertyPath);
1254
+
1255
+ if ($value < $minValue) {
1256
+ $message = sprintf(
1257
+ $message ?: 'Number "%s" was expected to be at least "%s".',
1258
+ static::stringify($value),
1259
+ static::stringify($minValue)
1260
+ );
1261
+
1262
+ throw static::createException($value, $message, static::INVALID_MIN, $propertyPath, array('min' => $minValue));
1263
+ }
1264
+
1265
+ return true;
1266
+ }
1267
+
1268
+ /**
1269
+ * Assert that a number is smaller as a given limit
1270
+ *
1271
+ * @param mixed $value
1272
+ * @param mixed $maxValue
1273
+ * @param string|null $message
1274
+ * @param string|null $propertyPath
1275
+ * @return bool
1276
+ * @throws \Assert\AssertionFailedException
1277
+ */
1278
+ public static function max($value, $maxValue, $message = null, $propertyPath = null)
1279
+ {
1280
+ static::numeric($value, $message, $propertyPath);
1281
+
1282
+ if ($value > $maxValue) {
1283
+ $message = sprintf(
1284
+ $message ?: 'Number "%s" was expected to be at most "%s".',
1285
+ static::stringify($value),
1286
+ static::stringify($maxValue)
1287
+ );
1288
+
1289
+ throw static::createException($value, $message, static::INVALID_MAX, $propertyPath, array('max' => $maxValue));
1290
+ }
1291
+
1292
+ return true;
1293
+ }
1294
+
1295
+ /**
1296
+ * Assert that a file exists
1297
+ *
1298
+ * @param string $value
1299
+ * @param string|null $message
1300
+ * @param string|null $propertyPath
1301
+ * @return bool
1302
+ * @throws \Assert\AssertionFailedException
1303
+ */
1304
+ public static function file($value, $message = null, $propertyPath = null)
1305
+ {
1306
+ static::string($value, $message, $propertyPath);
1307
+ static::notEmpty($value, $message, $propertyPath);
1308
+
1309
+ if (! is_file($value)) {
1310
+ $message = sprintf(
1311
+ $message ?: 'File "%s" was expected to exist.',
1312
+ static::stringify($value)
1313
+ );
1314
+
1315
+ throw static::createException($value, $message, static::INVALID_FILE, $propertyPath);
1316
+ }
1317
+
1318
+ return true;
1319
+ }
1320
+
1321
+ /**
1322
+ * Assert that a directory exists
1323
+ *
1324
+ * @param string $value
1325
+ * @param string|null $message
1326
+ * @param string|null $propertyPath
1327
+ * @return bool
1328
+ * @throws \Assert\AssertionFailedException
1329
+ */
1330
+ public static function directory($value, $message = null, $propertyPath = null)
1331
+ {
1332
+ static::string($value, $message, $propertyPath);
1333
+
1334
+ if (! is_dir($value)) {
1335
+ $message = sprintf(
1336
+ $message ?: 'Path "%s" was expected to be a directory.',
1337
+ static::stringify($value)
1338
+ );
1339
+
1340
+ throw static::createException($value, $message, static::INVALID_DIRECTORY, $propertyPath);
1341
+ }
1342
+
1343
+ return true;
1344
+ }
1345
+
1346
+ /**
1347
+ * Assert that the value is something readable
1348
+ *
1349
+ * @param string $value
1350
+ * @param string|null $message
1351
+ * @param string|null $propertyPath
1352
+ * @return bool
1353
+ * @throws \Assert\AssertionFailedException
1354
+ */
1355
+ public static function readable($value, $message = null, $propertyPath = null)
1356
+ {
1357
+ static::string($value, $message, $propertyPath);
1358
+
1359
+ if (! is_readable($value)) {
1360
+ $message = sprintf(
1361
+ $message ?: 'Path "%s" was expected to be readable.',
1362
+ static::stringify($value)
1363
+ );
1364
+
1365
+ throw static::createException($value, $message, static::INVALID_READABLE, $propertyPath);
1366
+ }
1367
+
1368
+ return true;
1369
+ }
1370
+
1371
+ /**
1372
+ * Assert that the value is something writeable
1373
+ *
1374
+ * @param string $value
1375
+ * @param string|null $message
1376
+ * @param string|null $propertyPath
1377
+ * @return bool
1378
+ * @throws \Assert\AssertionFailedException
1379
+ */
1380
+ public static function writeable($value, $message = null, $propertyPath = null)
1381
+ {
1382
+ static::string($value, $message, $propertyPath);
1383
+
1384
+ if (! is_writeable($value)) {
1385
+ $message = sprintf(
1386
+ $message ?: 'Path "%s" was expected to be writeable.',
1387
+ static::stringify($value)
1388
+ );
1389
+
1390
+ throw static::createException($value, $message, static::INVALID_WRITEABLE, $propertyPath);
1391
+ }
1392
+
1393
+ return true;
1394
+ }
1395
+
1396
+ /**
1397
+ * Assert that value is an email adress (using input_filter/FILTER_VALIDATE_EMAIL).
1398
+ *
1399
+ * @param mixed $value
1400
+ * @param string|null $message
1401
+ * @param string|null $propertyPath
1402
+ * @return bool
1403
+ * @throws \Assert\AssertionFailedException
1404
+ */
1405
+ public static function email($value, $message = null, $propertyPath = null)
1406
+ {
1407
+ static::string($value, $message, $propertyPath);
1408
+
1409
+ if (! filter_var($value, FILTER_VALIDATE_EMAIL)) {
1410
+ $message = sprintf(
1411
+ $message ?: 'Value "%s" was expected to be a valid e-mail address.',
1412
+ static::stringify($value)
1413
+ );
1414
+
1415
+ throw static::createException($value, $message, static::INVALID_EMAIL, $propertyPath);
1416
+ } else {
1417
+ $host = substr($value, strpos($value, '@') + 1);
1418
+
1419
+ // Likely not a FQDN, bug in PHP FILTER_VALIDATE_EMAIL prior to PHP 5.3.3
1420
+ if (version_compare(PHP_VERSION, '5.3.3', '<') && strpos($host, '.') === false) {
1421
+ $message = sprintf(
1422
+ $message ?: 'Value "%s" was expected to be a valid e-mail address.',
1423
+ static::stringify($value)
1424
+ );
1425
+
1426
+ throw static::createException($value, $message, static::INVALID_EMAIL, $propertyPath);
1427
+ }
1428
+ }
1429
+
1430
+ return true;
1431
+ }
1432
+
1433
+ /**
1434
+ * Assert that value is an URL.
1435
+ *
1436
+ * This code snipped was taken from the Symfony project and modified to the special demands of this method.
1437
+ *
1438
+ * @param mixed $value
1439
+ * @param string|null $message
1440
+ * @param string|null $propertyPath
1441
+ * @return bool
1442
+ * @throws \Assert\AssertionFailedException
1443
+ *
1444
+ *
1445
+ * @link https://github.com/symfony/Validator/blob/master/Constraints/UrlValidator.php
1446
+ * @link https://github.com/symfony/Validator/blob/master/Constraints/Url.php
1447
+ */
1448
+ public static function url($value, $message = null, $propertyPath = null)
1449
+ {
1450
+ static::string($value, $message, $propertyPath);
1451
+
1452
+ $protocols = array('http', 'https');
1453
+
1454
+ $pattern = '~^
1455
+ (%s):// # protocol
1456
+ (([\pL\pN-]+:)?([\pL\pN-]+)@)? # basic auth
1457
+ (
1458
+ ([\pL\pN\pS-\.])+(\.?([\pL\pN]|xn\-\-[\pL\pN-]+)+\.?) # a domain name
1459
+ | # or
1460
+ \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address
1461
+ | # or
1462
+ \[
1463
+ (?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::))))
1464
+ \] # an IPv6 address
1465
+ )
1466
+ (:[0-9]+)? # a port (optional)
1467
+ (/?|/\S+|\?\S*|\#\S*) # a /, nothing, a / with something, a query or a fragment
1468
+ $~ixu';
1469
+
1470
+ $pattern = sprintf($pattern, implode('|', $protocols));
1471
+
1472
+ if (!preg_match($pattern, $value)) {
1473
+ $message = sprintf(
1474
+ $message ?: 'Value "%s" was expected to be a valid URL starting with http or https',
1475
+ static::stringify($value)
1476
+ );
1477
+
1478
+ throw static::createException($value, $message, static::INVALID_URL, $propertyPath);
1479
+ }
1480
+
1481
+ return true;
1482
+ }
1483
+
1484
+ /**
1485
+ * Assert that value is alphanumeric.
1486
+ *
1487
+ * @param mixed $value
1488
+ * @param string|null $message
1489
+ * @param string|null $propertyPath
1490
+ * @return bool
1491
+ * @throws \Assert\AssertionFailedException
1492
+ */
1493
+ public static function alnum($value, $message = null, $propertyPath = null)
1494
+ {
1495
+ try {
1496
+ static::regex($value, '(^([a-zA-Z]{1}[a-zA-Z0-9]*)$)', $message, $propertyPath);
1497
+ } catch (AssertionFailedException $e) {
1498
+ $message = sprintf(
1499
+ $message ?: 'Value "%s" is not alphanumeric, starting with letters and containing only letters and numbers.',
1500
+ static::stringify($value)
1501
+ );
1502
+
1503
+ throw static::createException($value, $message, static::INVALID_ALNUM, $propertyPath);
1504
+ }
1505
+
1506
+ return true;
1507
+ }
1508
+
1509
+ /**
1510
+ * Assert that the value is boolean True.
1511
+ *
1512
+ * @param mixed $value
1513
+ * @param string|null $message
1514
+ * @param string|null $propertyPath
1515
+ * @return bool
1516
+ * @throws \Assert\AssertionFailedException
1517
+ */
1518
+ public static function true($value, $message = null, $propertyPath = null)
1519
+ {
1520
+ if ($value !== true) {
1521
+ $message = sprintf(
1522
+ $message ?: 'Value "%s" is not TRUE.',
1523
+ static::stringify($value)
1524
+ );
1525
+
1526
+ throw static::createException($value, $message, static::INVALID_TRUE, $propertyPath);
1527
+ }
1528
+
1529
+ return true;
1530
+ }
1531
+
1532
+ /**
1533
+ * Assert that the value is boolean False.
1534
+ *
1535
+ * @param mixed $value
1536
+ * @param string|null $message
1537
+ * @param string|null $propertyPath
1538
+ * @return bool
1539
+ * @throws \Assert\AssertionFailedException
1540
+ */
1541
+ public static function false($value, $message = null, $propertyPath = null)
1542
+ {
1543
+ if ($value !== false) {
1544
+ $message = sprintf(
1545
+ $message ?: 'Value "%s" is not FALSE.',
1546
+ static::stringify($value)
1547
+ );
1548
+
1549
+ throw static::createException($value, $message, static::INVALID_FALSE, $propertyPath);
1550
+ }
1551
+
1552
+ return true;
1553
+ }
1554
+
1555
+ /**
1556
+ * Assert that the class exists.
1557
+ *
1558
+ * @param mixed $value
1559
+ * @param string|null $message
1560
+ * @param string|null $propertyPath
1561
+ * @return bool
1562
+ * @throws \Assert\AssertionFailedException
1563
+ */
1564
+ public static function classExists($value, $message = null, $propertyPath = null)
1565
+ {
1566
+ if (! class_exists($value)) {
1567
+ $message = sprintf(
1568
+ $message ?: 'Class "%s" does not exist.',
1569
+ static::stringify($value)
1570
+ );
1571
+
1572
+ throw static::createException($value, $message, static::INVALID_CLASS, $propertyPath);
1573
+ }
1574
+
1575
+ return true;
1576
+ }
1577
+
1578
+ /**
1579
+ * Assert that the interface exists.
1580
+ *
1581
+ * @param mixed $value
1582
+ * @param string|null $message
1583
+ * @param string|null $propertyPath
1584
+ * @return bool
1585
+ * @throws \Assert\AssertionFailedException
1586
+ */
1587
+ public static function interfaceExists($value, $message = null, $propertyPath = null)
1588
+ {
1589
+ if (! class_exists($value)) {
1590
+ $message = sprintf(
1591
+ $message ?: 'Interface "%s" does not exist.',
1592
+ static::stringify($value)
1593
+ );
1594
+
1595
+ throw static::createException($value, $message, static::INVALID_INTERFACE, $propertyPath);
1596
+ }
1597
+
1598
+ return true;
1599
+ }
1600
+
1601
+ /**
1602
+ * Assert that the class implements the interface
1603
+ *
1604
+ * @param mixed $class
1605
+ * @param string $interfaceName
1606
+ * @param string|null $message
1607
+ * @param string|null $propertyPath
1608
+ * @return bool
1609
+ * @throws \Assert\AssertionFailedException
1610
+ */
1611
+ public static function implementsInterface($class, $interfaceName, $message = null, $propertyPath = null)
1612
+ {
1613
+ $reflection = new \ReflectionClass($class);
1614
+ if (! $reflection->implementsInterface($interfaceName)) {
1615
+ $message = sprintf(
1616
+ $message ?: 'Class "%s" does not implement interface "%s".',
1617
+ static::stringify($class),
1618
+ static::stringify($interfaceName)
1619
+ );
1620
+
1621
+ throw static::createException($class, $message, static::INTERFACE_NOT_IMPLEMENTED, $propertyPath, array('interface' => $interfaceName));
1622
+ }
1623
+
1624
+ return true;
1625
+ }
1626
+
1627
+ /**
1628
+ * Assert that the given string is a valid json string.
1629
+ *
1630
+ * NOTICE:
1631
+ * Since this does a json_decode to determine its validity
1632
+ * you probably should consider, when using the variable
1633
+ * content afterwards, just to decode and check for yourself instead
1634
+ * of using this assertion.
1635
+ *
1636
+ * @param mixed $value
1637
+ * @param string|null $message
1638
+ * @param string|null $propertyPath
1639
+ * @return bool
1640
+ * @throws \Assert\AssertionFailedException
1641
+ */
1642
+ public static function isJsonString($value, $message = null, $propertyPath = null)
1643
+ {
1644
+ if (null === json_decode($value) && JSON_ERROR_NONE !== json_last_error()) {
1645
+ $message = sprintf(
1646
+ $message ?: 'Value "%s" is not a valid JSON string.',
1647
+ static::stringify($value)
1648
+ );
1649
+
1650
+ throw static::createException($value, $message, static::INVALID_JSON_STRING, $propertyPath);
1651
+ }
1652
+
1653
+ return true;
1654
+ }
1655
+
1656
+ /**
1657
+ * Assert that the given string is a valid UUID
1658
+ *
1659
+ * Uses code from {@link https://github.com/ramsey/uuid} that is MIT licensed.
1660
+ *
1661
+ * @param string $value
1662
+ * @param string|null $message
1663
+ * @param string|null $propertyPath
1664
+ * @return bool
1665
+ * @throws \Assert\AssertionFailedException
1666
+ */
1667
+ public static function uuid($value, $message = null, $propertyPath = null)
1668
+ {
1669
+ $value = str_replace(array('urn:', 'uuid:', '{', '}'), '', $value);
1670
+
1671
+ if ($value === '00000000-0000-0000-0000-000000000000') {
1672
+ return true;
1673
+ }
1674
+
1675
+ if (!preg_match('/^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$/', $value)) {
1676
+ $message = sprintf(
1677
+ $message ?: 'Value "%s" is not a valid UUID.',
1678
+ static::stringify($value)
1679
+ );
1680
+
1681
+ throw static::createException($value, $message, static::INVALID_UUID, $propertyPath);
1682
+ }
1683
+
1684
+ return true;
1685
+ }
1686
+
1687
+ /**
1688
+ * Assert that the given string is a valid E164 Phone Number
1689
+ *
1690
+ * @link https://en.wikipedia.org/wiki/E.164
1691
+ *
1692
+ * @param string $value
1693
+ * @param string|null $message
1694
+ * @param string|null $propertyPath
1695
+ * @return bool
1696
+ * @throws \Assert\AssertionFailedException
1697
+ */
1698
+ public static function e164($value, $message = null, $propertyPath = null)
1699
+ {
1700
+ if (!preg_match('/^\+?[1-9]\d{1,14}$/', $value)) {
1701
+ $message = sprintf(
1702
+ $message ?: 'Value "%s" is not a valid E164.',
1703
+ static::stringify($value)
1704
+ );
1705
+
1706
+ throw static::createException($value, $message, static::INVALID_E164, $propertyPath);
1707
+ }
1708
+
1709
+ return true;
1710
+ }
1711
+
1712
+ /**
1713
+ * Assert that the count of countable is equal to count.
1714
+ *
1715
+ * @param array|\Countable $countable
1716
+ * @param int $count
1717
+ * @param string $message
1718
+ * @param string $propertyPath
1719
+ * @return bool
1720
+ * @throws \Assert\AssertionFailedException
1721
+ */
1722
+ public static function count($countable, $count, $message = null, $propertyPath = null)
1723
+ {
1724
+ if ($count !== count($countable)) {
1725
+ $message = sprintf(
1726
+ $message ?: 'List does not contain exactly "%d" elements.',
1727
+ static::stringify($count)
1728
+ );
1729
+
1730
+ throw static::createException($countable, $message, static::INVALID_COUNT, $propertyPath, array('count' => $count));
1731
+ }
1732
+
1733
+ return true;
1734
+ }
1735
+
1736
+ /**
1737
+ * static call handler to implement:
1738
+ * - "null or assertion" delegation
1739
+ * - "all" delegation
1740
+ *
1741
+ * @param string $method
1742
+ * @param array $args
1743
+ *
1744
+ * @return bool|mixed
1745
+ */
1746
+ public static function __callStatic($method, $args)
1747
+ {
1748
+ if (strpos($method, "nullOr") === 0) {
1749
+ if (! array_key_exists(0, $args)) {
1750
+ throw new BadMethodCallException("Missing the first argument.");
1751
+ }
1752
+
1753
+ if ($args[0] === null) {
1754
+ return true;
1755
+ }
1756
+
1757
+ $method = substr($method, 6);
1758
+
1759
+ return call_user_func_array(array(get_called_class(), $method), $args);
1760
+ }
1761
+
1762
+ if (strpos($method, "all") === 0) {
1763
+ if (! array_key_exists(0, $args)) {
1764
+ throw new BadMethodCallException("Missing the first argument.");
1765
+ }
1766
+
1767
+ static::isTraversable($args[0]);
1768
+
1769
+ $method = substr($method, 3);
1770
+ $values = array_shift($args);
1771
+ $calledClass = get_called_class();
1772
+
1773
+ foreach ($values as $value) {
1774
+ call_user_func_array(array($calledClass, $method), array_merge(array($value), $args));
1775
+ }
1776
+
1777
+ return true;
1778
+ }
1779
+
1780
+ throw new BadMethodCallException("No assertion Assertion#" . $method . " exists.");
1781
+ }
1782
+
1783
+ /**
1784
+ * Determines if the values array has every choice as key and that this choice has content.
1785
+ *
1786
+ * @param array $values
1787
+ * @param array $choices
1788
+ * @param null $message
1789
+ * @param null $propertyPath
1790
+ * @return bool
1791
+ */
1792
+ public static function choicesNotEmpty(array $values, array $choices, $message = null, $propertyPath = null)
1793
+ {
1794
+ self::notEmpty($values, $message, $propertyPath);
1795
+
1796
+ foreach ($choices as $choice) {
1797
+ self::notEmptyKey($values, $choice, $message, $propertyPath);
1798
+ }
1799
+
1800
+ return true;
1801
+ }
1802
+
1803
+ /**
1804
+ * Determines that the named method is defined in the provided object.
1805
+ *
1806
+ * @param string $value
1807
+ * @param mixed $object
1808
+ * @param null $message
1809
+ * @param null $propertyPath
1810
+ * @return bool
1811
+ * @throws
1812
+ */
1813
+ public static function methodExists($value, $object, $message = null, $propertyPath = null)
1814
+ {
1815
+ self::isObject($object, $message, $propertyPath);
1816
+
1817
+ if (!method_exists($object, $value)) {
1818
+ $message = sprintf(
1819
+ $message ?: 'Expected "%s" does not exist in provided object.',
1820
+ static::stringify($value)
1821
+ );
1822
+
1823
+ throw static::createException($value, $message, static::INVALID_METHOD, $propertyPath);
1824
+ }
1825
+
1826
+ return true;
1827
+ }
1828
+
1829
+ /**
1830
+ * Determines that the provided value is an object.
1831
+ *
1832
+ * @param mixed $value
1833
+ * @param null $message
1834
+ * @param null $propertyPath
1835
+ * @return bool
1836
+ */
1837
+ public static function isObject($value, $message = null, $propertyPath = null)
1838
+ {
1839
+ if (!is_object($value)) {
1840
+ $message = sprintf(
1841
+ $message ?: 'Provided "%s" is not a valid object.',
1842
+ static::stringify($value)
1843
+ );
1844
+
1845
+ throw static::createException($value, $message, static::INVALID_OBJECT, $propertyPath);
1846
+ }
1847
+
1848
+ return true;
1849
+ }
1850
+
1851
+ /**
1852
+ * Determines if the value is less than given limit.
1853
+ *
1854
+ * @param mixed $value
1855
+ * @param mixed $limit
1856
+ * @param null $message
1857
+ * @param null $propertyPath
1858
+ * @return bool
1859
+ */
1860
+ public static function lessThan($value, $limit, $message = null, $propertyPath = null)
1861
+ {
1862
+ if ($value >= $limit) {
1863
+ $message = sprintf(
1864
+ $message ?: 'Provided "%s" is not less than "%s".',
1865
+ static::stringify($value),
1866
+ static::stringify($limit)
1867
+ );
1868
+
1869
+ throw static::createException($value, $message, static::INVALID_LESS, $propertyPath);
1870
+ }
1871
+
1872
+ return true;
1873
+ }
1874
+
1875
+ /**
1876
+ * Determines if the value is less or than given limit.
1877
+ *
1878
+ * @param mixed $value
1879
+ * @param mixed $limit
1880
+ * @param null $message
1881
+ * @param null $propertyPath
1882
+ * @return bool
1883
+ */
1884
+ public static function lessOrEqualThan($value, $limit, $message = null, $propertyPath = null)
1885
+ {
1886
+ if ($value > $limit) {
1887
+ $message = sprintf(
1888
+ $message ?: 'Provided "%s" is not less or equal than "%s".',
1889
+ static::stringify($value),
1890
+ static::stringify($limit)
1891
+ );
1892
+
1893
+ throw static::createException($value, $message, static::INVALID_LESS_OR_EQUAL, $propertyPath);
1894
+ }
1895
+
1896
+ return true;
1897
+ }
1898
+
1899
+ /**
1900
+ * Determines if the value is greater than given limit.
1901
+ *
1902
+ * @param mixed $value
1903
+ * @param mixed $limit
1904
+ * @param null $message
1905
+ * @param null $propertyPath
1906
+ * @return bool
1907
+ */
1908
+ public static function greaterThan($value, $limit, $message = null, $propertyPath = null)
1909
+ {
1910
+ if ($value <= $limit) {
1911
+ $message = sprintf(
1912
+ $message ?: 'Provided "%s" is not greater than "%s".',
1913
+ static::stringify($value),
1914
+ static::stringify($limit)
1915
+ );
1916
+
1917
+ throw static::createException($value, $message, static::INVALID_GREATER, $propertyPath);
1918
+ }
1919
+
1920
+ return true;
1921
+ }
1922
+
1923
+ /**
1924
+ * Determines if the value is greater or equal than given limit.
1925
+ *
1926
+ * @param mixed $value
1927
+ * @param mixed $limit
1928
+ * @param null $message
1929
+ * @param null $propertyPath
1930
+ * @return bool
1931
+ */
1932
+ public static function greaterOrEqualThan($value, $limit, $message = null, $propertyPath = null)
1933
+ {
1934
+ if ($value < $limit) {
1935
+ $message = sprintf(
1936
+ $message ?: 'Provided "%s" is not greater or equal than "%s".',
1937
+ static::stringify($value),
1938
+ static::stringify($limit)
1939
+ );
1940
+
1941
+ throw static::createException($value, $message, static::INVALID_GREATER_OR_EQUAL, $propertyPath);
1942
+ }
1943
+
1944
+ return true;
1945
+ }
1946
+
1947
+ /**
1948
+ * Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit.
1949
+ *
1950
+ * @param mixed $value
1951
+ * @param mixed $lowerLimit
1952
+ * @param mixed $upperLimit
1953
+ * @param string $message
1954
+ * @param string $propertyPath
1955
+ * @return bool
1956
+ */
1957
+ public static function between($value, $lowerLimit, $upperLimit, $message = null, $propertyPath = null)
1958
+ {
1959
+ if ($lowerLimit > $value || $value > $upperLimit) {
1960
+ $message = sprintf(
1961
+ $message ?: 'Provided "%s" is neither greater than or equal to "%s" nor less than or equal to "%s".',
1962
+ static::stringify($value),
1963
+ static::stringify($lowerLimit),
1964
+ static::stringify($upperLimit)
1965
+ );
1966
+
1967
+ throw static::createException($value, $message, static::INVALID_BETWEEN, $propertyPath);
1968
+ }
1969
+
1970
+ return true;
1971
+ }
1972
+
1973
+ /**
1974
+ * Assert that a value is greater than a lower limit, and less than an upper limit.
1975
+ *
1976
+ * @param mixed $value
1977
+ * @param mixed $lowerLimit
1978
+ * @param mixed $upperLimit
1979
+ * @param string $message
1980
+ * @param string $propertyPath
1981
+ * @return bool
1982
+ */
1983
+ public static function betweenExclusive($value, $lowerLimit, $upperLimit, $message = null, $propertyPath = null)
1984
+ {
1985
+ if ($lowerLimit >= $value || $value >= $upperLimit) {
1986
+ $message = sprintf(
1987
+ $message ?: 'Provided "%s" is neither greater than "%s" nor less than "%s".',
1988
+ static::stringify($value),
1989
+ static::stringify($lowerLimit),
1990
+ static::stringify($upperLimit)
1991
+ );
1992
+
1993
+ throw static::createException($value, $message, static::INVALID_BETWEEN_EXCLUSIVE, $propertyPath);
1994
+ }
1995
+
1996
+ return true;
1997
+ }
1998
+
1999
+ /**
2000
+ * Assert that date is valid and corresponds to the given format.
2001
+ *
2002
+ * @param string $value
2003
+ * @param string $format supports all of the options date(), except for the following:
2004
+ * N, w, W, t, L, o, B, a, A, g, h, I, O, P, Z, c, r.
2005
+ * @param string|null $message
2006
+ * @param string|null $propertyPath
2007
+ * @return bool
2008
+ *
2009
+ * @link http://php.net/manual/function.date.php#refsect1-function.date-parameters
2010
+ */
2011
+ public static function date($value, $format, $message = null, $propertyPath = null)
2012
+ {
2013
+ static::string($value, $message, $propertyPath);
2014
+ static::string($format, $message, $propertyPath);
2015
+
2016
+ $dateTime = \DateTime::createFromFormat($format, $value);
2017
+
2018
+ if (false === $dateTime || $value !== $dateTime->format($format)) {
2019
+ $message = sprintf(
2020
+ $message ?: 'Date "%s" is invalid or does not match format "%s".',
2021
+ static::stringify($value),
2022
+ static::stringify($format)
2023
+ );
2024
+
2025
+ throw static::createException($value, $message, static::INVALID_DATE, $propertyPath, array('format' => $format));
2026
+ }
2027
+
2028
+ return true;
2029
+ }
2030
+
2031
+ /**
2032
+ * Determines that the provided value is callable.
2033
+ *
2034
+ * @param mixed $value
2035
+ * @param null $message
2036
+ * @param null $propertyPath
2037
+ * @return bool
2038
+ */
2039
+ public static function isCallable($value, $message = null, $propertyPath = null)
2040
+ {
2041
+ if (!is_callable($value)) {
2042
+ $message = sprintf(
2043
+ $message ?: 'Provided "%s" is not a callable.',
2044
+ static::stringify($value)
2045
+ );
2046
+
2047
+ throw static::createException($value, $message, static::INVALID_CALLABLE, $propertyPath);
2048
+ }
2049
+
2050
+ return true;
2051
+ }
2052
+
2053
+ /**
2054
+ * Assert that the provided value is valid according to a callback.
2055
+ *
2056
+ * If the callback returns `false` the assertion will fail.
2057
+ *
2058
+ * @param mixed $value
2059
+ * @param callable $callback
2060
+ * @param string|null $message
2061
+ * @param string|null $propertyPath
2062
+ * @return bool
2063
+ */
2064
+ public static function satisfy($value, $callback, $message = null, $propertyPath = null)
2065
+ {
2066
+ static::isCallable($callback);
2067
+
2068
+ if (call_user_func($callback, $value) === false) {
2069
+ $message = sprintf(
2070
+ $message ?: 'Provided "%s" is invalid according to custom rule.',
2071
+ static::stringify($value)
2072
+ );
2073
+
2074
+ throw static::createException($value, $message, static::INVALID_SATISFY, $propertyPath);
2075
+ }
2076
+
2077
+ return true;
2078
+ }
2079
+
2080
+ /**
2081
+ * Assert that value is an IPv4 or IPv6 address
2082
+ * (using input_filter/FILTER_VALIDATE_IP).
2083
+ *
2084
+ * @param string $value
2085
+ * @param null|int $flag
2086
+ * @param string|null $message
2087
+ * @param string|null $propertyPath
2088
+ * @return bool
2089
+ *
2090
+ * @link http://php.net/manual/filter.filters.flags.php
2091
+ */
2092
+ public static function ip($value, $flag = null, $message = null, $propertyPath = null)
2093
+ {
2094
+ self::string($value, $message, $propertyPath);
2095
+ if (!filter_var($value, FILTER_VALIDATE_IP, $flag)) {
2096
+ $message = sprintf(
2097
+ $message ?: 'Value "%s" was expected to be a valid IP address.',
2098
+ self::stringify($value)
2099
+ );
2100
+ throw static::createException($value, $message, static::INVALID_IP, $propertyPath);
2101
+ }
2102
+
2103
+ return true;
2104
+ }
2105
+
2106
+ /**
2107
+ * Assert that value is an IPv4 address
2108
+ * (using input_filter/FILTER_VALIDATE_IP).
2109
+ *
2110
+ * @param string $value
2111
+ * @param null|int $flag
2112
+ * @param string|null $message
2113
+ * @param string|null $propertyPath
2114
+ * @return bool
2115
+ *
2116
+ * @link http://php.net/manual/filter.filters.flags.php
2117
+ */
2118
+ public static function ipv4($value, $flag = null, $message = null, $propertyPath = null)
2119
+ {
2120
+ self::ip($value, $flag | FILTER_FLAG_IPV4, $message ?: 'Value "%s" was expected to be a valid IPv4 address.', $propertyPath);
2121
+
2122
+ return true;
2123
+ }
2124
+
2125
+ /**
2126
+ * Assert that value is an IPv6 address
2127
+ * (using input_filter/FILTER_VALIDATE_IP).
2128
+ *
2129
+ * @param string $value
2130
+ * @param null|int $flag
2131
+ * @param string|null $message
2132
+ * @param string|null $propertyPath
2133
+ * @return bool
2134
+ *
2135
+ * @link http://php.net/manual/filter.filters.flags.php
2136
+ */
2137
+ public static function ipv6($value, $flag = null, $message = null, $propertyPath = null)
2138
+ {
2139
+ self::ip($value, $flag | FILTER_FLAG_IPV6, $message ?: 'Value "%s" was expected to be a valid IPv6 address.', $propertyPath);
2140
+
2141
+ return true;
2142
+ }
2143
+
2144
+ /**
2145
+ * Make a string version of a value.
2146
+ *
2147
+ * @param mixed $value
2148
+ * @return string
2149
+ */
2150
+ protected static function stringify($value)
2151
+ {
2152
+ if (is_bool($value)) {
2153
+ return $value ? '<TRUE>' : '<FALSE>';
2154
+ }
2155
+
2156
+ if (is_scalar($value)) {
2157
+ $val = (string)$value;
2158
+
2159
+ if (strlen($val) > 100) {
2160
+ $val = substr($val, 0, 97) . '...';
2161
+ }
2162
+
2163
+ return $val;
2164
+ }
2165
+
2166
+ if (is_array($value)) {
2167
+ return '<ARRAY>';
2168
+ }
2169
+
2170
+ if (is_object($value)) {
2171
+ return get_class($value);
2172
+ }
2173
+
2174
+ if (is_resource($value)) {
2175
+ return '<RESOURCE>';
2176
+ }
2177
+
2178
+ if ($value === null) {
2179
+ return '<NULL>';
2180
+ }
2181
+
2182
+ return 'unknown';
2183
+ }
2184
+ }
lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/AssertionChain.php ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Assert
4
+ *
5
+ * LICENSE
6
+ *
7
+ * This source file is subject to the MIT license that is bundled
8
+ * with this package in the file LICENSE.txt.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ *
12
+ * to kontakt@beberlei.de so I can send you a copy immediately.
13
+ */
14
+
15
+ namespace Assert;
16
+
17
+ use ReflectionClass;
18
+
19
+ /**
20
+ * Chaining builder for assertions
21
+ *
22
+ * @author Benjamin Eberlei <kontakt@beberlei.de>
23
+ *
24
+ * @method AssertionChain alnum($message = null, $propertyPath = null) Assert that value is alphanumeric.
25
+ * @method AssertionChain between($lowerLimit, $upperLimit, $message = null, $propertyPath = null) Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit.
26
+ * @method AssertionChain betweenExclusive($lowerLimit, $upperLimit, $message = null, $propertyPath = null) Assert that a value is greater than a lower limit, and less than an upper limit.
27
+ * @method AssertionChain betweenLength($minLength, $maxLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string length is between min,max lengths.
28
+ * @method AssertionChain boolean($message = null, $propertyPath = null) Assert that value is php boolean.
29
+ * @method AssertionChain choice($choices, $message = null, $propertyPath = null) Assert that value is in array of choices.
30
+ * @method AssertionChain choicesNotEmpty($choices, $message = null, $propertyPath = null) Determines if the values array has every choice as key and that this choice has content.
31
+ * @method AssertionChain classExists($message = null, $propertyPath = null) Assert that the class exists.
32
+ * @method AssertionChain contains($needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string contains a sequence of chars.
33
+ * @method AssertionChain count($count, $message = null, $propertyPath = null) Assert that the count of countable is equal to count.
34
+ * @method AssertionChain date($format, $message = null, $propertyPath = null) Assert that date is valid and corresponds to the given format.
35
+ * @method AssertionChain digit($message = null, $propertyPath = null) Validates if an integer or integerish is a digit.
36
+ * @method AssertionChain directory($message = null, $propertyPath = null) Assert that a directory exists.
37
+ * @method AssertionChain e164($message = null, $propertyPath = null) Assert that the given string is a valid E164 Phone Number.
38
+ * @method AssertionChain email($message = null, $propertyPath = null) Assert that value is an email adress (using input_filter/FILTER_VALIDATE_EMAIL).
39
+ * @method AssertionChain endsWith($needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string ends with a sequence of chars.
40
+ * @method AssertionChain eq($value2, $message = null, $propertyPath = null) Assert that two values are equal (using == ).
41
+ * @method AssertionChain false($message = null, $propertyPath = null) Assert that the value is boolean False.
42
+ * @method AssertionChain file($message = null, $propertyPath = null) Assert that a file exists.
43
+ * @method AssertionChain float($message = null, $propertyPath = null) Assert that value is a php float.
44
+ * @method AssertionChain greaterOrEqualThan($limit, $message = null, $propertyPath = null) Determines if the value is greater or equal than given limit.
45
+ * @method AssertionChain greaterThan($limit, $message = null, $propertyPath = null) Determines if the value is greater than given limit.
46
+ * @method AssertionChain implementsInterface($interfaceName, $message = null, $propertyPath = null) Assert that the class implements the interface.
47
+ * @method AssertionChain inArray($choices, $message = null, $propertyPath = null) Alias of {@see choice()}.
48
+ * @method AssertionChain integer($message = null, $propertyPath = null) Assert that value is a php integer.
49
+ * @method AssertionChain integerish($message = null, $propertyPath = null) Assert that value is a php integer'ish.
50
+ * @method AssertionChain interfaceExists($message = null, $propertyPath = null) Assert that the interface exists.
51
+ * @method AssertionChain ip($flag = null, $message = null, $propertyPath = null) Assert that value is an IPv4 or IPv6 address.
52
+ * @method AssertionChain ipv4($flag = null, $message = null, $propertyPath = null) Assert that value is an IPv4 address.
53
+ * @method AssertionChain ipv6($flag = null, $message = null, $propertyPath = null) Assert that value is an IPv6 address.
54
+ * @method AssertionChain isArray($message = null, $propertyPath = null) Assert that value is an array.
55
+ * @method AssertionChain isArrayAccessible($message = null, $propertyPath = null) Assert that value is an array or an array-accessible object.
56
+ * @method AssertionChain isCallable($message = null, $propertyPath = null) Determines that the provided value is callable.
57
+ * @method AssertionChain isInstanceOf($className, $message = null, $propertyPath = null) Assert that value is instance of given class-name.
58
+ * @method AssertionChain isJsonString($message = null, $propertyPath = null) Assert that the given string is a valid json string.
59
+ * @method AssertionChain isObject($message = null, $propertyPath = null) Determines that the provided value is an object.
60
+ * @method AssertionChain isTraversable($message = null, $propertyPath = null) Assert that value is an array or a traversable object.
61
+ * @method AssertionChain keyExists($key, $message = null, $propertyPath = null) Assert that key exists in an array.
62
+ * @method AssertionChain keyIsset($key, $message = null, $propertyPath = null) Assert that key exists in an array/array-accessible object using isset().
63
+ * @method AssertionChain keyNotExists($key, $message = null, $propertyPath = null) Assert that key does not exist in an array.
64
+ * @method AssertionChain length($length, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string has a given length.
65
+ * @method AssertionChain lessOrEqualThan($limit, $message = null, $propertyPath = null) Determines if the value is less or than given limit.
66
+ * @method AssertionChain lessThan($limit, $message = null, $propertyPath = null) Determines if the value is less than given limit.
67
+ * @method AssertionChain max($maxValue, $message = null, $propertyPath = null) Assert that a number is smaller as a given limit.
68
+ * @method AssertionChain maxLength($maxLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string value is not longer than $maxLength chars.
69
+ * @method AssertionChain methodExists($object, $message = null, $propertyPath = null) Determines that the named method is defined in the provided object.
70
+ * @method AssertionChain min($minValue, $message = null, $propertyPath = null) Assert that a value is at least as big as a given limit.
71
+ * @method AssertionChain minLength($minLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that a string is at least $minLength chars long.
72
+ * @method AssertionChain noContent($message = null, $propertyPath = null) Assert that value is empty.
73
+ * @method AssertionChain notBlank($message = null, $propertyPath = null) Assert that value is not blank.
74
+ * @method AssertionChain notEmpty($message = null, $propertyPath = null) Assert that value is not empty.
75
+ * @method AssertionChain notEmptyKey($key, $message = null, $propertyPath = null) Assert that key exists in an array/array-accessible object and it's value is not empty.
76
+ * @method AssertionChain notEq($value2, $message = null, $propertyPath = null) Assert that two values are not equal (using == ).
77
+ * @method AssertionChain notInArray($choices, $message = null, $propertyPath = null) Assert that value is not in array of choices.
78
+ * @method AssertionChain notIsInstanceOf($className, $message = null, $propertyPath = null) Assert that value is not instance of given class-name.
79
+ * @method AssertionChain notNull($message = null, $propertyPath = null) Assert that value is not null.
80
+ * @method AssertionChain notSame($value2, $message = null, $propertyPath = null) Assert that two values are not the same (using === ).
81
+ * @method AssertionChain null($message = null, $propertyPath = null) Assert that value is null.
82
+ * @method AssertionChain numeric($message = null, $propertyPath = null) Assert that value is numeric.
83
+ * @method AssertionChain range($minValue, $maxValue, $message = null, $propertyPath = null) Assert that value is in range of numbers.
84
+ * @method AssertionChain readable($message = null, $propertyPath = null) Assert that the value is something readable.
85
+ * @method AssertionChain regex($pattern, $message = null, $propertyPath = null) Assert that value matches a regex.
86
+ * @method AssertionChain same($value2, $message = null, $propertyPath = null) Assert that two values are the same (using ===).
87
+ * @method AssertionChain satisfy($callback, $message = null, $propertyPath = null) Assert that the provided value is valid according to a callback.
88
+ * @method AssertionChain scalar($message = null, $propertyPath = null) Assert that value is a PHP scalar.
89
+ * @method AssertionChain startsWith($needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string starts with a sequence of chars.
90
+ * @method AssertionChain string($message = null, $propertyPath = null) Assert that value is a string.
91
+ * @method AssertionChain subclassOf($className, $message = null, $propertyPath = null) Assert that value is subclass of given class-name.
92
+ * @method AssertionChain true($message = null, $propertyPath = null) Assert that the value is boolean True.
93
+ * @method AssertionChain url($message = null, $propertyPath = null) Assert that value is an URL.
94
+ * @method AssertionChain uuid($message = null, $propertyPath = null) Assert that the given string is a valid UUID.
95
+ * @method AssertionChain writeable($message = null, $propertyPath = null) Assert that the value is something writeable.
96
+ */
97
+ class AssertionChain
98
+ {
99
+ private $value;
100
+ private $defaultMessage;
101
+ private $defaultPropertyPath;
102
+
103
+ /**
104
+ * Return each assertion as always valid.
105
+ *
106
+ * @var bool
107
+ */
108
+ private $alwaysValid = false;
109
+
110
+ /**
111
+ * Perform assertion on every element of array or traversable.
112
+ *
113
+ * @var bool
114
+ */
115
+ private $all = false;
116
+
117
+ public function __construct($value, $defaultMessage = null, $defaultPropertyPath = null)
118
+ {
119
+ $this->value = $value;
120
+ $this->defaultMessage = $defaultMessage;
121
+ $this->defaultPropertyPath = $defaultPropertyPath;
122
+ }
123
+
124
+ /**
125
+ * Call assertion on the current value in the chain.
126
+ *
127
+ * @param string $methodName
128
+ * @param array $args
129
+ *
130
+ * @return \Assert\AssertionChain
131
+ */
132
+ public function __call($methodName, $args)
133
+ {
134
+ if ($this->alwaysValid === true) {
135
+ return $this;
136
+ }
137
+
138
+ if (!method_exists('Assert\Assertion', $methodName)) {
139
+ throw new \RuntimeException("Assertion '" . $methodName . "' does not exist.");
140
+ }
141
+
142
+ $reflClass = new ReflectionClass('Assert\Assertion');
143
+ $method = $reflClass->getMethod($methodName);
144
+
145
+ array_unshift($args, $this->value);
146
+ $params = $method->getParameters();
147
+
148
+ foreach ($params as $idx => $param) {
149
+ if (isset($args[$idx])) {
150
+ continue;
151
+ }
152
+
153
+ if ($param->getName() == 'message') {
154
+ $args[$idx] = $this->defaultMessage;
155
+ }
156
+
157
+ if ($param->getName() == 'propertyPath') {
158
+ $args[$idx] = $this->defaultPropertyPath;
159
+ }
160
+ }
161
+
162
+ if ($this->all) {
163
+ $methodName = 'all' . $methodName;
164
+ }
165
+
166
+ call_user_func_array(array('Assert\Assertion', $methodName), $args);
167
+
168
+ return $this;
169
+ }
170
+
171
+ /**
172
+ * Switch chain into validation mode for an array of values.
173
+ *
174
+ * @return \Assert\AssertionChain
175
+ */
176
+ public function all()
177
+ {
178
+ $this->all = true;
179
+
180
+ return $this;
181
+ }
182
+
183
+ /**
184
+ * Switch chain into mode allowing nulls, ignoring further assertions.
185
+ *
186
+ * @return \Assert\AssertionChain
187
+ */
188
+ public function nullOr()
189
+ {
190
+ if ($this->value === null) {
191
+ $this->alwaysValid = true;
192
+ }
193
+
194
+ return $this;
195
+ }
196
+ }
lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/AssertionFailedException.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Assert
4
+ *
5
+ * LICENSE
6
+ *
7
+ * This source file is subject to the new BSD license that is bundled
8
+ * with this package in the file LICENSE.txt.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to kontakt@beberlei.de so I can send you a copy immediately.
12
+ */
13
+
14
+ namespace Assert;
15
+
16
+ interface AssertionFailedException
17
+ {
18
+ public function getPropertyPath();
19
+ public function getValue();
20
+ public function getConstraints();
21
+ }
lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/InvalidArgumentException.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Assert
4
+ *
5
+ * LICENSE
6
+ *
7
+ * This source file is subject to the new BSD license that is bundled
8
+ * with this package in the file LICENSE.txt.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to kontakt@beberlei.de so I can send you a copy immediately.
12
+ */
13
+
14
+ namespace Assert;
15
+
16
+ class InvalidArgumentException extends \InvalidArgumentException implements AssertionFailedException
17
+ {
18
+ private $propertyPath;
19
+ private $value;
20
+ private $constraints;
21
+
22
+ public function __construct($message, $code, $propertyPath = null, $value, array $constraints = array())
23
+ {
24
+ parent::__construct($message, $code);
25
+
26
+ $this->propertyPath = $propertyPath;
27
+ $this->value = $value;
28
+ $this->constraints = $constraints;
29
+ }
30
+
31
+ /**
32
+ * User controlled way to define a sub-property causing
33
+ * the failure of a currently asserted objects.
34
+ *
35
+ * Useful to transport information about the nature of the error
36
+ * back to higher layers.
37
+ *
38
+ * @return string
39
+ */
40
+ public function getPropertyPath()
41
+ {
42
+ return $this->propertyPath;
43
+ }
44
+
45
+ /**
46
+ * Get the value that caused the assertion to fail.
47
+ *
48
+ * @return mixed
49
+ */
50
+ public function getValue()
51
+ {
52
+ return $this->value;
53
+ }
54
+
55
+ /**
56
+ * Get the constraints that applied to the failed assertion.
57
+ *
58
+ * @return array
59
+ */
60
+ public function getConstraints()
61
+ {
62
+ return $this->constraints;
63
+ }
64
+ }
lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/LazyAssertion.php ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Assert
4
+ *
5
+ * LICENSE
6
+ *
7
+ * This source file is subject to the MIT license that is bundled
8
+ * with this package in the file LICENSE.txt.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to kontakt@beberlei.de so I can send you a copy immediately.
12
+ */
13
+
14
+ namespace Assert;
15
+
16
+ /**
17
+ * Chaining builder for lazy assertions
18
+ *
19
+ * @author Benjamin Eberlei <kontakt@beberlei.de>
20
+ *
21
+ * @method LazyAssertion alnum($message = null, $propertyPath = null) Assert that value is alphanumeric.
22
+ * @method LazyAssertion between($lowerLimit, $upperLimit, $message = null, $propertyPath = null) Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit.
23
+ * @method LazyAssertion betweenExclusive($lowerLimit, $upperLimit, $message = null, $propertyPath = null) Assert that a value is greater than a lower limit, and less than an upper limit.
24
+ * @method LazyAssertion betweenLength($minLength, $maxLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string length is between min,max lengths.
25
+ * @method LazyAssertion boolean($message = null, $propertyPath = null) Assert that value is php boolean.
26
+ * @method LazyAssertion choice($choices, $message = null, $propertyPath = null) Assert that value is in array of choices.
27
+ * @method LazyAssertion choicesNotEmpty($choices, $message = null, $propertyPath = null) Determines if the values array has every choice as key and that this choice has content.
28
+ * @method LazyAssertion classExists($message = null, $propertyPath = null) Assert that the class exists.
29
+ * @method LazyAssertion contains($needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string contains a sequence of chars.
30
+ * @method LazyAssertion count($count, $message = null, $propertyPath = null) Assert that the count of countable is equal to count.
31
+ * @method LazyAssertion date($format, $message = null, $propertyPath = null) Assert that date is valid and corresponds to the given format.
32
+ * @method LazyAssertion digit($message = null, $propertyPath = null) Validates if an integer or integerish is a digit.
33
+ * @method LazyAssertion directory($message = null, $propertyPath = null) Assert that a directory exists.
34
+ * @method LazyAssertion e164($message = null, $propertyPath = null) Assert that the given string is a valid E164 Phone Number.
35
+ * @method LazyAssertion email($message = null, $propertyPath = null) Assert that value is an email adress (using input_filter/FILTER_VALIDATE_EMAIL).
36
+ * @method LazyAssertion endsWith($needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string ends with a sequence of chars.
37
+ * @method LazyAssertion eq($value2, $message = null, $propertyPath = null) Assert that two values are equal (using == ).
38
+ * @method LazyAssertion false($message = null, $propertyPath = null) Assert that the value is boolean False.
39
+ * @method LazyAssertion file($message = null, $propertyPath = null) Assert that a file exists.
40
+ * @method LazyAssertion float($message = null, $propertyPath = null) Assert that value is a php float.
41
+ * @method LazyAssertion greaterOrEqualThan($limit, $message = null, $propertyPath = null) Determines if the value is greater or equal than given limit.
42
+ * @method LazyAssertion greaterThan($limit, $message = null, $propertyPath = null) Determines if the value is greater than given limit.
43
+ * @method LazyAssertion implementsInterface($interfaceName, $message = null, $propertyPath = null) Assert that the class implements the interface.
44
+ * @method LazyAssertion inArray($choices, $message = null, $propertyPath = null) Alias of {@see choice()}.
45
+ * @method LazyAssertion integer($message = null, $propertyPath = null) Assert that value is a php integer.
46
+ * @method LazyAssertion integerish($message = null, $propertyPath = null) Assert that value is a php integer'ish.
47
+ * @method LazyAssertion interfaceExists($message = null, $propertyPath = null) Assert that the interface exists.
48
+ * @method LazyAssertion ip($flag = null, $message = null, $propertyPath = null) Assert that value is an IPv4 or IPv6 address.
49
+ * @method LazyAssertion ipv4($flag = null, $message = null, $propertyPath = null) Assert that value is an IPv4 address.
50
+ * @method LazyAssertion ipv6($flag = null, $message = null, $propertyPath = null) Assert that value is an IPv6 address.
51
+ * @method LazyAssertion isArray($message = null, $propertyPath = null) Assert that value is an array.
52
+ * @method LazyAssertion isArrayAccessible($message = null, $propertyPath = null) Assert that value is an array or an array-accessible object.
53
+ * @method LazyAssertion isCallable($message = null, $propertyPath = null) Determines that the provided value is callable.
54
+ * @method LazyAssertion isInstanceOf($className, $message = null, $propertyPath = null) Assert that value is instance of given class-name.
55
+ * @method LazyAssertion isJsonString($message = null, $propertyPath = null) Assert that the given string is a valid json string.
56
+ * @method LazyAssertion isObject($message = null, $propertyPath = null) Determines that the provided value is an object.
57
+ * @method LazyAssertion isTraversable($message = null, $propertyPath = null) Assert that value is an array or a traversable object.
58
+ * @method LazyAssertion keyExists($key, $message = null, $propertyPath = null) Assert that key exists in an array.
59
+ * @method LazyAssertion keyIsset($key, $message = null, $propertyPath = null) Assert that key exists in an array/array-accessible object using isset().
60
+ * @method LazyAssertion keyNotExists($key, $message = null, $propertyPath = null) Assert that key does not exist in an array.
61
+ * @method LazyAssertion length($length, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string has a given length.
62
+ * @method LazyAssertion lessOrEqualThan($limit, $message = null, $propertyPath = null) Determines if the value is less or than given limit.
63
+ * @method LazyAssertion lessThan($limit, $message = null, $propertyPath = null) Determines if the value is less than given limit.
64
+ * @method LazyAssertion max($maxValue, $message = null, $propertyPath = null) Assert that a number is smaller as a given limit.
65
+ * @method LazyAssertion maxLength($maxLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string value is not longer than $maxLength chars.
66
+ * @method LazyAssertion methodExists($object, $message = null, $propertyPath = null) Determines that the named method is defined in the provided object.
67
+ * @method LazyAssertion min($minValue, $message = null, $propertyPath = null) Assert that a value is at least as big as a given limit.
68
+ * @method LazyAssertion minLength($minLength, $message = null, $propertyPath = null, $encoding = "utf8") Assert that a string is at least $minLength chars long.
69
+ * @method LazyAssertion noContent($message = null, $propertyPath = null) Assert that value is empty.
70
+ * @method LazyAssertion notBlank($message = null, $propertyPath = null) Assert that value is not blank.
71
+ * @method LazyAssertion notEmpty($message = null, $propertyPath = null) Assert that value is not empty.
72
+ * @method LazyAssertion notEmptyKey($key, $message = null, $propertyPath = null) Assert that key exists in an array/array-accessible object and it's value is not empty.
73
+ * @method LazyAssertion notEq($value2, $message = null, $propertyPath = null) Assert that two values are not equal (using == ).
74
+ * @method LazyAssertion notInArray($choices, $message = null, $propertyPath = null) Assert that value is not in array of choices.
75
+ * @method LazyAssertion notIsInstanceOf($className, $message = null, $propertyPath = null) Assert that value is not instance of given class-name.
76
+ * @method LazyAssertion notNull($message = null, $propertyPath = null) Assert that value is not null.
77
+ * @method LazyAssertion notSame($value2, $message = null, $propertyPath = null) Assert that two values are not the same (using === ).
78
+ * @method LazyAssertion null($message = null, $propertyPath = null) Assert that value is null.
79
+ * @method LazyAssertion numeric($message = null, $propertyPath = null) Assert that value is numeric.
80
+ * @method LazyAssertion range($minValue, $maxValue, $message = null, $propertyPath = null) Assert that value is in range of numbers.
81
+ * @method LazyAssertion readable($message = null, $propertyPath = null) Assert that the value is something readable.
82
+ * @method LazyAssertion regex($pattern, $message = null, $propertyPath = null) Assert that value matches a regex.
83
+ * @method LazyAssertion same($value2, $message = null, $propertyPath = null) Assert that two values are the same (using ===).
84
+ * @method LazyAssertion satisfy($callback, $message = null, $propertyPath = null) Assert that the provided value is valid according to a callback.
85
+ * @method LazyAssertion scalar($message = null, $propertyPath = null) Assert that value is a PHP scalar.
86
+ * @method LazyAssertion startsWith($needle, $message = null, $propertyPath = null, $encoding = "utf8") Assert that string starts with a sequence of chars.
87
+ * @method LazyAssertion string($message = null, $propertyPath = null) Assert that value is a string.
88
+ * @method LazyAssertion subclassOf($className, $message = null, $propertyPath = null) Assert that value is subclass of given class-name.
89
+ * @method LazyAssertion true($message = null, $propertyPath = null) Assert that the value is boolean True.
90
+ * @method LazyAssertion url($message = null, $propertyPath = null) Assert that value is an URL.
91
+ * @method LazyAssertion uuid($message = null, $propertyPath = null) Assert that the given string is a valid UUID.
92
+ * @method LazyAssertion writeable($message = null, $propertyPath = null) Assert that the value is something writeable.
93
+ * @method LazyAssertion all() Switch chain into validation mode for an array of values.
94
+ * @method LazyAssertion nullOr() Switch chain into mode allowing nulls, ignoring further assertions.
95
+ */
96
+ class LazyAssertion
97
+ {
98
+ private $currentChainFailed = false;
99
+ private $currentChain;
100
+ private $errors = array();
101
+
102
+ public function that($value, $propertyPath, $defaultMessage = null)
103
+ {
104
+ $this->currentChainFailed = false;
105
+ $this->currentChain = \Assert\that($value, $defaultMessage, $propertyPath);
106
+
107
+ return $this;
108
+ }
109
+
110
+ public function __call($method, $args)
111
+ {
112
+ if ($this->currentChainFailed === true) {
113
+ return $this;
114
+ }
115
+
116
+ try {
117
+ call_user_func_array(array($this->currentChain, $method), $args);
118
+ } catch (AssertionFailedException $e) {
119
+ $this->errors[] = $e;
120
+ $this->currentChainFailed = true;
121
+ }
122
+
123
+ return $this;
124
+ }
125
+
126
+ /**
127
+ * @throws \Assert\LazyAssertionException
128
+ * @return bool
129
+ */
130
+ public function verifyNow()
131
+ {
132
+ if ($this->errors) {
133
+ throw LazyAssertionException::fromErrors($this->errors);
134
+ }
135
+
136
+ return true;
137
+ }
138
+ }
lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Assert
4
+ *
5
+ * LICENSE
6
+ *
7
+ * This source file is subject to the MIT license that is bundled
8
+ * with this package in the file LICENSE.txt.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to kontakt@beberlei.de so I can send you a copy immediately.
12
+ */
13
+
14
+ namespace Assert;
15
+
16
+ class LazyAssertionException extends \InvalidArgumentException
17
+ {
18
+ /**
19
+ * @var InvalidArgumentException[]
20
+ */
21
+ private $errors = array();
22
+
23
+ /**
24
+ * @param InvalidArgumentException[] $errors
25
+ * @return self
26
+ */
27
+ public static function fromErrors(array $errors)
28
+ {
29
+ $message = sprintf('The following %d assertions failed:', count($errors)) . "\n";
30
+
31
+ $i = 1;
32
+ foreach ($errors as $error) {
33
+ $message .= sprintf("%d) %s: %s\n", $i++, $error->getPropertyPath(), $error->getMessage());
34
+ }
35
+
36
+ return new self($message, $errors);
37
+ }
38
+
39
+ public function __construct($message, array $errors)
40
+ {
41
+ parent::__construct($message, 0);
42
+
43
+ $this->errors = $errors;
44
+ }
45
+
46
+ public function getErrorExceptions()
47
+ {
48
+ return $this->errors;
49
+ }
50
+ }
lib/Ing/Services/ing-php/vendor/beberlei/assert/lib/Assert/functions.php ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Assert
4
+ *
5
+ * LICENSE
6
+ *
7
+ * This source file is subject to the MIT license that is bundled
8
+ * with this package in the file LICENSE.txt.
9
+ * If you did not receive a copy of the license and are unable to
10
+ * obtain it through the world-wide-web, please send an email
11
+ * to kontakt@beberlei.de so I can send you a copy immediately.
12
+ */
13
+
14
+ namespace Assert;
15
+
16
+ if (!function_exists(__NAMESPACE__ . '\that')) {
17
+ /**
18
+ * Start validation on a value, returns {@link AssertionChain}
19
+ *
20
+ * The invocation of this method starts an assertion chain
21
+ * that is happening on the passed value.
22
+ *
23
+ * @example
24
+ *
25
+ * \Assert\that($value)->notEmpty()->integer();
26
+ * \Assert\that($value)->nullOr()->string()->startsWith("Foo");
27
+ *
28
+ * The assertion chain can be stateful, that means be careful when you reuse
29
+ * it. You should never pass around the chain.
30
+ *
31
+ * @param mixed $value
32
+ * @param string $defaultMessage
33
+ * @param string $defaultPropertyPath
34
+ *
35
+ * @return \Assert\AssertionChain
36
+ */
37
+ function that($value, $defaultMessage = null, $defaultPropertyPath = null)
38
+ {
39
+ return new AssertionChain($value, $defaultMessage, $defaultPropertyPath);
40
+ }
41
+ }
42
+
43
+ if (!function_exists(__NAMESPACE__ . '\thatAll')) {
44
+ /**
45
+ * Start validation on a set of values, returns {@link AssertionChain}
46
+ *
47
+ * @param mixed $values
48
+ * @param string $defaultMessage
49
+ * @param string $defaultPropertyPath
50
+ *
51
+ * @return \Assert\AssertionChain
52
+ */
53
+ function thatAll($values, $defaultMessage = null, $defaultPropertyPath = null)
54
+ {
55
+ return that($values, $defaultMessage, $defaultPropertyPath)->all();
56
+ }
57
+ }
58
+
59
+ if (!function_exists(__NAMESPACE__ . '\thatNullOr')) {
60
+ /**
61
+ * Start validation and allow NULL, returns {@link AssertionChain}
62
+ *
63
+ * @param mixed $value
64
+ * @param string $defaultMessage
65
+ * @param string $defaultPropertyPath
66
+ *
67
+ * @return \Assert\AssertionChain
68
+ */
69
+ function thatNullOr($value, $defaultMessage = null, $defaultPropertyPath = null)
70
+ {
71
+ return that($value, $defaultMessage, $defaultPropertyPath)->nullOr();
72
+ }
73
+ }
74
+
75
+ if (!function_exists(__NAMESPACE__ . '\lazy')) {
76
+ /**
77
+ * Create a lazy assertion object.
78
+ *
79
+ * @return \Assert\LazyAssertion
80
+ */
81
+ function lazy()
82
+ {
83
+ return new LazyAssertion();
84
+ }
85
+ }
lib/Ing/Services/ing-php/vendor/bin/phpcbf ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env php
2
+ <?php
3
+ /**
4
+ * PHP Code Beautifier and Fixer
5
+ *
6
+ * PHP version 5
7
+ *
8
+ * @category PHP
9
+ * @package PHP_CodeSniffer
10
+ * @author Greg Sherwood <gsherwood@squiz.net>
11
+ * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
12
+ * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
13
+ * @link http://pear.php.net/package/PHP_CodeSniffer
14
+ */
15
+
16
+ if (is_file(dirname(__FILE__).'/../CodeSniffer/CLI.php') === true) {
17
+ include_once dirname(__FILE__).'/../CodeSniffer/CLI.php';
18
+ } else {
19
+ include_once 'PHP/CodeSniffer/CLI.php';
20
+ }
21
+
22
+ $cli = new PHP_CodeSniffer_CLI();
23
+ $cli->runphpcbf();
lib/Ing/Services/ing-php/vendor/bin/phpcs ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env php
2
+ <?php
3
+ /**
4
+ * PHP_CodeSniffer tokenizes PHP code and detects violations of a
5
+ * defined set of coding standards.
6
+ *
7
+ * PHP version 5
8
+ *
9
+ * @category PHP
10
+ * @package PHP_CodeSniffer
11
+ * @author Greg Sherwood <gsherwood@squiz.net>
12
+ * @author Marc McIntyre <mmcintyre@squiz.net>
13
+ * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
14
+ * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
15
+ * @link http://pear.php.net/package/PHP_CodeSniffer
16
+ */
17
+
18
+ if (is_file(dirname(__FILE__).'/../CodeSniffer/CLI.php') === true) {
19
+ include_once dirname(__FILE__).'/../CodeSniffer/CLI.php';
20
+ } else {
21
+ include_once 'PHP/CodeSniffer/CLI.php';
22
+ }
23
+
24
+ $cli = new PHP_CodeSniffer_CLI();
25
+ $cli->runphpcs();
lib/Ing/Services/ing-php/vendor/bin/phpunit ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env php
2
+ <?php
3
+ /*
4
+ * This file is part of PHPUnit.
5
+ *
6
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ if (version_compare('5.3.3', PHP_VERSION, '>')) {
13
+ fwrite(
14
+ STDERR,
15
+ 'This version of PHPUnit requires PHP 5.3.3; using the latest version of PHP is highly recommended.' . PHP_EOL
16
+ );
17
+
18
+ die(1);
19
+ }
20
+
21
+ if (!ini_get('date.timezone')) {
22
+ ini_set('date.timezone', 'UTC');
23
+ }
24
+
25
+ foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
26
+ if (file_exists($file)) {
27
+ define('PHPUNIT_COMPOSER_INSTALL', $file);
28
+
29
+ break;
30
+ }
31
+ }
32
+
33
+ unset($file);
34
+
35
+ if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
36
+ fwrite(STDERR,
37
+ 'You need to set up the project dependencies using the following commands:' . PHP_EOL .
38
+ 'wget http://getcomposer.org/composer.phar' . PHP_EOL .
39
+ 'php composer.phar install' . PHP_EOL
40
+ );
41
+
42
+ die(1);
43
+ }
44
+
45
+ require PHPUNIT_COMPOSER_INSTALL;
46
+
47
+ PHPUnit_TextUI_Command::main();
lib/Ing/Services/ing-php/vendor/bin/uuid ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env php
2
+ <?php
3
+ /**
4
+ * This file is part of the Rhumsaa\Uuid library
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ *
9
+ * @copyright Copyright (c) 2013-2014 Ben Ramsey <http://benramsey.com>
10
+ * @license http://opensource.org/licenses/MIT MIT
11
+ */
12
+
13
+ date_default_timezone_set('UTC');
14
+
15
+ if (PHP_SAPI !== 'cli') {
16
+ die('uuid should be invoked via the CLI version of PHP, not the ' . PHP_SAPI . ' SAPI' . PHP_EOL);
17
+ }
18
+
19
+ $files = array(
20
+ __DIR__ . '/../vendor/autoload.php',
21
+ __DIR__ . '/../../../autoload.php',
22
+ );
23
+
24
+ foreach ($files as $file) {
25
+ if (file_exists($file)) {
26
+ require $file;
27
+ define('UUID_COMPOSER_INSTALL', $file);
28
+ break;
29
+ }
30
+ }
31
+
32
+ if (!defined('UUID_COMPOSER_INSTALL')) {
33
+ die(
34
+ 'You need to set up the project dependencies using the following commands:' . PHP_EOL .
35
+ 'curl -s http://getcomposer.org/installer | php' . PHP_EOL .
36
+ 'php composer.phar install' . PHP_EOL
37
+ );
38
+ }
39
+
40
+ // We require the Symfony Console component and Moontoast\Math to run
41
+ // this command line tool.
42
+ if (!class_exists('Symfony\Component\Console\Application') || !class_exists('Moontoast\Math\BigNumber')) {
43
+ die(
44
+ 'To use the uuid command line tool, you need to install symfony/console' . PHP_EOL .
45
+ 'and moontoast/math. To do so, run the following Composer commands:' . PHP_EOL .
46
+ '' . PHP_EOL .
47
+ 'composer.phar require "moontoast/math=~1.1" "symfony/console=~2.3"' . PHP_EOL
48
+ );
49
+ }
50
+
51
+ use Rhumsaa\Uuid\Console\Application;
52
+ use Rhumsaa\Uuid\Console\Command;
53
+
54
+ $app = new Application();
55
+ $app->add(new Command\GenerateCommand());
56
+ $app->add(new Command\DecodeCommand());
57
+ $app->run();
lib/Ing/Services/ing-php/vendor/composer/ClassLoader.php ADDED
@@ -0,0 +1,415 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
+ namespace Composer\Autoload;
14
+
15
+ /**
16
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
+ *
18
+ * $loader = new \Composer\Autoload\ClassLoader();
19
+ *
20
+ * // register classes with namespaces
21
+ * $loader->add('Symfony\Component', __DIR__.'/component');
22
+ * $loader->add('Symfony', __DIR__.'/framework');
23
+ *
24
+ * // activate the autoloader
25
+ * $loader->register();
26
+ *
27
+ * // to enable searching the include path (eg. for PEAR packages)
28
+ * $loader->setUseIncludePath(true);
29
+ *
30
+ * In this example, if you try to use a class in the Symfony\Component
31
+ * namespace or one of its children (Symfony\Component\Console for instance),
32
+ * the autoloader will first look for the class under the component/
33
+ * directory, and it will then fallback to the framework/ directory if not
34
+ * found before giving up.
35
+ *
36
+ * This class is loosely based on the Symfony UniversalClassLoader.
37
+ *
38
+ * @author Fabien Potencier <fabien@symfony.com>
39
+ * @author Jordi Boggiano <j.boggiano@seld.be>
40
+ * @see http://www.php-fig.org/psr/psr-0/
41
+ * @see http://www.php-fig.org/psr/psr-4/
42
+ */
43
+ class ClassLoader
44
+ {
45
+ // PSR-4
46
+ private $prefixLengthsPsr4 = array();
47
+ private $prefixDirsPsr4 = array();
48
+ private $fallbackDirsPsr4 = array();
49
+
50
+ // PSR-0
51
+ private $prefixesPsr0 = array();
52
+ private $fallbackDirsPsr0 = array();
53
+
54
+ private $useIncludePath = false;
55
+ private $classMap = array();
56
+ private $classMapAuthoritative = false;
57
+ private $missingClasses = array();
58
+
59
+ public function getPrefixes()
60
+ {
61
+ if (!empty($this->prefixesPsr0)) {
62
+ return call_user_func_array('array_merge', $this->prefixesPsr0);
63
+ }
64
+
65
+ return array();
66
+ }
67
+
68
+ public function getPrefixesPsr4()
69
+ {
70
+ return $this->prefixDirsPsr4;
71
+ }
72
+
73
+ public function getFallbackDirs()
74
+ {
75
+ return $this->fallbackDirsPsr0;
76
+ }
77
+
78
+ public function getFallbackDirsPsr4()
79
+ {
80
+ return $this->fallbackDirsPsr4;
81
+ }
82
+
83
+ public function getClassMap()
84
+ {
85
+ return $this->classMap;
86
+ }
87
+
88
+ /**
89
+ * @param array $classMap Class to filename map
90
+ */
91
+ public function addClassMap(array $classMap)
92
+ {
93
+ if ($this->classMap) {
94
+ $this->classMap = array_merge($this->classMap, $classMap);
95
+ } else {
96
+ $this->classMap = $classMap;
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Registers a set of PSR-0 directories for a given prefix, either
102
+ * appending or prepending to the ones previously set for this prefix.
103
+ *
104
+ * @param string $prefix The prefix
105
+ * @param array|string $paths The PSR-0 root directories
106
+ * @param bool $prepend Whether to prepend the directories
107
+ */
108
+ public function add($prefix, $paths, $prepend = false)
109
+ {
110
+ if (!$prefix) {
111
+ if ($prepend) {
112
+ $this->fallbackDirsPsr0 = array_merge(
113
+ (array) $paths,
114
+ $this->fallbackDirsPsr0
115
+ );
116
+ } else {
117
+ $this->fallbackDirsPsr0 = array_merge(
118
+ $this->fallbackDirsPsr0,
119
+ (array) $paths
120
+ );
121
+ }
122
+
123
+ return;
124
+ }
125
+
126
+ $first = $prefix[0];
127
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
128
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
129
+
130
+ return;
131
+ }
132
+ if ($prepend) {
133
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
134
+ (array) $paths,
135
+ $this->prefixesPsr0[$first][$prefix]
136
+ );
137
+ } else {
138
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
139
+ $this->prefixesPsr0[$first][$prefix],
140
+ (array) $paths
141
+ );
142
+ }
143
+ }
144
+
145
+ /**
146
+ * Registers a set of PSR-4 directories for a given namespace, either
147
+ * appending or prepending to the ones previously set for this namespace.
148
+ *
149
+ * @param string $prefix The prefix/namespace, with trailing '\\'
150
+ * @param array|string $paths The PSR-4 base directories
151
+ * @param bool $prepend Whether to prepend the directories
152
+ *
153
+ * @throws \InvalidArgumentException
154
+ */
155
+ public function addPsr4($prefix, $paths, $prepend = false)
156
+ {
157
+ if (!$prefix) {
158
+ // Register directories for the root namespace.
159
+ if ($prepend) {
160
+ $this->fallbackDirsPsr4 = array_merge(
161
+ (array) $paths,
162
+ $this->fallbackDirsPsr4
163
+ );
164
+ } else {
165
+ $this->fallbackDirsPsr4 = array_merge(
166
+ $this->fallbackDirsPsr4,
167
+ (array) $paths
168
+ );
169
+ }
170
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
171
+ // Register directories for a new namespace.
172
+ $length = strlen($prefix);
173
+ if ('\\' !== $prefix[$length - 1]) {
174
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
175
+ }
176
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
177
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
178
+ } elseif ($prepend) {
179
+ // Prepend directories for an already registered namespace.
180
+ $this->prefixDirsPsr4[$prefix] = array_merge(
181
+ (array) $paths,
182
+ $this->prefixDirsPsr4[$prefix]
183
+ );
184
+ } else {
185
+ // Append directories for an already registered namespace.
186
+ $this->prefixDirsPsr4[$prefix] = array_merge(
187
+ $this->prefixDirsPsr4[$prefix],
188
+ (array) $paths
189
+ );
190
+ }
191
+ }
192
+
193
+ /**
194
+ * Registers a set of PSR-0 directories for a given prefix,
195
+ * replacing any others previously set for this prefix.
196
+ *
197
+ * @param string $prefix The prefix
198
+ * @param array|string $paths The PSR-0 base directories
199
+ */
200
+ public function set($prefix, $paths)
201
+ {
202
+ if (!$prefix) {
203
+ $this->fallbackDirsPsr0 = (array) $paths;
204
+ } else {
205
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
206
+ }
207
+ }
208
+
209
+ /**
210
+ * Registers a set of PSR-4 directories for a given namespace,
211
+ * replacing any others previously set for this namespace.
212
+ *
213
+ * @param string $prefix The prefix/namespace, with trailing '\\'
214
+ * @param array|string $paths The PSR-4 base directories
215
+ *
216
+ * @throws \InvalidArgumentException
217
+ */
218
+ public function setPsr4($prefix, $paths)
219
+ {
220
+ if (!$prefix) {
221
+ $this->fallbackDirsPsr4 = (array) $paths;
222
+ } else {
223
+ $length = strlen($prefix);
224
+ if ('\\' !== $prefix[$length - 1]) {
225
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
226
+ }
227
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
228
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
229
+ }
230
+ }
231
+
232
+ /**
233
+ * Turns on searching the include path for class files.
234
+ *
235
+ * @param bool $useIncludePath
236
+ */
237
+ public function setUseIncludePath($useIncludePath)
238
+ {
239
+ $this->useIncludePath = $useIncludePath;
240
+ }
241
+
242
+ /**
243
+ * Can be used to check if the autoloader uses the include path to check
244
+ * for classes.
245
+ *
246
+ * @return bool
247
+ */
248
+ public function getUseIncludePath()
249
+ {
250
+ return $this->useIncludePath;
251
+ }
252
+
253
+ /**
254
+ * Turns off searching the prefix and fallback directories for classes
255
+ * that have not been registered with the class map.
256
+ *
257
+ * @param bool $classMapAuthoritative
258
+ */
259
+ public function setClassMapAuthoritative($classMapAuthoritative)
260
+ {
261
+ $this->classMapAuthoritative = $classMapAuthoritative;
262
+ }
263
+
264
+ /**
265
+ * Should class lookup fail if not found in the current class map?
266
+ *
267
+ * @return bool
268
+ */
269
+ public function isClassMapAuthoritative()
270
+ {
271
+ return $this->classMapAuthoritative;
272
+ }
273
+
274
+ /**
275
+ * Registers this instance as an autoloader.
276
+ *
277
+ * @param bool $prepend Whether to prepend the autoloader or not
278
+ */
279
+ public function register($prepend = false)
280
+ {
281
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
282
+ }
283
+
284
+ /**
285
+ * Unregisters this instance as an autoloader.
286
+ */
287
+ public function unregister()
288
+ {
289
+ spl_autoload_unregister(array($this, 'loadClass'));
290
+ }
291
+
292
+ /**
293
+ * Loads the given class or interface.
294
+ *
295
+ * @param string $class The name of the class
296
+ * @return bool|null True if loaded, null otherwise
297
+ */
298
+ public function loadClass($class)
299
+ {
300
+ if ($file = $this->findFile($class)) {
301
+ includeFile($file);
302
+
303
+ return true;
304
+ }
305
+ }
306
+
307
+ /**
308
+ * Finds the path to the file where the class is defined.
309
+ *
310
+ * @param string $class The name of the class
311
+ *
312
+ * @return string|false The path if found, false otherwise
313
+ */
314
+ public function findFile($class)
315
+ {
316
+ // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
317
+ if ('\\' == $class[0]) {
318
+ $class = substr($class, 1);
319
+ }
320
+
321
+ // class map lookup
322
+ if (isset($this->classMap[$class])) {
323
+ return $this->classMap[$class];
324
+ }
325
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
326
+ return false;
327
+ }
328
+
329
+ $file = $this->findFileWithExtension($class, '.php');
330
+
331
+ // Search for Hack files if we are running on HHVM
332
+ if (false === $file && defined('HHVM_VERSION')) {
333
+ $file = $this->findFileWithExtension($class, '.hh');
334
+ }
335
+
336
+ if (false === $file) {
337
+ // Remember that this class does not exist.
338
+ $this->missingClasses[$class] = true;
339
+ }
340
+
341
+ return $file;
342
+ }
343
+
344
+ private function findFileWithExtension($class, $ext)
345
+ {
346
+ // PSR-4 lookup
347
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
348
+
349
+ $first = $class[0];
350
+ if (isset($this->prefixLengthsPsr4[$first])) {
351
+ foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
352
+ if (0 === strpos($class, $prefix)) {
353
+ foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
354
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
355
+ return $file;
356
+ }
357
+ }
358
+ }
359
+ }
360
+ }
361
+
362
+ // PSR-4 fallback dirs
363
+ foreach ($this->fallbackDirsPsr4 as $dir) {
364
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
365
+ return $file;
366
+ }
367
+ }
368
+
369
+ // PSR-0 lookup
370
+ if (false !== $pos = strrpos($class, '\\')) {
371
+ // namespaced class name
372
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
373
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
374
+ } else {
375
+ // PEAR-like class name
376
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
377
+ }
378
+
379
+ if (isset($this->prefixesPsr0[$first])) {
380
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
381
+ if (0 === strpos($class, $prefix)) {
382
+ foreach ($dirs as $dir) {
383
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
384
+ return $file;
385
+ }
386
+ }
387
+ }
388
+ }
389
+ }
390
+
391
+ // PSR-0 fallback dirs
392
+ foreach ($this->fallbackDirsPsr0 as $dir) {
393
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
394
+ return $file;
395
+ }
396
+ }
397
+
398
+ // PSR-0 include paths.
399
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
400
+ return $file;
401
+ }
402
+
403
+ return false;
404
+ }
405
+ }
406
+
407
+ /**
408
+ * Scope isolated include.
409
+ *
410
+ * Prevents access to $this/self from included files.
411
+ */
412
+ function includeFile($file)
413
+ {
414
+ include $file;
415
+ }
lib/Ing/Services/ing-php/vendor/composer/LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Copyright (c) 2016 Nils Adermann, Jordi Boggiano
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is furnished
9
+ to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ THE SOFTWARE.
21
+
lib/Ing/Services/ing-php/vendor/composer/autoload_classmap.php ADDED
@@ -0,0 +1,763 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_classmap.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',
10
+ 'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',
11
+ 'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',
12
+ 'Generic_Sniffs_Arrays_DisallowLongArraySyntaxSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Arrays/DisallowLongArraySyntaxSniff.php',
13
+ 'Generic_Sniffs_Arrays_DisallowShortArraySyntaxSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Arrays/DisallowShortArraySyntaxSniff.php',
14
+ 'Generic_Sniffs_Classes_DuplicateClassNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php',
15
+ 'Generic_Sniffs_Classes_OpeningBraceSameLineSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Classes/OpeningBraceSameLineSniff.php',
16
+ 'Generic_Sniffs_CodeAnalysis_EmptyStatementSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/EmptyStatementSniff.php',
17
+ 'Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/ForLoopShouldBeWhileLoopSniff.php',
18
+ 'Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/ForLoopWithTestFunctionCallSniff.php',
19
+ 'Generic_Sniffs_CodeAnalysis_JumbledIncrementerSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/JumbledIncrementerSniff.php',
20
+ 'Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnconditionalIfStatementSniff.php',
21
+ 'Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php',
22
+ 'Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnusedFunctionParameterSniff.php',
23
+ 'Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php',
24
+ 'Generic_Sniffs_Commenting_DocCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Commenting/DocCommentSniff.php',
25
+ 'Generic_Sniffs_Commenting_FixmeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Commenting/FixmeSniff.php',
26
+ 'Generic_Sniffs_Commenting_TodoSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Commenting/TodoSniff.php',
27
+ 'Generic_Sniffs_ControlStructures_InlineControlStructureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/ControlStructures/InlineControlStructureSniff.php',
28
+ 'Generic_Sniffs_Debug_CSSLintSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/CSSLintSniff.php',
29
+ 'Generic_Sniffs_Debug_ClosureLinterSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/ClosureLinterSniff.php',
30
+ 'Generic_Sniffs_Debug_JSHintSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/JSHintSniff.php',
31
+ 'Generic_Sniffs_Files_ByteOrderMarkSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/ByteOrderMarkSniff.php',
32
+ 'Generic_Sniffs_Files_EndFileNewlineSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/EndFileNewlineSniff.php',
33
+ 'Generic_Sniffs_Files_EndFileNoNewlineSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/EndFileNoNewlineSniff.php',
34
+ 'Generic_Sniffs_Files_InlineHTMLSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/InlineHTMLSniff.php',
35
+ 'Generic_Sniffs_Files_LineEndingsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/LineEndingsSniff.php',
36
+ 'Generic_Sniffs_Files_LineLengthSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/LineLengthSniff.php',
37
+ 'Generic_Sniffs_Files_LowercasedFilenameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/LowercasedFilenameSniff.php',
38
+ 'Generic_Sniffs_Files_OneClassPerFileSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/OneClassPerFileSniff.php',
39
+ 'Generic_Sniffs_Files_OneInterfacePerFileSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/OneInterfacePerFileSniff.php',
40
+ 'Generic_Sniffs_Files_OneTraitPerFileSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/OneTraitPerFileSniff.php',
41
+ 'Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/DisallowMultipleStatementsSniff.php',
42
+ 'Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php',
43
+ 'Generic_Sniffs_Formatting_NoSpaceAfterCastSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/NoSpaceAfterCastSniff.php',
44
+ 'Generic_Sniffs_Formatting_SpaceAfterCastSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php',
45
+ 'Generic_Sniffs_Formatting_SpaceAfterNotSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/SpaceAfterNotSniff.php',
46
+ 'Generic_Sniffs_Functions_CallTimePassByReferenceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/CallTimePassByReferenceSniff.php',
47
+ 'Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/FunctionCallArgumentSpacingSniff.php',
48
+ 'Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceBsdAllmanSniff.php',
49
+ 'Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceKernighanRitchieSniff.php',
50
+ 'Generic_Sniffs_Metrics_CyclomaticComplexitySniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php',
51
+ 'Generic_Sniffs_Metrics_NestingLevelSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Metrics/NestingLevelSniff.php',
52
+ 'Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/CamelCapsFunctionNameSniff.php',
53
+ 'Generic_Sniffs_NamingConventions_ConstructorNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/ConstructorNameSniff.php',
54
+ 'Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php',
55
+ 'Generic_Sniffs_PHP_BacktickOperatorSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/BacktickOperatorSniff.php',
56
+ 'Generic_Sniffs_PHP_CharacterBeforePHPOpeningTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php',
57
+ 'Generic_Sniffs_PHP_ClosingPHPTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/ClosingPHPTagSniff.php',
58
+ 'Generic_Sniffs_PHP_DeprecatedFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/DeprecatedFunctionsSniff.php',
59
+ 'Generic_Sniffs_PHP_DisallowAlternativePHPTagsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/DisallowAlternativePHPTagsSniff.php',
60
+ 'Generic_Sniffs_PHP_DisallowShortOpenTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php',
61
+ 'Generic_Sniffs_PHP_ForbiddenFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php',
62
+ 'Generic_Sniffs_PHP_LowerCaseConstantSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/LowerCaseConstantSniff.php',
63
+ 'Generic_Sniffs_PHP_LowerCaseKeywordSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/LowerCaseKeywordSniff.php',
64
+ 'Generic_Sniffs_PHP_NoSilencedErrorsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/NoSilencedErrorsSniff.php',
65
+ 'Generic_Sniffs_PHP_SAPIUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/SAPIUsageSniff.php',
66
+ 'Generic_Sniffs_PHP_SyntaxSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/SyntaxSniff.php',
67
+ 'Generic_Sniffs_PHP_UpperCaseConstantSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/UpperCaseConstantSniff.php',
68
+ 'Generic_Sniffs_Strings_UnnecessaryStringConcatSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Strings/UnnecessaryStringConcatSniff.php',
69
+ 'Generic_Sniffs_VersionControl_SubversionPropertiesSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/VersionControl/SubversionPropertiesSniff.php',
70
+ 'Generic_Sniffs_WhiteSpace_DisallowSpaceIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/DisallowSpaceIndentSniff.php',
71
+ 'Generic_Sniffs_WhiteSpace_DisallowTabIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php',
72
+ 'Generic_Sniffs_WhiteSpace_ScopeIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/ScopeIndentSniff.php',
73
+ 'Hamcrest\\Arrays\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php',
74
+ 'Hamcrest\\Arrays\\IsArrayContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php',
75
+ 'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php',
76
+ 'Hamcrest\\Arrays\\IsArrayContainingInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php',
77
+ 'Hamcrest\\Arrays\\IsArrayContainingKey' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php',
78
+ 'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php',
79
+ 'Hamcrest\\Arrays\\IsArrayWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php',
80
+ 'Hamcrest\\Arrays\\MatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php',
81
+ 'Hamcrest\\Arrays\\SeriesMatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php',
82
+ 'Hamcrest\\AssertionError' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php',
83
+ 'Hamcrest\\BaseDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php',
84
+ 'Hamcrest\\BaseMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php',
85
+ 'Hamcrest\\Collection\\IsEmptyTraversable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php',
86
+ 'Hamcrest\\Collection\\IsTraversableWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php',
87
+ 'Hamcrest\\Core\\AllOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php',
88
+ 'Hamcrest\\Core\\AnyOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php',
89
+ 'Hamcrest\\Core\\CombinableMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php',
90
+ 'Hamcrest\\Core\\DescribedAs' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php',
91
+ 'Hamcrest\\Core\\Every' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php',
92
+ 'Hamcrest\\Core\\HasToString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php',
93
+ 'Hamcrest\\Core\\Is' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php',
94
+ 'Hamcrest\\Core\\IsAnything' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php',
95
+ 'Hamcrest\\Core\\IsCollectionContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php',
96
+ 'Hamcrest\\Core\\IsEqual' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php',
97
+ 'Hamcrest\\Core\\IsIdentical' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php',
98
+ 'Hamcrest\\Core\\IsInstanceOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php',
99
+ 'Hamcrest\\Core\\IsNot' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php',
100
+ 'Hamcrest\\Core\\IsNull' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php',
101
+ 'Hamcrest\\Core\\IsSame' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php',
102
+ 'Hamcrest\\Core\\IsTypeOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php',
103
+ 'Hamcrest\\Core\\Set' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php',
104
+ 'Hamcrest\\Core\\ShortcutCombination' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php',
105
+ 'Hamcrest\\Description' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php',
106
+ 'Hamcrest\\DiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php',
107
+ 'Hamcrest\\FeatureMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php',
108
+ 'Hamcrest\\Internal\\SelfDescribingValue' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php',
109
+ 'Hamcrest\\Matcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php',
110
+ 'Hamcrest\\MatcherAssert' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php',
111
+ 'Hamcrest\\Matchers' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php',
112
+ 'Hamcrest\\NullDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php',
113
+ 'Hamcrest\\Number\\IsCloseTo' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php',
114
+ 'Hamcrest\\Number\\OrderingComparison' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php',
115
+ 'Hamcrest\\SelfDescribing' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php',
116
+ 'Hamcrest\\StringDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php',
117
+ 'Hamcrest\\Text\\IsEmptyString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php',
118
+ 'Hamcrest\\Text\\IsEqualIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php',
119
+ 'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php',
120
+ 'Hamcrest\\Text\\MatchesPattern' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php',
121
+ 'Hamcrest\\Text\\StringContains' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php',
122
+ 'Hamcrest\\Text\\StringContainsIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php',
123
+ 'Hamcrest\\Text\\StringContainsInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php',
124
+ 'Hamcrest\\Text\\StringEndsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php',
125
+ 'Hamcrest\\Text\\StringStartsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php',
126
+ 'Hamcrest\\Text\\SubstringMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php',
127
+ 'Hamcrest\\TypeSafeDiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php',
128
+ 'Hamcrest\\TypeSafeMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php',
129
+ 'Hamcrest\\Type\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php',
130
+ 'Hamcrest\\Type\\IsBoolean' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php',
131
+ 'Hamcrest\\Type\\IsCallable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php',
132
+ 'Hamcrest\\Type\\IsDouble' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php',
133
+ 'Hamcrest\\Type\\IsInteger' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php',
134
+ 'Hamcrest\\Type\\IsNumeric' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php',
135
+ 'Hamcrest\\Type\\IsObject' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php',
136
+ 'Hamcrest\\Type\\IsResource' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php',
137
+ 'Hamcrest\\Type\\IsScalar' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php',
138
+ 'Hamcrest\\Type\\IsString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php',
139
+ 'Hamcrest\\Util' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php',
140
+ 'Hamcrest\\Xml\\HasXPath' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php',
141
+ 'MySource_Sniffs_CSS_BrowserSpecificStylesSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/CSS/BrowserSpecificStylesSniff.php',
142
+ 'MySource_Sniffs_Channels_DisallowSelfActionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/DisallowSelfActionsSniff.php',
143
+ 'MySource_Sniffs_Channels_IncludeOwnSystemSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/IncludeOwnSystemSniff.php',
144
+ 'MySource_Sniffs_Channels_IncludeSystemSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/IncludeSystemSniff.php',
145
+ 'MySource_Sniffs_Channels_UnusedSystemSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/UnusedSystemSniff.php',
146
+ 'MySource_Sniffs_Commenting_FunctionCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Commenting/FunctionCommentSniff.php',
147
+ 'MySource_Sniffs_Debug_DebugCodeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Debug/DebugCodeSniff.php',
148
+ 'MySource_Sniffs_Debug_FirebugConsoleSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Debug/FirebugConsoleSniff.php',
149
+ 'MySource_Sniffs_Objects_AssignThisSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Objects/AssignThisSniff.php',
150
+ 'MySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Objects/CreateWidgetTypeCallbackSniff.php',
151
+ 'MySource_Sniffs_Objects_DisallowNewWidgetSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Objects/DisallowNewWidgetSniff.php',
152
+ 'MySource_Sniffs_PHP_AjaxNullComparisonSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/AjaxNullComparisonSniff.php',
153
+ 'MySource_Sniffs_PHP_EvalObjectFactorySniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/EvalObjectFactorySniff.php',
154
+ 'MySource_Sniffs_PHP_GetRequestDataSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/GetRequestDataSniff.php',
155
+ 'MySource_Sniffs_PHP_ReturnFunctionValueSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/ReturnFunctionValueSniff.php',
156
+ 'MySource_Sniffs_Strings_JoinStringsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Strings/JoinStringsSniff.php',
157
+ 'PEAR_Sniffs_Classes_ClassDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Classes/ClassDeclarationSniff.php',
158
+ 'PEAR_Sniffs_Commenting_ClassCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/ClassCommentSniff.php',
159
+ 'PEAR_Sniffs_Commenting_FileCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/FileCommentSniff.php',
160
+ 'PEAR_Sniffs_Commenting_FunctionCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/FunctionCommentSniff.php',
161
+ 'PEAR_Sniffs_Commenting_InlineCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/InlineCommentSniff.php',
162
+ 'PEAR_Sniffs_ControlStructures_ControlSignatureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php',
163
+ 'PEAR_Sniffs_ControlStructures_MultiLineConditionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/MultiLineConditionSniff.php',
164
+ 'PEAR_Sniffs_Files_IncludingFileSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Files/IncludingFileSniff.php',
165
+ 'PEAR_Sniffs_Formatting_MultiLineAssignmentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Formatting/MultiLineAssignmentSniff.php',
166
+ 'PEAR_Sniffs_Functions_FunctionCallSignatureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Functions/FunctionCallSignatureSniff.php',
167
+ 'PEAR_Sniffs_Functions_FunctionDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Functions/FunctionDeclarationSniff.php',
168
+ 'PEAR_Sniffs_Functions_ValidDefaultValueSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Functions/ValidDefaultValueSniff.php',
169
+ 'PEAR_Sniffs_NamingConventions_ValidClassNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidClassNameSniff.php',
170
+ 'PEAR_Sniffs_NamingConventions_ValidFunctionNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidFunctionNameSniff.php',
171
+ 'PEAR_Sniffs_NamingConventions_ValidVariableNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidVariableNameSniff.php',
172
+ 'PEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ObjectOperatorIndentSniff.php',
173
+ 'PEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php',
174
+ 'PEAR_Sniffs_WhiteSpace_ScopeIndentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ScopeIndentSniff.php',
175
+ 'PHPUnit_Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
176
+ 'PHPUnit_Extensions_GroupTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php',
177
+ 'PHPUnit_Extensions_PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestCase.php',
178
+ 'PHPUnit_Extensions_PhptTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestSuite.php',
179
+ 'PHPUnit_Extensions_RepeatedTest' => $vendorDir . '/phpunit/phpunit/src/Extensions/RepeatedTest.php',
180
+ 'PHPUnit_Extensions_TestDecorator' => $vendorDir . '/phpunit/phpunit/src/Extensions/TestDecorator.php',
181
+ 'PHPUnit_Extensions_TicketListener' => $vendorDir . '/phpunit/phpunit/src/Extensions/TicketListener.php',
182
+ 'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',
183
+ 'PHPUnit_Framework_AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
184
+ 'PHPUnit_Framework_BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/BaseTestListener.php',
185
+ 'PHPUnit_Framework_CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',
186
+ 'PHPUnit_Framework_Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint.php',
187
+ 'PHPUnit_Framework_Constraint_And' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/And.php',
188
+ 'PHPUnit_Framework_Constraint_ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
189
+ 'PHPUnit_Framework_Constraint_ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
190
+ 'PHPUnit_Framework_Constraint_Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
191
+ 'PHPUnit_Framework_Constraint_Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
192
+ 'PHPUnit_Framework_Constraint_ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
193
+ 'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
194
+ 'PHPUnit_Framework_Constraint_Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
195
+ 'PHPUnit_Framework_Constraint_Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
196
+ 'PHPUnit_Framework_Constraint_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
197
+ 'PHPUnit_Framework_Constraint_ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
198
+ 'PHPUnit_Framework_Constraint_ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
199
+ 'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php',
200
+ 'PHPUnit_Framework_Constraint_FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
201
+ 'PHPUnit_Framework_Constraint_GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
202
+ 'PHPUnit_Framework_Constraint_IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
203
+ 'PHPUnit_Framework_Constraint_IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
204
+ 'PHPUnit_Framework_Constraint_IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
205
+ 'PHPUnit_Framework_Constraint_IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
206
+ 'PHPUnit_Framework_Constraint_IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
207
+ 'PHPUnit_Framework_Constraint_IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
208
+ 'PHPUnit_Framework_Constraint_IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
209
+ 'PHPUnit_Framework_Constraint_IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
210
+ 'PHPUnit_Framework_Constraint_IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
211
+ 'PHPUnit_Framework_Constraint_IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
212
+ 'PHPUnit_Framework_Constraint_JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
213
+ 'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
214
+ 'PHPUnit_Framework_Constraint_LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
215
+ 'PHPUnit_Framework_Constraint_Not' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Not.php',
216
+ 'PHPUnit_Framework_Constraint_ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
217
+ 'PHPUnit_Framework_Constraint_Or' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Or.php',
218
+ 'PHPUnit_Framework_Constraint_PCREMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php',
219
+ 'PHPUnit_Framework_Constraint_SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
220
+ 'PHPUnit_Framework_Constraint_StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
221
+ 'PHPUnit_Framework_Constraint_StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
222
+ 'PHPUnit_Framework_Constraint_StringMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatches.php',
223
+ 'PHPUnit_Framework_Constraint_StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
224
+ 'PHPUnit_Framework_Constraint_TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
225
+ 'PHPUnit_Framework_Constraint_TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
226
+ 'PHPUnit_Framework_Constraint_Xor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Xor.php',
227
+ 'PHPUnit_Framework_Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error.php',
228
+ 'PHPUnit_Framework_Error_Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
229
+ 'PHPUnit_Framework_Error_Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',
230
+ 'PHPUnit_Framework_Error_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php',
231
+ 'PHPUnit_Framework_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php',
232
+ 'PHPUnit_Framework_ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
233
+ 'PHPUnit_Framework_ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',
234
+ 'PHPUnit_Framework_IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
235
+ 'PHPUnit_Framework_IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
236
+ 'PHPUnit_Framework_IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',
237
+ 'PHPUnit_Framework_InvalidCoversTargetError' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetError.php',
238
+ 'PHPUnit_Framework_InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',
239
+ 'PHPUnit_Framework_MockObject_BadMethodCallException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php',
240
+ 'PHPUnit_Framework_MockObject_Builder_Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php',
241
+ 'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php',
242
+ 'PHPUnit_Framework_MockObject_Builder_Match' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php',
243
+ 'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php',
244
+ 'PHPUnit_Framework_MockObject_Builder_Namespace' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php',
245
+ 'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php',
246
+ 'PHPUnit_Framework_MockObject_Builder_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php',
247
+ 'PHPUnit_Framework_MockObject_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php',
248
+ 'PHPUnit_Framework_MockObject_Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php',
249
+ 'PHPUnit_Framework_MockObject_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php',
250
+ 'PHPUnit_Framework_MockObject_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php',
251
+ 'PHPUnit_Framework_MockObject_Invocation_Object' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php',
252
+ 'PHPUnit_Framework_MockObject_Invocation_Static' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php',
253
+ 'PHPUnit_Framework_MockObject_Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php',
254
+ 'PHPUnit_Framework_MockObject_Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php',
255
+ 'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php',
256
+ 'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php',
257
+ 'PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',
258
+ 'PHPUnit_Framework_MockObject_Matcher_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php',
259
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php',
260
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',
261
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
262
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',
263
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php',
264
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php',
265
+ 'PHPUnit_Framework_MockObject_Matcher_MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php',
266
+ 'PHPUnit_Framework_MockObject_Matcher_Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php',
267
+ 'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php',
268
+ 'PHPUnit_Framework_MockObject_MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php',
269
+ 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php',
270
+ 'PHPUnit_Framework_MockObject_RuntimeException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php',
271
+ 'PHPUnit_Framework_MockObject_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php',
272
+ 'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
273
+ 'PHPUnit_Framework_MockObject_Stub_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php',
274
+ 'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php',
275
+ 'PHPUnit_Framework_MockObject_Stub_Return' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php',
276
+ 'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php',
277
+ 'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php',
278
+ 'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php',
279
+ 'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php',
280
+ 'PHPUnit_Framework_MockObject_Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php',
281
+ 'PHPUnit_Framework_OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php',
282
+ 'PHPUnit_Framework_RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php',
283
+ 'PHPUnit_Framework_RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php',
284
+ 'PHPUnit_Framework_SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
285
+ 'PHPUnit_Framework_SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php',
286
+ 'PHPUnit_Framework_SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
287
+ 'PHPUnit_Framework_SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php',
288
+ 'PHPUnit_Framework_SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',
289
+ 'PHPUnit_Framework_SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php',
290
+ 'PHPUnit_Framework_Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php',
291
+ 'PHPUnit_Framework_TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',
292
+ 'PHPUnit_Framework_TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php',
293
+ 'PHPUnit_Framework_TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php',
294
+ 'PHPUnit_Framework_TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php',
295
+ 'PHPUnit_Framework_TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php',
296
+ 'PHPUnit_Framework_TestSuite_DataProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php',
297
+ 'PHPUnit_Framework_UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',
298
+ 'PHPUnit_Framework_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php',
299
+ 'PHPUnit_Runner_BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
300
+ 'PHPUnit_Runner_Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php',
301
+ 'PHPUnit_Runner_Filter_Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
302
+ 'PHPUnit_Runner_Filter_GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group.php',
303
+ 'PHPUnit_Runner_Filter_Group_Exclude' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php',
304
+ 'PHPUnit_Runner_Filter_Group_Include' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Include.php',
305
+ 'PHPUnit_Runner_Filter_Test' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Test.php',
306
+ 'PHPUnit_Runner_StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
307
+ 'PHPUnit_Runner_TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
308
+ 'PHPUnit_Runner_Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php',
309
+ 'PHPUnit_TextUI_Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php',
310
+ 'PHPUnit_TextUI_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
311
+ 'PHPUnit_TextUI_TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php',
312
+ 'PHPUnit_Util_Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',
313
+ 'PHPUnit_Util_Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php',
314
+ 'PHPUnit_Util_ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',
315
+ 'PHPUnit_Util_Fileloader' => $vendorDir . '/phpunit/phpunit/src/Util/Fileloader.php',
316
+ 'PHPUnit_Util_Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',
317
+ 'PHPUnit_Util_Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',
318
+ 'PHPUnit_Util_Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php',
319
+ 'PHPUnit_Util_GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',
320
+ 'PHPUnit_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',
321
+ 'PHPUnit_Util_Log_JSON' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JSON.php',
322
+ 'PHPUnit_Util_Log_JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php',
323
+ 'PHPUnit_Util_Log_TAP' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TAP.php',
324
+ 'PHPUnit_Util_PHP' => $vendorDir . '/phpunit/phpunit/src/Util/PHP.php',
325
+ 'PHPUnit_Util_PHP_Default' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Default.php',
326
+ 'PHPUnit_Util_PHP_Windows' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Windows.php',
327
+ 'PHPUnit_Util_Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php',
328
+ 'PHPUnit_Util_Regex' => $vendorDir . '/phpunit/phpunit/src/Util/Regex.php',
329
+ 'PHPUnit_Util_String' => $vendorDir . '/phpunit/phpunit/src/Util/String.php',
330
+ 'PHPUnit_Util_Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php',
331
+ 'PHPUnit_Util_TestDox_NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
332
+ 'PHPUnit_Util_TestDox_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
333
+ 'PHPUnit_Util_TestDox_ResultPrinter_HTML' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php',
334
+ 'PHPUnit_Util_TestDox_ResultPrinter_Text' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php',
335
+ 'PHPUnit_Util_TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Util/TestSuiteIterator.php',
336
+ 'PHPUnit_Util_Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php',
337
+ 'PHPUnit_Util_XML' => $vendorDir . '/phpunit/phpunit/src/Util/XML.php',
338
+ 'PHP_CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',
339
+ 'PHP_CodeCoverage_Driver' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver.php',
340
+ 'PHP_CodeCoverage_Driver_HHVM' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php',
341
+ 'PHP_CodeCoverage_Driver_PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/PHPDBG.php',
342
+ 'PHP_CodeCoverage_Driver_Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php',
343
+ 'PHP_CodeCoverage_Exception' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Exception.php',
344
+ 'PHP_CodeCoverage_Exception_UnintentionallyCoveredCode' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php',
345
+ 'PHP_CodeCoverage_Filter' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Filter.php',
346
+ 'PHP_CodeCoverage_Report_Clover' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php',
347
+ 'PHP_CodeCoverage_Report_Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php',
348
+ 'PHP_CodeCoverage_Report_Factory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php',
349
+ 'PHP_CodeCoverage_Report_HTML' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php',
350
+ 'PHP_CodeCoverage_Report_HTML_Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php',
351
+ 'PHP_CodeCoverage_Report_HTML_Renderer_Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php',
352
+ 'PHP_CodeCoverage_Report_HTML_Renderer_Directory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php',
353
+ 'PHP_CodeCoverage_Report_HTML_Renderer_File' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php',
354
+ 'PHP_CodeCoverage_Report_Node' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php',
355
+ 'PHP_CodeCoverage_Report_Node_Directory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php',
356
+ 'PHP_CodeCoverage_Report_Node_File' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php',
357
+ 'PHP_CodeCoverage_Report_Node_Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php',
358
+ 'PHP_CodeCoverage_Report_PHP' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php',
359
+ 'PHP_CodeCoverage_Report_Text' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php',
360
+ 'PHP_CodeCoverage_Report_XML' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php',
361
+ 'PHP_CodeCoverage_Report_XML_Directory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php',
362
+ 'PHP_CodeCoverage_Report_XML_File' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php',
363
+ 'PHP_CodeCoverage_Report_XML_File_Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php',
364
+ 'PHP_CodeCoverage_Report_XML_File_Method' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php',
365
+ 'PHP_CodeCoverage_Report_XML_File_Report' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php',
366
+ 'PHP_CodeCoverage_Report_XML_File_Unit' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php',
367
+ 'PHP_CodeCoverage_Report_XML_Node' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php',
368
+ 'PHP_CodeCoverage_Report_XML_Project' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php',
369
+ 'PHP_CodeCoverage_Report_XML_Tests' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php',
370
+ 'PHP_CodeCoverage_Report_XML_Totals' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php',
371
+ 'PHP_CodeCoverage_Util' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Util.php',
372
+ 'PHP_CodeCoverage_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php',
373
+ 'PHP_CodeSniffer' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer.php',
374
+ 'PHP_CodeSniffer_CLI' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/CLI.php',
375
+ 'PHP_CodeSniffer_DocGenerators_Generator' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/Generator.php',
376
+ 'PHP_CodeSniffer_DocGenerators_HTML' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/HTML.php',
377
+ 'PHP_CodeSniffer_DocGenerators_Markdown' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/Markdown.php',
378
+ 'PHP_CodeSniffer_DocGenerators_Text' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/Text.php',
379
+ 'PHP_CodeSniffer_Exception' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Exception.php',
380
+ 'PHP_CodeSniffer_File' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/File.php',
381
+ 'PHP_CodeSniffer_Fixer' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Fixer.php',
382
+ 'PHP_CodeSniffer_Report' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Report.php',
383
+ 'PHP_CodeSniffer_Reporting' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reporting.php',
384
+ 'PHP_CodeSniffer_Reports_Cbf' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Cbf.php',
385
+ 'PHP_CodeSniffer_Reports_Checkstyle' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Checkstyle.php',
386
+ 'PHP_CodeSniffer_Reports_Csv' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Csv.php',
387
+ 'PHP_CodeSniffer_Reports_Diff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Diff.php',
388
+ 'PHP_CodeSniffer_Reports_Emacs' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Emacs.php',
389
+ 'PHP_CodeSniffer_Reports_Full' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Full.php',
390
+ 'PHP_CodeSniffer_Reports_Gitblame' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Gitblame.php',
391
+ 'PHP_CodeSniffer_Reports_Hgblame' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Hgblame.php',
392
+ 'PHP_CodeSniffer_Reports_Info' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Info.php',
393
+ 'PHP_CodeSniffer_Reports_Json' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Json.php',
394
+ 'PHP_CodeSniffer_Reports_Junit' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Junit.php',
395
+ 'PHP_CodeSniffer_Reports_Notifysend' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Notifysend.php',
396
+ 'PHP_CodeSniffer_Reports_Source' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Source.php',
397
+ 'PHP_CodeSniffer_Reports_Summary' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Summary.php',
398
+ 'PHP_CodeSniffer_Reports_Svnblame' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Svnblame.php',
399
+ 'PHP_CodeSniffer_Reports_VersionControl' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/VersionControl.php',
400
+ 'PHP_CodeSniffer_Reports_Xml' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Xml.php',
401
+ 'PHP_CodeSniffer_Sniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Sniff.php',
402
+ 'PHP_CodeSniffer_Standards_AbstractPatternSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/AbstractPatternSniff.php',
403
+ 'PHP_CodeSniffer_Standards_AbstractScopeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/AbstractScopeSniff.php',
404
+ 'PHP_CodeSniffer_Standards_AbstractVariableSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/AbstractVariableSniff.php',
405
+ 'PHP_CodeSniffer_Standards_IncorrectPatternException' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/IncorrectPatternException.php',
406
+ 'PHP_CodeSniffer_Tokenizers_CSS' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/CSS.php',
407
+ 'PHP_CodeSniffer_Tokenizers_Comment' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/Comment.php',
408
+ 'PHP_CodeSniffer_Tokenizers_JS' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/JS.php',
409
+ 'PHP_CodeSniffer_Tokenizers_PHP' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/PHP.php',
410
+ 'PHP_CodeSniffer_Tokens' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Tokens.php',
411
+ 'PHP_Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',
412
+ 'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
413
+ 'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
414
+ 'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
415
+ 'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
416
+ 'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
417
+ 'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
418
+ 'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
419
+ 'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
420
+ 'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
421
+ 'PHP_Token_ASYNC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
422
+ 'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
423
+ 'PHP_Token_AWAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
424
+ 'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
425
+ 'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
426
+ 'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
427
+ 'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
428
+ 'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
429
+ 'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
430
+ 'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
431
+ 'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
432
+ 'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
433
+ 'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
434
+ 'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
435
+ 'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
436
+ 'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
437
+ 'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
438
+ 'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
439
+ 'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
440
+ 'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
441
+ 'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
442
+ 'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
443
+ 'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
444
+ 'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
445
+ 'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
446
+ 'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
447
+ 'PHP_Token_COMPILER_HALT_OFFSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
448
+ 'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
449
+ 'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
450
+ 'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
451
+ 'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
452
+ 'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
453
+ 'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
454
+ 'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
455
+ 'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
456
+ 'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
457
+ 'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
458
+ 'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
459
+ 'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
460
+ 'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
461
+ 'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
462
+ 'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
463
+ 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
464
+ 'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
465
+ 'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
466
+ 'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
467
+ 'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
468
+ 'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
469
+ 'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
470
+ 'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
471
+ 'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
472
+ 'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
473
+ 'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
474
+ 'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
475
+ 'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
476
+ 'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
477
+ 'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
478
+ 'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
479
+ 'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
480
+ 'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
481
+ 'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
482
+ 'PHP_Token_ENUM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
483
+ 'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
484
+ 'PHP_Token_EQUALS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
485
+ 'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
486
+ 'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
487
+ 'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
488
+ 'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
489
+ 'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
490
+ 'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
491
+ 'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
492
+ 'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
493
+ 'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
494
+ 'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
495
+ 'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
496
+ 'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
497
+ 'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
498
+ 'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
499
+ 'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
500
+ 'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
501
+ 'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
502
+ 'PHP_Token_IN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
503
+ 'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
504
+ 'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
505
+ 'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
506
+ 'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
507
+ 'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
508
+ 'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
509
+ 'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
510
+ 'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
511
+ 'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
512
+ 'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
513
+ 'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
514
+ 'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
515
+ 'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
516
+ 'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
517
+ 'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
518
+ 'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
519
+ 'PHP_Token_JOIN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
520
+ 'PHP_Token_LAMBDA_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
521
+ 'PHP_Token_LAMBDA_CP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
522
+ 'PHP_Token_LAMBDA_OP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
523
+ 'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
524
+ 'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
525
+ 'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
526
+ 'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
527
+ 'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
528
+ 'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
529
+ 'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
530
+ 'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
531
+ 'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
532
+ 'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
533
+ 'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
534
+ 'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
535
+ 'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
536
+ 'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
537
+ 'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
538
+ 'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
539
+ 'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
540
+ 'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
541
+ 'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
542
+ 'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
543
+ 'PHP_Token_ONUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
544
+ 'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
545
+ 'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
546
+ 'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
547
+ 'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
548
+ 'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
549
+ 'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
550
+ 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
551
+ 'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
552
+ 'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
553
+ 'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
554
+ 'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
555
+ 'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
556
+ 'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
557
+ 'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
558
+ 'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
559
+ 'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
560
+ 'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
561
+ 'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
562
+ 'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
563
+ 'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
564
+ 'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
565
+ 'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
566
+ 'PHP_Token_SHAPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
567
+ 'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
568
+ 'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
569
+ 'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
570
+ 'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
571
+ 'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
572
+ 'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
573
+ 'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
574
+ 'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
575
+ 'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
576
+ 'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
577
+ 'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
578
+ 'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php',
579
+ 'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',
580
+ 'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
581
+ 'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
582
+ 'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
583
+ 'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
584
+ 'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
585
+ 'PHP_Token_TYPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
586
+ 'PHP_Token_TYPELIST_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
587
+ 'PHP_Token_TYPELIST_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
588
+ 'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
589
+ 'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
590
+ 'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
591
+ 'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
592
+ 'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
593
+ 'PHP_Token_WHERE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
594
+ 'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
595
+ 'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
596
+ 'PHP_Token_XHP_ATTRIBUTE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
597
+ 'PHP_Token_XHP_CATEGORY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
598
+ 'PHP_Token_XHP_CATEGORY_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
599
+ 'PHP_Token_XHP_CHILDREN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
600
+ 'PHP_Token_XHP_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
601
+ 'PHP_Token_XHP_REQUIRED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
602
+ 'PHP_Token_XHP_TAG_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
603
+ 'PHP_Token_XHP_TAG_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
604
+ 'PHP_Token_XHP_TEXT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
605
+ 'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
606
+ 'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
607
+ 'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
608
+ 'PSR1_Sniffs_Classes_ClassDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR1/Sniffs/Classes/ClassDeclarationSniff.php',
609
+ 'PSR1_Sniffs_Files_SideEffectsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php',
610
+ 'PSR1_Sniffs_Methods_CamelCapsMethodNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR1/Sniffs/Methods/CamelCapsMethodNameSniff.php',
611
+ 'PSR2_Sniffs_Classes_ClassDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Classes/ClassDeclarationSniff.php',
612
+ 'PSR2_Sniffs_Classes_PropertyDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Classes/PropertyDeclarationSniff.php',
613
+ 'PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php',
614
+ 'PSR2_Sniffs_ControlStructures_ElseIfDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php',
615
+ 'PSR2_Sniffs_ControlStructures_SwitchDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/SwitchDeclarationSniff.php',
616
+ 'PSR2_Sniffs_Files_ClosingTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Files/ClosingTagSniff.php',
617
+ 'PSR2_Sniffs_Files_EndFileNewlineSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Files/EndFileNewlineSniff.php',
618
+ 'PSR2_Sniffs_Methods_FunctionCallSignatureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Methods/FunctionCallSignatureSniff.php',
619
+ 'PSR2_Sniffs_Methods_FunctionClosingBraceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Methods/FunctionClosingBraceSniff.php',
620
+ 'PSR2_Sniffs_Methods_MethodDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Methods/MethodDeclarationSniff.php',
621
+ 'PSR2_Sniffs_Namespaces_NamespaceDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Namespaces/NamespaceDeclarationSniff.php',
622
+ 'PSR2_Sniffs_Namespaces_UseDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Namespaces/UseDeclarationSniff.php',
623
+ 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php',
624
+ 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php',
625
+ 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php',
626
+ 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php',
627
+ 'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php',
628
+ 'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php',
629
+ 'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php',
630
+ 'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php',
631
+ 'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php',
632
+ 'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php',
633
+ 'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php',
634
+ 'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php',
635
+ 'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php',
636
+ 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php',
637
+ 'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php',
638
+ 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php',
639
+ 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php',
640
+ 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php',
641
+ 'SebastianBergmann\\Diff\\LCS\\LongestCommonSubsequence' => $vendorDir . '/sebastian/diff/src/LCS/LongestCommonSubsequence.php',
642
+ 'SebastianBergmann\\Diff\\LCS\\MemoryEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php',
643
+ 'SebastianBergmann\\Diff\\LCS\\TimeEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php',
644
+ 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php',
645
+ 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',
646
+ 'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',
647
+ 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',
648
+ 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',
649
+ 'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php',
650
+ 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php',
651
+ 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/Exception.php',
652
+ 'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',
653
+ 'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/RuntimeException.php',
654
+ 'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',
655
+ 'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',
656
+ 'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',
657
+ 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',
658
+ 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
659
+ 'Squiz_Sniffs_Arrays_ArrayBracketSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Arrays/ArrayBracketSpacingSniff.php',
660
+ 'Squiz_Sniffs_Arrays_ArrayDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php',
661
+ 'Squiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionClosingBraceSpaceSniff.php',
662
+ 'Squiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionNameSpacingSniff.php',
663
+ 'Squiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionOpeningBraceSpaceSniff.php',
664
+ 'Squiz_Sniffs_CSS_ColonSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ColonSpacingSniff.php',
665
+ 'Squiz_Sniffs_CSS_ColourDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ColourDefinitionSniff.php',
666
+ 'Squiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php',
667
+ 'Squiz_Sniffs_CSS_DuplicateClassDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/DuplicateClassDefinitionSniff.php',
668
+ 'Squiz_Sniffs_CSS_DuplicateStyleDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/DuplicateStyleDefinitionSniff.php',
669
+ 'Squiz_Sniffs_CSS_EmptyClassDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/EmptyClassDefinitionSniff.php',
670
+ 'Squiz_Sniffs_CSS_EmptyStyleDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/EmptyStyleDefinitionSniff.php',
671
+ 'Squiz_Sniffs_CSS_ForbiddenStylesSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ForbiddenStylesSniff.php',
672
+ 'Squiz_Sniffs_CSS_IndentationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/IndentationSniff.php',
673
+ 'Squiz_Sniffs_CSS_LowercaseStyleDefinitionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php',
674
+ 'Squiz_Sniffs_CSS_MissingColonSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/MissingColonSniff.php',
675
+ 'Squiz_Sniffs_CSS_NamedColoursSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/NamedColoursSniff.php',
676
+ 'Squiz_Sniffs_CSS_OpacitySniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/OpacitySniff.php',
677
+ 'Squiz_Sniffs_CSS_SemicolonSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/SemicolonSpacingSniff.php',
678
+ 'Squiz_Sniffs_CSS_ShorthandSizeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ShorthandSizeSniff.php',
679
+ 'Squiz_Sniffs_Classes_ClassDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/ClassDeclarationSniff.php',
680
+ 'Squiz_Sniffs_Classes_ClassFileNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/ClassFileNameSniff.php',
681
+ 'Squiz_Sniffs_Classes_DuplicatePropertySniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/DuplicatePropertySniff.php',
682
+ 'Squiz_Sniffs_Classes_LowercaseClassKeywordsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/LowercaseClassKeywordsSniff.php',
683
+ 'Squiz_Sniffs_Classes_SelfMemberReferenceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/SelfMemberReferenceSniff.php',
684
+ 'Squiz_Sniffs_Classes_ValidClassNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/ValidClassNameSniff.php',
685
+ 'Squiz_Sniffs_Commenting_BlockCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/BlockCommentSniff.php',
686
+ 'Squiz_Sniffs_Commenting_ClassCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/ClassCommentSniff.php',
687
+ 'Squiz_Sniffs_Commenting_ClosingDeclarationCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/ClosingDeclarationCommentSniff.php',
688
+ 'Squiz_Sniffs_Commenting_DocCommentAlignmentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php',
689
+ 'Squiz_Sniffs_Commenting_EmptyCatchCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/EmptyCatchCommentSniff.php',
690
+ 'Squiz_Sniffs_Commenting_FileCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FileCommentSniff.php',
691
+ 'Squiz_Sniffs_Commenting_FunctionCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FunctionCommentSniff.php',
692
+ 'Squiz_Sniffs_Commenting_FunctionCommentThrowTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FunctionCommentThrowTagSniff.php',
693
+ 'Squiz_Sniffs_Commenting_InlineCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/InlineCommentSniff.php',
694
+ 'Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/LongConditionClosingCommentSniff.php',
695
+ 'Squiz_Sniffs_Commenting_PostStatementCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/PostStatementCommentSniff.php',
696
+ 'Squiz_Sniffs_Commenting_VariableCommentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php',
697
+ 'Squiz_Sniffs_ControlStructures_ControlSignatureSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php',
698
+ 'Squiz_Sniffs_ControlStructures_ElseIfDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ElseIfDeclarationSniff.php',
699
+ 'Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ForEachLoopDeclarationSniff.php',
700
+ 'Squiz_Sniffs_ControlStructures_ForLoopDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ForLoopDeclarationSniff.php',
701
+ 'Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/InlineIfDeclarationSniff.php',
702
+ 'Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/LowercaseDeclarationSniff.php',
703
+ 'Squiz_Sniffs_ControlStructures_SwitchDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/SwitchDeclarationSniff.php',
704
+ 'Squiz_Sniffs_Debug_JSLintSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Debug/JSLintSniff.php',
705
+ 'Squiz_Sniffs_Debug_JavaScriptLintSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Debug/JavaScriptLintSniff.php',
706
+ 'Squiz_Sniffs_Files_FileExtensionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Files/FileExtensionSniff.php',
707
+ 'Squiz_Sniffs_Formatting_OperatorBracketSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Formatting/OperatorBracketSniff.php',
708
+ 'Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php',
709
+ 'Squiz_Sniffs_Functions_FunctionDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDeclarationSniff.php',
710
+ 'Squiz_Sniffs_Functions_FunctionDuplicateArgumentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDuplicateArgumentSniff.php',
711
+ 'Squiz_Sniffs_Functions_GlobalFunctionSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/GlobalFunctionSniff.php',
712
+ 'Squiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/LowercaseFunctionKeywordsSniff.php',
713
+ 'Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/MultiLineFunctionDeclarationSniff.php',
714
+ 'Squiz_Sniffs_NamingConventions_ValidFunctionNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ValidFunctionNameSniff.php',
715
+ 'Squiz_Sniffs_NamingConventions_ValidVariableNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ValidVariableNameSniff.php',
716
+ 'Squiz_Sniffs_Objects_DisallowObjectStringIndexSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Objects/DisallowObjectStringIndexSniff.php',
717
+ 'Squiz_Sniffs_Objects_ObjectInstantiationSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Objects/ObjectInstantiationSniff.php',
718
+ 'Squiz_Sniffs_Objects_ObjectMemberCommaSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Objects/ObjectMemberCommaSniff.php',
719
+ 'Squiz_Sniffs_Operators_ComparisonOperatorUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Operators/ComparisonOperatorUsageSniff.php',
720
+ 'Squiz_Sniffs_Operators_IncrementDecrementUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Operators/IncrementDecrementUsageSniff.php',
721
+ 'Squiz_Sniffs_Operators_ValidLogicalOperatorsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Operators/ValidLogicalOperatorsSniff.php',
722
+ 'Squiz_Sniffs_PHP_CommentedOutCodeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/CommentedOutCodeSniff.php',
723
+ 'Squiz_Sniffs_PHP_DisallowBooleanStatementSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowBooleanStatementSniff.php',
724
+ 'Squiz_Sniffs_PHP_DisallowComparisonAssignmentSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowComparisonAssignmentSniff.php',
725
+ 'Squiz_Sniffs_PHP_DisallowInlineIfSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowInlineIfSniff.php',
726
+ 'Squiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowMultipleAssignmentsSniff.php',
727
+ 'Squiz_Sniffs_PHP_DisallowObEndFlushSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowObEndFlushSniff.php',
728
+ 'Squiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php',
729
+ 'Squiz_Sniffs_PHP_DiscouragedFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DiscouragedFunctionsSniff.php',
730
+ 'Squiz_Sniffs_PHP_EmbeddedPhpSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/EmbeddedPhpSniff.php',
731
+ 'Squiz_Sniffs_PHP_EvalSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/EvalSniff.php',
732
+ 'Squiz_Sniffs_PHP_ForbiddenFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/ForbiddenFunctionsSniff.php',
733
+ 'Squiz_Sniffs_PHP_GlobalKeywordSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/GlobalKeywordSniff.php',
734
+ 'Squiz_Sniffs_PHP_HeredocSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/HeredocSniff.php',
735
+ 'Squiz_Sniffs_PHP_InnerFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/InnerFunctionsSniff.php',
736
+ 'Squiz_Sniffs_PHP_LowercasePHPFunctionsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/LowercasePHPFunctionsSniff.php',
737
+ 'Squiz_Sniffs_PHP_NonExecutableCodeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/NonExecutableCodeSniff.php',
738
+ 'Squiz_Sniffs_Scope_MemberVarScopeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php',
739
+ 'Squiz_Sniffs_Scope_MethodScopeSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Scope/MethodScopeSniff.php',
740
+ 'Squiz_Sniffs_Scope_StaticThisUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Scope/StaticThisUsageSniff.php',
741
+ 'Squiz_Sniffs_Strings_ConcatenationSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php',
742
+ 'Squiz_Sniffs_Strings_DoubleQuoteUsageSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Strings/DoubleQuoteUsageSniff.php',
743
+ 'Squiz_Sniffs_Strings_EchoedStringsSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Strings/EchoedStringsSniff.php',
744
+ 'Squiz_Sniffs_WhiteSpace_CastSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/CastSpacingSniff.php',
745
+ 'Squiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php',
746
+ 'Squiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php',
747
+ 'Squiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php',
748
+ 'Squiz_Sniffs_WhiteSpace_FunctionSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionSpacingSniff.php',
749
+ 'Squiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php',
750
+ 'Squiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/LogicalOperatorSpacingSniff.php',
751
+ 'Squiz_Sniffs_WhiteSpace_MemberVarSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/MemberVarSpacingSniff.php',
752
+ 'Squiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php',
753
+ 'Squiz_Sniffs_WhiteSpace_OperatorSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php',
754
+ 'Squiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/PropertyLabelSpacingSniff.php',
755
+ 'Squiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php',
756
+ 'Squiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ScopeKeywordSpacingSniff.php',
757
+ 'Squiz_Sniffs_WhiteSpace_SemicolonSpacingSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/SemicolonSpacingSniff.php',
758
+ 'Squiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php',
759
+ 'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php',
760
+ 'Zend_Sniffs_Debug_CodeAnalyzerSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php',
761
+ 'Zend_Sniffs_Files_ClosingTagSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Zend/Sniffs/Files/ClosingTagSniff.php',
762
+ 'Zend_Sniffs_NamingConventions_ValidVariableNameSniff' => $vendorDir . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Zend/Sniffs/NamingConventions/ValidVariableNameSniff.php',
763
+ );
lib/Ing/Services/ing-php/vendor/composer/autoload_files.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_files.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ '1d1b89d124cc9cb8219922c9d5569199' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest.php',
10
+ 'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php',
11
+ '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
12
+ '5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
13
+ 'a4ecaeafb8cfb009ad0e052c90355e98' => $vendorDir . '/beberlei/assert/lib/Assert/functions.php',
14
+ '3e7aad208edfd63b5076168bb9e62d9a' => $baseDir . '/src/Fallback.php',
15
+ );
lib/Ing/Services/ing-php/vendor/composer/autoload_namespaces.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_namespaces.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'Verraes' => array($vendorDir . '/mathiasverraes/classfunctions/src'),
10
+ 'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src'),
11
+ 'Mockery' => array($vendorDir . '/mockery/mockery/library'),
12
+ 'IsoCodes' => array($vendorDir . '/ronanguilloux/isocodes/src'),
13
+ 'Assert' => array($vendorDir . '/beberlei/assert/lib'),
14
+ );
lib/Ing/Services/ing-php/vendor/composer/autoload_psr4.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_psr4.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'),
10
+ 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
11
+ 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
12
+ 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
13
+ 'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
14
+ 'Rhumsaa\\Uuid\\' => array($vendorDir . '/ramsey/uuid/src'),
15
+ 'React\\Promise\\' => array($vendorDir . '/react/promise/src'),
16
+ 'GuzzleHttp\\Stream\\' => array($vendorDir . '/guzzlehttp/streams/src'),
17
+ 'GuzzleHttp\\Ring\\' => array($vendorDir . '/guzzlehttp/ringphp/src'),
18
+ 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
19
+ 'GingerPayments\\Payment\\Tests\\' => array($baseDir . '/tests'),
20
+ 'GingerPayments\\Payment\\' => array($baseDir . '/src'),
21
+ 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
22
+ 'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
23
+ 'Alcohol\\' => array($vendorDir . '/alcohol/iso3166'),
24
+ );
lib/Ing/Services/ing-php/vendor/composer/autoload_real.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_real.php @generated by Composer
4
+
5
+ class ComposerAutoloaderInit7ff6aa8a97863a0afac29ee99103185f
6
+ {
7
+ private static $loader;
8
+
9
+ public static function loadClassLoader($class)
10
+ {
11
+ if ('Composer\Autoload\ClassLoader' === $class) {
12
+ require __DIR__ . '/ClassLoader.php';
13
+ }
14
+ }
15
+
16
+ public static function getLoader()
17
+ {
18
+ if (null !== self::$loader) {
19
+ return self::$loader;
20
+ }
21
+
22
+ spl_autoload_register(array('ComposerAutoloaderInit7ff6aa8a97863a0afac29ee99103185f', 'loadClassLoader'), true, true);
23
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit7ff6aa8a97863a0afac29ee99103185f', 'loadClassLoader'));
25
+
26
+ $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
27
+ if ($useStaticLoader) {
28
+ require_once __DIR__ . '/autoload_static.php';
29
+
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit7ff6aa8a97863a0afac29ee99103185f::getInitializer($loader));
31
+ } else {
32
+ $map = require __DIR__ . '/autoload_namespaces.php';
33
+ foreach ($map as $namespace => $path) {
34
+ $loader->set($namespace, $path);
35
+ }
36
+
37
+ $map = require __DIR__ . '/autoload_psr4.php';
38
+ foreach ($map as $namespace => $path) {
39
+ $loader->setPsr4($namespace, $path);
40
+ }
41
+
42
+ $classMap = require __DIR__ . '/autoload_classmap.php';
43
+ if ($classMap) {
44
+ $loader->addClassMap($classMap);
45
+ }
46
+ }
47
+
48
+ $loader->register(true);
49
+
50
+ if ($useStaticLoader) {
51
+ $includeFiles = Composer\Autoload\ComposerStaticInit7ff6aa8a97863a0afac29ee99103185f::$files;
52
+ } else {
53
+ $includeFiles = require __DIR__ . '/autoload_files.php';
54
+ }
55
+ foreach ($includeFiles as $fileIdentifier => $file) {
56
+ composerRequire7ff6aa8a97863a0afac29ee99103185f($fileIdentifier, $file);
57
+ }
58
+
59
+ return $loader;
60
+ }
61
+ }
62
+
63
+ function composerRequire7ff6aa8a97863a0afac29ee99103185f($fileIdentifier, $file)
64
+ {
65
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
+ require $file;
67
+
68
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
69
+ }
70
+ }
lib/Ing/Services/ing-php/vendor/composer/autoload_static.php ADDED
@@ -0,0 +1,930 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_static.php @generated by Composer
4
+
5
+ namespace Composer\Autoload;
6
+
7
+ class ComposerStaticInit7ff6aa8a97863a0afac29ee99103185f
8
+ {
9
+ public static $files = array (
10
+ '1d1b89d124cc9cb8219922c9d5569199' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest.php',
11
+ 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
12
+ '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
13
+ '5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
14
+ 'a4ecaeafb8cfb009ad0e052c90355e98' => __DIR__ . '/..' . '/beberlei/assert/lib/Assert/functions.php',
15
+ '3e7aad208edfd63b5076168bb9e62d9a' => __DIR__ . '/../..' . '/src/Fallback.php',
16
+ );
17
+
18
+ public static $prefixLengthsPsr4 = array (
19
+ 'p' =>
20
+ array (
21
+ 'phpDocumentor\\Reflection\\' => 25,
22
+ ),
23
+ 'W' =>
24
+ array (
25
+ 'Webmozart\\Assert\\' => 17,
26
+ ),
27
+ 'S' =>
28
+ array (
29
+ 'Symfony\\Polyfill\\Mbstring\\' => 26,
30
+ 'Symfony\\Component\\Yaml\\' => 23,
31
+ 'Symfony\\Component\\Translation\\' => 30,
32
+ ),
33
+ 'R' =>
34
+ array (
35
+ 'Rhumsaa\\Uuid\\' => 13,
36
+ 'React\\Promise\\' => 14,
37
+ ),
38
+ 'G' =>
39
+ array (
40
+ 'GuzzleHttp\\Stream\\' => 18,
41
+ 'GuzzleHttp\\Ring\\' => 16,
42
+ 'GuzzleHttp\\' => 11,
43
+ 'GingerPayments\\Payment\\Tests\\' => 29,
44
+ 'GingerPayments\\Payment\\' => 23,
45
+ ),
46
+ 'D' =>
47
+ array (
48
+ 'Doctrine\\Instantiator\\' => 22,
49
+ ),
50
+ 'C' =>
51
+ array (
52
+ 'Carbon\\' => 7,
53
+ ),
54
+ 'A' =>
55
+ array (
56
+ 'Alcohol\\' => 8,
57
+ ),
58
+ );
59
+
60
+ public static $prefixDirsPsr4 = array (
61
+ 'phpDocumentor\\Reflection\\' =>
62
+ array (
63
+ 0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src',
64
+ 1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
65
+ 2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
66
+ ),
67
+ 'Webmozart\\Assert\\' =>
68
+ array (
69
+ 0 => __DIR__ . '/..' . '/webmozart/assert/src',
70
+ ),
71
+ 'Symfony\\Polyfill\\Mbstring\\' =>
72
+ array (
73
+ 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
74
+ ),
75
+ 'Symfony\\Component\\Yaml\\' =>
76
+ array (
77
+ 0 => __DIR__ . '/..' . '/symfony/yaml',
78
+ ),
79
+ 'Symfony\\Component\\Translation\\' =>
80
+ array (
81
+ 0 => __DIR__ . '/..' . '/symfony/translation',
82
+ ),
83
+ 'Rhumsaa\\Uuid\\' =>
84
+ array (
85
+ 0 => __DIR__ . '/..' . '/ramsey/uuid/src',
86
+ ),
87
+ 'React\\Promise\\' =>
88
+ array (
89
+ 0 => __DIR__ . '/..' . '/react/promise/src',
90
+ ),
91
+ 'GuzzleHttp\\Stream\\' =>
92
+ array (
93
+ 0 => __DIR__ . '/..' . '/guzzlehttp/streams/src',
94
+ ),
95
+ 'GuzzleHttp\\Ring\\' =>
96
+ array (
97
+ 0 => __DIR__ . '/..' . '/guzzlehttp/ringphp/src',
98
+ ),
99
+ 'GuzzleHttp\\' =>
100
+ array (
101
+ 0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src',
102
+ ),
103
+ 'GingerPayments\\Payment\\Tests\\' =>
104
+ array (
105
+ 0 => __DIR__ . '/../..' . '/tests',
106
+ ),
107
+ 'GingerPayments\\Payment\\' =>
108
+ array (
109
+ 0 => __DIR__ . '/../..' . '/src',
110
+ ),
111
+ 'Doctrine\\Instantiator\\' =>
112
+ array (
113
+ 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',
114
+ ),
115
+ 'Carbon\\' =>
116
+ array (
117
+ 0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon',
118
+ ),
119
+ 'Alcohol\\' =>
120
+ array (
121
+ 0 => __DIR__ . '/..' . '/alcohol/iso3166',
122
+ ),
123
+ );
124
+
125
+ public static $prefixesPsr0 = array (
126
+ 'V' =>
127
+ array (
128
+ 'Verraes' =>
129
+ array (
130
+ 0 => __DIR__ . '/..' . '/mathiasverraes/classfunctions/src',
131
+ ),
132
+ ),
133
+ 'P' =>
134
+ array (
135
+ 'Prophecy\\' =>
136
+ array (
137
+ 0 => __DIR__ . '/..' . '/phpspec/prophecy/src',
138
+ ),
139
+ ),
140
+ 'M' =>
141
+ array (
142
+ 'Mockery' =>
143
+ array (
144
+ 0 => __DIR__ . '/..' . '/mockery/mockery/library',
145
+ ),
146
+ ),
147
+ 'I' =>
148
+ array (
149
+ 'IsoCodes' =>
150
+ array (
151
+ 0 => __DIR__ . '/..' . '/ronanguilloux/isocodes/src',
152
+ ),
153
+ ),
154
+ 'A' =>
155
+ array (
156
+ 'Assert' =>
157
+ array (
158
+ 0 => __DIR__ . '/..' . '/beberlei/assert/lib',
159
+ ),
160
+ ),
161
+ );
162
+
163
+ public static $classMap = array (
164
+ 'File_Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php',
165
+ 'File_Iterator_Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php',
166
+ 'File_Iterator_Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php',
167
+ 'Generic_Sniffs_Arrays_DisallowLongArraySyntaxSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Arrays/DisallowLongArraySyntaxSniff.php',
168
+ 'Generic_Sniffs_Arrays_DisallowShortArraySyntaxSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Arrays/DisallowShortArraySyntaxSniff.php',
169
+ 'Generic_Sniffs_Classes_DuplicateClassNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php',
170
+ 'Generic_Sniffs_Classes_OpeningBraceSameLineSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Classes/OpeningBraceSameLineSniff.php',
171
+ 'Generic_Sniffs_CodeAnalysis_EmptyStatementSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/EmptyStatementSniff.php',
172
+ 'Generic_Sniffs_CodeAnalysis_ForLoopShouldBeWhileLoopSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/ForLoopShouldBeWhileLoopSniff.php',
173
+ 'Generic_Sniffs_CodeAnalysis_ForLoopWithTestFunctionCallSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/ForLoopWithTestFunctionCallSniff.php',
174
+ 'Generic_Sniffs_CodeAnalysis_JumbledIncrementerSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/JumbledIncrementerSniff.php',
175
+ 'Generic_Sniffs_CodeAnalysis_UnconditionalIfStatementSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnconditionalIfStatementSniff.php',
176
+ 'Generic_Sniffs_CodeAnalysis_UnnecessaryFinalModifierSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php',
177
+ 'Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnusedFunctionParameterSniff.php',
178
+ 'Generic_Sniffs_CodeAnalysis_UselessOverridingMethodSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php',
179
+ 'Generic_Sniffs_Commenting_DocCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Commenting/DocCommentSniff.php',
180
+ 'Generic_Sniffs_Commenting_FixmeSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Commenting/FixmeSniff.php',
181
+ 'Generic_Sniffs_Commenting_TodoSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Commenting/TodoSniff.php',
182
+ 'Generic_Sniffs_ControlStructures_InlineControlStructureSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/ControlStructures/InlineControlStructureSniff.php',
183
+ 'Generic_Sniffs_Debug_CSSLintSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/CSSLintSniff.php',
184
+ 'Generic_Sniffs_Debug_ClosureLinterSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/ClosureLinterSniff.php',
185
+ 'Generic_Sniffs_Debug_JSHintSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Debug/JSHintSniff.php',
186
+ 'Generic_Sniffs_Files_ByteOrderMarkSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/ByteOrderMarkSniff.php',
187
+ 'Generic_Sniffs_Files_EndFileNewlineSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/EndFileNewlineSniff.php',
188
+ 'Generic_Sniffs_Files_EndFileNoNewlineSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/EndFileNoNewlineSniff.php',
189
+ 'Generic_Sniffs_Files_InlineHTMLSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/InlineHTMLSniff.php',
190
+ 'Generic_Sniffs_Files_LineEndingsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/LineEndingsSniff.php',
191
+ 'Generic_Sniffs_Files_LineLengthSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/LineLengthSniff.php',
192
+ 'Generic_Sniffs_Files_LowercasedFilenameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/LowercasedFilenameSniff.php',
193
+ 'Generic_Sniffs_Files_OneClassPerFileSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/OneClassPerFileSniff.php',
194
+ 'Generic_Sniffs_Files_OneInterfacePerFileSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/OneInterfacePerFileSniff.php',
195
+ 'Generic_Sniffs_Files_OneTraitPerFileSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Files/OneTraitPerFileSniff.php',
196
+ 'Generic_Sniffs_Formatting_DisallowMultipleStatementsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/DisallowMultipleStatementsSniff.php',
197
+ 'Generic_Sniffs_Formatting_MultipleStatementAlignmentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php',
198
+ 'Generic_Sniffs_Formatting_NoSpaceAfterCastSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/NoSpaceAfterCastSniff.php',
199
+ 'Generic_Sniffs_Formatting_SpaceAfterCastSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php',
200
+ 'Generic_Sniffs_Formatting_SpaceAfterNotSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Formatting/SpaceAfterNotSniff.php',
201
+ 'Generic_Sniffs_Functions_CallTimePassByReferenceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/CallTimePassByReferenceSniff.php',
202
+ 'Generic_Sniffs_Functions_FunctionCallArgumentSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/FunctionCallArgumentSpacingSniff.php',
203
+ 'Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceBsdAllmanSniff.php',
204
+ 'Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceKernighanRitchieSniff.php',
205
+ 'Generic_Sniffs_Metrics_CyclomaticComplexitySniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php',
206
+ 'Generic_Sniffs_Metrics_NestingLevelSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Metrics/NestingLevelSniff.php',
207
+ 'Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/CamelCapsFunctionNameSniff.php',
208
+ 'Generic_Sniffs_NamingConventions_ConstructorNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/ConstructorNameSniff.php',
209
+ 'Generic_Sniffs_NamingConventions_UpperCaseConstantNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php',
210
+ 'Generic_Sniffs_PHP_BacktickOperatorSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/BacktickOperatorSniff.php',
211
+ 'Generic_Sniffs_PHP_CharacterBeforePHPOpeningTagSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php',
212
+ 'Generic_Sniffs_PHP_ClosingPHPTagSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/ClosingPHPTagSniff.php',
213
+ 'Generic_Sniffs_PHP_DeprecatedFunctionsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/DeprecatedFunctionsSniff.php',
214
+ 'Generic_Sniffs_PHP_DisallowAlternativePHPTagsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/DisallowAlternativePHPTagsSniff.php',
215
+ 'Generic_Sniffs_PHP_DisallowShortOpenTagSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php',
216
+ 'Generic_Sniffs_PHP_ForbiddenFunctionsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php',
217
+ 'Generic_Sniffs_PHP_LowerCaseConstantSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/LowerCaseConstantSniff.php',
218
+ 'Generic_Sniffs_PHP_LowerCaseKeywordSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/LowerCaseKeywordSniff.php',
219
+ 'Generic_Sniffs_PHP_NoSilencedErrorsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/NoSilencedErrorsSniff.php',
220
+ 'Generic_Sniffs_PHP_SAPIUsageSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/SAPIUsageSniff.php',
221
+ 'Generic_Sniffs_PHP_SyntaxSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/SyntaxSniff.php',
222
+ 'Generic_Sniffs_PHP_UpperCaseConstantSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/PHP/UpperCaseConstantSniff.php',
223
+ 'Generic_Sniffs_Strings_UnnecessaryStringConcatSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/Strings/UnnecessaryStringConcatSniff.php',
224
+ 'Generic_Sniffs_VersionControl_SubversionPropertiesSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/VersionControl/SubversionPropertiesSniff.php',
225
+ 'Generic_Sniffs_WhiteSpace_DisallowSpaceIndentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/DisallowSpaceIndentSniff.php',
226
+ 'Generic_Sniffs_WhiteSpace_DisallowTabIndentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php',
227
+ 'Generic_Sniffs_WhiteSpace_ScopeIndentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/ScopeIndentSniff.php',
228
+ 'Hamcrest\\Arrays\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php',
229
+ 'Hamcrest\\Arrays\\IsArrayContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php',
230
+ 'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php',
231
+ 'Hamcrest\\Arrays\\IsArrayContainingInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php',
232
+ 'Hamcrest\\Arrays\\IsArrayContainingKey' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php',
233
+ 'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php',
234
+ 'Hamcrest\\Arrays\\IsArrayWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php',
235
+ 'Hamcrest\\Arrays\\MatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php',
236
+ 'Hamcrest\\Arrays\\SeriesMatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php',
237
+ 'Hamcrest\\AssertionError' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php',
238
+ 'Hamcrest\\BaseDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php',
239
+ 'Hamcrest\\BaseMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php',
240
+ 'Hamcrest\\Collection\\IsEmptyTraversable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php',
241
+ 'Hamcrest\\Collection\\IsTraversableWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php',
242
+ 'Hamcrest\\Core\\AllOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php',
243
+ 'Hamcrest\\Core\\AnyOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php',
244
+ 'Hamcrest\\Core\\CombinableMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php',
245
+ 'Hamcrest\\Core\\DescribedAs' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php',
246
+ 'Hamcrest\\Core\\Every' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php',
247
+ 'Hamcrest\\Core\\HasToString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php',
248
+ 'Hamcrest\\Core\\Is' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php',
249
+ 'Hamcrest\\Core\\IsAnything' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php',
250
+ 'Hamcrest\\Core\\IsCollectionContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php',
251
+ 'Hamcrest\\Core\\IsEqual' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php',
252
+ 'Hamcrest\\Core\\IsIdentical' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php',
253
+ 'Hamcrest\\Core\\IsInstanceOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php',
254
+ 'Hamcrest\\Core\\IsNot' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php',
255
+ 'Hamcrest\\Core\\IsNull' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php',
256
+ 'Hamcrest\\Core\\IsSame' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php',
257
+ 'Hamcrest\\Core\\IsTypeOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php',
258
+ 'Hamcrest\\Core\\Set' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php',
259
+ 'Hamcrest\\Core\\ShortcutCombination' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php',
260
+ 'Hamcrest\\Description' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php',
261
+ 'Hamcrest\\DiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php',
262
+ 'Hamcrest\\FeatureMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php',
263
+ 'Hamcrest\\Internal\\SelfDescribingValue' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php',
264
+ 'Hamcrest\\Matcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php',
265
+ 'Hamcrest\\MatcherAssert' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php',
266
+ 'Hamcrest\\Matchers' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php',
267
+ 'Hamcrest\\NullDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php',
268
+ 'Hamcrest\\Number\\IsCloseTo' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php',
269
+ 'Hamcrest\\Number\\OrderingComparison' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php',
270
+ 'Hamcrest\\SelfDescribing' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php',
271
+ 'Hamcrest\\StringDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php',
272
+ 'Hamcrest\\Text\\IsEmptyString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php',
273
+ 'Hamcrest\\Text\\IsEqualIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php',
274
+ 'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php',
275
+ 'Hamcrest\\Text\\MatchesPattern' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php',
276
+ 'Hamcrest\\Text\\StringContains' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php',
277
+ 'Hamcrest\\Text\\StringContainsIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php',
278
+ 'Hamcrest\\Text\\StringContainsInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php',
279
+ 'Hamcrest\\Text\\StringEndsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php',
280
+ 'Hamcrest\\Text\\StringStartsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php',
281
+ 'Hamcrest\\Text\\SubstringMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php',
282
+ 'Hamcrest\\TypeSafeDiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php',
283
+ 'Hamcrest\\TypeSafeMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php',
284
+ 'Hamcrest\\Type\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php',
285
+ 'Hamcrest\\Type\\IsBoolean' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php',
286
+ 'Hamcrest\\Type\\IsCallable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php',
287
+ 'Hamcrest\\Type\\IsDouble' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php',
288
+ 'Hamcrest\\Type\\IsInteger' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php',
289
+ 'Hamcrest\\Type\\IsNumeric' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php',
290
+ 'Hamcrest\\Type\\IsObject' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php',
291
+ 'Hamcrest\\Type\\IsResource' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php',
292
+ 'Hamcrest\\Type\\IsScalar' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php',
293
+ 'Hamcrest\\Type\\IsString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php',
294
+ 'Hamcrest\\Util' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php',
295
+ 'Hamcrest\\Xml\\HasXPath' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php',
296
+ 'MySource_Sniffs_CSS_BrowserSpecificStylesSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/CSS/BrowserSpecificStylesSniff.php',
297
+ 'MySource_Sniffs_Channels_DisallowSelfActionsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/DisallowSelfActionsSniff.php',
298
+ 'MySource_Sniffs_Channels_IncludeOwnSystemSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/IncludeOwnSystemSniff.php',
299
+ 'MySource_Sniffs_Channels_IncludeSystemSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/IncludeSystemSniff.php',
300
+ 'MySource_Sniffs_Channels_UnusedSystemSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Channels/UnusedSystemSniff.php',
301
+ 'MySource_Sniffs_Commenting_FunctionCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Commenting/FunctionCommentSniff.php',
302
+ 'MySource_Sniffs_Debug_DebugCodeSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Debug/DebugCodeSniff.php',
303
+ 'MySource_Sniffs_Debug_FirebugConsoleSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Debug/FirebugConsoleSniff.php',
304
+ 'MySource_Sniffs_Objects_AssignThisSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Objects/AssignThisSniff.php',
305
+ 'MySource_Sniffs_Objects_CreateWidgetTypeCallbackSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Objects/CreateWidgetTypeCallbackSniff.php',
306
+ 'MySource_Sniffs_Objects_DisallowNewWidgetSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Objects/DisallowNewWidgetSniff.php',
307
+ 'MySource_Sniffs_PHP_AjaxNullComparisonSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/AjaxNullComparisonSniff.php',
308
+ 'MySource_Sniffs_PHP_EvalObjectFactorySniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/EvalObjectFactorySniff.php',
309
+ 'MySource_Sniffs_PHP_GetRequestDataSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/GetRequestDataSniff.php',
310
+ 'MySource_Sniffs_PHP_ReturnFunctionValueSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/PHP/ReturnFunctionValueSniff.php',
311
+ 'MySource_Sniffs_Strings_JoinStringsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/MySource/Sniffs/Strings/JoinStringsSniff.php',
312
+ 'PEAR_Sniffs_Classes_ClassDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Classes/ClassDeclarationSniff.php',
313
+ 'PEAR_Sniffs_Commenting_ClassCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/ClassCommentSniff.php',
314
+ 'PEAR_Sniffs_Commenting_FileCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/FileCommentSniff.php',
315
+ 'PEAR_Sniffs_Commenting_FunctionCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/FunctionCommentSniff.php',
316
+ 'PEAR_Sniffs_Commenting_InlineCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Commenting/InlineCommentSniff.php',
317
+ 'PEAR_Sniffs_ControlStructures_ControlSignatureSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php',
318
+ 'PEAR_Sniffs_ControlStructures_MultiLineConditionSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/MultiLineConditionSniff.php',
319
+ 'PEAR_Sniffs_Files_IncludingFileSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Files/IncludingFileSniff.php',
320
+ 'PEAR_Sniffs_Formatting_MultiLineAssignmentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Formatting/MultiLineAssignmentSniff.php',
321
+ 'PEAR_Sniffs_Functions_FunctionCallSignatureSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Functions/FunctionCallSignatureSniff.php',
322
+ 'PEAR_Sniffs_Functions_FunctionDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Functions/FunctionDeclarationSniff.php',
323
+ 'PEAR_Sniffs_Functions_ValidDefaultValueSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/Functions/ValidDefaultValueSniff.php',
324
+ 'PEAR_Sniffs_NamingConventions_ValidClassNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidClassNameSniff.php',
325
+ 'PEAR_Sniffs_NamingConventions_ValidFunctionNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidFunctionNameSniff.php',
326
+ 'PEAR_Sniffs_NamingConventions_ValidVariableNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidVariableNameSniff.php',
327
+ 'PEAR_Sniffs_WhiteSpace_ObjectOperatorIndentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ObjectOperatorIndentSniff.php',
328
+ 'PEAR_Sniffs_WhiteSpace_ScopeClosingBraceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php',
329
+ 'PEAR_Sniffs_WhiteSpace_ScopeIndentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ScopeIndentSniff.php',
330
+ 'PHPUnit_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php',
331
+ 'PHPUnit_Extensions_GroupTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php',
332
+ 'PHPUnit_Extensions_PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/PhptTestCase.php',
333
+ 'PHPUnit_Extensions_PhptTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/PhptTestSuite.php',
334
+ 'PHPUnit_Extensions_RepeatedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/RepeatedTest.php',
335
+ 'PHPUnit_Extensions_TestDecorator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/TestDecorator.php',
336
+ 'PHPUnit_Extensions_TicketListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/TicketListener.php',
337
+ 'PHPUnit_Framework_Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php',
338
+ 'PHPUnit_Framework_AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
339
+ 'PHPUnit_Framework_BaseTestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/BaseTestListener.php',
340
+ 'PHPUnit_Framework_CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',
341
+ 'PHPUnit_Framework_Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint.php',
342
+ 'PHPUnit_Framework_Constraint_And' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/And.php',
343
+ 'PHPUnit_Framework_Constraint_ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
344
+ 'PHPUnit_Framework_Constraint_ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
345
+ 'PHPUnit_Framework_Constraint_Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
346
+ 'PHPUnit_Framework_Constraint_Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
347
+ 'PHPUnit_Framework_Constraint_ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
348
+ 'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
349
+ 'PHPUnit_Framework_Constraint_Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
350
+ 'PHPUnit_Framework_Constraint_Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
351
+ 'PHPUnit_Framework_Constraint_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
352
+ 'PHPUnit_Framework_Constraint_ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
353
+ 'PHPUnit_Framework_Constraint_ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
354
+ 'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php',
355
+ 'PHPUnit_Framework_Constraint_FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
356
+ 'PHPUnit_Framework_Constraint_GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
357
+ 'PHPUnit_Framework_Constraint_IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
358
+ 'PHPUnit_Framework_Constraint_IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
359
+ 'PHPUnit_Framework_Constraint_IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
360
+ 'PHPUnit_Framework_Constraint_IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
361
+ 'PHPUnit_Framework_Constraint_IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
362
+ 'PHPUnit_Framework_Constraint_IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
363
+ 'PHPUnit_Framework_Constraint_IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
364
+ 'PHPUnit_Framework_Constraint_IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
365
+ 'PHPUnit_Framework_Constraint_IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
366
+ 'PHPUnit_Framework_Constraint_IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
367
+ 'PHPUnit_Framework_Constraint_JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
368
+ 'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
369
+ 'PHPUnit_Framework_Constraint_LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
370
+ 'PHPUnit_Framework_Constraint_Not' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Not.php',
371
+ 'PHPUnit_Framework_Constraint_ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
372
+ 'PHPUnit_Framework_Constraint_Or' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Or.php',
373
+ 'PHPUnit_Framework_Constraint_PCREMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php',
374
+ 'PHPUnit_Framework_Constraint_SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
375
+ 'PHPUnit_Framework_Constraint_StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
376
+ 'PHPUnit_Framework_Constraint_StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
377
+ 'PHPUnit_Framework_Constraint_StringMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatches.php',
378
+ 'PHPUnit_Framework_Constraint_StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
379
+ 'PHPUnit_Framework_Constraint_TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
380
+ 'PHPUnit_Framework_Constraint_TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
381
+ 'PHPUnit_Framework_Constraint_Xor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Xor.php',
382
+ 'PHPUnit_Framework_Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error.php',
383
+ 'PHPUnit_Framework_Error_Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
384
+ 'PHPUnit_Framework_Error_Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php',
385
+ 'PHPUnit_Framework_Error_Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php',
386
+ 'PHPUnit_Framework_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php',
387
+ 'PHPUnit_Framework_ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
388
+ 'PHPUnit_Framework_ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',
389
+ 'PHPUnit_Framework_IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
390
+ 'PHPUnit_Framework_IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
391
+ 'PHPUnit_Framework_IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',
392
+ 'PHPUnit_Framework_InvalidCoversTargetError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetError.php',
393
+ 'PHPUnit_Framework_InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',
394
+ 'PHPUnit_Framework_MockObject_BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php',
395
+ 'PHPUnit_Framework_MockObject_Builder_Identity' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php',
396
+ 'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php',
397
+ 'PHPUnit_Framework_MockObject_Builder_Match' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php',
398
+ 'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php',
399
+ 'PHPUnit_Framework_MockObject_Builder_Namespace' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php',
400
+ 'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php',
401
+ 'PHPUnit_Framework_MockObject_Builder_Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php',
402
+ 'PHPUnit_Framework_MockObject_Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php',
403
+ 'PHPUnit_Framework_MockObject_Generator' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php',
404
+ 'PHPUnit_Framework_MockObject_Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php',
405
+ 'PHPUnit_Framework_MockObject_InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php',
406
+ 'PHPUnit_Framework_MockObject_Invocation_Object' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php',
407
+ 'PHPUnit_Framework_MockObject_Invocation_Static' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php',
408
+ 'PHPUnit_Framework_MockObject_Invokable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php',
409
+ 'PHPUnit_Framework_MockObject_Matcher' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php',
410
+ 'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php',
411
+ 'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php',
412
+ 'PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',
413
+ 'PHPUnit_Framework_MockObject_Matcher_Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php',
414
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php',
415
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',
416
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
417
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',
418
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php',
419
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php',
420
+ 'PHPUnit_Framework_MockObject_Matcher_MethodName' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php',
421
+ 'PHPUnit_Framework_MockObject_Matcher_Parameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php',
422
+ 'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php',
423
+ 'PHPUnit_Framework_MockObject_MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php',
424
+ 'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php',
425
+ 'PHPUnit_Framework_MockObject_RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php',
426
+ 'PHPUnit_Framework_MockObject_Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php',
427
+ 'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
428
+ 'PHPUnit_Framework_MockObject_Stub_Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php',
429
+ 'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php',
430
+ 'PHPUnit_Framework_MockObject_Stub_Return' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php',
431
+ 'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php',
432
+ 'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php',
433
+ 'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php',
434
+ 'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php',
435
+ 'PHPUnit_Framework_MockObject_Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php',
436
+ 'PHPUnit_Framework_OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php',
437
+ 'PHPUnit_Framework_RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php',
438
+ 'PHPUnit_Framework_RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php',
439
+ 'PHPUnit_Framework_SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
440
+ 'PHPUnit_Framework_SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php',
441
+ 'PHPUnit_Framework_SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
442
+ 'PHPUnit_Framework_SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php',
443
+ 'PHPUnit_Framework_SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',
444
+ 'PHPUnit_Framework_SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php',
445
+ 'PHPUnit_Framework_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php',
446
+ 'PHPUnit_Framework_TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php',
447
+ 'PHPUnit_Framework_TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php',
448
+ 'PHPUnit_Framework_TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php',
449
+ 'PHPUnit_Framework_TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php',
450
+ 'PHPUnit_Framework_TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php',
451
+ 'PHPUnit_Framework_TestSuite_DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php',
452
+ 'PHPUnit_Framework_UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',
453
+ 'PHPUnit_Framework_Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php',
454
+ 'PHPUnit_Runner_BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
455
+ 'PHPUnit_Runner_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php',
456
+ 'PHPUnit_Runner_Filter_Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
457
+ 'PHPUnit_Runner_Filter_GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group.php',
458
+ 'PHPUnit_Runner_Filter_Group_Exclude' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php',
459
+ 'PHPUnit_Runner_Filter_Group_Include' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group/Include.php',
460
+ 'PHPUnit_Runner_Filter_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Test.php',
461
+ 'PHPUnit_Runner_StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
462
+ 'PHPUnit_Runner_TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
463
+ 'PHPUnit_Runner_Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php',
464
+ 'PHPUnit_TextUI_Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php',
465
+ 'PHPUnit_TextUI_ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
466
+ 'PHPUnit_TextUI_TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php',
467
+ 'PHPUnit_Util_Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php',
468
+ 'PHPUnit_Util_Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php',
469
+ 'PHPUnit_Util_ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php',
470
+ 'PHPUnit_Util_Fileloader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Fileloader.php',
471
+ 'PHPUnit_Util_Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php',
472
+ 'PHPUnit_Util_Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php',
473
+ 'PHPUnit_Util_Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php',
474
+ 'PHPUnit_Util_GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php',
475
+ 'PHPUnit_Util_InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',
476
+ 'PHPUnit_Util_Log_JSON' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JSON.php',
477
+ 'PHPUnit_Util_Log_JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php',
478
+ 'PHPUnit_Util_Log_TAP' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TAP.php',
479
+ 'PHPUnit_Util_PHP' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP.php',
480
+ 'PHPUnit_Util_PHP_Default' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/Default.php',
481
+ 'PHPUnit_Util_PHP_Windows' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/Windows.php',
482
+ 'PHPUnit_Util_Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php',
483
+ 'PHPUnit_Util_Regex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Regex.php',
484
+ 'PHPUnit_Util_String' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/String.php',
485
+ 'PHPUnit_Util_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php',
486
+ 'PHPUnit_Util_TestDox_NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
487
+ 'PHPUnit_Util_TestDox_ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
488
+ 'PHPUnit_Util_TestDox_ResultPrinter_HTML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php',
489
+ 'PHPUnit_Util_TestDox_ResultPrinter_Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php',
490
+ 'PHPUnit_Util_TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestSuiteIterator.php',
491
+ 'PHPUnit_Util_Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php',
492
+ 'PHPUnit_Util_XML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XML.php',
493
+ 'PHP_CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php',
494
+ 'PHP_CodeCoverage_Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Driver.php',
495
+ 'PHP_CodeCoverage_Driver_HHVM' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php',
496
+ 'PHP_CodeCoverage_Driver_PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/PHPDBG.php',
497
+ 'PHP_CodeCoverage_Driver_Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php',
498
+ 'PHP_CodeCoverage_Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Exception.php',
499
+ 'PHP_CodeCoverage_Exception_UnintentionallyCoveredCode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php',
500
+ 'PHP_CodeCoverage_Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Filter.php',
501
+ 'PHP_CodeCoverage_Report_Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php',
502
+ 'PHP_CodeCoverage_Report_Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php',
503
+ 'PHP_CodeCoverage_Report_Factory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php',
504
+ 'PHP_CodeCoverage_Report_HTML' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php',
505
+ 'PHP_CodeCoverage_Report_HTML_Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php',
506
+ 'PHP_CodeCoverage_Report_HTML_Renderer_Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php',
507
+ 'PHP_CodeCoverage_Report_HTML_Renderer_Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php',
508
+ 'PHP_CodeCoverage_Report_HTML_Renderer_File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php',
509
+ 'PHP_CodeCoverage_Report_Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php',
510
+ 'PHP_CodeCoverage_Report_Node_Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php',
511
+ 'PHP_CodeCoverage_Report_Node_File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php',
512
+ 'PHP_CodeCoverage_Report_Node_Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php',
513
+ 'PHP_CodeCoverage_Report_PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php',
514
+ 'PHP_CodeCoverage_Report_Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php',
515
+ 'PHP_CodeCoverage_Report_XML' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php',
516
+ 'PHP_CodeCoverage_Report_XML_Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php',
517
+ 'PHP_CodeCoverage_Report_XML_File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php',
518
+ 'PHP_CodeCoverage_Report_XML_File_Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php',
519
+ 'PHP_CodeCoverage_Report_XML_File_Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php',
520
+ 'PHP_CodeCoverage_Report_XML_File_Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php',
521
+ 'PHP_CodeCoverage_Report_XML_File_Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php',
522
+ 'PHP_CodeCoverage_Report_XML_Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php',
523
+ 'PHP_CodeCoverage_Report_XML_Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php',
524
+ 'PHP_CodeCoverage_Report_XML_Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php',
525
+ 'PHP_CodeCoverage_Report_XML_Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php',
526
+ 'PHP_CodeCoverage_Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Util.php',
527
+ 'PHP_CodeCoverage_Util_InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php',
528
+ 'PHP_CodeSniffer' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer.php',
529
+ 'PHP_CodeSniffer_CLI' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/CLI.php',
530
+ 'PHP_CodeSniffer_DocGenerators_Generator' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/Generator.php',
531
+ 'PHP_CodeSniffer_DocGenerators_HTML' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/HTML.php',
532
+ 'PHP_CodeSniffer_DocGenerators_Markdown' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/Markdown.php',
533
+ 'PHP_CodeSniffer_DocGenerators_Text' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/DocGenerators/Text.php',
534
+ 'PHP_CodeSniffer_Exception' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Exception.php',
535
+ 'PHP_CodeSniffer_File' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/File.php',
536
+ 'PHP_CodeSniffer_Fixer' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Fixer.php',
537
+ 'PHP_CodeSniffer_Report' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Report.php',
538
+ 'PHP_CodeSniffer_Reporting' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reporting.php',
539
+ 'PHP_CodeSniffer_Reports_Cbf' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Cbf.php',
540
+ 'PHP_CodeSniffer_Reports_Checkstyle' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Checkstyle.php',
541
+ 'PHP_CodeSniffer_Reports_Csv' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Csv.php',
542
+ 'PHP_CodeSniffer_Reports_Diff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Diff.php',
543
+ 'PHP_CodeSniffer_Reports_Emacs' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Emacs.php',
544
+ 'PHP_CodeSniffer_Reports_Full' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Full.php',
545
+ 'PHP_CodeSniffer_Reports_Gitblame' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Gitblame.php',
546
+ 'PHP_CodeSniffer_Reports_Hgblame' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Hgblame.php',
547
+ 'PHP_CodeSniffer_Reports_Info' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Info.php',
548
+ 'PHP_CodeSniffer_Reports_Json' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Json.php',
549
+ 'PHP_CodeSniffer_Reports_Junit' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Junit.php',
550
+ 'PHP_CodeSniffer_Reports_Notifysend' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Notifysend.php',
551
+ 'PHP_CodeSniffer_Reports_Source' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Source.php',
552
+ 'PHP_CodeSniffer_Reports_Summary' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Summary.php',
553
+ 'PHP_CodeSniffer_Reports_Svnblame' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Svnblame.php',
554
+ 'PHP_CodeSniffer_Reports_VersionControl' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/VersionControl.php',
555
+ 'PHP_CodeSniffer_Reports_Xml' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Reports/Xml.php',
556
+ 'PHP_CodeSniffer_Sniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Sniff.php',
557
+ 'PHP_CodeSniffer_Standards_AbstractPatternSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/AbstractPatternSniff.php',
558
+ 'PHP_CodeSniffer_Standards_AbstractScopeSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/AbstractScopeSniff.php',
559
+ 'PHP_CodeSniffer_Standards_AbstractVariableSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/AbstractVariableSniff.php',
560
+ 'PHP_CodeSniffer_Standards_IncorrectPatternException' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/IncorrectPatternException.php',
561
+ 'PHP_CodeSniffer_Tokenizers_CSS' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/CSS.php',
562
+ 'PHP_CodeSniffer_Tokenizers_Comment' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/Comment.php',
563
+ 'PHP_CodeSniffer_Tokenizers_JS' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/JS.php',
564
+ 'PHP_CodeSniffer_Tokenizers_PHP' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Tokenizers/PHP.php',
565
+ 'PHP_CodeSniffer_Tokens' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Tokens.php',
566
+ 'PHP_Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php',
567
+ 'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
568
+ 'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
569
+ 'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
570
+ 'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
571
+ 'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
572
+ 'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
573
+ 'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
574
+ 'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
575
+ 'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
576
+ 'PHP_Token_ASYNC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
577
+ 'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
578
+ 'PHP_Token_AWAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
579
+ 'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
580
+ 'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
581
+ 'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
582
+ 'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
583
+ 'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
584
+ 'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
585
+ 'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
586
+ 'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
587
+ 'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
588
+ 'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
589
+ 'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
590
+ 'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
591
+ 'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
592
+ 'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
593
+ 'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
594
+ 'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
595
+ 'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
596
+ 'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
597
+ 'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
598
+ 'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
599
+ 'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
600
+ 'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
601
+ 'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
602
+ 'PHP_Token_COMPILER_HALT_OFFSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
603
+ 'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
604
+ 'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
605
+ 'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
606
+ 'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
607
+ 'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
608
+ 'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
609
+ 'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
610
+ 'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
611
+ 'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
612
+ 'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
613
+ 'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
614
+ 'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
615
+ 'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
616
+ 'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
617
+ 'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
618
+ 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
619
+ 'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
620
+ 'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
621
+ 'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
622
+ 'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
623
+ 'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
624
+ 'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
625
+ 'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
626
+ 'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
627
+ 'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
628
+ 'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
629
+ 'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
630
+ 'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
631
+ 'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
632
+ 'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
633
+ 'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
634
+ 'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
635
+ 'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
636
+ 'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
637
+ 'PHP_Token_ENUM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
638
+ 'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
639
+ 'PHP_Token_EQUALS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
640
+ 'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
641
+ 'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
642
+ 'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
643
+ 'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
644
+ 'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
645
+ 'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
646
+ 'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
647
+ 'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
648
+ 'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
649
+ 'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
650
+ 'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
651
+ 'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
652
+ 'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
653
+ 'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
654
+ 'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
655
+ 'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
656
+ 'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
657
+ 'PHP_Token_IN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
658
+ 'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
659
+ 'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
660
+ 'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
661
+ 'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
662
+ 'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
663
+ 'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
664
+ 'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
665
+ 'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
666
+ 'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
667
+ 'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
668
+ 'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
669
+ 'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
670
+ 'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
671
+ 'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
672
+ 'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
673
+ 'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
674
+ 'PHP_Token_JOIN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
675
+ 'PHP_Token_LAMBDA_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
676
+ 'PHP_Token_LAMBDA_CP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
677
+ 'PHP_Token_LAMBDA_OP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
678
+ 'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
679
+ 'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
680
+ 'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
681
+ 'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
682
+ 'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
683
+ 'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
684
+ 'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
685
+ 'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
686
+ 'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
687
+ 'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
688
+ 'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
689
+ 'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
690
+ 'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
691
+ 'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
692
+ 'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
693
+ 'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
694
+ 'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
695
+ 'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
696
+ 'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
697
+ 'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
698
+ 'PHP_Token_ONUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
699
+ 'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
700
+ 'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
701
+ 'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
702
+ 'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
703
+ 'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
704
+ 'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
705
+ 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
706
+ 'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
707
+ 'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
708
+ 'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
709
+ 'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
710
+ 'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
711
+ 'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
712
+ 'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
713
+ 'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
714
+ 'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
715
+ 'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
716
+ 'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
717
+ 'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
718
+ 'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
719
+ 'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
720
+ 'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
721
+ 'PHP_Token_SHAPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
722
+ 'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
723
+ 'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
724
+ 'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
725
+ 'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
726
+ 'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
727
+ 'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
728
+ 'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
729
+ 'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
730
+ 'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
731
+ 'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
732
+ 'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
733
+ 'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php',
734
+ 'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',
735
+ 'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
736
+ 'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
737
+ 'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
738
+ 'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
739
+ 'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
740
+ 'PHP_Token_TYPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
741
+ 'PHP_Token_TYPELIST_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
742
+ 'PHP_Token_TYPELIST_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
743
+ 'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
744
+ 'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
745
+ 'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
746
+ 'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
747
+ 'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
748
+ 'PHP_Token_WHERE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
749
+ 'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
750
+ 'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
751
+ 'PHP_Token_XHP_ATTRIBUTE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
752
+ 'PHP_Token_XHP_CATEGORY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
753
+ 'PHP_Token_XHP_CATEGORY_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
754
+ 'PHP_Token_XHP_CHILDREN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
755
+ 'PHP_Token_XHP_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
756
+ 'PHP_Token_XHP_REQUIRED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
757
+ 'PHP_Token_XHP_TAG_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
758
+ 'PHP_Token_XHP_TAG_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
759
+ 'PHP_Token_XHP_TEXT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
760
+ 'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
761
+ 'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
762
+ 'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
763
+ 'PSR1_Sniffs_Classes_ClassDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR1/Sniffs/Classes/ClassDeclarationSniff.php',
764
+ 'PSR1_Sniffs_Files_SideEffectsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php',
765
+ 'PSR1_Sniffs_Methods_CamelCapsMethodNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR1/Sniffs/Methods/CamelCapsMethodNameSniff.php',
766
+ 'PSR2_Sniffs_Classes_ClassDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Classes/ClassDeclarationSniff.php',
767
+ 'PSR2_Sniffs_Classes_PropertyDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Classes/PropertyDeclarationSniff.php',
768
+ 'PSR2_Sniffs_ControlStructures_ControlStructureSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php',
769
+ 'PSR2_Sniffs_ControlStructures_ElseIfDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php',
770
+ 'PSR2_Sniffs_ControlStructures_SwitchDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/SwitchDeclarationSniff.php',
771
+ 'PSR2_Sniffs_Files_ClosingTagSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Files/ClosingTagSniff.php',
772
+ 'PSR2_Sniffs_Files_EndFileNewlineSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Files/EndFileNewlineSniff.php',
773
+ 'PSR2_Sniffs_Methods_FunctionCallSignatureSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Methods/FunctionCallSignatureSniff.php',
774
+ 'PSR2_Sniffs_Methods_FunctionClosingBraceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Methods/FunctionClosingBraceSniff.php',
775
+ 'PSR2_Sniffs_Methods_MethodDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Methods/MethodDeclarationSniff.php',
776
+ 'PSR2_Sniffs_Namespaces_NamespaceDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Namespaces/NamespaceDeclarationSniff.php',
777
+ 'PSR2_Sniffs_Namespaces_UseDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/Sniffs/Namespaces/UseDeclarationSniff.php',
778
+ 'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php',
779
+ 'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php',
780
+ 'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php',
781
+ 'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php',
782
+ 'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php',
783
+ 'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php',
784
+ 'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php',
785
+ 'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php',
786
+ 'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php',
787
+ 'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php',
788
+ 'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php',
789
+ 'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php',
790
+ 'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php',
791
+ 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php',
792
+ 'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php',
793
+ 'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php',
794
+ 'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php',
795
+ 'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php',
796
+ 'SebastianBergmann\\Diff\\LCS\\LongestCommonSubsequence' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/LongestCommonSubsequence.php',
797
+ 'SebastianBergmann\\Diff\\LCS\\MemoryEfficientImplementation' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php',
798
+ 'SebastianBergmann\\Diff\\LCS\\TimeEfficientImplementation' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php',
799
+ 'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php',
800
+ 'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php',
801
+ 'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php',
802
+ 'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php',
803
+ 'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php',
804
+ 'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php',
805
+ 'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php',
806
+ 'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/Exception.php',
807
+ 'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php',
808
+ 'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/RuntimeException.php',
809
+ 'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php',
810
+ 'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php',
811
+ 'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php',
812
+ 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php',
813
+ 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',
814
+ 'Squiz_Sniffs_Arrays_ArrayBracketSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Arrays/ArrayBracketSpacingSniff.php',
815
+ 'Squiz_Sniffs_Arrays_ArrayDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php',
816
+ 'Squiz_Sniffs_CSS_ClassDefinitionClosingBraceSpaceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionClosingBraceSpaceSniff.php',
817
+ 'Squiz_Sniffs_CSS_ClassDefinitionNameSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionNameSpacingSniff.php',
818
+ 'Squiz_Sniffs_CSS_ClassDefinitionOpeningBraceSpaceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionOpeningBraceSpaceSniff.php',
819
+ 'Squiz_Sniffs_CSS_ColonSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ColonSpacingSniff.php',
820
+ 'Squiz_Sniffs_CSS_ColourDefinitionSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ColourDefinitionSniff.php',
821
+ 'Squiz_Sniffs_CSS_DisallowMultipleStyleDefinitionsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php',
822
+ 'Squiz_Sniffs_CSS_DuplicateClassDefinitionSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/DuplicateClassDefinitionSniff.php',
823
+ 'Squiz_Sniffs_CSS_DuplicateStyleDefinitionSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/DuplicateStyleDefinitionSniff.php',
824
+ 'Squiz_Sniffs_CSS_EmptyClassDefinitionSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/EmptyClassDefinitionSniff.php',
825
+ 'Squiz_Sniffs_CSS_EmptyStyleDefinitionSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/EmptyStyleDefinitionSniff.php',
826
+ 'Squiz_Sniffs_CSS_ForbiddenStylesSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ForbiddenStylesSniff.php',
827
+ 'Squiz_Sniffs_CSS_IndentationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/IndentationSniff.php',
828
+ 'Squiz_Sniffs_CSS_LowercaseStyleDefinitionSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php',
829
+ 'Squiz_Sniffs_CSS_MissingColonSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/MissingColonSniff.php',
830
+ 'Squiz_Sniffs_CSS_NamedColoursSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/NamedColoursSniff.php',
831
+ 'Squiz_Sniffs_CSS_OpacitySniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/OpacitySniff.php',
832
+ 'Squiz_Sniffs_CSS_SemicolonSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/SemicolonSpacingSniff.php',
833
+ 'Squiz_Sniffs_CSS_ShorthandSizeSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/CSS/ShorthandSizeSniff.php',
834
+ 'Squiz_Sniffs_Classes_ClassDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/ClassDeclarationSniff.php',
835
+ 'Squiz_Sniffs_Classes_ClassFileNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/ClassFileNameSniff.php',
836
+ 'Squiz_Sniffs_Classes_DuplicatePropertySniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/DuplicatePropertySniff.php',
837
+ 'Squiz_Sniffs_Classes_LowercaseClassKeywordsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/LowercaseClassKeywordsSniff.php',
838
+ 'Squiz_Sniffs_Classes_SelfMemberReferenceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/SelfMemberReferenceSniff.php',
839
+ 'Squiz_Sniffs_Classes_ValidClassNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Classes/ValidClassNameSniff.php',
840
+ 'Squiz_Sniffs_Commenting_BlockCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/BlockCommentSniff.php',
841
+ 'Squiz_Sniffs_Commenting_ClassCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/ClassCommentSniff.php',
842
+ 'Squiz_Sniffs_Commenting_ClosingDeclarationCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/ClosingDeclarationCommentSniff.php',
843
+ 'Squiz_Sniffs_Commenting_DocCommentAlignmentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php',
844
+ 'Squiz_Sniffs_Commenting_EmptyCatchCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/EmptyCatchCommentSniff.php',
845
+ 'Squiz_Sniffs_Commenting_FileCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FileCommentSniff.php',
846
+ 'Squiz_Sniffs_Commenting_FunctionCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FunctionCommentSniff.php',
847
+ 'Squiz_Sniffs_Commenting_FunctionCommentThrowTagSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FunctionCommentThrowTagSniff.php',
848
+ 'Squiz_Sniffs_Commenting_InlineCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/InlineCommentSniff.php',
849
+ 'Squiz_Sniffs_Commenting_LongConditionClosingCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/LongConditionClosingCommentSniff.php',
850
+ 'Squiz_Sniffs_Commenting_PostStatementCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/PostStatementCommentSniff.php',
851
+ 'Squiz_Sniffs_Commenting_VariableCommentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php',
852
+ 'Squiz_Sniffs_ControlStructures_ControlSignatureSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php',
853
+ 'Squiz_Sniffs_ControlStructures_ElseIfDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ElseIfDeclarationSniff.php',
854
+ 'Squiz_Sniffs_ControlStructures_ForEachLoopDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ForEachLoopDeclarationSniff.php',
855
+ 'Squiz_Sniffs_ControlStructures_ForLoopDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ForLoopDeclarationSniff.php',
856
+ 'Squiz_Sniffs_ControlStructures_InlineIfDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/InlineIfDeclarationSniff.php',
857
+ 'Squiz_Sniffs_ControlStructures_LowercaseDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/LowercaseDeclarationSniff.php',
858
+ 'Squiz_Sniffs_ControlStructures_SwitchDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/SwitchDeclarationSniff.php',
859
+ 'Squiz_Sniffs_Debug_JSLintSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Debug/JSLintSniff.php',
860
+ 'Squiz_Sniffs_Debug_JavaScriptLintSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Debug/JavaScriptLintSniff.php',
861
+ 'Squiz_Sniffs_Files_FileExtensionSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Files/FileExtensionSniff.php',
862
+ 'Squiz_Sniffs_Formatting_OperatorBracketSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Formatting/OperatorBracketSniff.php',
863
+ 'Squiz_Sniffs_Functions_FunctionDeclarationArgumentSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php',
864
+ 'Squiz_Sniffs_Functions_FunctionDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDeclarationSniff.php',
865
+ 'Squiz_Sniffs_Functions_FunctionDuplicateArgumentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDuplicateArgumentSniff.php',
866
+ 'Squiz_Sniffs_Functions_GlobalFunctionSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/GlobalFunctionSniff.php',
867
+ 'Squiz_Sniffs_Functions_LowercaseFunctionKeywordsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/LowercaseFunctionKeywordsSniff.php',
868
+ 'Squiz_Sniffs_Functions_MultiLineFunctionDeclarationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Functions/MultiLineFunctionDeclarationSniff.php',
869
+ 'Squiz_Sniffs_NamingConventions_ValidFunctionNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ValidFunctionNameSniff.php',
870
+ 'Squiz_Sniffs_NamingConventions_ValidVariableNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ValidVariableNameSniff.php',
871
+ 'Squiz_Sniffs_Objects_DisallowObjectStringIndexSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Objects/DisallowObjectStringIndexSniff.php',
872
+ 'Squiz_Sniffs_Objects_ObjectInstantiationSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Objects/ObjectInstantiationSniff.php',
873
+ 'Squiz_Sniffs_Objects_ObjectMemberCommaSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Objects/ObjectMemberCommaSniff.php',
874
+ 'Squiz_Sniffs_Operators_ComparisonOperatorUsageSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Operators/ComparisonOperatorUsageSniff.php',
875
+ 'Squiz_Sniffs_Operators_IncrementDecrementUsageSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Operators/IncrementDecrementUsageSniff.php',
876
+ 'Squiz_Sniffs_Operators_ValidLogicalOperatorsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Operators/ValidLogicalOperatorsSniff.php',
877
+ 'Squiz_Sniffs_PHP_CommentedOutCodeSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/CommentedOutCodeSniff.php',
878
+ 'Squiz_Sniffs_PHP_DisallowBooleanStatementSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowBooleanStatementSniff.php',
879
+ 'Squiz_Sniffs_PHP_DisallowComparisonAssignmentSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowComparisonAssignmentSniff.php',
880
+ 'Squiz_Sniffs_PHP_DisallowInlineIfSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowInlineIfSniff.php',
881
+ 'Squiz_Sniffs_PHP_DisallowMultipleAssignmentsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowMultipleAssignmentsSniff.php',
882
+ 'Squiz_Sniffs_PHP_DisallowObEndFlushSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowObEndFlushSniff.php',
883
+ 'Squiz_Sniffs_PHP_DisallowSizeFunctionsInLoopsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php',
884
+ 'Squiz_Sniffs_PHP_DiscouragedFunctionsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/DiscouragedFunctionsSniff.php',
885
+ 'Squiz_Sniffs_PHP_EmbeddedPhpSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/EmbeddedPhpSniff.php',
886
+ 'Squiz_Sniffs_PHP_EvalSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/EvalSniff.php',
887
+ 'Squiz_Sniffs_PHP_ForbiddenFunctionsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/ForbiddenFunctionsSniff.php',
888
+ 'Squiz_Sniffs_PHP_GlobalKeywordSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/GlobalKeywordSniff.php',
889
+ 'Squiz_Sniffs_PHP_HeredocSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/HeredocSniff.php',
890
+ 'Squiz_Sniffs_PHP_InnerFunctionsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/InnerFunctionsSniff.php',
891
+ 'Squiz_Sniffs_PHP_LowercasePHPFunctionsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/LowercasePHPFunctionsSniff.php',
892
+ 'Squiz_Sniffs_PHP_NonExecutableCodeSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/PHP/NonExecutableCodeSniff.php',
893
+ 'Squiz_Sniffs_Scope_MemberVarScopeSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php',
894
+ 'Squiz_Sniffs_Scope_MethodScopeSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Scope/MethodScopeSniff.php',
895
+ 'Squiz_Sniffs_Scope_StaticThisUsageSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Scope/StaticThisUsageSniff.php',
896
+ 'Squiz_Sniffs_Strings_ConcatenationSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php',
897
+ 'Squiz_Sniffs_Strings_DoubleQuoteUsageSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Strings/DoubleQuoteUsageSniff.php',
898
+ 'Squiz_Sniffs_Strings_EchoedStringsSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/Strings/EchoedStringsSniff.php',
899
+ 'Squiz_Sniffs_WhiteSpace_CastSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/CastSpacingSniff.php',
900
+ 'Squiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php',
901
+ 'Squiz_Sniffs_WhiteSpace_FunctionClosingBraceSpaceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php',
902
+ 'Squiz_Sniffs_WhiteSpace_FunctionOpeningBraceSpaceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php',
903
+ 'Squiz_Sniffs_WhiteSpace_FunctionSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionSpacingSniff.php',
904
+ 'Squiz_Sniffs_WhiteSpace_LanguageConstructSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php',
905
+ 'Squiz_Sniffs_WhiteSpace_LogicalOperatorSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/LogicalOperatorSpacingSniff.php',
906
+ 'Squiz_Sniffs_WhiteSpace_MemberVarSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/MemberVarSpacingSniff.php',
907
+ 'Squiz_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php',
908
+ 'Squiz_Sniffs_WhiteSpace_OperatorSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php',
909
+ 'Squiz_Sniffs_WhiteSpace_PropertyLabelSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/PropertyLabelSpacingSniff.php',
910
+ 'Squiz_Sniffs_WhiteSpace_ScopeClosingBraceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php',
911
+ 'Squiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ScopeKeywordSpacingSniff.php',
912
+ 'Squiz_Sniffs_WhiteSpace_SemicolonSpacingSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/SemicolonSpacingSniff.php',
913
+ 'Squiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php',
914
+ 'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php',
915
+ 'Zend_Sniffs_Debug_CodeAnalyzerSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php',
916
+ 'Zend_Sniffs_Files_ClosingTagSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Zend/Sniffs/Files/ClosingTagSniff.php',
917
+ 'Zend_Sniffs_NamingConventions_ValidVariableNameSniff' => __DIR__ . '/..' . '/squizlabs/php_codesniffer/CodeSniffer/Standards/Zend/Sniffs/NamingConventions/ValidVariableNameSniff.php',
918
+ );
919
+
920
+ public static function getInitializer(ClassLoader $loader)
921
+ {
922
+ return \Closure::bind(function () use ($loader) {
923
+ $loader->prefixLengthsPsr4 = ComposerStaticInit7ff6aa8a97863a0afac29ee99103185f::$prefixLengthsPsr4;
924
+ $loader->prefixDirsPsr4 = ComposerStaticInit7ff6aa8a97863a0afac29ee99103185f::$prefixDirsPsr4;
925
+ $loader->prefixesPsr0 = ComposerStaticInit7ff6aa8a97863a0afac29ee99103185f::$prefixesPsr0;
926
+ $loader->classMap = ComposerStaticInit7ff6aa8a97863a0afac29ee99103185f::$classMap;
927
+
928
+ }, null, ClassLoader::class);
929
+ }
930
+ }
lib/Ing/Services/ing-php/vendor/composer/installed.json ADDED
@@ -0,0 +1,2091 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "name": "mathiasverraes/classfunctions",
4
+ "version": "1.1.0",
5
+ "version_normalized": "1.1.0.0",
6
+ "source": {
7
+ "type": "git",
8
+ "url": "https://github.com/mathiasverraes/classfunctions.git",
9
+ "reference": "f0f8dadf1ab4a71e84dede2adb1ed8a34cef7c34"
10
+ },
11
+ "dist": {
12
+ "type": "zip",
13
+ "url": "https://api.github.com/repos/mathiasverraes/classfunctions/zipball/f0f8dadf1ab4a71e84dede2adb1ed8a34cef7c34",
14
+ "reference": "f0f8dadf1ab4a71e84dede2adb1ed8a34cef7c34",
15
+ "shasum": ""
16
+ },
17
+ "require": {
18
+ "php": ">=5.4"
19
+ },
20
+ "require-dev": {
21
+ "phpunit/phpunit": "4.*"
22
+ },
23
+ "time": "2014-07-28 14:39:20",
24
+ "type": "library",
25
+ "extra": {
26
+ "branch-alias": {
27
+ "dev-master": "1.1-dev"
28
+ }
29
+ },
30
+ "installation-source": "dist",
31
+ "autoload": {
32
+ "psr-0": {
33
+ "Verraes": "src"
34
+ }
35
+ },
36
+ "notification-url": "https://packagist.org/downloads/",
37
+ "license": [
38
+ "MIT"
39
+ ],
40
+ "authors": [
41
+ {
42
+ "name": "Mathias Verraes",
43
+ "email": "mathias@verraes.net",
44
+ "homepage": "http://verraes.net",
45
+ "role": "Developer"
46
+ }
47
+ ],
48
+ "description": "Functions to manipulate class names",
49
+ "homepage": "http://verraes.net",
50
+ "keywords": [
51
+ "classes",
52
+ "utilities"
53
+ ]
54
+ },
55
+ {
56
+ "name": "alcohol/iso3166",
57
+ "version": "3.0.0",
58
+ "version_normalized": "3.0.0.0",
59
+ "source": {
60
+ "type": "git",
61
+ "url": "https://github.com/alcohol/iso3166.git",
62
+ "reference": "15d22e0c37f17ca448cf866a388d8e5b1e5f4cf1"
63
+ },
64
+ "dist": {
65
+ "type": "zip",
66
+ "url": "https://api.github.com/repos/alcohol/iso3166/zipball/15d22e0c37f17ca448cf866a388d8e5b1e5f4cf1",
67
+ "reference": "15d22e0c37f17ca448cf866a388d8e5b1e5f4cf1",
68
+ "shasum": ""
69
+ },
70
+ "require": {
71
+ "php": ">=5.4"
72
+ },
73
+ "require-dev": {
74
+ "phpunit/php-invoker": "@stable",
75
+ "phpunit/phpunit": "~4.6"
76
+ },
77
+ "time": "2015-09-04 14:14:03",
78
+ "type": "library",
79
+ "extra": {
80
+ "branch-alias": {
81
+ "dev-master": "3.x-dev"
82
+ }
83
+ },
84
+ "installation-source": "dist",
85
+ "autoload": {
86
+ "psr-4": {
87
+ "Alcohol\\": "."
88
+ }
89
+ },
90
+ "notification-url": "https://packagist.org/downloads/",
91
+ "license": [
92
+ "MIT"
93
+ ],
94
+ "authors": [
95
+ {
96
+ "name": "Rob Bast",
97
+ "email": "rob.bast@gmail.com"
98
+ }
99
+ ],
100
+ "description": "ISO 3166-1 PHP Library",
101
+ "homepage": "http://alcohol.github.io/iso3166/",
102
+ "keywords": [
103
+ "3166",
104
+ "3166-1",
105
+ "ISO 3166",
106
+ "countries",
107
+ "iso",
108
+ "library"
109
+ ],
110
+ "abandoned": "league/iso3166"
111
+ },
112
+ {
113
+ "name": "react/promise",
114
+ "version": "v2.4.1",
115
+ "version_normalized": "2.4.1.0",
116
+ "source": {
117
+ "type": "git",
118
+ "url": "https://github.com/reactphp/promise.git",
119
+ "reference": "8025426794f1944de806618671d4fa476dc7626f"
120
+ },
121
+ "dist": {
122
+ "type": "zip",
123
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/8025426794f1944de806618671d4fa476dc7626f",
124
+ "reference": "8025426794f1944de806618671d4fa476dc7626f",
125
+ "shasum": ""
126
+ },
127
+ "require": {
128
+ "php": ">=5.4.0"
129
+ },
130
+ "time": "2016-05-03 17:50:52",
131
+ "type": "library",
132
+ "extra": {
133
+ "branch-alias": {
134
+ "dev-master": "2.0-dev"
135
+ }
136
+ },
137
+ "installation-source": "dist",
138
+ "autoload": {
139
+ "psr-4": {
140
+ "React\\Promise\\": "src/"
141
+ },
142
+ "files": [
143
+ "src/functions_include.php"
144
+ ]
145
+ },
146
+ "notification-url": "https://packagist.org/downloads/",
147
+ "license": [
148
+ "MIT"
149
+ ],
150
+ "authors": [
151
+ {
152
+ "name": "Jan Sorgalla",
153
+ "email": "jsorgalla@gmail.com"
154
+ }
155
+ ],
156
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP"
157
+ },
158
+ {
159
+ "name": "guzzlehttp/streams",
160
+ "version": "3.0.0",
161
+ "version_normalized": "3.0.0.0",
162
+ "source": {
163
+ "type": "git",
164
+ "url": "https://github.com/guzzle/streams.git",
165
+ "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5"
166
+ },
167
+ "dist": {
168
+ "type": "zip",
169
+ "url": "https://api.github.com/repos/guzzle/streams/zipball/47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
170
+ "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
171
+ "shasum": ""
172
+ },
173
+ "require": {
174
+ "php": ">=5.4.0"
175
+ },
176
+ "require-dev": {
177
+ "phpunit/phpunit": "~4.0"
178
+ },
179
+ "time": "2014-10-12 19:18:40",
180
+ "type": "library",
181
+ "extra": {
182
+ "branch-alias": {
183
+ "dev-master": "3.0-dev"
184
+ }
185
+ },
186
+ "installation-source": "dist",
187
+ "autoload": {
188
+ "psr-4": {
189
+ "GuzzleHttp\\Stream\\": "src/"
190
+ }
191
+ },
192
+ "notification-url": "https://packagist.org/downloads/",
193
+ "license": [
194
+ "MIT"
195
+ ],
196
+ "authors": [
197
+ {
198
+ "name": "Michael Dowling",
199
+ "email": "mtdowling@gmail.com",
200
+ "homepage": "https://github.com/mtdowling"
201
+ }
202
+ ],
203
+ "description": "Provides a simple abstraction over streams of data",
204
+ "homepage": "http://guzzlephp.org/",
205
+ "keywords": [
206
+ "Guzzle",
207
+ "stream"
208
+ ]
209
+ },
210
+ {
211
+ "name": "guzzlehttp/ringphp",
212
+ "version": "1.1.0",
213
+ "version_normalized": "1.1.0.0",
214
+ "source": {
215
+ "type": "git",
216
+ "url": "https://github.com/guzzle/RingPHP.git",
217
+ "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b"
218
+ },
219
+ "dist": {
220
+ "type": "zip",
221
+ "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
222
+ "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
223
+ "shasum": ""
224
+ },
225
+ "require": {
226
+ "guzzlehttp/streams": "~3.0",
227
+ "php": ">=5.4.0",
228
+ "react/promise": "~2.0"
229
+ },
230
+ "require-dev": {
231
+ "ext-curl": "*",
232
+ "phpunit/phpunit": "~4.0"
233
+ },
234
+ "suggest": {
235
+ "ext-curl": "Guzzle will use specific adapters if cURL is present"
236
+ },
237
+ "time": "2015-05-20 03:37:09",
238
+ "type": "library",
239
+ "extra": {
240
+ "branch-alias": {
241
+ "dev-master": "1.1-dev"
242
+ }
243
+ },
244
+ "installation-source": "dist",
245
+ "autoload": {
246
+ "psr-4": {
247
+ "GuzzleHttp\\Ring\\": "src/"
248
+ }
249
+ },
250
+ "notification-url": "https://packagist.org/downloads/",
251
+ "license": [
252
+ "MIT"
253
+ ],
254
+ "authors": [
255
+ {
256
+ "name": "Michael Dowling",
257
+ "email": "mtdowling@gmail.com",
258
+ "homepage": "https://github.com/mtdowling"
259
+ }
260
+ ],
261
+ "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function."
262
+ },
263
+ {
264
+ "name": "guzzlehttp/guzzle",
265
+ "version": "5.3.1",
266
+ "version_normalized": "5.3.1.0",
267
+ "source": {
268
+ "type": "git",
269
+ "url": "https://github.com/guzzle/guzzle.git",
270
+ "reference": "70f1fa53b71c4647bf2762c09068a95f77e12fb8"
271
+ },
272
+ "dist": {
273
+ "type": "zip",
274
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/70f1fa53b71c4647bf2762c09068a95f77e12fb8",
275
+ "reference": "70f1fa53b71c4647bf2762c09068a95f77e12fb8",
276
+ "shasum": ""
277
+ },
278
+ "require": {
279
+ "guzzlehttp/ringphp": "^1.1",
280
+ "php": ">=5.4.0"
281
+ },
282
+ "require-dev": {
283
+ "ext-curl": "*",
284
+ "phpunit/phpunit": "^4.0"
285
+ },
286
+ "time": "2016-07-15 19:28:39",
287
+ "type": "library",
288
+ "installation-source": "dist",
289
+ "autoload": {
290
+ "psr-4": {
291
+ "GuzzleHttp\\": "src/"
292
+ }
293
+ },
294
+ "notification-url": "https://packagist.org/downloads/",
295
+ "license": [
296
+ "MIT"
297
+ ],
298
+ "authors": [
299
+ {
300
+ "name": "Michael Dowling",
301
+ "email": "mtdowling@gmail.com",
302
+ "homepage": "https://github.com/mtdowling"
303
+ }
304
+ ],
305
+ "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
306
+ "homepage": "http://guzzlephp.org/",
307
+ "keywords": [
308
+ "client",
309
+ "curl",
310
+ "framework",
311
+ "http",
312
+ "http client",
313
+ "rest",
314
+ "web service"
315
+ ]
316
+ },
317
+ {
318
+ "name": "beberlei/assert",
319
+ "version": "v2.6.6",
320
+ "version_normalized": "2.6.6.0",
321
+ "source": {
322
+ "type": "git",
323
+ "url": "https://github.com/beberlei/assert.git",
324
+ "reference": "f567e3e4bce5419bccb9e9b1faf8d4ca9b2f5055"
325
+ },
326
+ "dist": {
327
+ "type": "zip",
328
+ "url": "https://api.github.com/repos/beberlei/assert/zipball/f567e3e4bce5419bccb9e9b1faf8d4ca9b2f5055",
329
+ "reference": "f567e3e4bce5419bccb9e9b1faf8d4ca9b2f5055",
330
+ "shasum": ""
331
+ },
332
+ "require": {
333
+ "ext-mbstring": "*",
334
+ "php": ">=5.3"
335
+ },
336
+ "require-dev": {
337
+ "friendsofphp/php-cs-fixer": "2.0.0-alpha",
338
+ "phpunit/phpunit": "@stable"
339
+ },
340
+ "time": "2016-10-31 12:09:54",
341
+ "type": "library",
342
+ "installation-source": "dist",
343
+ "autoload": {
344
+ "psr-0": {
345
+ "Assert": "lib/"
346
+ },
347
+ "files": [
348
+ "lib/Assert/functions.php"
349
+ ]
350
+ },
351
+ "notification-url": "https://packagist.org/downloads/",
352
+ "license": [
353
+ "BSD-2-Clause"
354
+ ],
355
+ "authors": [
356
+ {
357
+ "name": "Benjamin Eberlei",
358
+ "email": "kontakt@beberlei.de",
359
+ "role": "Lead Developer"
360
+ },
361
+ {
362
+ "name": "Richard Quadling",
363
+ "email": "rquadling@gmail.com",
364
+ "role": "Collaborator"
365
+ }
366
+ ],
367
+ "description": "Thin assertion library for input validation in business models.",
368
+ "keywords": [
369
+ "assert",
370
+ "assertion",
371
+ "validation"
372
+ ]
373
+ },
374
+ {
375
+ "name": "ronanguilloux/isocodes",
376
+ "version": "1.2.0",
377
+ "version_normalized": "1.2.0.0",
378
+ "source": {
379
+ "type": "git",
380
+ "url": "https://github.com/ronanguilloux/IsoCodes.git",
381
+ "reference": "08aabd230ea963cba3aa5338319b1bffacbc0285"
382
+ },
383
+ "dist": {
384
+ "type": "zip",
385
+ "url": "https://api.github.com/repos/ronanguilloux/IsoCodes/zipball/08aabd230ea963cba3aa5338319b1bffacbc0285",
386
+ "reference": "08aabd230ea963cba3aa5338319b1bffacbc0285",
387
+ "shasum": ""
388
+ },
389
+ "require": {
390
+ "ext-bcmath": "*",
391
+ "php": ">=5.4.0"
392
+ },
393
+ "require-dev": {
394
+ "fabpot/php-cs-fixer": "@stable",
395
+ "pdepend/pdepend": "2.0.*",
396
+ "phploc/phploc": "*",
397
+ "phpmd/phpmd": "@stable",
398
+ "phpunit/phpunit": "~4.7",
399
+ "satooshi/php-coveralls": "dev-master",
400
+ "sebastian/phpcpd": "*",
401
+ "squizlabs/php_codesniffer": "2.0.x-dev"
402
+ },
403
+ "suggest": {
404
+ "gourmet/validation": "For CakePHP 3 integration",
405
+ "sllh/iso-codes-validator": "For Symfony or Silex integration with ease"
406
+ },
407
+ "time": "2015-06-22 19:37:41",
408
+ "type": "library",
409
+ "extra": {
410
+ "branch-alias": {
411
+ "dev-master": "1.2.x-dev"
412
+ }
413
+ },
414
+ "installation-source": "dist",
415
+ "autoload": {
416
+ "psr-0": {
417
+ "IsoCodes": "src/"
418
+ }
419
+ },
420
+ "notification-url": "https://packagist.org/downloads/",
421
+ "license": [
422
+ "GPL-3.0+"
423
+ ],
424
+ "authors": [
425
+ {
426
+ "name": "Ronan Guilloux",
427
+ "email": "ronan.guilloux@gmail.com",
428
+ "homepage": "http://github.com/ronanguilloux",
429
+ "role": "Developer"
430
+ }
431
+ ],
432
+ "description": "PHP library, validating various ISO codes, such as IBAN, SWIFT/BIC, BBAN, RIB, Credit Card number, INSEE, VAT, NSS, Siren, Siret, Ssn, NINO, Zipcode (US, Canada, France...), ISBN & EAN13, Spanish CIF & NIF",
433
+ "homepage": "https://github.com/ronanguilloux/IsoCodes",
434
+ "keywords": [
435
+ "BBAN",
436
+ "BIC",
437
+ "CIF",
438
+ "Credit Card number",
439
+ "EAN13",
440
+ "IBAN",
441
+ "INSEE",
442
+ "ISBN",
443
+ "ISO codes",
444
+ "NIF",
445
+ "NINO",
446
+ "NSS",
447
+ "RIB",
448
+ "Siren",
449
+ "Siret",
450
+ "Ssn",
451
+ "swift",
452
+ "vat",
453
+ "zipcode"
454
+ ]
455
+ },
456
+ {
457
+ "name": "paragonie/random_compat",
458
+ "version": "v2.0.4",
459
+ "version_normalized": "2.0.4.0",
460
+ "source": {
461
+ "type": "git",
462
+ "url": "https://github.com/paragonie/random_compat.git",
463
+ "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e"
464
+ },
465
+ "dist": {
466
+ "type": "zip",
467
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
468
+ "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
469
+ "shasum": ""
470
+ },
471
+ "require": {
472
+ "php": ">=5.2.0"
473
+ },
474
+ "require-dev": {
475
+ "phpunit/phpunit": "4.*|5.*"
476
+ },
477
+ "suggest": {
478
+ "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
479
+ },
480
+ "time": "2016-11-07 23:38:38",
481
+ "type": "library",
482
+ "installation-source": "dist",
483
+ "autoload": {
484
+ "files": [
485
+ "lib/random.php"
486
+ ]
487
+ },
488
+ "notification-url": "https://packagist.org/downloads/",
489
+ "license": [
490
+ "MIT"
491
+ ],
492
+ "authors": [
493
+ {
494
+ "name": "Paragon Initiative Enterprises",
495
+ "email": "security@paragonie.com",
496
+ "homepage": "https://paragonie.com"
497
+ }
498
+ ],
499
+ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
500
+ "keywords": [
501
+ "csprng",
502
+ "pseudorandom",
503
+ "random"
504
+ ]
505
+ },
506
+ {
507
+ "name": "ramsey/uuid",
508
+ "version": "2.9.0",
509
+ "version_normalized": "2.9.0.0",
510
+ "source": {
511
+ "type": "git",
512
+ "url": "https://github.com/ramsey/uuid.git",
513
+ "reference": "b2ef4dd9584268d73f92f752a62bc24cd534dc9a"
514
+ },
515
+ "dist": {
516
+ "type": "zip",
517
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/b2ef4dd9584268d73f92f752a62bc24cd534dc9a",
518
+ "reference": "b2ef4dd9584268d73f92f752a62bc24cd534dc9a",
519
+ "shasum": ""
520
+ },
521
+ "require": {
522
+ "paragonie/random_compat": "^1.0|^2.0",
523
+ "php": ">=5.3.3"
524
+ },
525
+ "replace": {
526
+ "rhumsaa/uuid": "self.version"
527
+ },
528
+ "require-dev": {
529
+ "doctrine/dbal": ">=2.3",
530
+ "jakub-onderka/php-parallel-lint": "^0.9.0",
531
+ "moontoast/math": "~1.1",
532
+ "phpunit/phpunit": "~4.1|~5.0",
533
+ "satooshi/php-coveralls": "~0.6",
534
+ "squizlabs/php_codesniffer": "^2.3",
535
+ "symfony/console": "~2.3|~3.0"
536
+ },
537
+ "suggest": {
538
+ "doctrine/dbal": "Allow the use of a UUID as doctrine field type.",
539
+ "moontoast/math": "Support for converting UUID to 128-bit integer (in string form).",
540
+ "symfony/console": "Support for use of the bin/uuid command line tool."
541
+ },
542
+ "time": "2016-03-22 18:20:19",
543
+ "bin": [
544
+ "bin/uuid"
545
+ ],
546
+ "type": "library",
547
+ "installation-source": "dist",
548
+ "autoload": {
549
+ "psr-4": {
550
+ "Rhumsaa\\Uuid\\": "src/"
551
+ }
552
+ },
553
+ "notification-url": "https://packagist.org/downloads/",
554
+ "license": [
555
+ "MIT"
556
+ ],
557
+ "authors": [
558
+ {
559
+ "name": "Marijn Huizendveld",
560
+ "email": "marijn.huizendveld@gmail.com"
561
+ },
562
+ {
563
+ "name": "Ben Ramsey",
564
+ "homepage": "http://benramsey.com"
565
+ }
566
+ ],
567
+ "description": "A PHP 5.3+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
568
+ "homepage": "https://github.com/ramsey/uuid",
569
+ "keywords": [
570
+ "guid",
571
+ "identifier",
572
+ "uuid"
573
+ ]
574
+ },
575
+ {
576
+ "name": "symfony/polyfill-mbstring",
577
+ "version": "v1.2.0",
578
+ "version_normalized": "1.2.0.0",
579
+ "source": {
580
+ "type": "git",
581
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
582
+ "reference": "dff51f72b0706335131b00a7f49606168c582594"
583
+ },
584
+ "dist": {
585
+ "type": "zip",
586
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",
587
+ "reference": "dff51f72b0706335131b00a7f49606168c582594",
588
+ "shasum": ""
589
+ },
590
+ "require": {
591
+ "php": ">=5.3.3"
592
+ },
593
+ "suggest": {
594
+ "ext-mbstring": "For best performance"
595
+ },
596
+ "time": "2016-05-18 14:26:46",
597
+ "type": "library",
598
+ "extra": {
599
+ "branch-alias": {
600
+ "dev-master": "1.2-dev"
601
+ }
602
+ },
603
+ "installation-source": "dist",
604
+ "autoload": {
605
+ "psr-4": {
606
+ "Symfony\\Polyfill\\Mbstring\\": ""
607
+ },
608
+ "files": [
609
+ "bootstrap.php"
610
+ ]
611
+ },
612
+ "notification-url": "https://packagist.org/downloads/",
613
+ "license": [
614
+ "MIT"
615
+ ],
616
+ "authors": [
617
+ {
618
+ "name": "Nicolas Grekas",
619
+ "email": "p@tchwork.com"
620
+ },
621
+ {
622
+ "name": "Symfony Community",
623
+ "homepage": "https://symfony.com/contributors"
624
+ }
625
+ ],
626
+ "description": "Symfony polyfill for the Mbstring extension",
627
+ "homepage": "https://symfony.com",
628
+ "keywords": [
629
+ "compatibility",
630
+ "mbstring",
631
+ "polyfill",
632
+ "portable",
633
+ "shim"
634
+ ]
635
+ },
636
+ {
637
+ "name": "symfony/translation",
638
+ "version": "v2.8.13",
639
+ "version_normalized": "2.8.13.0",
640
+ "source": {
641
+ "type": "git",
642
+ "url": "https://github.com/symfony/translation.git",
643
+ "reference": "cca6ff892355876534b01a927f789bac9601c935"
644
+ },
645
+ "dist": {
646
+ "type": "zip",
647
+ "url": "https://api.github.com/repos/symfony/translation/zipball/cca6ff892355876534b01a927f789bac9601c935",
648
+ "reference": "cca6ff892355876534b01a927f789bac9601c935",
649
+ "shasum": ""
650
+ },
651
+ "require": {
652
+ "php": ">=5.3.9",
653
+ "symfony/polyfill-mbstring": "~1.0"
654
+ },
655
+ "conflict": {
656
+ "symfony/config": "<2.7"
657
+ },
658
+ "require-dev": {
659
+ "psr/log": "~1.0",
660
+ "symfony/config": "~2.8",
661
+ "symfony/intl": "~2.4|~3.0.0",
662
+ "symfony/yaml": "~2.2|~3.0.0"
663
+ },
664
+ "suggest": {
665
+ "psr/log": "To use logging capability in translator",
666
+ "symfony/config": "",
667
+ "symfony/yaml": ""
668
+ },
669
+ "time": "2016-10-18 04:28:30",
670
+ "type": "library",
671
+ "extra": {
672
+ "branch-alias": {
673
+ "dev-master": "2.8-dev"
674
+ }
675
+ },
676
+ "installation-source": "dist",
677
+ "autoload": {
678
+ "psr-4": {
679
+ "Symfony\\Component\\Translation\\": ""
680
+ },
681
+ "exclude-from-classmap": [
682
+ "/Tests/"
683
+ ]
684
+ },
685
+ "notification-url": "https://packagist.org/downloads/",
686
+ "license": [
687
+ "MIT"
688
+ ],
689
+ "authors": [
690
+ {
691
+ "name": "Fabien Potencier",
692
+ "email": "fabien@symfony.com"
693
+ },
694
+ {
695
+ "name": "Symfony Community",
696
+ "homepage": "https://symfony.com/contributors"
697
+ }
698
+ ],
699
+ "description": "Symfony Translation Component",
700
+ "homepage": "https://symfony.com"
701
+ },
702
+ {
703
+ "name": "nesbot/carbon",
704
+ "version": "1.21.0",
705
+ "version_normalized": "1.21.0.0",
706
+ "source": {
707
+ "type": "git",
708
+ "url": "https://github.com/briannesbitt/Carbon.git",
709
+ "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7"
710
+ },
711
+ "dist": {
712
+ "type": "zip",
713
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7b08ec6f75791e130012f206e3f7b0e76e18e3d7",
714
+ "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7",
715
+ "shasum": ""
716
+ },
717
+ "require": {
718
+ "php": ">=5.3.0",
719
+ "symfony/translation": "~2.6|~3.0"
720
+ },
721
+ "require-dev": {
722
+ "phpunit/phpunit": "~4.0|~5.0"
723
+ },
724
+ "time": "2015-11-04 20:07:17",
725
+ "type": "library",
726
+ "installation-source": "dist",
727
+ "autoload": {
728
+ "psr-4": {
729
+ "Carbon\\": "src/Carbon/"
730
+ }
731
+ },
732
+ "notification-url": "https://packagist.org/downloads/",
733
+ "license": [
734
+ "MIT"
735
+ ],
736
+ "authors": [
737
+ {
738
+ "name": "Brian Nesbitt",
739
+ "email": "brian@nesbot.com",
740
+ "homepage": "http://nesbot.com"
741
+ }
742
+ ],
743
+ "description": "A simple API extension for DateTime.",
744
+ "homepage": "http://carbon.nesbot.com",
745
+ "keywords": [
746
+ "date",
747
+ "datetime",
748
+ "time"
749
+ ]
750
+ },
751
+ {
752
+ "name": "symfony/yaml",
753
+ "version": "v2.8.13",
754
+ "version_normalized": "2.8.13.0",
755
+ "source": {
756
+ "type": "git",
757
+ "url": "https://github.com/symfony/yaml.git",
758
+ "reference": "396784cd06b91f3db576f248f2402d547a077787"
759
+ },
760
+ "dist": {
761
+ "type": "zip",
762
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/396784cd06b91f3db576f248f2402d547a077787",
763
+ "reference": "396784cd06b91f3db576f248f2402d547a077787",
764
+ "shasum": ""
765
+ },
766
+ "require": {
767
+ "php": ">=5.3.9"
768
+ },
769
+ "time": "2016-10-21 20:59:10",
770
+ "type": "library",
771
+ "extra": {
772
+ "branch-alias": {
773
+ "dev-master": "2.8-dev"
774
+ }
775
+ },
776
+ "installation-source": "dist",
777
+ "autoload": {
778
+ "psr-4": {
779
+ "Symfony\\Component\\Yaml\\": ""
780
+ },
781
+ "exclude-from-classmap": [
782
+ "/Tests/"
783
+ ]
784
+ },
785
+ "notification-url": "https://packagist.org/downloads/",
786
+ "license": [
787
+ "MIT"
788
+ ],
789
+ "authors": [
790
+ {
791
+ "name": "Fabien Potencier",
792
+ "email": "fabien@symfony.com"
793
+ },
794
+ {
795
+ "name": "Symfony Community",
796
+ "homepage": "https://symfony.com/contributors"
797
+ }
798
+ ],
799
+ "description": "Symfony Yaml Component",
800
+ "homepage": "https://symfony.com"
801
+ },
802
+ {
803
+ "name": "sebastian/version",
804
+ "version": "1.0.6",
805
+ "version_normalized": "1.0.6.0",
806
+ "source": {
807
+ "type": "git",
808
+ "url": "https://github.com/sebastianbergmann/version.git",
809
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
810
+ },
811
+ "dist": {
812
+ "type": "zip",
813
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
814
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
815
+ "shasum": ""
816
+ },
817
+ "time": "2015-06-21 13:59:46",
818
+ "type": "library",
819
+ "installation-source": "dist",
820
+ "autoload": {
821
+ "classmap": [
822
+ "src/"
823
+ ]
824
+ },
825
+ "notification-url": "https://packagist.org/downloads/",
826
+ "license": [
827
+ "BSD-3-Clause"
828
+ ],
829
+ "authors": [
830
+ {
831
+ "name": "Sebastian Bergmann",
832
+ "email": "sebastian@phpunit.de",
833
+ "role": "lead"
834
+ }
835
+ ],
836
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
837
+ "homepage": "https://github.com/sebastianbergmann/version"
838
+ },
839
+ {
840
+ "name": "sebastian/global-state",
841
+ "version": "1.1.1",
842
+ "version_normalized": "1.1.1.0",
843
+ "source": {
844
+ "type": "git",
845
+ "url": "https://github.com/sebastianbergmann/global-state.git",
846
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
847
+ },
848
+ "dist": {
849
+ "type": "zip",
850
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
851
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
852
+ "shasum": ""
853
+ },
854
+ "require": {
855
+ "php": ">=5.3.3"
856
+ },
857
+ "require-dev": {
858
+ "phpunit/phpunit": "~4.2"
859
+ },
860
+ "suggest": {
861
+ "ext-uopz": "*"
862
+ },
863
+ "time": "2015-10-12 03:26:01",
864
+ "type": "library",
865
+ "extra": {
866
+ "branch-alias": {
867
+ "dev-master": "1.0-dev"
868
+ }
869
+ },
870
+ "installation-source": "dist",
871
+ "autoload": {
872
+ "classmap": [
873
+ "src/"
874
+ ]
875
+ },
876
+ "notification-url": "https://packagist.org/downloads/",
877
+ "license": [
878
+ "BSD-3-Clause"
879
+ ],
880
+ "authors": [
881
+ {
882
+ "name": "Sebastian Bergmann",
883
+ "email": "sebastian@phpunit.de"
884
+ }
885
+ ],
886
+ "description": "Snapshotting of global state",
887
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
888
+ "keywords": [
889
+ "global state"
890
+ ]
891
+ },
892
+ {
893
+ "name": "sebastian/recursion-context",
894
+ "version": "1.0.2",
895
+ "version_normalized": "1.0.2.0",
896
+ "source": {
897
+ "type": "git",
898
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
899
+ "reference": "913401df809e99e4f47b27cdd781f4a258d58791"
900
+ },
901
+ "dist": {
902
+ "type": "zip",
903
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791",
904
+ "reference": "913401df809e99e4f47b27cdd781f4a258d58791",
905
+ "shasum": ""
906
+ },
907
+ "require": {
908
+ "php": ">=5.3.3"
909
+ },
910
+ "require-dev": {
911
+ "phpunit/phpunit": "~4.4"
912
+ },
913
+ "time": "2015-11-11 19:50:13",
914
+ "type": "library",
915
+ "extra": {
916
+ "branch-alias": {
917
+ "dev-master": "1.0.x-dev"
918
+ }
919
+ },
920
+ "installation-source": "dist",
921
+ "autoload": {
922
+ "classmap": [
923
+ "src/"
924
+ ]
925
+ },
926
+ "notification-url": "https://packagist.org/downloads/",
927
+ "license": [
928
+ "BSD-3-Clause"
929
+ ],
930
+ "authors": [
931
+ {
932
+ "name": "Jeff Welch",
933
+ "email": "whatthejeff@gmail.com"
934
+ },
935
+ {
936
+ "name": "Sebastian Bergmann",
937
+ "email": "sebastian@phpunit.de"
938
+ },
939
+ {
940
+ "name": "Adam Harvey",
941
+ "email": "aharvey@php.net"
942
+ }
943
+ ],
944
+ "description": "Provides functionality to recursively process PHP variables",
945
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context"
946
+ },
947
+ {
948
+ "name": "sebastian/exporter",
949
+ "version": "1.2.2",
950
+ "version_normalized": "1.2.2.0",
951
+ "source": {
952
+ "type": "git",
953
+ "url": "https://github.com/sebastianbergmann/exporter.git",
954
+ "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
955
+ },
956
+ "dist": {
957
+ "type": "zip",
958
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
959
+ "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
960
+ "shasum": ""
961
+ },
962
+ "require": {
963
+ "php": ">=5.3.3",
964
+ "sebastian/recursion-context": "~1.0"
965
+ },
966
+ "require-dev": {
967
+ "ext-mbstring": "*",
968
+ "phpunit/phpunit": "~4.4"
969
+ },
970
+ "time": "2016-06-17 09:04:28",
971
+ "type": "library",
972
+ "extra": {
973
+ "branch-alias": {
974
+ "dev-master": "1.3.x-dev"
975
+ }
976
+ },
977
+ "installation-source": "dist",
978
+ "autoload": {
979
+ "classmap": [
980
+ "src/"
981
+ ]
982
+ },
983
+ "notification-url": "https://packagist.org/downloads/",
984
+ "license": [
985
+ "BSD-3-Clause"
986
+ ],
987
+ "authors": [
988
+ {
989
+ "name": "Jeff Welch",
990
+ "email": "whatthejeff@gmail.com"
991
+ },
992
+ {
993
+ "name": "Volker Dusch",
994
+ "email": "github@wallbash.com"
995
+ },
996
+ {
997
+ "name": "Bernhard Schussek",
998
+ "email": "bschussek@2bepublished.at"
999
+ },
1000
+ {
1001
+ "name": "Sebastian Bergmann",
1002
+ "email": "sebastian@phpunit.de"
1003
+ },
1004
+ {
1005
+ "name": "Adam Harvey",
1006
+ "email": "aharvey@php.net"
1007
+ }
1008
+ ],
1009
+ "description": "Provides the functionality to export PHP variables for visualization",
1010
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
1011
+ "keywords": [
1012
+ "export",
1013
+ "exporter"
1014
+ ]
1015
+ },
1016
+ {
1017
+ "name": "sebastian/environment",
1018
+ "version": "1.3.8",
1019
+ "version_normalized": "1.3.8.0",
1020
+ "source": {
1021
+ "type": "git",
1022
+ "url": "https://github.com/sebastianbergmann/environment.git",
1023
+ "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
1024
+ },
1025
+ "dist": {
1026
+ "type": "zip",
1027
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
1028
+ "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
1029
+ "shasum": ""
1030
+ },
1031
+ "require": {
1032
+ "php": "^5.3.3 || ^7.0"
1033
+ },
1034
+ "require-dev": {
1035
+ "phpunit/phpunit": "^4.8 || ^5.0"
1036
+ },
1037
+ "time": "2016-08-18 05:49:44",
1038
+ "type": "library",
1039
+ "extra": {
1040
+ "branch-alias": {
1041
+ "dev-master": "1.3.x-dev"
1042
+ }
1043
+ },
1044
+ "installation-source": "dist",
1045
+ "autoload": {
1046
+ "classmap": [
1047
+ "src/"
1048
+ ]
1049
+ },
1050
+ "notification-url": "https://packagist.org/downloads/",
1051
+ "license": [
1052
+ "BSD-3-Clause"
1053
+ ],
1054
+ "authors": [
1055
+ {
1056
+ "name": "Sebastian Bergmann",
1057
+ "email": "sebastian@phpunit.de"
1058
+ }
1059
+ ],
1060
+ "description": "Provides functionality to handle HHVM/PHP environments",
1061
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
1062
+ "keywords": [
1063
+ "Xdebug",
1064
+ "environment",
1065
+ "hhvm"
1066
+ ]
1067
+ },
1068
+ {
1069
+ "name": "sebastian/diff",
1070
+ "version": "1.4.1",
1071
+ "version_normalized": "1.4.1.0",
1072
+ "source": {
1073
+ "type": "git",
1074
+ "url": "https://github.com/sebastianbergmann/diff.git",
1075
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
1076
+ },
1077
+ "dist": {
1078
+ "type": "zip",
1079
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
1080
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
1081
+ "shasum": ""
1082
+ },
1083
+ "require": {
1084
+ "php": ">=5.3.3"
1085
+ },
1086
+ "require-dev": {
1087
+ "phpunit/phpunit": "~4.8"
1088
+ },
1089
+ "time": "2015-12-08 07:14:41",
1090
+ "type": "library",
1091
+ "extra": {
1092
+ "branch-alias": {
1093
+ "dev-master": "1.4-dev"
1094
+ }
1095
+ },
1096
+ "installation-source": "dist",
1097
+ "autoload": {
1098
+ "classmap": [
1099
+ "src/"
1100
+ ]
1101
+ },
1102
+ "notification-url": "https://packagist.org/downloads/",
1103
+ "license": [
1104
+ "BSD-3-Clause"
1105
+ ],
1106
+ "authors": [
1107
+ {
1108
+ "name": "Kore Nordmann",
1109
+ "email": "mail@kore-nordmann.de"
1110
+ },
1111
+ {
1112
+ "name": "Sebastian Bergmann",
1113
+ "email": "sebastian@phpunit.de"
1114
+ }
1115
+ ],
1116
+ "description": "Diff implementation",
1117
+ "homepage": "https://github.com/sebastianbergmann/diff",
1118
+ "keywords": [
1119
+ "diff"
1120
+ ]
1121
+ },
1122
+ {
1123
+ "name": "sebastian/comparator",
1124
+ "version": "1.2.0",
1125
+ "version_normalized": "1.2.0.0",
1126
+ "source": {
1127
+ "type": "git",
1128
+ "url": "https://github.com/sebastianbergmann/comparator.git",
1129
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
1130
+ },
1131
+ "dist": {
1132
+ "type": "zip",
1133
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
1134
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
1135
+ "shasum": ""
1136
+ },
1137
+ "require": {
1138
+ "php": ">=5.3.3",
1139
+ "sebastian/diff": "~1.2",
1140
+ "sebastian/exporter": "~1.2"
1141
+ },
1142
+ "require-dev": {
1143
+ "phpunit/phpunit": "~4.4"
1144
+ },
1145
+ "time": "2015-07-26 15:48:44",
1146
+ "type": "library",
1147
+ "extra": {
1148
+ "branch-alias": {
1149
+ "dev-master": "1.2.x-dev"
1150
+ }
1151
+ },
1152
+ "installation-source": "dist",
1153
+ "autoload": {
1154
+ "classmap": [
1155
+ "src/"
1156
+ ]
1157
+ },
1158
+ "notification-url": "https://packagist.org/downloads/",
1159
+ "license": [
1160
+ "BSD-3-Clause"
1161
+ ],
1162
+ "authors": [
1163
+ {
1164
+ "name": "Jeff Welch",
1165
+ "email": "whatthejeff@gmail.com"
1166
+ },
1167
+ {
1168
+ "name": "Volker Dusch",
1169
+ "email": "github@wallbash.com"
1170
+ },
1171
+ {
1172
+ "name": "Bernhard Schussek",
1173
+ "email": "bschussek@2bepublished.at"
1174
+ },
1175
+ {
1176
+ "name": "Sebastian Bergmann",
1177
+ "email": "sebastian@phpunit.de"
1178
+ }
1179
+ ],
1180
+ "description": "Provides the functionality to compare PHP values for equality",
1181
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
1182
+ "keywords": [
1183
+ "comparator",
1184
+ "compare",
1185
+ "equality"
1186
+ ]
1187
+ },
1188
+ {
1189
+ "name": "doctrine/instantiator",
1190
+ "version": "1.0.5",
1191
+ "version_normalized": "1.0.5.0",
1192
+ "source": {
1193
+ "type": "git",
1194
+ "url": "https://github.com/doctrine/instantiator.git",
1195
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
1196
+ },
1197
+ "dist": {
1198
+ "type": "zip",
1199
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
1200
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
1201
+ "shasum": ""
1202
+ },
1203
+ "require": {
1204
+ "php": ">=5.3,<8.0-DEV"
1205
+ },
1206
+ "require-dev": {
1207
+ "athletic/athletic": "~0.1.8",
1208
+ "ext-pdo": "*",
1209
+ "ext-phar": "*",
1210
+ "phpunit/phpunit": "~4.0",
1211
+ "squizlabs/php_codesniffer": "~2.0"
1212
+ },
1213
+ "time": "2015-06-14 21:17:01",
1214
+ "type": "library",
1215
+ "extra": {
1216
+ "branch-alias": {
1217
+ "dev-master": "1.0.x-dev"
1218
+ }
1219
+ },
1220
+ "installation-source": "dist",
1221
+ "autoload": {
1222
+ "psr-4": {
1223
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
1224
+ }
1225
+ },
1226
+ "notification-url": "https://packagist.org/downloads/",
1227
+ "license": [
1228
+ "MIT"
1229
+ ],
1230
+ "authors": [
1231
+ {
1232
+ "name": "Marco Pivetta",
1233
+ "email": "ocramius@gmail.com",
1234
+ "homepage": "http://ocramius.github.com/"
1235
+ }
1236
+ ],
1237
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
1238
+ "homepage": "https://github.com/doctrine/instantiator",
1239
+ "keywords": [
1240
+ "constructor",
1241
+ "instantiate"
1242
+ ]
1243
+ },
1244
+ {
1245
+ "name": "phpunit/php-text-template",
1246
+ "version": "1.2.1",
1247
+ "version_normalized": "1.2.1.0",
1248
+ "source": {
1249
+ "type": "git",
1250
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
1251
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
1252
+ },
1253
+ "dist": {
1254
+ "type": "zip",
1255
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1256
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1257
+ "shasum": ""
1258
+ },
1259
+ "require": {
1260
+ "php": ">=5.3.3"
1261
+ },
1262
+ "time": "2015-06-21 13:50:34",
1263
+ "type": "library",
1264
+ "installation-source": "dist",
1265
+ "autoload": {
1266
+ "classmap": [
1267
+ "src/"
1268
+ ]
1269
+ },
1270
+ "notification-url": "https://packagist.org/downloads/",
1271
+ "license": [
1272
+ "BSD-3-Clause"
1273
+ ],
1274
+ "authors": [
1275
+ {
1276
+ "name": "Sebastian Bergmann",
1277
+ "email": "sebastian@phpunit.de",
1278
+ "role": "lead"
1279
+ }
1280
+ ],
1281
+ "description": "Simple template engine.",
1282
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1283
+ "keywords": [
1284
+ "template"
1285
+ ]
1286
+ },
1287
+ {
1288
+ "name": "phpunit/phpunit-mock-objects",
1289
+ "version": "2.3.8",
1290
+ "version_normalized": "2.3.8.0",
1291
+ "source": {
1292
+ "type": "git",
1293
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1294
+ "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
1295
+ },
1296
+ "dist": {
1297
+ "type": "zip",
1298
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
1299
+ "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
1300
+ "shasum": ""
1301
+ },
1302
+ "require": {
1303
+ "doctrine/instantiator": "^1.0.2",
1304
+ "php": ">=5.3.3",
1305
+ "phpunit/php-text-template": "~1.2",
1306
+ "sebastian/exporter": "~1.2"
1307
+ },
1308
+ "require-dev": {
1309
+ "phpunit/phpunit": "~4.4"
1310
+ },
1311
+ "suggest": {
1312
+ "ext-soap": "*"
1313
+ },
1314
+ "time": "2015-10-02 06:51:40",
1315
+ "type": "library",
1316
+ "extra": {
1317
+ "branch-alias": {
1318
+ "dev-master": "2.3.x-dev"
1319
+ }
1320
+ },
1321
+ "installation-source": "dist",
1322
+ "autoload": {
1323
+ "classmap": [
1324
+ "src/"
1325
+ ]
1326
+ },
1327
+ "notification-url": "https://packagist.org/downloads/",
1328
+ "license": [
1329
+ "BSD-3-Clause"
1330
+ ],
1331
+ "authors": [
1332
+ {
1333
+ "name": "Sebastian Bergmann",
1334
+ "email": "sb@sebastian-bergmann.de",
1335
+ "role": "lead"
1336
+ }
1337
+ ],
1338
+ "description": "Mock Object library for PHPUnit",
1339
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1340
+ "keywords": [
1341
+ "mock",
1342
+ "xunit"
1343
+ ]
1344
+ },
1345
+ {
1346
+ "name": "phpunit/php-timer",
1347
+ "version": "1.0.8",
1348
+ "version_normalized": "1.0.8.0",
1349
+ "source": {
1350
+ "type": "git",
1351
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
1352
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
1353
+ },
1354
+ "dist": {
1355
+ "type": "zip",
1356
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
1357
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
1358
+ "shasum": ""
1359
+ },
1360
+ "require": {
1361
+ "php": ">=5.3.3"
1362
+ },
1363
+ "require-dev": {
1364
+ "phpunit/phpunit": "~4|~5"
1365
+ },
1366
+ "time": "2016-05-12 18:03:57",
1367
+ "type": "library",
1368
+ "installation-source": "dist",
1369
+ "autoload": {
1370
+ "classmap": [
1371
+ "src/"
1372
+ ]
1373
+ },
1374
+ "notification-url": "https://packagist.org/downloads/",
1375
+ "license": [
1376
+ "BSD-3-Clause"
1377
+ ],
1378
+ "authors": [
1379
+ {
1380
+ "name": "Sebastian Bergmann",
1381
+ "email": "sb@sebastian-bergmann.de",
1382
+ "role": "lead"
1383
+ }
1384
+ ],
1385
+ "description": "Utility class for timing",
1386
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
1387
+ "keywords": [
1388
+ "timer"
1389
+ ]
1390
+ },
1391
+ {
1392
+ "name": "phpunit/php-file-iterator",
1393
+ "version": "1.4.1",
1394
+ "version_normalized": "1.4.1.0",
1395
+ "source": {
1396
+ "type": "git",
1397
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1398
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
1399
+ },
1400
+ "dist": {
1401
+ "type": "zip",
1402
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
1403
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
1404
+ "shasum": ""
1405
+ },
1406
+ "require": {
1407
+ "php": ">=5.3.3"
1408
+ },
1409
+ "time": "2015-06-21 13:08:43",
1410
+ "type": "library",
1411
+ "extra": {
1412
+ "branch-alias": {
1413
+ "dev-master": "1.4.x-dev"
1414
+ }
1415
+ },
1416
+ "installation-source": "dist",
1417
+ "autoload": {
1418
+ "classmap": [
1419
+ "src/"
1420
+ ]
1421
+ },
1422
+ "notification-url": "https://packagist.org/downloads/",
1423
+ "license": [
1424
+ "BSD-3-Clause"
1425
+ ],
1426
+ "authors": [
1427
+ {
1428
+ "name": "Sebastian Bergmann",
1429
+ "email": "sb@sebastian-bergmann.de",
1430
+ "role": "lead"
1431
+ }
1432
+ ],
1433
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1434
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1435
+ "keywords": [
1436
+ "filesystem",
1437
+ "iterator"
1438
+ ]
1439
+ },
1440
+ {
1441
+ "name": "phpunit/php-token-stream",
1442
+ "version": "1.4.8",
1443
+ "version_normalized": "1.4.8.0",
1444
+ "source": {
1445
+ "type": "git",
1446
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
1447
+ "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da"
1448
+ },
1449
+ "dist": {
1450
+ "type": "zip",
1451
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
1452
+ "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
1453
+ "shasum": ""
1454
+ },
1455
+ "require": {
1456
+ "ext-tokenizer": "*",
1457
+ "php": ">=5.3.3"
1458
+ },
1459
+ "require-dev": {
1460
+ "phpunit/phpunit": "~4.2"
1461
+ },
1462
+ "time": "2015-09-15 10:49:45",
1463
+ "type": "library",
1464
+ "extra": {
1465
+ "branch-alias": {
1466
+ "dev-master": "1.4-dev"
1467
+ }
1468
+ },
1469
+ "installation-source": "dist",
1470
+ "autoload": {
1471
+ "classmap": [
1472
+ "src/"
1473
+ ]
1474
+ },
1475
+ "notification-url": "https://packagist.org/downloads/",
1476
+ "license": [
1477
+ "BSD-3-Clause"
1478
+ ],
1479
+ "authors": [
1480
+ {
1481
+ "name": "Sebastian Bergmann",
1482
+ "email": "sebastian@phpunit.de"
1483
+ }
1484
+ ],
1485
+ "description": "Wrapper around PHP's tokenizer extension.",
1486
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
1487
+ "keywords": [
1488
+ "tokenizer"
1489
+ ]
1490
+ },
1491
+ {
1492
+ "name": "phpunit/php-code-coverage",
1493
+ "version": "2.2.4",
1494
+ "version_normalized": "2.2.4.0",
1495
+ "source": {
1496
+ "type": "git",
1497
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1498
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
1499
+ },
1500
+ "dist": {
1501
+ "type": "zip",
1502
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
1503
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
1504
+ "shasum": ""
1505
+ },
1506
+ "require": {
1507
+ "php": ">=5.3.3",
1508
+ "phpunit/php-file-iterator": "~1.3",
1509
+ "phpunit/php-text-template": "~1.2",
1510
+ "phpunit/php-token-stream": "~1.3",
1511
+ "sebastian/environment": "^1.3.2",
1512
+ "sebastian/version": "~1.0"
1513
+ },
1514
+ "require-dev": {
1515
+ "ext-xdebug": ">=2.1.4",
1516
+ "phpunit/phpunit": "~4"
1517
+ },
1518
+ "suggest": {
1519
+ "ext-dom": "*",
1520
+ "ext-xdebug": ">=2.2.1",
1521
+ "ext-xmlwriter": "*"
1522
+ },
1523
+ "time": "2015-10-06 15:47:00",
1524
+ "type": "library",
1525
+ "extra": {
1526
+ "branch-alias": {
1527
+ "dev-master": "2.2.x-dev"
1528
+ }
1529
+ },
1530
+ "installation-source": "dist",
1531
+ "autoload": {
1532
+ "classmap": [
1533
+ "src/"
1534
+ ]
1535
+ },
1536
+ "notification-url": "https://packagist.org/downloads/",
1537
+ "license": [
1538
+ "BSD-3-Clause"
1539
+ ],
1540
+ "authors": [
1541
+ {
1542
+ "name": "Sebastian Bergmann",
1543
+ "email": "sb@sebastian-bergmann.de",
1544
+ "role": "lead"
1545
+ }
1546
+ ],
1547
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1548
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1549
+ "keywords": [
1550
+ "coverage",
1551
+ "testing",
1552
+ "xunit"
1553
+ ]
1554
+ },
1555
+ {
1556
+ "name": "webmozart/assert",
1557
+ "version": "1.1.0",
1558
+ "version_normalized": "1.1.0.0",
1559
+ "source": {
1560
+ "type": "git",
1561
+ "url": "https://github.com/webmozart/assert.git",
1562
+ "reference": "bb2d123231c095735130cc8f6d31385a44c7b308"
1563
+ },
1564
+ "dist": {
1565
+ "type": "zip",
1566
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/bb2d123231c095735130cc8f6d31385a44c7b308",
1567
+ "reference": "bb2d123231c095735130cc8f6d31385a44c7b308",
1568
+ "shasum": ""
1569
+ },
1570
+ "require": {
1571
+ "php": "^5.3.3|^7.0"
1572
+ },
1573
+ "require-dev": {
1574
+ "phpunit/phpunit": "^4.6",
1575
+ "sebastian/version": "^1.0.1"
1576
+ },
1577
+ "time": "2016-08-09 15:02:57",
1578
+ "type": "library",
1579
+ "extra": {
1580
+ "branch-alias": {
1581
+ "dev-master": "1.2-dev"
1582
+ }
1583
+ },
1584
+ "installation-source": "dist",
1585
+ "autoload": {
1586
+ "psr-4": {
1587
+ "Webmozart\\Assert\\": "src/"
1588
+ }
1589
+ },
1590
+ "notification-url": "https://packagist.org/downloads/",
1591
+ "license": [
1592
+ "MIT"
1593
+ ],
1594
+ "authors": [
1595
+ {
1596
+ "name": "Bernhard Schussek",
1597
+ "email": "bschussek@gmail.com"
1598
+ }
1599
+ ],
1600
+ "description": "Assertions to validate method input/output with nice error messages.",
1601
+ "keywords": [
1602
+ "assert",
1603
+ "check",
1604
+ "validate"
1605
+ ]
1606
+ },
1607
+ {
1608
+ "name": "phpdocumentor/reflection-common",
1609
+ "version": "1.0",
1610
+ "version_normalized": "1.0.0.0",
1611
+ "source": {
1612
+ "type": "git",
1613
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
1614
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
1615
+ },
1616
+ "dist": {
1617
+ "type": "zip",
1618
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
1619
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
1620
+ "shasum": ""
1621
+ },
1622
+ "require": {
1623
+ "php": ">=5.5"
1624
+ },
1625
+ "require-dev": {
1626
+ "phpunit/phpunit": "^4.6"
1627
+ },
1628
+ "time": "2015-12-27 11:43:31",
1629
+ "type": "library",
1630
+ "extra": {
1631
+ "branch-alias": {
1632
+ "dev-master": "1.0.x-dev"
1633
+ }
1634
+ },
1635
+ "installation-source": "dist",
1636
+ "autoload": {
1637
+ "psr-4": {
1638
+ "phpDocumentor\\Reflection\\": [
1639
+ "src"
1640
+ ]
1641
+ }
1642
+ },
1643
+ "notification-url": "https://packagist.org/downloads/",
1644
+ "license": [
1645
+ "MIT"
1646
+ ],
1647
+ "authors": [
1648
+ {
1649
+ "name": "Jaap van Otterdijk",
1650
+ "email": "opensource@ijaap.nl"
1651
+ }
1652
+ ],
1653
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
1654
+ "homepage": "http://www.phpdoc.org",
1655
+ "keywords": [
1656
+ "FQSEN",
1657
+ "phpDocumentor",
1658
+ "phpdoc",
1659
+ "reflection",
1660
+ "static analysis"
1661
+ ]
1662
+ },
1663
+ {
1664
+ "name": "phpdocumentor/type-resolver",
1665
+ "version": "0.2",
1666
+ "version_normalized": "0.2.0.0",
1667
+ "source": {
1668
+ "type": "git",
1669
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
1670
+ "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443"
1671
+ },
1672
+ "dist": {
1673
+ "type": "zip",
1674
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443",
1675
+ "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443",
1676
+ "shasum": ""
1677
+ },
1678
+ "require": {
1679
+ "php": ">=5.5",
1680
+ "phpdocumentor/reflection-common": "^1.0"
1681
+ },
1682
+ "require-dev": {
1683
+ "mockery/mockery": "^0.9.4",
1684
+ "phpunit/phpunit": "^5.2||^4.8.24"
1685
+ },
1686
+ "time": "2016-06-10 07:14:17",
1687
+ "type": "library",
1688
+ "extra": {
1689
+ "branch-alias": {
1690
+ "dev-master": "1.0.x-dev"
1691
+ }
1692
+ },
1693
+ "installation-source": "dist",
1694
+ "autoload": {
1695
+ "psr-4": {
1696
+ "phpDocumentor\\Reflection\\": [
1697
+ "src/"
1698
+ ]
1699
+ }
1700
+ },
1701
+ "notification-url": "https://packagist.org/downloads/",
1702
+ "license": [
1703
+ "MIT"
1704
+ ],
1705
+ "authors": [
1706
+ {
1707
+ "name": "Mike van Riel",
1708
+ "email": "me@mikevanriel.com"
1709
+ }
1710
+ ]
1711
+ },
1712
+ {
1713
+ "name": "phpdocumentor/reflection-docblock",
1714
+ "version": "3.1.1",
1715
+ "version_normalized": "3.1.1.0",
1716
+ "source": {
1717
+ "type": "git",
1718
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
1719
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
1720
+ },
1721
+ "dist": {
1722
+ "type": "zip",
1723
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
1724
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
1725
+ "shasum": ""
1726
+ },
1727
+ "require": {
1728
+ "php": ">=5.5",
1729
+ "phpdocumentor/reflection-common": "^1.0@dev",
1730
+ "phpdocumentor/type-resolver": "^0.2.0",
1731
+ "webmozart/assert": "^1.0"
1732
+ },
1733
+ "require-dev": {
1734
+ "mockery/mockery": "^0.9.4",
1735
+ "phpunit/phpunit": "^4.4"
1736
+ },
1737
+ "time": "2016-09-30 07:12:33",
1738
+ "type": "library",
1739
+ "installation-source": "dist",
1740
+ "autoload": {
1741
+ "psr-4": {
1742
+ "phpDocumentor\\Reflection\\": [
1743
+ "src/"
1744
+ ]
1745
+ }
1746
+ },
1747
+ "notification-url": "https://packagist.org/downloads/",
1748
+ "license": [
1749
+ "MIT"
1750
+ ],
1751
+ "authors": [
1752
+ {
1753
+ "name": "Mike van Riel",
1754
+ "email": "me@mikevanriel.com"
1755
+ }
1756
+ ],
1757
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock."
1758
+ },
1759
+ {
1760
+ "name": "phpspec/prophecy",
1761
+ "version": "v1.6.1",
1762
+ "version_normalized": "1.6.1.0",
1763
+ "source": {
1764
+ "type": "git",
1765
+ "url": "https://github.com/phpspec/prophecy.git",
1766
+ "reference": "58a8137754bc24b25740d4281399a4a3596058e0"
1767
+ },
1768
+ "dist": {
1769
+ "type": "zip",
1770
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0",
1771
+ "reference": "58a8137754bc24b25740d4281399a4a3596058e0",
1772
+ "shasum": ""
1773
+ },
1774
+ "require": {
1775
+ "doctrine/instantiator": "^1.0.2",
1776
+ "php": "^5.3|^7.0",
1777
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
1778
+ "sebastian/comparator": "^1.1",
1779
+ "sebastian/recursion-context": "^1.0"
1780
+ },
1781
+ "require-dev": {
1782
+ "phpspec/phpspec": "^2.0"
1783
+ },
1784
+ "time": "2016-06-07 08:13:47",
1785
+ "type": "library",
1786
+ "extra": {
1787
+ "branch-alias": {
1788
+ "dev-master": "1.6.x-dev"
1789
+ }
1790
+ },
1791
+ "installation-source": "dist",
1792
+ "autoload": {
1793
+ "psr-0": {
1794
+ "Prophecy\\": "src/"
1795
+ }
1796
+ },
1797
+ "notification-url": "https://packagist.org/downloads/",
1798
+ "license": [
1799
+ "MIT"
1800
+ ],
1801
+ "authors": [
1802
+ {
1803
+ "name": "Konstantin Kudryashov",
1804
+ "email": "ever.zet@gmail.com",
1805
+ "homepage": "http://everzet.com"
1806
+ },
1807
+ {
1808
+ "name": "Marcello Duarte",
1809
+ "email": "marcello.duarte@gmail.com"
1810
+ }
1811
+ ],
1812
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
1813
+ "homepage": "https://github.com/phpspec/prophecy",
1814
+ "keywords": [
1815
+ "Double",
1816
+ "Dummy",
1817
+ "fake",
1818
+ "mock",
1819
+ "spy",
1820
+ "stub"
1821
+ ]
1822
+ },
1823
+ {
1824
+ "name": "phpunit/phpunit",
1825
+ "version": "4.8.27",
1826
+ "version_normalized": "4.8.27.0",
1827
+ "source": {
1828
+ "type": "git",
1829
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
1830
+ "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90"
1831
+ },
1832
+ "dist": {
1833
+ "type": "zip",
1834
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c062dddcb68e44b563f66ee319ddae2b5a322a90",
1835
+ "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90",
1836
+ "shasum": ""
1837
+ },
1838
+ "require": {
1839
+ "ext-dom": "*",
1840
+ "ext-json": "*",
1841
+ "ext-pcre": "*",
1842
+ "ext-reflection": "*",
1843
+ "ext-spl": "*",
1844
+ "php": ">=5.3.3",
1845
+ "phpspec/prophecy": "^1.3.1",
1846
+ "phpunit/php-code-coverage": "~2.1",
1847
+ "phpunit/php-file-iterator": "~1.4",
1848
+ "phpunit/php-text-template": "~1.2",
1849
+ "phpunit/php-timer": "^1.0.6",
1850
+ "phpunit/phpunit-mock-objects": "~2.3",
1851
+ "sebastian/comparator": "~1.1",
1852
+ "sebastian/diff": "~1.2",
1853
+ "sebastian/environment": "~1.3",
1854
+ "sebastian/exporter": "~1.2",
1855
+ "sebastian/global-state": "~1.0",
1856
+ "sebastian/version": "~1.0",
1857
+ "symfony/yaml": "~2.1|~3.0"
1858
+ },
1859
+ "suggest": {
1860
+ "phpunit/php-invoker": "~1.1"
1861
+ },
1862
+ "time": "2016-07-21 06:48:14",
1863
+ "bin": [
1864
+ "phpunit"
1865
+ ],
1866
+ "type": "library",
1867
+ "extra": {
1868
+ "branch-alias": {
1869
+ "dev-master": "4.8.x-dev"
1870
+ }
1871
+ },
1872
+ "installation-source": "dist",
1873
+ "autoload": {
1874
+ "classmap": [
1875
+ "src/"
1876
+ ]
1877
+ },
1878
+ "notification-url": "https://packagist.org/downloads/",
1879
+ "license": [
1880
+ "BSD-3-Clause"
1881
+ ],
1882
+ "authors": [
1883
+ {
1884
+ "name": "Sebastian Bergmann",
1885
+ "email": "sebastian@phpunit.de",
1886
+ "role": "lead"
1887
+ }
1888
+ ],
1889
+ "description": "The PHP Unit Testing framework.",
1890
+ "homepage": "https://phpunit.de/",
1891
+ "keywords": [
1892
+ "phpunit",
1893
+ "testing",
1894
+ "xunit"
1895
+ ]
1896
+ },
1897
+ {
1898
+ "name": "hamcrest/hamcrest-php",
1899
+ "version": "v1.2.2",
1900
+ "version_normalized": "1.2.2.0",
1901
+ "source": {
1902
+ "type": "git",
1903
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
1904
+ "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c"
1905
+ },
1906
+ "dist": {
1907
+ "type": "zip",
1908
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c",
1909
+ "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c",
1910
+ "shasum": ""
1911
+ },
1912
+ "require": {
1913
+ "php": ">=5.3.2"
1914
+ },
1915
+ "replace": {
1916
+ "cordoval/hamcrest-php": "*",
1917
+ "davedevelopment/hamcrest-php": "*",
1918
+ "kodova/hamcrest-php": "*"
1919
+ },
1920
+ "require-dev": {
1921
+ "phpunit/php-file-iterator": "1.3.3",
1922
+ "satooshi/php-coveralls": "dev-master"
1923
+ },
1924
+ "time": "2015-05-11 14:41:42",
1925
+ "type": "library",
1926
+ "installation-source": "dist",
1927
+ "autoload": {
1928
+ "classmap": [
1929
+ "hamcrest"
1930
+ ],
1931
+ "files": [
1932
+ "hamcrest/Hamcrest.php"
1933
+ ]
1934
+ },
1935
+ "notification-url": "https://packagist.org/downloads/",
1936
+ "license": [
1937
+ "BSD"
1938
+ ],
1939
+ "description": "This is the PHP port of Hamcrest Matchers",
1940
+ "keywords": [
1941
+ "test"
1942
+ ]
1943
+ },
1944
+ {
1945
+ "name": "mockery/mockery",
1946
+ "version": "0.9.5",
1947
+ "version_normalized": "0.9.5.0",
1948
+ "source": {
1949
+ "type": "git",
1950
+ "url": "https://github.com/padraic/mockery.git",
1951
+ "reference": "4db079511a283e5aba1b3c2fb19037c645e70fc2"
1952
+ },
1953
+ "dist": {
1954
+ "type": "zip",
1955
+ "url": "https://api.github.com/repos/padraic/mockery/zipball/4db079511a283e5aba1b3c2fb19037c645e70fc2",
1956
+ "reference": "4db079511a283e5aba1b3c2fb19037c645e70fc2",
1957
+ "shasum": ""
1958
+ },
1959
+ "require": {
1960
+ "hamcrest/hamcrest-php": "~1.1",
1961
+ "lib-pcre": ">=7.0",
1962
+ "php": ">=5.3.2"
1963
+ },
1964
+ "require-dev": {
1965
+ "phpunit/phpunit": "~4.0"
1966
+ },
1967
+ "time": "2016-05-22 21:52:33",
1968
+ "type": "library",
1969
+ "extra": {
1970
+ "branch-alias": {
1971
+ "dev-master": "0.9.x-dev"
1972
+ }
1973
+ },
1974
+ "installation-source": "dist",
1975
+ "autoload": {
1976
+ "psr-0": {
1977
+ "Mockery": "library/"
1978
+ }
1979
+ },
1980
+ "notification-url": "https://packagist.org/downloads/",
1981
+ "license": [
1982
+ "BSD-3-Clause"
1983
+ ],
1984
+ "authors": [
1985
+ {
1986
+ "name": "Pádraic Brady",
1987
+ "email": "padraic.brady@gmail.com",
1988
+ "homepage": "http://blog.astrumfutura.com"
1989
+ },
1990
+ {
1991
+ "name": "Dave Marshall",
1992
+ "email": "dave.marshall@atstsolutions.co.uk",
1993
+ "homepage": "http://davedevelopment.co.uk"
1994
+ }
1995
+ ],
1996
+ "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHP