Mollie Payments for WooCommerce - Version 5.5.0

Version Description

  • 11-03-2020 =

  • Add - Use key instead of id to retrieve order onMollieReturn event webhooks

  • Tweak - Page load performance improvements

  • Tweak - Improve payment methods icons delivery mechanism by rely on cloud and fallback to static images

  • Fix - Null pointer exception in case getActiveMolliePayment returns null

  • Fix - WooCommerce order status can be modified via Mollie webhook without taking into account possible changes in WooCommerce

  • Fix - 404 response during redirection on checkout when Polylang plugin is active

  • Fix - Handle domain with non-ASCII characters

Download this release

Release Info

Developer carmen222
Plugin Icon wp plugin Mollie Payments for WooCommerce
Version 5.5.0
Comparing to
See all releases

Code changes from version 5.4.2 to 5.5.0

Files changed (112) hide show
  1. assets/css/mollie-components.css +0 -66
  2. assets/js/babel-polyfill.min.js +0 -1
  3. assets/js/mollie-components.min.js +0 -1
  4. inc/utils.php +49 -2
  5. inc/woocommerce.php +29 -5
  6. mollie-payments-for-woocommerce.php +2 -2
  7. public/css/mollie-components.min.css +1 -0
  8. {assets → public}/images/abn-amro.svg +0 -0
  9. {assets → public}/images/applepay.svg +0 -0
  10. {assets → public}/images/asn.svg +0 -0
  11. {assets → public}/images/bancontact.svg +0 -0
  12. {assets → public}/images/banktransfer.svg +0 -0
  13. {assets → public}/images/belfius.svg +0 -0
  14. {assets → public}/images/bitcoin.svg +0 -0
  15. {assets → public}/images/bunq.svg +0 -0
  16. {assets → public}/images/cartasi.svg +0 -0
  17. {assets → public}/images/carte-bancaire.svg +0 -0
  18. {assets → public}/images/cbc.svg +0 -0
  19. {assets → public}/images/creditcard.svg +0 -0
  20. {assets → public}/images/creditcards-all.svg +0 -0
  21. {assets → public}/images/creditcards.svg +0 -0
  22. {assets → public}/images/directdebit.svg +0 -0
  23. {assets → public}/images/eps.svg +0 -0
  24. {assets → public}/images/eyegiftcard.svg +0 -0
  25. {assets → public}/images/fashioncheque.svg +0 -0
  26. {assets → public}/images/giftcard.svg +0 -0
  27. {assets → public}/images/giropay.svg +0 -0
  28. {assets → public}/images/ideal-qr.svg +0 -0
  29. {assets → public}/images/ideal.svg +0 -0
  30. {assets → public}/images/ing.svg +0 -0
  31. {assets → public}/images/inghomepay.svg +0 -0
  32. {assets → public}/images/kbc.svg +0 -0
  33. {assets → public}/images/klarna-descriptive.svg +0 -0
  34. {assets → public}/images/klarna-paylater.svg +0 -0
  35. {assets → public}/images/klarna-paynow.svg +0 -0
  36. {assets → public}/images/klarna.svg +0 -0
  37. {assets → public}/images/klarnapaylater.svg +0 -0
  38. {assets → public}/images/klarnasliceit.svg +0 -0
  39. {assets → public}/images/knab.svg +0 -0
  40. {assets → public}/images/lock-icon.svg +0 -0
  41. {assets → public}/images/maestro.svg +0 -0
  42. {assets → public}/images/mastercard.svg +0 -0
  43. {assets → public}/images/mollie-logo.svg +0 -0
  44. {assets → public}/images/moneyou.svg +0 -0
  45. {assets → public}/images/multi-banco.svg +0 -0
  46. {assets → public}/images/mybank.svg +0 -0
  47. {assets → public}/images/nationale-bioscoopbon.svg +0 -0
  48. {assets → public}/images/nationale-entertainment-card.svg +0 -0
  49. {assets → public}/images/nationale-kunst-cultuurkaart.svg +0 -0
  50. {assets → public}/images/not-found.svg +0 -0
  51. {assets → public}/images/paypal.svg +0 -0
  52. {assets → public}/images/paysafecard.svg +0 -0
  53. {assets → public}/images/podium-cadeaukaart.svg +0 -0
  54. {assets → public}/images/przelewy24.svg +0 -0
  55. {assets → public}/images/rabobank.svg +0 -0
  56. {assets → public}/images/regiobank.svg +0 -0
  57. {assets → public}/images/sns.svg +0 -0
  58. {assets → public}/images/sofort.svg +0 -0
  59. {assets → public}/images/triodos.svg +0 -0
  60. {assets → public}/images/v-pay.svg +0 -0
  61. {assets → public}/images/van-lanschot.svg +0 -0
  62. {assets → public}/images/visa.svg +0 -0
  63. {assets → public}/images/vvvgiftcard.svg +0 -0
  64. {assets → public}/images/webshopgiftcard.svg +0 -0
  65. {assets → public}/images/yourgift.svg +0 -0
  66. {assets → public}/js/applepay.min.js +1 -1
  67. public/js/babel-polyfill.min.js +1 -0
  68. public/js/mollie-components.min.js +1 -0
  69. {assets → public}/js/settings.min.js +1 -1
  70. readme.txt +12 -2
  71. src/Mollie/WC/Gateway/Abstract.php +164 -121
  72. src/Mollie/WC/Helper/PaymentMethodsIconUrl.php +45 -0
  73. src/Mollie/WC/Helper/Settings.php +3 -3
  74. src/Mollie/WC/Payment/Object.php +21 -1
  75. src/Mollie/WC/Payment/Order.php +13 -7
  76. src/Mollie/WC/Payment/Payment.php +13 -7
  77. src/Mollie/WC/Plugin.php +50 -24
  78. vendor/autoload.php +1 -1
  79. vendor/composer/autoload_classmap.php +1 -0
  80. vendor/composer/autoload_real.php +7 -7
  81. vendor/composer/autoload_static.php +6 -5
  82. vendor/composer/ca-bundle/README.md +0 -85
  83. vendor/composer/ca-bundle/composer.json +0 -54
  84. vendor/composer/ca-bundle/res/cacert.pem +36 -46
  85. vendor/composer/ca-bundle/src/CaBundle.php +16 -2
  86. vendor/composer/installed.json +18 -18
  87. vendor/guzzlehttp/guzzle/.php_cs +0 -23
  88. vendor/guzzlehttp/guzzle/CHANGELOG.md +0 -1304
  89. vendor/guzzlehttp/guzzle/Dockerfile +0 -18
  90. vendor/guzzlehttp/guzzle/README.md +0 -90
  91. vendor/guzzlehttp/guzzle/composer.json +0 -58
  92. vendor/guzzlehttp/promises/CHANGELOG.md +0 -65
  93. vendor/guzzlehttp/promises/Makefile +0 -13
  94. vendor/guzzlehttp/promises/README.md +0 -504
  95. vendor/guzzlehttp/promises/composer.json +0 -39
  96. vendor/guzzlehttp/psr7/CHANGELOG.md +0 -246
  97. vendor/guzzlehttp/psr7/README.md +0 -745
  98. vendor/guzzlehttp/psr7/composer.json +0 -49
  99. vendor/mollie/mollie-api-php/README.md +0 -201
  100. vendor/mollie/mollie-api-php/composer.json +0 -80
  101. vendor/mollie/mollie-api-php/examples/database/.gitignore +0 -1
  102. vendor/mollie/mollie-api-php/src/Endpoints/MethodEndpoint.php +1 -1
  103. vendor/mollie/mollie-api-php/src/MollieApiClient.php +1 -1
  104. vendor/mollie/mollie-api-php/src/Resources/Method.php +4 -4
  105. vendor/mollie/mollie-api-php/src/Resources/Order.php +5 -1
  106. vendor/mollie/mollie-api-php/src/Resources/ResourceFactory.php +8 -9
  107. vendor/mollie/mollie-api-php/src/Resources/Shipment.php +5 -1
  108. vendor/psr/http-message/CHANGELOG.md +0 -36
  109. vendor/psr/http-message/README.md +0 -16
  110. vendor/psr/http-message/composer.json +0 -26
  111. vendor/ralouphie/getallheaders/README.md +0 -27
  112. vendor/ralouphie/getallheaders/composer.json +0 -26
assets/css/mollie-components.css DELETED
@@ -1,66 +0,0 @@
1
- .mollie-components {
2
- display: flex;
3
- flex-wrap: wrap;
4
- }
5
-
6
- .mollie-components-description svg {
7
- display: inline !important;
8
- }
9
-
10
- .mollie-components .mollie-component-label {
11
- font-weight: 400;
12
- }
13
-
14
- .mollie-components .mollie-component {
15
- width: 100%;
16
- min-height: 34px;
17
- background-color: #FFF;
18
- border-radius: 6px;
19
- color: #222;
20
- transition: all .05s ease;
21
- box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.1),
22
- 0px 1px 3px 0px rgba(0, 0, 0, 0.1),
23
- 0px 0px 0px 1px rgba(0, 0, 0, 0.05);
24
- border: 2px solid transparent;
25
- }
26
-
27
- .mollie-components .mollie-component iframe {
28
- border-radius: 6px;
29
- margin: 0;
30
- }
31
-
32
- .mollie-components div {
33
- flex-grow: 1;
34
- width: 100%;
35
- }
36
-
37
- .mollie-components div + div {
38
- display: block;
39
- margin-top: .63em;
40
- }
41
-
42
- .mollie-components #expiryDate,
43
- .mollie-components #verificationCode {
44
- max-width: 50%;
45
- }
46
-
47
- .mollie-components #expiryDate {
48
- padding-right: 5%;
49
- }
50
-
51
- .mollie-components #verificationCode {
52
- padding-left: 5%;
53
- }
54
-
55
- .mollie-components .mollie-component.is-invalid {
56
- box-shadow: 0px 1px 1px 0px rgba(255, 51, 68, 0.1),
57
- 0px 1px 3px 0px rgba(255, 51, 68, 0.1);
58
- border-color: #fff0f0;
59
- }
60
-
61
- .mollie-components .mollie-component.has-focus {
62
- box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.1),
63
- 0px 2px 6px 0px rgba(0, 0, 0, 0.1),
64
- 0px 0px 0px 1px rgba(0, 0, 0, 0.05);
65
- border-color: #07f;
66
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/babel-polyfill.min.js DELETED
@@ -1 +0,0 @@
1
- !function(t){var n={};function r(e){if(n[e])return n[e].exports;var i=n[e]={i:e,l:!1,exports:{}};return t[e].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=t,r.c=n,r.d=function(t,n,e){r.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,n){if(1&n&&(t=r(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)r.d(e,i,function(n){return t[n]}.bind(null,i));return e},r.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(n,"a",n),n},r.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},r.p="",r(r.s=121)}([function(t,n,r){var e=r(1),i=r(7),o=r(14),u=r(11),c=r(17),f=function(t,n,r){var a,s,l,h,p=t&f.F,v=t&f.G,g=t&f.S,y=t&f.P,d=t&f.B,x=v?e:g?e[n]||(e[n]={}):(e[n]||{}).prototype,m=v?i:i[n]||(i[n]={}),b=m.prototype||(m.prototype={});for(a in v&&(r=n),r)l=((s=!p&&x&&void 0!==x[a])?x:r)[a],h=d&&s?c(l,e):y&&"function"==typeof l?c(Function.call,l):l,x&&u(x,a,l,t&f.U),m[a]!=l&&o(m,a,h),y&&b[a]!=l&&(b[a]=l)};e.core=i,f.F=1,f.G=2,f.S=4,f.P=8,f.B=16,f.W=32,f.U=64,f.R=128,t.exports=f},function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n,r){var e=r(4);t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n,r){var e=r(48)("wks"),i=r(29),o=r(1).Symbol,u="function"==typeof o;(t.exports=function(t){return e[t]||(e[t]=u&&o[t]||(u?o:i)("Symbol."+t))}).store=e},function(t,n,r){var e=r(19),i=Math.min;t.exports=function(t){return t>0?i(e(t),9007199254740991):0}},function(t,n){var r=t.exports={version:"2.6.10"};"number"==typeof __e&&(__e=r)},function(t,n,r){t.exports=!r(2)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,n,r){var e=r(3),i=r(88),o=r(26),u=Object.defineProperty;n.f=r(8)?Object.defineProperty:function(t,n,r){if(e(t),n=o(n,!0),e(r),i)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},function(t,n,r){var e=r(24);t.exports=function(t){return Object(e(t))}},function(t,n,r){var e=r(1),i=r(14),o=r(13),u=r(29)("src"),c=r(125),f=(""+c).split("toString");r(7).inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,r,c){var a="function"==typeof r;a&&(o(r,"name")||i(r,"name",n)),t[n]!==r&&(a&&(o(r,u)||i(r,u,t[n]?""+t[n]:f.join(String(n)))),t===e?t[n]=r:c?t[n]?t[n]=r:i(t,n,r):(delete t[n],i(t,n,r)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[u]||c.call(this)}))},function(t,n,r){var e=r(0),i=r(2),o=r(24),u=/"/g,c=function(t,n,r,e){var i=String(o(t)),c="<"+n;return""!==r&&(c+=" "+r+'="'+String(e).replace(u,"&quot;")+'"'),c+">"+i+"</"+n+">"};t.exports=function(t,n){var r={};r[t]=n(c),e(e.P+e.F*i((function(){var n=""[t]('"');return n!==n.toLowerCase()||n.split('"').length>3})),"String",r)}},function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},function(t,n,r){var e=r(9),i=r(28);t.exports=r(8)?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},function(t,n,r){var e=r(44),i=r(24);t.exports=function(t){return e(i(t))}},function(t,n,r){"use strict";var e=r(2);t.exports=function(t,n){return!!t&&e((function(){n?t.call(null,(function(){}),1):t.call(null)}))}},function(t,n,r){var e=r(18);t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,i){return t.call(n,r,e,i)}}return function(){return t.apply(n,arguments)}}},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},function(t,n,r){var e=r(45),i=r(28),o=r(15),u=r(26),c=r(13),f=r(88),a=Object.getOwnPropertyDescriptor;n.f=r(8)?a:function(t,n){if(t=o(t),n=u(n,!0),f)try{return a(t,n)}catch(t){}if(c(t,n))return i(!e.f.call(t,n),t[n])}},function(t,n,r){var e=r(0),i=r(7),o=r(2);t.exports=function(t,n){var r=(i.Object||{})[t]||Object[t],u={};u[t]=n(r),e(e.S+e.F*o((function(){r(1)})),"Object",u)}},function(t,n,r){var e=r(17),i=r(44),o=r(10),u=r(6),c=r(104);t.exports=function(t,n){var r=1==t,f=2==t,a=3==t,s=4==t,l=6==t,h=5==t||l,p=n||c;return function(n,c,v){for(var g,y,d=o(n),x=i(d),m=e(c,v,3),b=u(x.length),S=0,w=r?p(n,b):f?p(n,0):void 0;b>S;S++)if((h||S in x)&&(y=m(g=x[S],S,d),t))if(r)w[S]=y;else if(y)switch(t){case 3:return!0;case 5:return g;case 6:return S;case 2:w.push(g)}else if(s)return!1;return l?-1:a||s?s:w}}},function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,n,r){"use strict";if(r(8)){var e=r(30),i=r(1),o=r(2),u=r(0),c=r(59),f=r(84),a=r(17),s=r(42),l=r(28),h=r(14),p=r(43),v=r(19),g=r(6),y=r(115),d=r(32),x=r(26),m=r(13),b=r(46),S=r(4),w=r(10),_=r(76),E=r(33),O=r(35),P=r(34).f,F=r(78),M=r(29),A=r(5),j=r(22),I=r(49),N=r(47),T=r(80),L=r(40),R=r(52),k=r(41),C=r(79),D=r(106),W=r(9),G=r(20),U=W.f,B=G.f,V=i.RangeError,z=i.TypeError,Y=i.Uint8Array,q=Array.prototype,$=f.ArrayBuffer,K=f.DataView,J=j(0),X=j(2),H=j(3),Z=j(4),Q=j(5),tt=j(6),nt=I(!0),rt=I(!1),et=T.values,it=T.keys,ot=T.entries,ut=q.lastIndexOf,ct=q.reduce,ft=q.reduceRight,at=q.join,st=q.sort,lt=q.slice,ht=q.toString,pt=q.toLocaleString,vt=A("iterator"),gt=A("toStringTag"),yt=M("typed_constructor"),dt=M("def_constructor"),xt=c.CONSTR,mt=c.TYPED,bt=c.VIEW,St=j(1,(function(t,n){return Pt(N(t,t[dt]),n)})),wt=o((function(){return 1===new Y(new Uint16Array([1]).buffer)[0]})),_t=!!Y&&!!Y.prototype.set&&o((function(){new Y(1).set({})})),Et=function(t,n){var r=v(t);if(r<0||r%n)throw V("Wrong offset!");return r},Ot=function(t){if(S(t)&&mt in t)return t;throw z(t+" is not a typed array!")},Pt=function(t,n){if(!(S(t)&&yt in t))throw z("It is not a typed array constructor!");return new t(n)},Ft=function(t,n){return Mt(N(t,t[dt]),n)},Mt=function(t,n){for(var r=0,e=n.length,i=Pt(t,e);e>r;)i[r]=n[r++];return i},At=function(t,n,r){U(t,n,{get:function(){return this._d[r]}})},jt=function(t){var n,r,e,i,o,u,c=w(t),f=arguments.length,s=f>1?arguments[1]:void 0,l=void 0!==s,h=F(c);if(null!=h&&!_(h)){for(u=h.call(c),e=[],n=0;!(o=u.next()).done;n++)e.push(o.value);c=e}for(l&&f>2&&(s=a(s,arguments[2],2)),n=0,r=g(c.length),i=Pt(this,r);r>n;n++)i[n]=l?s(c[n],n):c[n];return i},It=function(){for(var t=0,n=arguments.length,r=Pt(this,n);n>t;)r[t]=arguments[t++];return r},Nt=!!Y&&o((function(){pt.call(new Y(1))})),Tt=function(){return pt.apply(Nt?lt.call(Ot(this)):Ot(this),arguments)},Lt={copyWithin:function(t,n){return D.call(Ot(this),t,n,arguments.length>2?arguments[2]:void 0)},every:function(t){return Z(Ot(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return C.apply(Ot(this),arguments)},filter:function(t){return Ft(this,X(Ot(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Q(Ot(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){J(Ot(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return rt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return nt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return at.apply(Ot(this),arguments)},lastIndexOf:function(t){return ut.apply(Ot(this),arguments)},map:function(t){return St(Ot(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return ct.apply(Ot(this),arguments)},reduceRight:function(t){return ft.apply(Ot(this),arguments)},reverse:function(){for(var t,n=Ot(this).length,r=Math.floor(n/2),e=0;e<r;)t=this[e],this[e++]=this[--n],this[n]=t;return this},some:function(t){return H(Ot(this),t,arguments.length>1?arguments[1]:void 0)},sort:function(t){return st.call(Ot(this),t)},subarray:function(t,n){var r=Ot(this),e=r.length,i=d(t,e);return new(N(r,r[dt]))(r.buffer,r.byteOffset+i*r.BYTES_PER_ELEMENT,g((void 0===n?e:d(n,e))-i))}},Rt=function(t,n){return Ft(this,lt.call(Ot(this),t,n))},kt=function(t){Ot(this);var n=Et(arguments[1],1),r=this.length,e=w(t),i=g(e.length),o=0;if(i+n>r)throw V("Wrong length!");for(;o<i;)this[n+o]=e[o++]},Ct={entries:function(){return ot.call(Ot(this))},keys:function(){return it.call(Ot(this))},values:function(){return et.call(Ot(this))}},Dt=function(t,n){return S(t)&&t[mt]&&"symbol"!=typeof n&&n in t&&String(+n)==String(n)},Wt=function(t,n){return Dt(t,n=x(n,!0))?l(2,t[n]):B(t,n)},Gt=function(t,n,r){return!(Dt(t,n=x(n,!0))&&S(r)&&m(r,"value"))||m(r,"get")||m(r,"set")||r.configurable||m(r,"writable")&&!r.writable||m(r,"enumerable")&&!r.enumerable?U(t,n,r):(t[n]=r.value,t)};xt||(G.f=Wt,W.f=Gt),u(u.S+u.F*!xt,"Object",{getOwnPropertyDescriptor:Wt,defineProperty:Gt}),o((function(){ht.call({})}))&&(ht=pt=function(){return at.call(this)});var Ut=p({},Lt);p(Ut,Ct),h(Ut,vt,Ct.values),p(Ut,{slice:Rt,set:kt,constructor:function(){},toString:ht,toLocaleString:Tt}),At(Ut,"buffer","b"),At(Ut,"byteOffset","o"),At(Ut,"byteLength","l"),At(Ut,"length","e"),U(Ut,gt,{get:function(){return this[mt]}}),t.exports=function(t,n,r,f){var a=t+((f=!!f)?"Clamped":"")+"Array",l="get"+t,p="set"+t,v=i[a],d=v||{},x=v&&O(v),m=!v||!c.ABV,w={},_=v&&v.prototype,F=function(t,r){U(t,r,{get:function(){return function(t,r){var e=t._d;return e.v[l](r*n+e.o,wt)}(this,r)},set:function(t){return function(t,r,e){var i=t._d;f&&(e=(e=Math.round(e))<0?0:e>255?255:255&e),i.v[p](r*n+i.o,e,wt)}(this,r,t)},enumerable:!0})};m?(v=r((function(t,r,e,i){s(t,v,a,"_d");var o,u,c,f,l=0,p=0;if(S(r)){if(!(r instanceof $||"ArrayBuffer"==(f=b(r))||"SharedArrayBuffer"==f))return mt in r?Mt(v,r):jt.call(v,r);o=r,p=Et(e,n);var d=r.byteLength;if(void 0===i){if(d%n)throw V("Wrong length!");if((u=d-p)<0)throw V("Wrong length!")}else if((u=g(i)*n)+p>d)throw V("Wrong length!");c=u/n}else c=y(r),o=new $(u=c*n);for(h(t,"_d",{b:o,o:p,l:u,e:c,v:new K(o)});l<c;)F(t,l++)})),_=v.prototype=E(Ut),h(_,"constructor",v)):o((function(){v(1)}))&&o((function(){new v(-1)}))&&R((function(t){new v,new v(null),new v(1.5),new v(t)}),!0)||(v=r((function(t,r,e,i){var o;return s(t,v,a),S(r)?r instanceof $||"ArrayBuffer"==(o=b(r))||"SharedArrayBuffer"==o?void 0!==i?new d(r,Et(e,n),i):void 0!==e?new d(r,Et(e,n)):new d(r):mt in r?Mt(v,r):jt.call(v,r):new d(y(r))})),J(x!==Function.prototype?P(d).concat(P(x)):P(d),(function(t){t in v||h(v,t,d[t])})),v.prototype=_,e||(_.constructor=v));var M=_[vt],A=!!M&&("values"==M.name||null==M.name),j=Ct.values;h(v,yt,!0),h(_,mt,a),h(_,bt,!0),h(_,dt,v),(f?new v(1)[gt]==a:gt in _)||U(_,gt,{get:function(){return a}}),w[a]=v,u(u.G+u.W+u.F*(v!=d),w),u(u.S,a,{BYTES_PER_ELEMENT:n}),u(u.S+u.F*o((function(){d.of.call(v,1)})),a,{from:jt,of:It}),"BYTES_PER_ELEMENT"in _||h(_,"BYTES_PER_ELEMENT",n),u(u.P,a,Lt),k(a),u(u.P+u.F*_t,a,{set:kt}),u(u.P+u.F*!A,a,Ct),e||_.toString==ht||(_.toString=ht),u(u.P+u.F*o((function(){new v(1).slice()})),a,{slice:Rt}),u(u.P+u.F*(o((function(){return[1,2].toLocaleString()!=new v([1,2]).toLocaleString()}))||!o((function(){_.toLocaleString.call([1,2])}))),a,{toLocaleString:Tt}),L[a]=A?M:j,e||A||h(_,vt,j)}}else t.exports=function(){}},function(t,n,r){var e=r(4);t.exports=function(t,n){if(!e(t))return t;var r,i;if(n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!e(i=r.call(t)))return i;if(!n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,n,r){var e=r(29)("meta"),i=r(4),o=r(13),u=r(9).f,c=0,f=Object.isExtensible||function(){return!0},a=!r(2)((function(){return f(Object.preventExtensions({}))})),s=function(t){u(t,e,{value:{i:"O"+ ++c,w:{}}})},l=t.exports={KEY:e,NEED:!1,fastKey:function(t,n){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,e)){if(!f(t))return"F";if(!n)return"E";s(t)}return t[e].i},getWeak:function(t,n){if(!o(t,e)){if(!f(t))return!0;if(!n)return!1;s(t)}return t[e].w},onFreeze:function(t){return a&&l.NEED&&f(t)&&!o(t,e)&&s(t),t}}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n){var r=0,e=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+e).toString(36))}},function(t,n){t.exports=!1},function(t,n,r){var e=r(90),i=r(63);t.exports=Object.keys||function(t){return e(t,i)}},function(t,n,r){var e=r(19),i=Math.max,o=Math.min;t.exports=function(t,n){return(t=e(t))<0?i(t+n,0):o(t,n)}},function(t,n,r){var e=r(3),i=r(91),o=r(63),u=r(62)("IE_PROTO"),c=function(){},f=function(){var t,n=r(60)("iframe"),e=o.length;for(n.style.display="none",r(64).appendChild(n),n.src="javascript:",(t=n.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),f=t.F;e--;)delete f.prototype[o[e]];return f()};t.exports=Object.create||function(t,n){var r;return null!==t?(c.prototype=e(t),r=new c,c.prototype=null,r[u]=t):r=f(),void 0===n?r:i(r,n)}},function(t,n,r){var e=r(90),i=r(63).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return e(t,i)}},function(t,n,r){var e=r(13),i=r(10),o=r(62)("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),e(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},function(t,n,r){var e=r(5)("unscopables"),i=Array.prototype;null==i[e]&&r(14)(i,e,{}),t.exports=function(t){i[e][t]=!0}},function(t,n,r){var e=r(4);t.exports=function(t,n){if(!e(t)||t._t!==n)throw TypeError("Incompatible receiver, "+n+" required!");return t}},function(t,n,r){var e=r(9).f,i=r(13),o=r(5)("toStringTag");t.exports=function(t,n,r){t&&!i(t=r?t:t.prototype,o)&&e(t,o,{configurable:!0,value:n})}},function(t,n,r){var e=r(0),i=r(24),o=r(2),u=r(66),c="["+u+"]",f=RegExp("^"+c+c+"*"),a=RegExp(c+c+"*$"),s=function(t,n,r){var i={},c=o((function(){return!!u[t]()||"​…"!="​…"[t]()})),f=i[t]=c?n(l):u[t];r&&(i[r]=f),e(e.P+e.F*c,"String",i)},l=s.trim=function(t,n){return t=String(i(t)),1&n&&(t=t.replace(f,"")),2&n&&(t=t.replace(a,"")),t};t.exports=s},function(t,n){t.exports={}},function(t,n,r){"use strict";var e=r(1),i=r(9),o=r(8),u=r(5)("species");t.exports=function(t){var n=e[t];o&&n&&!n[u]&&i.f(n,u,{configurable:!0,get:function(){return this}})}},function(t,n){t.exports=function(t,n,r,e){if(!(t instanceof n)||void 0!==e&&e in t)throw TypeError(r+": incorrect invocation!");return t}},function(t,n,r){var e=r(11);t.exports=function(t,n,r){for(var i in n)e(t,i,n[i],r);return t}},function(t,n,r){var e=r(23);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},function(t,n){n.f={}.propertyIsEnumerable},function(t,n,r){var e=r(23),i=r(5)("toStringTag"),o="Arguments"==e(function(){return arguments}());t.exports=function(t){var n,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),i))?r:o?e(n):"Object"==(u=e(n))&&"function"==typeof n.callee?"Arguments":u}},function(t,n,r){var e=r(3),i=r(18),o=r(5)("species");t.exports=function(t,n){var r,u=e(t).constructor;return void 0===u||null==(r=e(u)[o])?n:i(r)}},function(t,n,r){var e=r(7),i=r(1),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,n){return o[t]||(o[t]=void 0!==n?n:{})})("versions",[]).push({version:e.version,mode:r(30)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,n,r){var e=r(15),i=r(6),o=r(32);t.exports=function(t){return function(n,r,u){var c,f=e(n),a=i(f.length),s=o(u,a);if(t&&r!=r){for(;a>s;)if((c=f[s++])!=c)return!0}else for(;a>s;s++)if((t||s in f)&&f[s]===r)return t||s||0;return!t&&-1}}},function(t,n){n.f=Object.getOwnPropertySymbols},function(t,n,r){var e=r(23);t.exports=Array.isArray||function(t){return"Array"==e(t)}},function(t,n,r){var e=r(5)("iterator"),i=!1;try{var o=[7][e]();o.return=function(){i=!0},Array.from(o,(function(){throw 2}))}catch(t){}t.exports=function(t,n){if(!n&&!i)return!1;var r=!1;try{var o=[7],u=o[e]();u.next=function(){return{done:r=!0}},o[e]=function(){return u},t(o)}catch(t){}return r}},function(t,n,r){"use strict";var e=r(3);t.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},function(t,n,r){"use strict";var e=r(46),i=RegExp.prototype.exec;t.exports=function(t,n){var r=t.exec;if("function"==typeof r){var o=r.call(t,n);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==e(t))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(t,n)}},function(t,n,r){"use strict";r(108);var e=r(11),i=r(14),o=r(2),u=r(24),c=r(5),f=r(81),a=c("species"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),l=function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var r="ab".split(t);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();t.exports=function(t,n,r){var h=c(t),p=!o((function(){var n={};return n[h]=function(){return 7},7!=""[t](n)})),v=p?!o((function(){var n=!1,r=/a/;return r.exec=function(){return n=!0,null},"split"===t&&(r.constructor={},r.constructor[a]=function(){return r}),r[h](""),!n})):void 0;if(!p||!v||"replace"===t&&!s||"split"===t&&!l){var g=/./[h],y=r(u,h,""[t],(function(t,n,r,e,i){return n.exec===f?p&&!i?{done:!0,value:g.call(n,r,e)}:{done:!0,value:t.call(r,n,e)}:{done:!1}})),d=y[0],x=y[1];e(String.prototype,t,d),i(RegExp.prototype,h,2==n?function(t,n){return x.call(t,this,n)}:function(t){return x.call(t,this)})}}},function(t,n,r){var e=r(17),i=r(103),o=r(76),u=r(3),c=r(6),f=r(78),a={},s={};(n=t.exports=function(t,n,r,l,h){var p,v,g,y,d=h?function(){return t}:f(t),x=e(r,l,n?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(o(d)){for(p=c(t.length);p>m;m++)if((y=n?x(u(v=t[m])[0],v[1]):x(t[m]))===a||y===s)return y}else for(g=d.call(t);!(v=g.next()).done;)if((y=i(g,x,v.value,n))===a||y===s)return y}).BREAK=a,n.RETURN=s},function(t,n,r){var e=r(1).navigator;t.exports=e&&e.userAgent||""},function(t,n,r){"use strict";var e=r(1),i=r(0),o=r(11),u=r(43),c=r(27),f=r(56),a=r(42),s=r(4),l=r(2),h=r(52),p=r(38),v=r(67);t.exports=function(t,n,r,g,y,d){var x=e[t],m=x,b=y?"set":"add",S=m&&m.prototype,w={},_=function(t){var n=S[t];o(S,t,"delete"==t?function(t){return!(d&&!s(t))&&n.call(this,0===t?0:t)}:"has"==t?function(t){return!(d&&!s(t))&&n.call(this,0===t?0:t)}:"get"==t?function(t){return d&&!s(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function(t){return n.call(this,0===t?0:t),this}:function(t,r){return n.call(this,0===t?0:t,r),this})};if("function"==typeof m&&(d||S.forEach&&!l((function(){(new m).entries().next()})))){var E=new m,O=E[b](d?{}:-0,1)!=E,P=l((function(){E.has(1)})),F=h((function(t){new m(t)})),M=!d&&l((function(){for(var t=new m,n=5;n--;)t[b](n,n);return!t.has(-0)}));F||((m=n((function(n,r){a(n,m,t);var e=v(new x,n,m);return null!=r&&f(r,y,e[b],e),e}))).prototype=S,S.constructor=m),(P||M)&&(_("delete"),_("has"),y&&_("get")),(M||O)&&_(b),d&&S.clear&&delete S.clear}else m=g.getConstructor(n,t,y,b),u(m.prototype,r),c.NEED=!0;return p(m,t),w[t]=m,i(i.G+i.W+i.F*(m!=x),w),d||g.setStrong(m,t,y),m}},function(t,n,r){for(var e,i=r(1),o=r(14),u=r(29),c=u("typed_array"),f=u("view"),a=!(!i.ArrayBuffer||!i.DataView),s=a,l=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(e=i[h[l++]])?(o(e.prototype,c,!0),o(e.prototype,f,!0)):s=!1;t.exports={ABV:a,CONSTR:s,TYPED:c,VIEW:f}},function(t,n,r){var e=r(4),i=r(1).document,o=e(i)&&e(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,n,r){n.f=r(5)},function(t,n,r){var e=r(48)("keys"),i=r(29);t.exports=function(t){return e[t]||(e[t]=i(t))}},function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,n,r){var e=r(1).document;t.exports=e&&e.documentElement},function(t,n,r){var e=r(4),i=r(3),o=function(t,n){if(i(t),!e(n)&&null!==n)throw TypeError(n+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,e){try{(e=r(17)(Function.call,r(20).f(Object.prototype,"__proto__").set,2))(t,[]),n=!(t instanceof Array)}catch(t){n=!0}return function(t,r){return o(t,r),n?t.__proto__=r:e(t,r),t}}({},!1):void 0),check:o}},function(t,n){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(t,n,r){var e=r(4),i=r(65).set;t.exports=function(t,n,r){var o,u=n.constructor;return u!==r&&"function"==typeof u&&(o=u.prototype)!==r.prototype&&e(o)&&i&&i(t,o),t}},function(t,n,r){"use strict";var e=r(19),i=r(24);t.exports=function(t){var n=String(i(this)),r="",o=e(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(n+=n))1&o&&(r+=n);return r}},function(t,n){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,n){var r=Math.expm1;t.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:r},function(t,n,r){var e=r(19),i=r(24);t.exports=function(t){return function(n,r){var o,u,c=String(i(n)),f=e(r),a=c.length;return f<0||f>=a?t?"":void 0:(o=c.charCodeAt(f))<55296||o>56319||f+1===a||(u=c.charCodeAt(f+1))<56320||u>57343?t?c.charAt(f):o:t?c.slice(f,f+2):u-56320+(o-55296<<10)+65536}}},function(t,n,r){"use strict";var e=r(30),i=r(0),o=r(11),u=r(14),c=r(40),f=r(102),a=r(38),s=r(35),l=r(5)("iterator"),h=!([].keys&&"next"in[].keys()),p=function(){return this};t.exports=function(t,n,r,v,g,y,d){f(r,n,v);var x,m,b,S=function(t){if(!h&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new r(this,t)}}return function(){return new r(this,t)}},w=n+" Iterator",_="values"==g,E=!1,O=t.prototype,P=O[l]||O["@@iterator"]||g&&O[g],F=P||S(g),M=g?_?S("entries"):F:void 0,A="Array"==n&&O.entries||P;if(A&&(b=s(A.call(new t)))!==Object.prototype&&b.next&&(a(b,w,!0),e||"function"==typeof b[l]||u(b,l,p)),_&&P&&"values"!==P.name&&(E=!0,F=function(){return P.call(this)}),e&&!d||!h&&!E&&O[l]||u(O,l,F),c[n]=F,c[w]=p,g)if(x={values:_?F:S("values"),keys:y?F:S("keys"),entries:M},d)for(m in x)m in O||o(O,m,x[m]);else i(i.P+i.F*(h||E),n,x);return x}},function(t,n,r){var e=r(74),i=r(24);t.exports=function(t,n,r){if(e(n))throw TypeError("String#"+r+" doesn't accept regex!");return String(i(t))}},function(t,n,r){var e=r(4),i=r(23),o=r(5)("match");t.exports=function(t){var n;return e(t)&&(void 0!==(n=t[o])?!!n:"RegExp"==i(t))}},function(t,n,r){var e=r(5)("match");t.exports=function(t){var n=/./;try{"/./"[t](n)}catch(r){try{return n[e]=!1,!"/./"[t](n)}catch(t){}}return!0}},function(t,n,r){var e=r(40),i=r(5)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(e.Array===t||o[i]===t)}},function(t,n,r){"use strict";var e=r(9),i=r(28);t.exports=function(t,n,r){n in t?e.f(t,n,i(0,r)):t[n]=r}},function(t,n,r){var e=r(46),i=r(5)("iterator"),o=r(40);t.exports=r(7).getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[e(t)]}},function(t,n,r){"use strict";var e=r(10),i=r(32),o=r(6);t.exports=function(t){for(var n=e(this),r=o(n.length),u=arguments.length,c=i(u>1?arguments[1]:void 0,r),f=u>2?arguments[2]:void 0,a=void 0===f?r:i(f,r);a>c;)n[c++]=t;return n}},function(t,n,r){"use strict";var e=r(36),i=r(107),o=r(40),u=r(15);t.exports=r(72)(Array,"Array",(function(t,n){this._t=u(t),this._i=0,this._k=n}),(function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):i(0,"keys"==n?r:"values"==n?t[r]:[r,t[r]])}),"values"),o.Arguments=o.Array,e("keys"),e("values"),e("entries")},function(t,n,r){"use strict";var e,i,o=r(53),u=RegExp.prototype.exec,c=String.prototype.replace,f=u,a=(e=/a/,i=/b*/g,u.call(e,"a"),u.call(i,"a"),0!==e.lastIndex||0!==i.lastIndex),s=void 0!==/()??/.exec("")[1];(a||s)&&(f=function(t){var n,r,e,i,f=this;return s&&(r=new RegExp("^"+f.source+"$(?!\\s)",o.call(f))),a&&(n=f.lastIndex),e=u.call(f,t),a&&e&&(f.lastIndex=f.global?e.index+e[0].length:n),s&&e&&e.length>1&&c.call(e[0],r,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(e[i]=void 0)})),e}),t.exports=f},function(t,n,r){"use strict";var e=r(71)(!0);t.exports=function(t,n,r){return n+(r?e(t,n).length:1)}},function(t,n,r){var e,i,o,u=r(17),c=r(96),f=r(64),a=r(60),s=r(1),l=s.process,h=s.setImmediate,p=s.clearImmediate,v=s.MessageChannel,g=s.Dispatch,y=0,d={},x=function(){var t=+this;if(d.hasOwnProperty(t)){var n=d[t];delete d[t],n()}},m=function(t){x.call(t.data)};h&&p||(h=function(t){for(var n=[],r=1;arguments.length>r;)n.push(arguments[r++]);return d[++y]=function(){c("function"==typeof t?t:Function(t),n)},e(y),y},p=function(t){delete d[t]},"process"==r(23)(l)?e=function(t){l.nextTick(u(x,t,1))}:g&&g.now?e=function(t){g.now(u(x,t,1))}:v?(o=(i=new v).port2,i.port1.onmessage=m,e=u(o.postMessage,o,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts?(e=function(t){s.postMessage(t+"","*")},s.addEventListener("message",m,!1)):e="onreadystatechange"in a("script")?function(t){f.appendChild(a("script")).onreadystatechange=function(){f.removeChild(this),x.call(t)}}:function(t){setTimeout(u(x,t,1),0)}),t.exports={set:h,clear:p}},function(t,n,r){"use strict";var e=r(1),i=r(8),o=r(30),u=r(59),c=r(14),f=r(43),a=r(2),s=r(42),l=r(19),h=r(6),p=r(115),v=r(34).f,g=r(9).f,y=r(79),d=r(38),x="prototype",m="Wrong index!",b=e.ArrayBuffer,S=e.DataView,w=e.Math,_=e.RangeError,E=e.Infinity,O=b,P=w.abs,F=w.pow,M=w.floor,A=w.log,j=w.LN2,I=i?"_b":"buffer",N=i?"_l":"byteLength",T=i?"_o":"byteOffset";function L(t,n,r){var e,i,o,u=new Array(r),c=8*r-n-1,f=(1<<c)-1,a=f>>1,s=23===n?F(2,-24)-F(2,-77):0,l=0,h=t<0||0===t&&1/t<0?1:0;for((t=P(t))!=t||t===E?(i=t!=t?1:0,e=f):(e=M(A(t)/j),t*(o=F(2,-e))<1&&(e--,o*=2),(t+=e+a>=1?s/o:s*F(2,1-a))*o>=2&&(e++,o/=2),e+a>=f?(i=0,e=f):e+a>=1?(i=(t*o-1)*F(2,n),e+=a):(i=t*F(2,a-1)*F(2,n),e=0));n>=8;u[l++]=255&i,i/=256,n-=8);for(e=e<<n|i,c+=n;c>0;u[l++]=255&e,e/=256,c-=8);return u[--l]|=128*h,u}function R(t,n,r){var e,i=8*r-n-1,o=(1<<i)-1,u=o>>1,c=i-7,f=r-1,a=t[f--],s=127&a;for(a>>=7;c>0;s=256*s+t[f],f--,c-=8);for(e=s&(1<<-c)-1,s>>=-c,c+=n;c>0;e=256*e+t[f],f--,c-=8);if(0===s)s=1-u;else{if(s===o)return e?NaN:a?-E:E;e+=F(2,n),s-=u}return(a?-1:1)*e*F(2,s-n)}function k(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function C(t){return[255&t]}function D(t){return[255&t,t>>8&255]}function W(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function G(t){return L(t,52,8)}function U(t){return L(t,23,4)}function B(t,n,r){g(t[x],n,{get:function(){return this[r]}})}function V(t,n,r,e){var i=p(+r);if(i+n>t[N])throw _(m);var o=t[I]._b,u=i+t[T],c=o.slice(u,u+n);return e?c:c.reverse()}function z(t,n,r,e,i,o){var u=p(+r);if(u+n>t[N])throw _(m);for(var c=t[I]._b,f=u+t[T],a=e(+i),s=0;s<n;s++)c[f+s]=a[o?s:n-s-1]}if(u.ABV){if(!a((function(){b(1)}))||!a((function(){new b(-1)}))||a((function(){return new b,new b(1.5),new b(NaN),"ArrayBuffer"!=b.name}))){for(var Y,q=(b=function(t){return s(this,b),new O(p(t))})[x]=O[x],$=v(O),K=0;$.length>K;)(Y=$[K++])in b||c(b,Y,O[Y]);o||(q.constructor=b)}var J=new S(new b(2)),X=S[x].setInt8;J.setInt8(0,2147483648),J.setInt8(1,2147483649),!J.getInt8(0)&&J.getInt8(1)||f(S[x],{setInt8:function(t,n){X.call(this,t,n<<24>>24)},setUint8:function(t,n){X.call(this,t,n<<24>>24)}},!0)}else b=function(t){s(this,b,"ArrayBuffer");var n=p(t);this._b=y.call(new Array(n),0),this[N]=n},S=function(t,n,r){s(this,S,"DataView"),s(t,b,"DataView");var e=t[N],i=l(n);if(i<0||i>e)throw _("Wrong offset!");if(i+(r=void 0===r?e-i:h(r))>e)throw _("Wrong length!");this[I]=t,this[T]=i,this[N]=r},i&&(B(b,"byteLength","_l"),B(S,"buffer","_b"),B(S,"byteLength","_l"),B(S,"byteOffset","_o")),f(S[x],{getInt8:function(t){return V(this,1,t)[0]<<24>>24},getUint8:function(t){return V(this,1,t)[0]},getInt16:function(t){var n=V(this,2,t,arguments[1]);return(n[1]<<8|n[0])<<16>>16},getUint16:function(t){var n=V(this,2,t,arguments[1]);return n[1]<<8|n[0]},getInt32:function(t){return k(V(this,4,t,arguments[1]))},getUint32:function(t){return k(V(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return R(V(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return R(V(this,8,t,arguments[1]),52,8)},setInt8:function(t,n){z(this,1,t,C,n)},setUint8:function(t,n){z(this,1,t,C,n)},setInt16:function(t,n){z(this,2,t,D,n,arguments[2])},setUint16:function(t,n){z(this,2,t,D,n,arguments[2])},setInt32:function(t,n){z(this,4,t,W,n,arguments[2])},setUint32:function(t,n){z(this,4,t,W,n,arguments[2])},setFloat32:function(t,n){z(this,4,t,U,n,arguments[2])},setFloat64:function(t,n){z(this,8,t,G,n,arguments[2])}});d(b,"ArrayBuffer"),d(S,"DataView"),c(S[x],u.VIEW,!0),n.ArrayBuffer=b,n.DataView=S},function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n,r){t.exports=!r(120)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,n,r){t.exports=!r(8)&&!r(2)((function(){return 7!=Object.defineProperty(r(60)("div"),"a",{get:function(){return 7}}).a}))},function(t,n,r){var e=r(1),i=r(7),o=r(30),u=r(61),c=r(9).f;t.exports=function(t){var n=i.Symbol||(i.Symbol=o?{}:e.Symbol||{});"_"==t.charAt(0)||t in n||c(n,t,{value:u.f(t)})}},function(t,n,r){var e=r(13),i=r(15),o=r(49)(!1),u=r(62)("IE_PROTO");t.exports=function(t,n){var r,c=i(t),f=0,a=[];for(r in c)r!=u&&e(c,r)&&a.push(r);for(;n.length>f;)e(c,r=n[f++])&&(~o(a,r)||a.push(r));return a}},function(t,n,r){var e=r(9),i=r(3),o=r(31);t.exports=r(8)?Object.defineProperties:function(t,n){i(t);for(var r,u=o(n),c=u.length,f=0;c>f;)e.f(t,r=u[f++],n[r]);return t}},function(t,n,r){var e=r(15),i=r(34).f,o={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return u&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return u.slice()}}(t):i(e(t))}},function(t,n,r){"use strict";var e=r(8),i=r(31),o=r(50),u=r(45),c=r(10),f=r(44),a=Object.assign;t.exports=!a||r(2)((function(){var t={},n={},r=Symbol(),e="abcdefghijklmnopqrst";return t[r]=7,e.split("").forEach((function(t){n[t]=t})),7!=a({},t)[r]||Object.keys(a({},n)).join("")!=e}))?function(t,n){for(var r=c(t),a=arguments.length,s=1,l=o.f,h=u.f;a>s;)for(var p,v=f(arguments[s++]),g=l?i(v).concat(l(v)):i(v),y=g.length,d=0;y>d;)p=g[d++],e&&!h.call(v,p)||(r[p]=v[p]);return r}:a},function(t,n){t.exports=Object.is||function(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n}},function(t,n,r){"use strict";var e=r(18),i=r(4),o=r(96),u=[].slice,c={},f=function(t,n,r){if(!(n in c)){for(var e=[],i=0;i<n;i++)e[i]="a["+i+"]";c[n]=Function("F,a","return new F("+e.join(",")+")")}return c[n](t,r)};t.exports=Function.bind||function(t){var n=e(this),r=u.call(arguments,1),c=function(){var e=r.concat(u.call(arguments));return this instanceof c?f(n,e.length,e):o(n,e,t)};return i(n.prototype)&&(c.prototype=n.prototype),c}},function(t,n){t.exports=function(t,n,r){var e=void 0===r;switch(n.length){case 0:return e?t():t.call(r);case 1:return e?t(n[0]):t.call(r,n[0]);case 2:return e?t(n[0],n[1]):t.call(r,n[0],n[1]);case 3:return e?t(n[0],n[1],n[2]):t.call(r,n[0],n[1],n[2]);case 4:return e?t(n[0],n[1],n[2],n[3]):t.call(r,n[0],n[1],n[2],n[3])}return t.apply(r,n)}},function(t,n,r){var e=r(1).parseInt,i=r(39).trim,o=r(66),u=/^[-+]?0[xX]/;t.exports=8!==e(o+"08")||22!==e(o+"0x16")?function(t,n){var r=i(String(t),3);return e(r,n>>>0||(u.test(r)?16:10))}:e},function(t,n,r){var e=r(1).parseFloat,i=r(39).trim;t.exports=1/e(r(66)+"-0")!=-1/0?function(t){var n=i(String(t),3),r=e(n);return 0===r&&"-"==n.charAt(0)?-0:r}:e},function(t,n,r){var e=r(23);t.exports=function(t,n){if("number"!=typeof t&&"Number"!=e(t))throw TypeError(n);return+t}},function(t,n,r){var e=r(4),i=Math.floor;t.exports=function(t){return!e(t)&&isFinite(t)&&i(t)===t}},function(t,n){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,n,r){"use strict";var e=r(33),i=r(28),o=r(38),u={};r(14)(u,r(5)("iterator"),(function(){return this})),t.exports=function(t,n,r){t.prototype=e(u,{next:i(1,r)}),o(t,n+" Iterator")}},function(t,n,r){var e=r(3);t.exports=function(t,n,r,i){try{return i?n(e(r)[0],r[1]):n(r)}catch(n){var o=t.return;throw void 0!==o&&e(o.call(t)),n}}},function(t,n,r){var e=r(215);t.exports=function(t,n){return new(e(t))(n)}},function(t,n,r){var e=r(18),i=r(10),o=r(44),u=r(6);t.exports=function(t,n,r,c,f){e(n);var a=i(t),s=o(a),l=u(a.length),h=f?l-1:0,p=f?-1:1;if(r<2)for(;;){if(h in s){c=s[h],h+=p;break}if(h+=p,f?h<0:l<=h)throw TypeError("Reduce of empty array with no initial value")}for(;f?h>=0:l>h;h+=p)h in s&&(c=n(c,s[h],h,a));return c}},function(t,n,r){"use strict";var e=r(10),i=r(32),o=r(6);t.exports=[].copyWithin||function(t,n){var r=e(this),u=o(r.length),c=i(t,u),f=i(n,u),a=arguments.length>2?arguments[2]:void 0,s=Math.min((void 0===a?u:i(a,u))-f,u-c),l=1;for(f<c&&c<f+s&&(l=-1,f+=s-1,c+=s-1);s-- >0;)f in r?r[c]=r[f]:delete r[c],c+=l,f+=l;return r}},function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},function(t,n,r){"use strict";var e=r(81);r(0)({target:"RegExp",proto:!0,forced:e!==/./.exec},{exec:e})},function(t,n,r){r(8)&&"g"!=/./g.flags&&r(9).f(RegExp.prototype,"flags",{configurable:!0,get:r(53)})},function(t,n,r){"use strict";var e,i,o,u,c=r(30),f=r(1),a=r(17),s=r(46),l=r(0),h=r(4),p=r(18),v=r(42),g=r(56),y=r(47),d=r(83).set,x=r(235)(),m=r(111),b=r(236),S=r(57),w=r(112),_=f.TypeError,E=f.process,O=E&&E.versions,P=O&&O.v8||"",F=f.Promise,M="process"==s(E),A=function(){},j=i=m.f,I=!!function(){try{var t=F.resolve(1),n=(t.constructor={})[r(5)("species")]=function(t){t(A,A)};return(M||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof n&&0!==P.indexOf("6.6")&&-1===S.indexOf("Chrome/66")}catch(t){}}(),N=function(t){var n;return!(!h(t)||"function"!=typeof(n=t.then))&&n},T=function(t,n){if(!t._n){t._n=!0;var r=t._c;x((function(){for(var e=t._v,i=1==t._s,o=0,u=function(n){var r,o,u,c=i?n.ok:n.fail,f=n.resolve,a=n.reject,s=n.domain;try{c?(i||(2==t._h&&k(t),t._h=1),!0===c?r=e:(s&&s.enter(),r=c(e),s&&(s.exit(),u=!0)),r===n.promise?a(_("Promise-chain cycle")):(o=N(r))?o.call(r,f,a):f(r)):a(e)}catch(t){s&&!u&&s.exit(),a(t)}};r.length>o;)u(r[o++]);t._c=[],t._n=!1,n&&!t._h&&L(t)}))}},L=function(t){d.call(f,(function(){var n,r,e,i=t._v,o=R(t);if(o&&(n=b((function(){M?E.emit("unhandledRejection",i,t):(r=f.onunhandledrejection)?r({promise:t,reason:i}):(e=f.console)&&e.error&&e.error("Unhandled promise rejection",i)})),t._h=M||R(t)?2:1),t._a=void 0,o&&n.e)throw n.v}))},R=function(t){return 1!==t._h&&0===(t._a||t._c).length},k=function(t){d.call(f,(function(){var n;M?E.emit("rejectionHandled",t):(n=f.onrejectionhandled)&&n({promise:t,reason:t._v})}))},C=function(t){var n=this;n._d||(n._d=!0,(n=n._w||n)._v=t,n._s=2,n._a||(n._a=n._c.slice()),T(n,!0))},D=function(t){var n,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===t)throw _("Promise can't be resolved itself");(n=N(t))?x((function(){var e={_w:r,_d:!1};try{n.call(t,a(D,e,1),a(C,e,1))}catch(t){C.call(e,t)}})):(r._v=t,r._s=1,T(r,!1))}catch(t){C.call({_w:r,_d:!1},t)}}};I||(F=function(t){v(this,F,"Promise","_h"),p(t),e.call(this);try{t(a(D,this,1),a(C,this,1))}catch(t){C.call(this,t)}},(e=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r(43)(F.prototype,{then:function(t,n){var r=j(y(this,F));return r.ok="function"!=typeof t||t,r.fail="function"==typeof n&&n,r.domain=M?E.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&T(this,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new e;this.promise=t,this.resolve=a(D,t,1),this.reject=a(C,t,1)},m.f=j=function(t){return t===F||t===u?new o(t):i(t)}),l(l.G+l.W+l.F*!I,{Promise:F}),r(38)(F,"Promise"),r(41)("Promise"),u=r(7).Promise,l(l.S+l.F*!I,"Promise",{reject:function(t){var n=j(this);return(0,n.reject)(t),n.promise}}),l(l.S+l.F*(c||!I),"Promise",{resolve:function(t){return w(c&&this===u?F:this,t)}}),l(l.S+l.F*!(I&&r(52)((function(t){F.all(t).catch(A)}))),"Promise",{all:function(t){var n=this,r=j(n),e=r.resolve,i=r.reject,o=b((function(){var r=[],o=0,u=1;g(t,!1,(function(t){var c=o++,f=!1;r.push(void 0),u++,n.resolve(t).then((function(t){f||(f=!0,r[c]=t,--u||e(r))}),i)})),--u||e(r)}));return o.e&&i(o.v),r.promise},race:function(t){var n=this,r=j(n),e=r.reject,i=b((function(){g(t,!1,(function(t){n.resolve(t).then(r.resolve,e)}))}));return i.e&&e(i.v),r.promise}})},function(t,n,r){"use strict";var e=r(18);function i(t){var n,r;this.promise=new t((function(t,e){if(void 0!==n||void 0!==r)throw TypeError("Bad Promise constructor");n=t,r=e})),this.resolve=e(n),this.reject=e(r)}t.exports.f=function(t){return new i(t)}},function(t,n,r){var e=r(3),i=r(4),o=r(111);t.exports=function(t,n){if(e(t),i(n)&&n.constructor===t)return n;var r=o.f(t);return(0,r.resolve)(n),r.promise}},function(t,n,r){"use strict";var e=r(9).f,i=r(33),o=r(43),u=r(17),c=r(42),f=r(56),a=r(72),s=r(107),l=r(41),h=r(8),p=r(27).fastKey,v=r(37),g=h?"_s":"size",y=function(t,n){var r,e=p(n);if("F"!==e)return t._i[e];for(r=t._f;r;r=r.n)if(r.k==n)return r};t.exports={getConstructor:function(t,n,r,a){var s=t((function(t,e){c(t,s,n,"_i"),t._t=n,t._i=i(null),t._f=void 0,t._l=void 0,t[g]=0,null!=e&&f(e,r,t[a],t)}));return o(s.prototype,{clear:function(){for(var t=v(this,n),r=t._i,e=t._f;e;e=e.n)e.r=!0,e.p&&(e.p=e.p.n=void 0),delete r[e.i];t._f=t._l=void 0,t[g]=0},delete:function(t){var r=v(this,n),e=y(r,t);if(e){var i=e.n,o=e.p;delete r._i[e.i],e.r=!0,o&&(o.n=i),i&&(i.p=o),r._f==e&&(r._f=i),r._l==e&&(r._l=o),r[g]--}return!!e},forEach:function(t){v(this,n);for(var r,e=u(t,arguments.length>1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(e(r.v,r.k,this);r&&r.r;)r=r.p},has:function(t){return!!y(v(this,n),t)}}),h&&e(s.prototype,"size",{get:function(){return v(this,n)[g]}}),s},def:function(t,n,r){var e,i,o=y(t,n);return o?o.v=r:(t._l=o={i:i=p(n,!0),k:n,v:r,p:e=t._l,n:void 0,r:!1},t._f||(t._f=o),e&&(e.n=o),t[g]++,"F"!==i&&(t._i[i]=o)),t},getEntry:y,setStrong:function(t,n,r){a(t,n,(function(t,r){this._t=v(t,n),this._k=r,this._l=void 0}),(function(){for(var t=this._k,n=this._l;n&&n.r;)n=n.p;return this._t&&(this._l=n=n?n.n:this._t._f)?s(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(this._t=void 0,s(1))}),r?"entries":"values",!r,!0),l(n)}}},function(t,n,r){"use strict";var e=r(43),i=r(27).getWeak,o=r(3),u=r(4),c=r(42),f=r(56),a=r(22),s=r(13),l=r(37),h=a(5),p=a(6),v=0,g=function(t){return t._l||(t._l=new y)},y=function(){this.a=[]},d=function(t,n){return h(t.a,(function(t){return t[0]===n}))};y.prototype={get:function(t){var n=d(this,t);if(n)return n[1]},has:function(t){return!!d(this,t)},set:function(t,n){var r=d(this,t);r?r[1]=n:this.a.push([t,n])},delete:function(t){var n=p(this.a,(function(n){return n[0]===t}));return~n&&this.a.splice(n,1),!!~n}},t.exports={getConstructor:function(t,n,r,o){var a=t((function(t,e){c(t,a,n,"_i"),t._t=n,t._i=v++,t._l=void 0,null!=e&&f(e,r,t[o],t)}));return e(a.prototype,{delete:function(t){if(!u(t))return!1;var r=i(t);return!0===r?g(l(this,n)).delete(t):r&&s(r,this._i)&&delete r[this._i]},has:function(t){if(!u(t))return!1;var r=i(t);return!0===r?g(l(this,n)).has(t):r&&s(r,this._i)}}),a},def:function(t,n,r){var e=i(o(n),!0);return!0===e?g(t).set(n,r):e[t._i]=r,t},ufstore:g}},function(t,n,r){var e=r(19),i=r(6);t.exports=function(t){if(void 0===t)return 0;var n=e(t),r=i(n);if(n!==r)throw RangeError("Wrong length!");return r}},function(t,n,r){var e=r(34),i=r(50),o=r(3),u=r(1).Reflect;t.exports=u&&u.ownKeys||function(t){var n=e.f(o(t)),r=i.f;return r?n.concat(r(t)):n}},function(t,n,r){var e=r(6),i=r(68),o=r(24);t.exports=function(t,n,r,u){var c=String(o(t)),f=c.length,a=void 0===r?" ":String(r),s=e(n);if(s<=f||""==a)return c;var l=s-f,h=i.call(a,Math.ceil(l/a.length));return h.length>l&&(h=h.slice(0,l)),u?h+c:c+h}},function(t,n,r){var e=r(8),i=r(31),o=r(15),u=r(45).f;t.exports=function(t){return function(n){for(var r,c=o(n),f=i(c),a=f.length,s=0,l=[];a>s;)r=f[s++],e&&!u.call(c,r)||l.push(t?[r,c[r]]:c[r]);return l}}},function(t,n){var r=t.exports={version:"2.6.10"};"number"==typeof __e&&(__e=r)},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n,r){"use strict";r(122);var e,i=(e=r(294))&&e.__esModule?e:{default:e};i.default._babelPolyfill&&"undefined"!=typeof console&&console.warn&&console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning."),i.default._babelPolyfill=!0},function(t,n,r){"use strict";r(123),r(266),r(268),r(271),r(273),r(275),r(277),r(279),r(281),r(283),r(285),r(287),r(289),r(293)},function(t,n,r){r(124),r(127),r(128),r(129),r(130),r(131),r(132),r(133),r(134),r(135),r(136),r(137),r(138),r(139),r(140),r(141),r(142),r(143),r(144),r(145),r(146),r(147),r(148),r(149),r(150),r(151),r(152),r(153),r(154),r(155),r(156),r(157),r(158),r(159),r(160),r(161),r(162),r(163),r(164),r(165),r(166),r(167),r(168),r(170),r(171),r(172),r(173),r(174),r(175),r(176),r(177),r(178),r(179),r(180),r(181),r(182),r(183),r(184),r(185),r(186),r(187),r(188),r(189),r(190),r(191),r(192),r(193),r(194),r(195),r(196),r(197),r(198),r(199),r(200),r(201),r(202),r(203),r(205),r(206),r(208),r(209),r(210),r(211),r(212),r(213),r(214),r(216),r(217),r(218),r(219),r(220),r(221),r(222),r(223),r(224),r(225),r(226),r(227),r(228),r(80),r(229),r(108),r(230),r(109),r(231),r(232),r(233),r(234),r(110),r(237),r(238),r(239),r(240),r(241),r(242),r(243),r(244),r(245),r(246),r(247),r(248),r(249),r(250),r(251),r(252),r(253),r(254),r(255),r(256),r(257),r(258),r(259),r(260),r(261),r(262),r(263),r(264),r(265),t.exports=r(7)},function(t,n,r){"use strict";var e=r(1),i=r(13),o=r(8),u=r(0),c=r(11),f=r(27).KEY,a=r(2),s=r(48),l=r(38),h=r(29),p=r(5),v=r(61),g=r(89),y=r(126),d=r(51),x=r(3),m=r(4),b=r(10),S=r(15),w=r(26),_=r(28),E=r(33),O=r(92),P=r(20),F=r(50),M=r(9),A=r(31),j=P.f,I=M.f,N=O.f,T=e.Symbol,L=e.JSON,R=L&&L.stringify,k=p("_hidden"),C=p("toPrimitive"),D={}.propertyIsEnumerable,W=s("symbol-registry"),G=s("symbols"),U=s("op-symbols"),B=Object.prototype,V="function"==typeof T&&!!F.f,z=e.QObject,Y=!z||!z.prototype||!z.prototype.findChild,q=o&&a((function(){return 7!=E(I({},"a",{get:function(){return I(this,"a",{value:7}).a}})).a}))?function(t,n,r){var e=j(B,n);e&&delete B[n],I(t,n,r),e&&t!==B&&I(B,n,e)}:I,$=function(t){var n=G[t]=E(T.prototype);return n._k=t,n},K=V&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},J=function(t,n,r){return t===B&&J(U,n,r),x(t),n=w(n,!0),x(r),i(G,n)?(r.enumerable?(i(t,k)&&t[k][n]&&(t[k][n]=!1),r=E(r,{enumerable:_(0,!1)})):(i(t,k)||I(t,k,_(1,{})),t[k][n]=!0),q(t,n,r)):I(t,n,r)},X=function(t,n){x(t);for(var r,e=y(n=S(n)),i=0,o=e.length;o>i;)J(t,r=e[i++],n[r]);return t},H=function(t){var n=D.call(this,t=w(t,!0));return!(this===B&&i(G,t)&&!i(U,t))&&(!(n||!i(this,t)||!i(G,t)||i(this,k)&&this[k][t])||n)},Z=function(t,n){if(t=S(t),n=w(n,!0),t!==B||!i(G,n)||i(U,n)){var r=j(t,n);return!r||!i(G,n)||i(t,k)&&t[k][n]||(r.enumerable=!0),r}},Q=function(t){for(var n,r=N(S(t)),e=[],o=0;r.length>o;)i(G,n=r[o++])||n==k||n==f||e.push(n);return e},tt=function(t){for(var n,r=t===B,e=N(r?U:S(t)),o=[],u=0;e.length>u;)!i(G,n=e[u++])||r&&!i(B,n)||o.push(G[n]);return o};V||(c((T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),n=function(r){this===B&&n.call(U,r),i(this,k)&&i(this[k],t)&&(this[k][t]=!1),q(this,t,_(1,r))};return o&&Y&&q(B,t,{configurable:!0,set:n}),$(t)}).prototype,"toString",(function(){return this._k})),P.f=Z,M.f=J,r(34).f=O.f=Q,r(45).f=H,F.f=tt,o&&!r(30)&&c(B,"propertyIsEnumerable",H,!0),v.f=function(t){return $(p(t))}),u(u.G+u.W+u.F*!V,{Symbol:T});for(var nt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;nt.length>rt;)p(nt[rt++]);for(var et=A(p.store),it=0;et.length>it;)g(et[it++]);u(u.S+u.F*!V,"Symbol",{for:function(t){return i(W,t+="")?W[t]:W[t]=T(t)},keyFor:function(t){if(!K(t))throw TypeError(t+" is not a symbol!");for(var n in W)if(W[n]===t)return n},useSetter:function(){Y=!0},useSimple:function(){Y=!1}}),u(u.S+u.F*!V,"Object",{create:function(t,n){return void 0===n?E(t):X(E(t),n)},defineProperty:J,defineProperties:X,getOwnPropertyDescriptor:Z,getOwnPropertyNames:Q,getOwnPropertySymbols:tt});var ot=a((function(){F.f(1)}));u(u.S+u.F*ot,"Object",{getOwnPropertySymbols:function(t){return F.f(b(t))}}),L&&u(u.S+u.F*(!V||a((function(){var t=T();return"[null]"!=R([t])||"{}"!=R({a:t})||"{}"!=R(Object(t))}))),"JSON",{stringify:function(t){for(var n,r,e=[t],i=1;arguments.length>i;)e.push(arguments[i++]);if(r=n=e[1],(m(n)||void 0!==t)&&!K(t))return d(n)||(n=function(t,n){if("function"==typeof r&&(n=r.call(this,t,n)),!K(n))return n}),e[1]=n,R.apply(L,e)}}),T.prototype[C]||r(14)(T.prototype,C,T.prototype.valueOf),l(T,"Symbol"),l(Math,"Math",!0),l(e.JSON,"JSON",!0)},function(t,n,r){t.exports=r(48)("native-function-to-string",Function.toString)},function(t,n,r){var e=r(31),i=r(50),o=r(45);t.exports=function(t){var n=e(t),r=i.f;if(r)for(var u,c=r(t),f=o.f,a=0;c.length>a;)f.call(t,u=c[a++])&&n.push(u);return n}},function(t,n,r){var e=r(0);e(e.S,"Object",{create:r(33)})},function(t,n,r){var e=r(0);e(e.S+e.F*!r(8),"Object",{defineProperty:r(9).f})},function(t,n,r){var e=r(0);e(e.S+e.F*!r(8),"Object",{defineProperties:r(91)})},function(t,n,r){var e=r(15),i=r(20).f;r(21)("getOwnPropertyDescriptor",(function(){return function(t,n){return i(e(t),n)}}))},function(t,n,r){var e=r(10),i=r(35);r(21)("getPrototypeOf",(function(){return function(t){return i(e(t))}}))},function(t,n,r){var e=r(10),i=r(31);r(21)("keys",(function(){return function(t){return i(e(t))}}))},function(t,n,r){r(21)("getOwnPropertyNames",(function(){return r(92).f}))},function(t,n,r){var e=r(4),i=r(27).onFreeze;r(21)("freeze",(function(t){return function(n){return t&&e(n)?t(i(n)):n}}))},function(t,n,r){var e=r(4),i=r(27).onFreeze;r(21)("seal",(function(t){return function(n){return t&&e(n)?t(i(n)):n}}))},function(t,n,r){var e=r(4),i=r(27).onFreeze;r(21)("preventExtensions",(function(t){return function(n){return t&&e(n)?t(i(n)):n}}))},function(t,n,r){var e=r(4);r(21)("isFrozen",(function(t){return function(n){return!e(n)||!!t&&t(n)}}))},function(t,n,r){var e=r(4);r(21)("isSealed",(function(t){return function(n){return!e(n)||!!t&&t(n)}}))},function(t,n,r){var e=r(4);r(21)("isExtensible",(function(t){return function(n){return!!e(n)&&(!t||t(n))}}))},function(t,n,r){var e=r(0);e(e.S+e.F,"Object",{assign:r(93)})},function(t,n,r){var e=r(0);e(e.S,"Object",{is:r(94)})},function(t,n,r){var e=r(0);e(e.S,"Object",{setPrototypeOf:r(65).set})},function(t,n,r){"use strict";var e=r(46),i={};i[r(5)("toStringTag")]="z",i+""!="[object z]"&&r(11)(Object.prototype,"toString",(function(){return"[object "+e(this)+"]"}),!0)},function(t,n,r){var e=r(0);e(e.P,"Function",{bind:r(95)})},function(t,n,r){var e=r(9).f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||r(8)&&e(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},function(t,n,r){"use strict";var e=r(4),i=r(35),o=r(5)("hasInstance"),u=Function.prototype;o in u||r(9).f(u,o,{value:function(t){if("function"!=typeof this||!e(t))return!1;if(!e(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},function(t,n,r){var e=r(0),i=r(97);e(e.G+e.F*(parseInt!=i),{parseInt:i})},function(t,n,r){var e=r(0),i=r(98);e(e.G+e.F*(parseFloat!=i),{parseFloat:i})},function(t,n,r){"use strict";var e=r(1),i=r(13),o=r(23),u=r(67),c=r(26),f=r(2),a=r(34).f,s=r(20).f,l=r(9).f,h=r(39).trim,p=e.Number,v=p,g=p.prototype,y="Number"==o(r(33)(g)),d="trim"in String.prototype,x=function(t){var n=c(t,!1);if("string"==typeof n&&n.length>2){var r,e,i,o=(n=d?n.trim():h(n,3)).charCodeAt(0);if(43===o||45===o){if(88===(r=n.charCodeAt(2))||120===r)return NaN}else if(48===o){switch(n.charCodeAt(1)){case 66:case 98:e=2,i=49;break;case 79:case 111:e=8,i=55;break;default:return+n}for(var u,f=n.slice(2),a=0,s=f.length;a<s;a++)if((u=f.charCodeAt(a))<48||u>i)return NaN;return parseInt(f,e)}}return+n};if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function(t){var n=arguments.length<1?0:t,r=this;return r instanceof p&&(y?f((function(){g.valueOf.call(r)})):"Number"!=o(r))?u(new v(x(n)),r,p):x(n)};for(var m,b=r(8)?a(v):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),S=0;b.length>S;S++)i(v,m=b[S])&&!i(p,m)&&l(p,m,s(v,m));p.prototype=g,g.constructor=p,r(11)(e,"Number",p)}},function(t,n,r){"use strict";var e=r(0),i=r(19),o=r(99),u=r(68),c=1..toFixed,f=Math.floor,a=[0,0,0,0,0,0],s="Number.toFixed: incorrect invocation!",l=function(t,n){for(var r=-1,e=n;++r<6;)e+=t*a[r],a[r]=e%1e7,e=f(e/1e7)},h=function(t){for(var n=6,r=0;--n>=0;)r+=a[n],a[n]=f(r/t),r=r%t*1e7},p=function(){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==a[t]){var r=String(a[t]);n=""===n?r:n+u.call("0",7-r.length)+r}return n},v=function(t,n,r){return 0===n?r:n%2==1?v(t,n-1,r*t):v(t*t,n/2,r)};e(e.P+e.F*(!!c&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!r(2)((function(){c.call({})}))),"Number",{toFixed:function(t){var n,r,e,c,f=o(this,s),a=i(t),g="",y="0";if(a<0||a>20)throw RangeError(s);if(f!=f)return"NaN";if(f<=-1e21||f>=1e21)return String(f);if(f<0&&(g="-",f=-f),f>1e-21)if(r=(n=function(t){for(var n=0,r=t;r>=4096;)n+=12,r/=4096;for(;r>=2;)n+=1,r/=2;return n}(f*v(2,69,1))-69)<0?f*v(2,-n,1):f/v(2,n,1),r*=4503599627370496,(n=52-n)>0){for(l(0,r),e=a;e>=7;)l(1e7,0),e-=7;for(l(v(10,e,1),0),e=n-1;e>=23;)h(1<<23),e-=23;h(1<<e),l(1,1),h(2),y=p()}else l(0,r),l(1<<-n,0),y=p()+u.call("0",a);return y=a>0?g+((c=y.length)<=a?"0."+u.call("0",a-c)+y:y.slice(0,c-a)+"."+y.slice(c-a)):g+y}})},function(t,n,r){"use strict";var e=r(0),i=r(2),o=r(99),u=1..toPrecision;e(e.P+e.F*(i((function(){return"1"!==u.call(1,void 0)}))||!i((function(){u.call({})}))),"Number",{toPrecision:function(t){var n=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?u.call(n):u.call(n,t)}})},function(t,n,r){var e=r(0);e(e.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,n,r){var e=r(0),i=r(1).isFinite;e(e.S,"Number",{isFinite:function(t){return"number"==typeof t&&i(t)}})},function(t,n,r){var e=r(0);e(e.S,"Number",{isInteger:r(100)})},function(t,n,r){var e=r(0);e(e.S,"Number",{isNaN:function(t){return t!=t}})},function(t,n,r){var e=r(0),i=r(100),o=Math.abs;e(e.S,"Number",{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},function(t,n,r){var e=r(0);e(e.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,n,r){var e=r(0);e(e.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,n,r){var e=r(0),i=r(98);e(e.S+e.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},function(t,n,r){var e=r(0),i=r(97);e(e.S+e.F*(Number.parseInt!=i),"Number",{parseInt:i})},function(t,n,r){var e=r(0),i=r(101),o=Math.sqrt,u=Math.acosh;e(e.S+e.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))&&u(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},function(t,n,r){var e=r(0),i=Math.asinh;e(e.S+e.F*!(i&&1/i(0)>0),"Math",{asinh:function t(n){return isFinite(n=+n)&&0!=n?n<0?-t(-n):Math.log(n+Math.sqrt(n*n+1)):n}})},function(t,n,r){var e=r(0),i=Math.atanh;e(e.S+e.F*!(i&&1/i(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,n,r){var e=r(0),i=r(69);e(e.S,"Math",{cbrt:function(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,n,r){var e=r(0);e(e.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,n,r){var e=r(0),i=Math.exp;e(e.S,"Math",{cosh:function(t){return(i(t=+t)+i(-t))/2}})},function(t,n,r){var e=r(0),i=r(70);e(e.S+e.F*(i!=Math.expm1),"Math",{expm1:i})},function(t,n,r){var e=r(0);e(e.S,"Math",{fround:r(169)})},function(t,n,r){var e=r(69),i=Math.pow,o=i(2,-52),u=i(2,-23),c=i(2,127)*(2-u),f=i(2,-126);t.exports=Math.fround||function(t){var n,r,i=Math.abs(t),a=e(t);return i<f?a*(i/f/u+1/o-1/o)*f*u:(r=(n=(1+u/o)*i)-(n-i))>c||r!=r?a*(1/0):a*r}},function(t,n,r){var e=r(0),i=Math.abs;e(e.S,"Math",{hypot:function(t,n){for(var r,e,o=0,u=0,c=arguments.length,f=0;u<c;)f<(r=i(arguments[u++]))?(o=o*(e=f/r)*e+1,f=r):o+=r>0?(e=r/f)*e:r;return f===1/0?1/0:f*Math.sqrt(o)}})},function(t,n,r){var e=r(0),i=Math.imul;e(e.S+e.F*r(2)((function(){return-5!=i(4294967295,5)||2!=i.length})),"Math",{imul:function(t,n){var r=+t,e=+n,i=65535&r,o=65535&e;return 0|i*o+((65535&r>>>16)*o+i*(65535&e>>>16)<<16>>>0)}})},function(t,n,r){var e=r(0);e(e.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},function(t,n,r){var e=r(0);e(e.S,"Math",{log1p:r(101)})},function(t,n,r){var e=r(0);e(e.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},function(t,n,r){var e=r(0);e(e.S,"Math",{sign:r(69)})},function(t,n,r){var e=r(0),i=r(70),o=Math.exp;e(e.S+e.F*r(2)((function(){return-2e-17!=!Math.sinh(-2e-17)})),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},function(t,n,r){var e=r(0),i=r(70),o=Math.exp;e(e.S,"Math",{tanh:function(t){var n=i(t=+t),r=i(-t);return n==1/0?1:r==1/0?-1:(n-r)/(o(t)+o(-t))}})},function(t,n,r){var e=r(0);e(e.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,n,r){var e=r(0),i=r(32),o=String.fromCharCode,u=String.fromCodePoint;e(e.S+e.F*(!!u&&1!=u.length),"String",{fromCodePoint:function(t){for(var n,r=[],e=arguments.length,u=0;e>u;){if(n=+arguments[u++],i(n,1114111)!==n)throw RangeError(n+" is not a valid code point");r.push(n<65536?o(n):o(55296+((n-=65536)>>10),n%1024+56320))}return r.join("")}})},function(t,n,r){var e=r(0),i=r(15),o=r(6);e(e.S,"String",{raw:function(t){for(var n=i(t.raw),r=o(n.length),e=arguments.length,u=[],c=0;r>c;)u.push(String(n[c++])),c<e&&u.push(String(arguments[c]));return u.join("")}})},function(t,n,r){"use strict";r(39)("trim",(function(t){return function(){return t(this,3)}}))},function(t,n,r){"use strict";var e=r(71)(!0);r(72)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})}))},function(t,n,r){"use strict";var e=r(0),i=r(71)(!1);e(e.P,"String",{codePointAt:function(t){return i(this,t)}})},function(t,n,r){"use strict";var e=r(0),i=r(6),o=r(73),u="".endsWith;e(e.P+e.F*r(75)("endsWith"),"String",{endsWith:function(t){var n=o(this,t,"endsWith"),r=arguments.length>1?arguments[1]:void 0,e=i(n.length),c=void 0===r?e:Math.min(i(r),e),f=String(t);return u?u.call(n,f,c):n.slice(c-f.length,c)===f}})},function(t,n,r){"use strict";var e=r(0),i=r(73);e(e.P+e.F*r(75)("includes"),"String",{includes:function(t){return!!~i(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,n,r){var e=r(0);e(e.P,"String",{repeat:r(68)})},function(t,n,r){"use strict";var e=r(0),i=r(6),o=r(73),u="".startsWith;e(e.P+e.F*r(75)("startsWith"),"String",{startsWith:function(t){var n=o(this,t,"startsWith"),r=i(Math.min(arguments.length>1?arguments[1]:void 0,n.length)),e=String(t);return u?u.call(n,e,r):n.slice(r,r+e.length)===e}})},function(t,n,r){"use strict";r(12)("anchor",(function(t){return function(n){return t(this,"a","name",n)}}))},function(t,n,r){"use strict";r(12)("big",(function(t){return function(){return t(this,"big","","")}}))},function(t,n,r){"use strict";r(12)("blink",(function(t){return function(){return t(this,"blink","","")}}))},function(t,n,r){"use strict";r(12)("bold",(function(t){return function(){return t(this,"b","","")}}))},function(t,n,r){"use strict";r(12)("fixed",(function(t){return function(){return t(this,"tt","","")}}))},function(t,n,r){"use strict";r(12)("fontcolor",(function(t){return function(n){return t(this,"font","color",n)}}))},function(t,n,r){"use strict";r(12)("fontsize",(function(t){return function(n){return t(this,"font","size",n)}}))},function(t,n,r){"use strict";r(12)("italics",(function(t){return function(){return t(this,"i","","")}}))},function(t,n,r){"use strict";r(12)("link",(function(t){return function(n){return t(this,"a","href",n)}}))},function(t,n,r){"use strict";r(12)("small",(function(t){return function(){return t(this,"small","","")}}))},function(t,n,r){"use strict";r(12)("strike",(function(t){return function(){return t(this,"strike","","")}}))},function(t,n,r){"use strict";r(12)("sub",(function(t){return function(){return t(this,"sub","","")}}))},function(t,n,r){"use strict";r(12)("sup",(function(t){return function(){return t(this,"sup","","")}}))},function(t,n,r){var e=r(0);e(e.S,"Date",{now:function(){return(new Date).getTime()}})},function(t,n,r){"use strict";var e=r(0),i=r(10),o=r(26);e(e.P+e.F*r(2)((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})),"Date",{toJSON:function(t){var n=i(this),r=o(n);return"number"!=typeof r||isFinite(r)?n.toISOString():null}})},function(t,n,r){var e=r(0),i=r(204);e(e.P+e.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},function(t,n,r){"use strict";var e=r(2),i=Date.prototype.getTime,o=Date.prototype.toISOString,u=function(t){return t>9?t:"0"+t};t.exports=e((function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))}))||!e((function(){o.call(new Date(NaN))}))?function(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),r=t.getUTCMilliseconds(),e=n<0?"-":n>9999?"+":"";return e+("00000"+Math.abs(n)).slice(e?-6:-4)+"-"+u(t.getUTCMonth()+1)+"-"+u(t.getUTCDate())+"T"+u(t.getUTCHours())+":"+u(t.getUTCMinutes())+":"+u(t.getUTCSeconds())+"."+(r>99?r:"0"+u(r))+"Z"}:o},function(t,n,r){var e=Date.prototype,i=e.toString,o=e.getTime;new Date(NaN)+""!="Invalid Date"&&r(11)(e,"toString",(function(){var t=o.call(this);return t==t?i.call(this):"Invalid Date"}))},function(t,n,r){var e=r(5)("toPrimitive"),i=Date.prototype;e in i||r(14)(i,e,r(207))},function(t,n,r){"use strict";var e=r(3),i=r(26);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return i(e(this),"number"!=t)}},function(t,n,r){var e=r(0);e(e.S,"Array",{isArray:r(51)})},function(t,n,r){"use strict";var e=r(17),i=r(0),o=r(10),u=r(103),c=r(76),f=r(6),a=r(77),s=r(78);i(i.S+i.F*!r(52)((function(t){Array.from(t)})),"Array",{from:function(t){var n,r,i,l,h=o(t),p="function"==typeof this?this:Array,v=arguments.length,g=v>1?arguments[1]:void 0,y=void 0!==g,d=0,x=s(h);if(y&&(g=e(g,v>2?arguments[2]:void 0,2)),null==x||p==Array&&c(x))for(r=new p(n=f(h.length));n>d;d++)a(r,d,y?g(h[d],d):h[d]);else for(l=x.call(h),r=new p;!(i=l.next()).done;d++)a(r,d,y?u(l,g,[i.value,d],!0):i.value);return r.length=d,r}})},function(t,n,r){"use strict";var e=r(0),i=r(77);e(e.S+e.F*r(2)((function(){function t(){}return!(Array.of.call(t)instanceof t)})),"Array",{of:function(){for(var t=0,n=arguments.length,r=new("function"==typeof this?this:Array)(n);n>t;)i(r,t,arguments[t++]);return r.length=n,r}})},function(t,n,r){"use strict";var e=r(0),i=r(15),o=[].join;e(e.P+e.F*(r(44)!=Object||!r(16)(o)),"Array",{join:function(t){return o.call(i(this),void 0===t?",":t)}})},function(t,n,r){"use strict";var e=r(0),i=r(64),o=r(23),u=r(32),c=r(6),f=[].slice;e(e.P+e.F*r(2)((function(){i&&f.call(i)})),"Array",{slice:function(t,n){var r=c(this.length),e=o(this);if(n=void 0===n?r:n,"Array"==e)return f.call(this,t,n);for(var i=u(t,r),a=u(n,r),s=c(a-i),l=new Array(s),h=0;h<s;h++)l[h]="String"==e?this.charAt(i+h):this[i+h];return l}})},function(t,n,r){"use strict";var e=r(0),i=r(18),o=r(10),u=r(2),c=[].sort,f=[1,2,3];e(e.P+e.F*(u((function(){f.sort(void 0)}))||!u((function(){f.sort(null)}))||!r(16)(c)),"Array",{sort:function(t){return void 0===t?c.call(o(this)):c.call(o(this),i(t))}})},function(t,n,r){"use strict";var e=r(0),i=r(22)(0),o=r(16)([].forEach,!0);e(e.P+e.F*!o,"Array",{forEach:function(t){return i(this,t,arguments[1])}})},function(t,n,r){var e=r(4),i=r(51),o=r(5)("species");t.exports=function(t){var n;return i(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!i(n.prototype)||(n=void 0),e(n)&&null===(n=n[o])&&(n=void 0)),void 0===n?Array:n}},function(t,n,r){"use strict";var e=r(0),i=r(22)(1);e(e.P+e.F*!r(16)([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},function(t,n,r){"use strict";var e=r(0),i=r(22)(2);e(e.P+e.F*!r(16)([].filter,!0),"Array",{filter:function(t){return i(this,t,arguments[1])}})},function(t,n,r){"use strict";var e=r(0),i=r(22)(3);e(e.P+e.F*!r(16)([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},function(t,n,r){"use strict";var e=r(0),i=r(22)(4);e(e.P+e.F*!r(16)([].every,!0),"Array",{every:function(t){return i(this,t,arguments[1])}})},function(t,n,r){"use strict";var e=r(0),i=r(105);e(e.P+e.F*!r(16)([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},function(t,n,r){"use strict";var e=r(0),i=r(105);e(e.P+e.F*!r(16)([].reduceRight,!0),"Array",{reduceRight:function(t){return i(this,t,arguments.length,arguments[1],!0)}})},function(t,n,r){"use strict";var e=r(0),i=r(49)(!1),o=[].indexOf,u=!!o&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!r(16)(o)),"Array",{indexOf:function(t){return u?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},function(t,n,r){"use strict";var e=r(0),i=r(15),o=r(19),u=r(6),c=[].lastIndexOf,f=!!c&&1/[1].lastIndexOf(1,-0)<0;e(e.P+e.F*(f||!r(16)(c)),"Array",{lastIndexOf:function(t){if(f)return c.apply(this,arguments)||0;var n=i(this),r=u(n.length),e=r-1;for(arguments.length>1&&(e=Math.min(e,o(arguments[1]))),e<0&&(e=r+e);e>=0;e--)if(e in n&&n[e]===t)return e||0;return-1}})},function(t,n,r){var e=r(0);e(e.P,"Array",{copyWithin:r(106)}),r(36)("copyWithin")},function(t,n,r){var e=r(0);e(e.P,"Array",{fill:r(79)}),r(36)("fill")},function(t,n,r){"use strict";var e=r(0),i=r(22)(5),o=!0;"find"in[]&&Array(1).find((function(){o=!1})),e(e.P+e.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r(36)("find")},function(t,n,r){"use strict";var e=r(0),i=r(22)(6),o="findIndex",u=!0;o in[]&&Array(1)[o]((function(){u=!1})),e(e.P+e.F*u,"Array",{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r(36)(o)},function(t,n,r){r(41)("Array")},function(t,n,r){var e=r(1),i=r(67),o=r(9).f,u=r(34).f,c=r(74),f=r(53),a=e.RegExp,s=a,l=a.prototype,h=/a/g,p=/a/g,v=new a(h)!==h;if(r(8)&&(!v||r(2)((function(){return p[r(5)("match")]=!1,a(h)!=h||a(p)==p||"/a/i"!=a(h,"i")})))){a=function(t,n){var r=this instanceof a,e=c(t),o=void 0===n;return!r&&e&&t.constructor===a&&o?t:i(v?new s(e&&!o?t.source:t,n):s((e=t instanceof a)?t.source:t,e&&o?f.call(t):n),r?this:l,a)};for(var g=function(t){t in a||o(a,t,{configurable:!0,get:function(){return s[t]},set:function(n){s[t]=n}})},y=u(s),d=0;y.length>d;)g(y[d++]);l.constructor=a,a.prototype=l,r(11)(e,"RegExp",a)}r(41)("RegExp")},function(t,n,r){"use strict";r(109);var e=r(3),i=r(53),o=r(8),u=/./.toString,c=function(t){r(11)(RegExp.prototype,"toString",t,!0)};r(2)((function(){return"/a/b"!=u.call({source:"a",flags:"b"})}))?c((function(){var t=e(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)})):"toString"!=u.name&&c((function(){return u.call(this)}))},function(t,n,r){"use strict";var e=r(3),i=r(6),o=r(82),u=r(54);r(55)("match",1,(function(t,n,r,c){return[function(r){var e=t(this),i=null==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},function(t){var n=c(r,t,this);if(n.done)return n.value;var f=e(t),a=String(this);if(!f.global)return u(f,a);var s=f.unicode;f.lastIndex=0;for(var l,h=[],p=0;null!==(l=u(f,a));){var v=String(l[0]);h[p]=v,""===v&&(f.lastIndex=o(a,i(f.lastIndex),s)),p++}return 0===p?null:h}]}))},function(t,n,r){"use strict";var e=r(3),i=r(10),o=r(6),u=r(19),c=r(82),f=r(54),a=Math.max,s=Math.min,l=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g;r(55)("replace",2,(function(t,n,r,v){return[function(e,i){var o=t(this),u=null==e?void 0:e[n];return void 0!==u?u.call(e,o,i):r.call(String(o),e,i)},function(t,n){var i=v(r,t,this,n);if(i.done)return i.value;var l=e(t),h=String(this),p="function"==typeof n;p||(n=String(n));var y=l.global;if(y){var d=l.unicode;l.lastIndex=0}for(var x=[];;){var m=f(l,h);if(null===m)break;if(x.push(m),!y)break;""===String(m[0])&&(l.lastIndex=c(h,o(l.lastIndex),d))}for(var b,S="",w=0,_=0;_<x.length;_++){m=x[_];for(var E=String(m[0]),O=a(s(u(m.index),h.length),0),P=[],F=1;F<m.length;F++)P.push(void 0===(b=m[F])?b:String(b));var M=m.groups;if(p){var A=[E].concat(P,O,h);void 0!==M&&A.push(M);var j=String(n.apply(void 0,A))}else j=g(E,h,O,P,M,n);O>=w&&(S+=h.slice(w,O)+j,w=O+E.length)}return S+h.slice(w)}];function g(t,n,e,o,u,c){var f=e+t.length,a=o.length,s=p;return void 0!==u&&(u=i(u),s=h),r.call(c,s,(function(r,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,e);case"'":return n.slice(f);case"<":c=u[i.slice(1,-1)];break;default:var s=+i;if(0===s)return r;if(s>a){var h=l(s/10);return 0===h?r:h<=a?void 0===o[h-1]?i.charAt(1):o[h-1]+i.charAt(1):r}c=o[s-1]}return void 0===c?"":c}))}}))},function(t,n,r){"use strict";var e=r(3),i=r(94),o=r(54);r(55)("search",1,(function(t,n,r,u){return[function(r){var e=t(this),i=null==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},function(t){var n=u(r,t,this);if(n.done)return n.value;var c=e(t),f=String(this),a=c.lastIndex;i(a,0)||(c.lastIndex=0);var s=o(c,f);return i(c.lastIndex,a)||(c.lastIndex=a),null===s?-1:s.index}]}))},function(t,n,r){"use strict";var e=r(74),i=r(3),o=r(47),u=r(82),c=r(6),f=r(54),a=r(81),s=r(2),l=Math.min,h=[].push,p=!s((function(){RegExp(4294967295,"y")}));r(55)("split",2,(function(t,n,r,s){var v;return v="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=String(this);if(void 0===t&&0===n)return[];if(!e(t))return r.call(i,t,n);for(var o,u,c,f=[],s=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),l=0,p=void 0===n?4294967295:n>>>0,v=new RegExp(t.source,s+"g");(o=a.call(v,i))&&!((u=v.lastIndex)>l&&(f.push(i.slice(l,o.index)),o.length>1&&o.index<i.length&&h.apply(f,o.slice(1)),c=o[0].length,l=u,f.length>=p));)v.lastIndex===o.index&&v.lastIndex++;return l===i.length?!c&&v.test("")||f.push(""):f.push(i.slice(l)),f.length>p?f.slice(0,p):f}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:r.call(this,t,n)}:r,[function(r,e){var i=t(this),o=null==r?void 0:r[n];return void 0!==o?o.call(r,i,e):v.call(String(i),r,e)},function(t,n){var e=s(v,t,this,n,v!==r);if(e.done)return e.value;var a=i(t),h=String(this),g=o(a,RegExp),y=a.unicode,d=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(p?"y":"g"),x=new g(p?a:"^(?:"+a.source+")",d),m=void 0===n?4294967295:n>>>0;if(0===m)return[];if(0===h.length)return null===f(x,h)?[h]:[];for(var b=0,S=0,w=[];S<h.length;){x.lastIndex=p?S:0;var _,E=f(x,p?h:h.slice(S));if(null===E||(_=l(c(x.lastIndex+(p?0:S)),h.length))===b)S=u(h,S,y);else{if(w.push(h.slice(b,S)),w.length===m)return w;for(var O=1;O<=E.length-1;O++)if(w.push(E[O]),w.length===m)return w;S=b=_}}return w.push(h.slice(b)),w}]}))},function(t,n,r){var e=r(1),i=r(83).set,o=e.MutationObserver||e.WebKitMutationObserver,u=e.process,c=e.Promise,f="process"==r(23)(u);t.exports=function(){var t,n,r,a=function(){var e,i;for(f&&(e=u.domain)&&e.exit();t;){i=t.fn,t=t.next;try{i()}catch(e){throw t?r():n=void 0,e}}n=void 0,e&&e.enter()};if(f)r=function(){u.nextTick(a)};else if(!o||e.navigator&&e.navigator.standalone)if(c&&c.resolve){var s=c.resolve(void 0);r=function(){s.then(a)}}else r=function(){i.call(e,a)};else{var l=!0,h=document.createTextNode("");new o(a).observe(h,{characterData:!0}),r=function(){h.data=l=!l}}return function(e){var i={fn:e,next:void 0};n&&(n.next=i),t||(t=i,r()),n=i}}},function(t,n){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,n,r){"use strict";var e=r(113),i=r(37);t.exports=r(58)("Map",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(t){var n=e.getEntry(i(this,"Map"),t);return n&&n.v},set:function(t,n){return e.def(i(this,"Map"),0===t?0:t,n)}},e,!0)},function(t,n,r){"use strict";var e=r(113),i=r(37);t.exports=r(58)("Set",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return e.def(i(this,"Set"),t=0===t?0:t,t)}},e)},function(t,n,r){"use strict";var e,i=r(1),o=r(22)(0),u=r(11),c=r(27),f=r(93),a=r(114),s=r(4),l=r(37),h=r(37),p=!i.ActiveXObject&&"ActiveXObject"in i,v=c.getWeak,g=Object.isExtensible,y=a.ufstore,d=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},x={get:function(t){if(s(t)){var n=v(t);return!0===n?y(l(this,"WeakMap")).get(t):n?n[this._i]:void 0}},set:function(t,n){return a.def(l(this,"WeakMap"),t,n)}},m=t.exports=r(58)("WeakMap",d,x,a,!0,!0);h&&p&&(f((e=a.getConstructor(d,"WeakMap")).prototype,x),c.NEED=!0,o(["delete","has","get","set"],(function(t){var n=m.prototype,r=n[t];u(n,t,(function(n,i){if(s(n)&&!g(n)){this._f||(this._f=new e);var o=this._f[t](n,i);return"set"==t?this:o}return r.call(this,n,i)}))})))},function(t,n,r){"use strict";var e=r(114),i=r(37);r(58)("WeakSet",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return e.def(i(this,"WeakSet"),t,!0)}},e,!1,!0)},function(t,n,r){"use strict";var e=r(0),i=r(59),o=r(84),u=r(3),c=r(32),f=r(6),a=r(4),s=r(1).ArrayBuffer,l=r(47),h=o.ArrayBuffer,p=o.DataView,v=i.ABV&&s.isView,g=h.prototype.slice,y=i.VIEW;e(e.G+e.W+e.F*(s!==h),{ArrayBuffer:h}),e(e.S+e.F*!i.CONSTR,"ArrayBuffer",{isView:function(t){return v&&v(t)||a(t)&&y in t}}),e(e.P+e.U+e.F*r(2)((function(){return!new h(2).slice(1,void 0).byteLength})),"ArrayBuffer",{slice:function(t,n){if(void 0!==g&&void 0===n)return g.call(u(this),t);for(var r=u(this).byteLength,e=c(t,r),i=c(void 0===n?r:n,r),o=new(l(this,h))(f(i-e)),a=new p(this),s=new p(o),v=0;e<i;)s.setUint8(v++,a.getUint8(e++));return o}}),r(41)("ArrayBuffer")},function(t,n,r){var e=r(0);e(e.G+e.W+e.F*!r(59).ABV,{DataView:r(84).DataView})},function(t,n,r){r(25)("Int8",1,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},function(t,n,r){r(25)("Uint8",1,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},function(t,n,r){r(25)("Uint8",1,(function(t){return function(n,r,e){return t(this,n,r,e)}}),!0)},function(t,n,r){r(25)("Int16",2,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},function(t,n,r){r(25)("Uint16",2,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},function(t,n,r){r(25)("Int32",4,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},function(t,n,r){r(25)("Uint32",4,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},function(t,n,r){r(25)("Float32",4,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},function(t,n,r){r(25)("Float64",8,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},function(t,n,r){var e=r(0),i=r(18),o=r(3),u=(r(1).Reflect||{}).apply,c=Function.apply;e(e.S+e.F*!r(2)((function(){u((function(){}))})),"Reflect",{apply:function(t,n,r){var e=i(t),f=o(r);return u?u(e,n,f):c.call(e,n,f)}})},function(t,n,r){var e=r(0),i=r(33),o=r(18),u=r(3),c=r(4),f=r(2),a=r(95),s=(r(1).Reflect||{}).construct,l=f((function(){function t(){}return!(s((function(){}),[],t)instanceof t)})),h=!f((function(){s((function(){}))}));e(e.S+e.F*(l||h),"Reflect",{construct:function(t,n){o(t),u(n);var r=arguments.length<3?t:o(arguments[2]);if(h&&!l)return s(t,n,r);if(t==r){switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var e=[null];return e.push.apply(e,n),new(a.apply(t,e))}var f=r.prototype,p=i(c(f)?f:Object.prototype),v=Function.apply.call(t,p,n);return c(v)?v:p}})},function(t,n,r){var e=r(9),i=r(0),o=r(3),u=r(26);i(i.S+i.F*r(2)((function(){Reflect.defineProperty(e.f({},1,{value:1}),1,{value:2})})),"Reflect",{defineProperty:function(t,n,r){o(t),n=u(n,!0),o(r);try{return e.f(t,n,r),!0}catch(t){return!1}}})},function(t,n,r){var e=r(0),i=r(20).f,o=r(3);e(e.S,"Reflect",{deleteProperty:function(t,n){var r=i(o(t),n);return!(r&&!r.configurable)&&delete t[n]}})},function(t,n,r){"use strict";var e=r(0),i=r(3),o=function(t){this._t=i(t),this._i=0;var n,r=this._k=[];for(n in t)r.push(n)};r(102)(o,"Object",(function(){var t,n=this._k;do{if(this._i>=n.length)return{value:void 0,done:!0}}while(!((t=n[this._i++])in this._t));return{value:t,done:!1}})),e(e.S,"Reflect",{enumerate:function(t){return new o(t)}})},function(t,n,r){var e=r(20),i=r(35),o=r(13),u=r(0),c=r(4),f=r(3);u(u.S,"Reflect",{get:function t(n,r){var u,a,s=arguments.length<3?n:arguments[2];return f(n)===s?n[r]:(u=e.f(n,r))?o(u,"value")?u.value:void 0!==u.get?u.get.call(s):void 0:c(a=i(n))?t(a,r,s):void 0}})},function(t,n,r){var e=r(20),i=r(0),o=r(3);i(i.S,"Reflect",{getOwnPropertyDescriptor:function(t,n){return e.f(o(t),n)}})},function(t,n,r){var e=r(0),i=r(35),o=r(3);e(e.S,"Reflect",{getPrototypeOf:function(t){return i(o(t))}})},function(t,n,r){var e=r(0);e(e.S,"Reflect",{has:function(t,n){return n in t}})},function(t,n,r){var e=r(0),i=r(3),o=Object.isExtensible;e(e.S,"Reflect",{isExtensible:function(t){return i(t),!o||o(t)}})},function(t,n,r){var e=r(0);e(e.S,"Reflect",{ownKeys:r(116)})},function(t,n,r){var e=r(0),i=r(3),o=Object.preventExtensions;e(e.S,"Reflect",{preventExtensions:function(t){i(t);try{return o&&o(t),!0}catch(t){return!1}}})},function(t,n,r){var e=r(9),i=r(20),o=r(35),u=r(13),c=r(0),f=r(28),a=r(3),s=r(4);c(c.S,"Reflect",{set:function t(n,r,c){var l,h,p=arguments.length<4?n:arguments[3],v=i.f(a(n),r);if(!v){if(s(h=o(n)))return t(h,r,c,p);v=f(0)}if(u(v,"value")){if(!1===v.writable||!s(p))return!1;if(l=i.f(p,r)){if(l.get||l.set||!1===l.writable)return!1;l.value=c,e.f(p,r,l)}else e.f(p,r,f(0,c));return!0}return void 0!==v.set&&(v.set.call(p,c),!0)}})},function(t,n,r){var e=r(0),i=r(65);i&&e(e.S,"Reflect",{setPrototypeOf:function(t,n){i.check(t,n);try{return i.set(t,n),!0}catch(t){return!1}}})},function(t,n,r){r(267),t.exports=r(7).Array.includes},function(t,n,r){"use strict";var e=r(0),i=r(49)(!0);e(e.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r(36)("includes")},function(t,n,r){r(269),t.exports=r(7).Array.flatMap},function(t,n,r){"use strict";var e=r(0),i=r(270),o=r(10),u=r(6),c=r(18),f=r(104);e(e.P,"Array",{flatMap:function(t){var n,r,e=o(this);return c(t),n=u(e.length),r=f(e,0),i(r,e,e,n,0,1,t,arguments[1]),r}}),r(36)("flatMap")},function(t,n,r){"use strict";var e=r(51),i=r(4),o=r(6),u=r(17),c=r(5)("isConcatSpreadable");t.exports=function t(n,r,f,a,s,l,h,p){for(var v,g,y=s,d=0,x=!!h&&u(h,p,3);d<a;){if(d in f){if(v=x?x(f[d],d,r):f[d],g=!1,i(v)&&(g=void 0!==(g=v[c])?!!g:e(v)),g&&l>0)y=t(n,r,v,o(v.length),y,l-1)-1;else{if(y>=9007199254740991)throw TypeError();n[y]=v}y++}d++}return y}},function(t,n,r){r(272),t.exports=r(7).String.padStart},function(t,n,r){"use strict";var e=r(0),i=r(117),o=r(57),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padStart:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},function(t,n,r){r(274),t.exports=r(7).String.padEnd},function(t,n,r){"use strict";var e=r(0),i=r(117),o=r(57),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padEnd:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},function(t,n,r){r(276),t.exports=r(7).String.trimLeft},function(t,n,r){"use strict";r(39)("trimLeft",(function(t){return function(){return t(this,1)}}),"trimStart")},function(t,n,r){r(278),t.exports=r(7).String.trimRight},function(t,n,r){"use strict";r(39)("trimRight",(function(t){return function(){return t(this,2)}}),"trimEnd")},function(t,n,r){r(280),t.exports=r(61).f("asyncIterator")},function(t,n,r){r(89)("asyncIterator")},function(t,n,r){r(282),t.exports=r(7).Object.getOwnPropertyDescriptors},function(t,n,r){var e=r(0),i=r(116),o=r(15),u=r(20),c=r(77);e(e.S,"Object",{getOwnPropertyDescriptors:function(t){for(var n,r,e=o(t),f=u.f,a=i(e),s={},l=0;a.length>l;)void 0!==(r=f(e,n=a[l++]))&&c(s,n,r);return s}})},function(t,n,r){r(284),t.exports=r(7).Object.values},function(t,n,r){var e=r(0),i=r(118)(!1);e(e.S,"Object",{values:function(t){return i(t)}})},function(t,n,r){r(286),t.exports=r(7).Object.entries},function(t,n,r){var e=r(0),i=r(118)(!0);e(e.S,"Object",{entries:function(t){return i(t)}})},function(t,n,r){"use strict";r(110),r(288),t.exports=r(7).Promise.finally},function(t,n,r){"use strict";var e=r(0),i=r(7),o=r(1),u=r(47),c=r(112);e(e.P+e.R,"Promise",{finally:function(t){var n=u(this,i.Promise||o.Promise),r="function"==typeof t;return this.then(r?function(r){return c(n,t()).then((function(){return r}))}:t,r?function(r){return c(n,t()).then((function(){throw r}))}:t)}})},function(t,n,r){r(290),r(291),r(292),t.exports=r(7)},function(t,n,r){var e=r(1),i=r(0),o=r(57),u=[].slice,c=/MSIE .\./.test(o),f=function(t){return function(n,r){var e=arguments.length>2,i=!!e&&u.call(arguments,2);return t(e?function(){("function"==typeof n?n:Function(n)).apply(this,i)}:n,r)}};i(i.G+i.B+i.F*c,{setTimeout:f(e.setTimeout),setInterval:f(e.setInterval)})},function(t,n,r){var e=r(0),i=r(83);e(e.G+e.B,{setImmediate:i.set,clearImmediate:i.clear})},function(t,n,r){for(var e=r(80),i=r(31),o=r(11),u=r(1),c=r(14),f=r(40),a=r(5),s=a("iterator"),l=a("toStringTag"),h=f.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},v=i(p),g=0;g<v.length;g++){var y,d=v[g],x=p[d],m=u[d],b=m&&m.prototype;if(b&&(b[s]||c(b,s,h),b[l]||c(b,l,d),f[d]=h,x))for(y in e)b[y]||o(b,y,e[y],!0)}},function(t,n,r){var e=function(t){"use strict";var n,r=Object.prototype,e=r.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function f(t,n,r,e){var i=n&&n.prototype instanceof g?n:g,o=Object.create(i.prototype),u=new F(e||[]);return o._invoke=function(t,n,r){var e=s;return function(i,o){if(e===h)throw new Error("Generator is already running");if(e===p){if("throw"===i)throw o;return A()}for(r.method=i,r.arg=o;;){var u=r.delegate;if(u){var c=E(u,r);if(c){if(c===v)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(e===s)throw e=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);e=h;var f=a(t,n,r);if("normal"===f.type){if(e=r.done?p:l,f.arg===v)continue;return{value:f.arg,done:r.done}}"throw"===f.type&&(e=p,r.method="throw",r.arg=f.arg)}}}(t,r,u),o}function a(t,n,r){try{return{type:"normal",arg:t.call(n,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=f;var s="suspendedStart",l="suspendedYield",h="executing",p="completed",v={};function g(){}function y(){}function d(){}var x={};x[o]=function(){return this};var m=Object.getPrototypeOf,b=m&&m(m(M([])));b&&b!==r&&e.call(b,o)&&(x=b);var S=d.prototype=g.prototype=Object.create(x);function w(t){["next","throw","return"].forEach((function(n){t[n]=function(t){return this._invoke(n,t)}}))}function _(t){var n;this._invoke=function(r,i){function o(){return new Promise((function(n,o){!function n(r,i,o,u){var c=a(t[r],t,i);if("throw"!==c.type){var f=c.arg,s=f.value;return s&&"object"==typeof s&&e.call(s,"__await")?Promise.resolve(s.__await).then((function(t){n("next",t,o,u)}),(function(t){n("throw",t,o,u)})):Promise.resolve(s).then((function(t){f.value=t,o(f)}),(function(t){return n("throw",t,o,u)}))}u(c.arg)}(r,i,n,o)}))}return n=n?n.then(o,o):o()}}function E(t,r){var e=t.iterator[r.method];if(e===n){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=n,E(t,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var i=a(e,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var o=i.arg;return o?o.done?(r[t.resultName]=o.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=n),r.delegate=null,v):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function O(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function P(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function F(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function M(t){if(t){var r=t[o];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,u=function r(){for(;++i<t.length;)if(e.call(t,i))return r.value=t[i],r.done=!1,r;return r.value=n,r.done=!0,r};return u.next=u}}return{next:A}}function A(){return{value:n,done:!0}}return y.prototype=S.constructor=d,d.constructor=y,d[c]=y.displayName="GeneratorFunction",t.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===y||"GeneratorFunction"===(n.displayName||n.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(S),t},t.awrap=function(t){return{__await:t}},w(_.prototype),_.prototype[u]=function(){return this},t.AsyncIterator=_,t.async=function(n,r,e,i){var o=new _(f(n,r,e,i));return t.isGeneratorFunction(r)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},w(S),S[c]="Generator",S[o]=function(){return this},S.toString=function(){return"[object Generator]"},t.keys=function(t){var n=[];for(var r in t)n.push(r);return n.reverse(),function r(){for(;n.length;){var e=n.pop();if(e in t)return r.value=e,r.done=!1,r}return r.done=!0,r}},t.values=M,F.prototype={constructor:F,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(P),!t)for(var r in this)"t"===r.charAt(0)&&e.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function i(e,i){return c.type="throw",c.arg=t,r.next=e,i&&(r.method="next",r.arg=n),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var u=this.tryEntries[o],c=u.completion;if("root"===u.tryLoc)return i("end");if(u.tryLoc<=this.prev){var f=e.call(u,"catchLoc"),a=e.call(u,"finallyLoc");if(f&&a){if(this.prev<u.catchLoc)return i(u.catchLoc,!0);if(this.prev<u.finallyLoc)return i(u.finallyLoc)}else if(f){if(this.prev<u.catchLoc)return i(u.catchLoc,!0)}else{if(!a)throw new Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return i(u.finallyLoc)}}}},abrupt:function(t,n){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&e.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=n&&n<=o.finallyLoc&&(o=null);var u=o?o.completion:{};return u.type=t,u.arg=n,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(u)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),v},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),v}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc===t){var e=r.completion;if("throw"===e.type){var i=e.arg;P(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,e){return this.delegate={iterator:M(t),resultName:r,nextLoc:e},"next"===this.method&&(this.arg=n),v}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},function(t,n,r){r(295),t.exports=r(119).global},function(t,n,r){var e=r(296);e(e.G,{global:r(85)})},function(t,n,r){var e=r(85),i=r(119),o=r(297),u=r(299),c=r(306),f=function(t,n,r){var a,s,l,h=t&f.F,p=t&f.G,v=t&f.S,g=t&f.P,y=t&f.B,d=t&f.W,x=p?i:i[n]||(i[n]={}),m=x.prototype,b=p?e:v?e[n]:(e[n]||{}).prototype;for(a in p&&(r=n),r)(s=!h&&b&&void 0!==b[a])&&c(x,a)||(l=s?b[a]:r[a],x[a]=p&&"function"!=typeof b[a]?r[a]:y&&s?o(l,e):d&&b[a]==l?function(t){var n=function(n,r,e){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(n);case 2:return new t(n,r)}return new t(n,r,e)}return t.apply(this,arguments)};return n.prototype=t.prototype,n}(l):g&&"function"==typeof l?o(Function.call,l):l,g&&((x.virtual||(x.virtual={}))[a]=l,t&f.R&&m&&!m[a]&&u(m,a,l)))};f.F=1,f.G=2,f.S=4,f.P=8,f.B=16,f.W=32,f.U=64,f.R=128,t.exports=f},function(t,n,r){var e=r(298);t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,i){return t.call(n,r,e,i)}}return function(){return t.apply(n,arguments)}}},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n,r){var e=r(300),i=r(305);t.exports=r(87)?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},function(t,n,r){var e=r(301),i=r(302),o=r(304),u=Object.defineProperty;n.f=r(87)?Object.defineProperty:function(t,n,r){if(e(t),n=o(n,!0),e(r),i)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},function(t,n,r){var e=r(86);t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},function(t,n,r){t.exports=!r(87)&&!r(120)((function(){return 7!=Object.defineProperty(r(303)("div"),"a",{get:function(){return 7}}).a}))},function(t,n,r){var e=r(86),i=r(85).document,o=e(i)&&e(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,n,r){var e=r(86);t.exports=function(t,n){if(!e(t))return t;var r,i;if(n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!e(i=r.call(t)))return i;if(!n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}}]);
 
assets/js/mollie-components.min.js DELETED
@@ -1 +0,0 @@
1
- !function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=0)}([function(e,n){var t=".cardToken",r=".mollie-components",o="form",c=".wc_payment_methods",a="#mollie-notice";function u(){return!1}function i(e){return e?e.querySelector(c):null}function l(e,n){return n?n.querySelector(".payment_method_mollie_wc_gateway_".concat(e)):null}function s(e){return e?e.querySelector(a):null}function f(e){return e?e.querySelector(r):null}function m(e,n){var t,r,o,c=y(i(document)).parentNode||null,a=s(document),u=(r=(t=n).content,o=t.type,'\n <div id="mollie-notice" class="woocommerce-'.concat(o,'">\n ').concat(r,"\n </div>\n "));a&&a.remove(),c?(c.insertAdjacentHTML("beforebegin",u),function(e){var n=s(document);n||(n=i(document));e.scroll_to_notices(e(n))}(e)):alert(n.content)}function d(e){var n,r,o;return regeneratorRuntime.async((function(c){for(;;)switch(c.prev=c.next){case 0:return c.next=2,regeneratorRuntime.awrap(e.createToken(t));case 2:if(n=c.sent,r=n.token,!(o=n.error)){c.next=7;break}throw new Error(o.message||"");case 7:return c.abrupt("return",r);case 8:case"end":return c.stop()}}))}function p(e,n){n&&(n.value=e,n.setAttribute("value",e))}function y(e){return e?e.closest(o):null}function b(e){e.off("checkout_place_order",u),e.off("submit",g)}function v(e){var n=l(e,document),t=n?n.querySelector("#payment_method_mollie_wc_gateway_".concat(e)):null;return t&&t.checked||!1}function g(e){var n,r,o,c,a,u,i,l,s,f,g,_,w;return regeneratorRuntime.async((function(h){for(;;)switch(h.prev=h.next){case 0:if(n="",r=e.data,o=r.jQuery,c=r.mollie,a=r.gateway,u=r.gatewayContainer,i=r.messages,l=y(u),s=o(l),f=o(document.body),v(a)){h.next=9;break}return b(s),s.submit(),h.abrupt("return");case 9:return e.preventDefault(),e.stopImmediatePropagation(),h.prev=11,h.next=14,regeneratorRuntime.awrap(d(c));case 14:n=h.sent,h.next=24;break;case 17:return h.prev=17,h.t0=h.catch(11),g=h.t0,_=g.message,message=void 0===_?i.defaultErrorMessage:_,(w=g)&&m(o,{content:w,type:"error"}),s.removeClass("processing").unblock(),f.trigger("checkout_error"),h.abrupt("return");case 24:b(s),n&&p(n,u.querySelector(t)),s.submit();case 27:case"end":return h.stop()}}),null,null,[[11,17]])}function _(e,n,t,r,o){t.forEach((function(t){return function(e,n,t,r,o){var c=t.name,a=function(e,n,t,r){var o;return r.has(e)&&(o=r.get(e)),o||(o=n.createComponent(e,t)),o}(c,e,n,r);f(o).insertAdjacentHTML("beforeend",'<div id="'.concat(c,'"></div>')),a.mount("#".concat(c));var u,i,l=(u=c,(i=o)?i.querySelector(".mollie-component--".concat(u)):null);l?(!function(e,n){var t=n.label;e.insertAdjacentHTML("beforebegin",'<b class="mollie-component-label">'.concat(t,"</b>"))}(l,t),function(e,n){var t=n.name;e.insertAdjacentHTML("afterend",'<div role="alert" id="'.concat(t,'-errors"></div>'))}(l,t),!r.has(c)&&r.set(c,a)):console.warn("Component ".concat(c," not found in the DOM. Probably had problem during mount."))}(e,n,t,r,o)}))}!function(e){var n=e._,t=e.Mollie,r=e.mollieComponentsSettings,o=e.jQuery;if(!n.isEmpty(r)&&n.isFunction(t)){var c="updated_checkout",a=new Map,i=o(document),s=r.merchantProfileId,m=r.options,d=r.isCheckoutPayPage,p=new t(s,m);d&&(c="payment_method_selected"),i.on(c,(function(){return function(e,n,t,r){t.options,t.merchantProfileId;var o=t.componentsSettings,c=t.componentsAttributes,a=t.enabledGateways,i=t.messages;!function(e){e.forEach((function(e){return e.unmount()}))}(r),a.forEach((function(t){var a,s=l(t,document),m=f(s),d=y(s),p=e(d);s?d?(b(p),(a=m)&&(a.innerText=""),function(e){e.insertAdjacentHTML("beforeend",'<input type="hidden" name="cardToken" class="cardToken" value="" />')}(m),_(n,o[t],c,r,s),p.on("checkout_place_order",u),p.on("submit",null,{jQuery:e,mollie:n,gateway:t,gatewayContainer:s,messages:i},g)):console.warn("Cannot initialize Mollie Components, no form found."):console.warn("Cannot initialize Mollie Components for gateway ".concat(t,"."))}))}(o,p,r,a)}))}}(window)}]);
 
inc/utils.php CHANGED
@@ -68,7 +68,7 @@ function merchantProfile()
68
  function merchantProfileId()
69
  {
70
  static $merchantProfileId = null;
71
- $merchantProfileIdOptionKey = Mollie_WC_Plugin::PLUGIN_ID . '_merchant_profile_id';
72
 
73
  if ($merchantProfileId === null) {
74
  $merchantProfileId = get_option($merchantProfileIdOptionKey, '');
@@ -86,7 +86,7 @@ function merchantProfileId()
86
  }
87
 
88
  if ($merchantProfileId) {
89
- update_option($merchantProfileIdOptionKey, $merchantProfileId, false);
90
  }
91
  }
92
  }
@@ -103,3 +103,50 @@ function cardToken()
103
  {
104
  return $cardToken = filter_input(INPUT_POST, 'cardToken', FILTER_SANITIZE_STRING) ?: '';
105
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  function merchantProfileId()
69
  {
70
  static $merchantProfileId = null;
71
+ $merchantProfileIdOptionKey = Mollie_WC_Plugin::PLUGIN_ID . '_profile_merchant_id';
72
 
73
  if ($merchantProfileId === null) {
74
  $merchantProfileId = get_option($merchantProfileIdOptionKey, '');
86
  }
87
 
88
  if ($merchantProfileId) {
89
+ update_option($merchantProfileIdOptionKey, $merchantProfileId);
90
  }
91
  }
92
  }
103
  {
104
  return $cardToken = filter_input(INPUT_POST, 'cardToken', FILTER_SANITIZE_STRING) ?: '';
105
  }
106
+
107
+ /**
108
+ * Retrieve the available Payment Methods Data
109
+ *
110
+ * @return array|bool|mixed|\Mollie\Api\Resources\BaseCollection|\Mollie\Api\Resources\MethodCollection
111
+ */
112
+ function availablePaymentMethods()
113
+ {
114
+ $testMode = isTestModeEnabled();
115
+ $dataHelper = Mollie_WC_Plugin::getDataHelper();
116
+ $methods = $dataHelper->getApiPaymentMethods($testMode, $use_cache = true);
117
+
118
+ return $methods;
119
+ }
120
+
121
+ /**
122
+ * Isolates static debug calls.
123
+ *
124
+ * @param string $message
125
+ * @param bool $set_debug_header Set X-Mollie-Debug header (default false)
126
+ */
127
+ function debug($message, $set_debug_header = false)
128
+ {
129
+ Mollie_WC_Plugin::debug($message, $set_debug_header);
130
+ }
131
+
132
+ /**
133
+ * Isolates static addNotice calls.
134
+ *
135
+ * @param string $message
136
+ * @param string $type One of notice, error or success (default notice)
137
+ */
138
+ function notice($message, $type = 'notice')
139
+ {
140
+ Mollie_WC_Plugin::addNotice($message, $type);
141
+ }
142
+ /**
143
+ * Isolates static getDataHelper calls.
144
+ *
145
+ * @return Mollie_WC_Helper_Data
146
+ */
147
+ function getDataHelper()
148
+ {
149
+ return Mollie_WC_Plugin::getDataHelper();
150
+ }
151
+
152
+
inc/woocommerce.php CHANGED
@@ -29,9 +29,33 @@ if (!function_exists('untrailingslashit'))
29
  }
30
  }
31
 
32
- if (!function_exists('mollieWooCommerceSession')) {
33
- function mollieWooCommerceSession()
34
- {
35
- return WC()->session;
36
- }
37
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  }
30
  }
31
 
32
+ function mollieWooCommerceSession()
33
+ {
34
+ return WC()->session;
 
 
35
  }
36
+
37
+ /**
38
+ * Get order ID in the correct way depending on WooCommerce version
39
+ *
40
+ * @param WC_Order $order
41
+ * @return int
42
+ */
43
+ function wooCommerceOrderId(WC_Order $order)
44
+ {
45
+ return version_compare(WC_VERSION, '3.0', '<')
46
+ ? $order->id
47
+ : $order->get_id();
48
+ }
49
+ /**
50
+ * Get order key in the correct way depending on WooCommerce version
51
+ *
52
+ * @param WC_Order $order
53
+ * @return string
54
+ */
55
+ function wooCommerceOrderKey(WC_Order $order)
56
+ {
57
+ return version_compare(WC_VERSION, '3.0', '<')
58
+ ? $order->order_key
59
+ : $order->get_order_key();
60
+ }
61
+
mollie-payments-for-woocommerce.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Mollie Payments for WooCommerce
4
  * Plugin URI: https://www.mollie.com
5
  * Description: Accept payments in WooCommerce with the official Mollie plugin
6
- * Version: 5.4.2
7
  * Author: Mollie
8
  * Author URI: https://www.mollie.com
9
  * Requires at least: 3.8
@@ -12,7 +12,7 @@
12
  * Domain Path: /i18n/languages/
13
  * License: GPLv2 or later
14
  * WC requires at least: 2.2.0
15
- * WC tested up to: 3.8
16
  */
17
 
18
  use Mollie\Api\CompatibilityChecker;
3
  * Plugin Name: Mollie Payments for WooCommerce
4
  * Plugin URI: https://www.mollie.com
5
  * Description: Accept payments in WooCommerce with the official Mollie plugin
6
+ * Version: 5.5.0
7
  * Author: Mollie
8
  * Author URI: https://www.mollie.com
9
  * Requires at least: 3.8
12
  * Domain Path: /i18n/languages/
13
  * License: GPLv2 or later
14
  * WC requires at least: 2.2.0
15
+ * WC tested up to: 3.9
16
  */
17
 
18
  use Mollie\Api\CompatibilityChecker;
public/css/mollie-components.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .mollie-components{display:flex;flex-wrap:wrap}.mollie-components .mollie-component-label{font-weight:400}.mollie-components .mollie-component{width:100%;min-height:34px;background-color:#fff;border-radius:6px;color:#222;transition:all .05s ease;box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 1px 3px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05);border:2px solid transparent}.mollie-components .mollie-component iframe{border-radius:6px;margin:0}.mollie-components .mollie-component.is-invalid{box-shadow:0 1px 1px 0 rgba(255,51,68,.1),0 1px 3px 0 rgba(255,51,68,.1);border-color:#fff0f0}.mollie-components .mollie-component.has-focus{box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 2px 6px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05);border-color:#07f}.mollie-components div{flex-grow:1;width:100%}.mollie-components div+div{display:block;margin-top:.63em}.mollie-components #expiryDate,.mollie-components #verificationCode{max-width:50%}.mollie-components #expiryDate{padding-right:5%}.mollie-components #verificationCode{padding-left:5%}.mollie-components-description svg{display:inline}
{assets → public}/images/abn-amro.svg RENAMED
File without changes
{assets → public}/images/applepay.svg RENAMED
File without changes
{assets → public}/images/asn.svg RENAMED
File without changes
{assets → public}/images/bancontact.svg RENAMED
File without changes
{assets → public}/images/banktransfer.svg RENAMED
File without changes
{assets → public}/images/belfius.svg RENAMED
File without changes
{assets → public}/images/bitcoin.svg RENAMED
File without changes
{assets → public}/images/bunq.svg RENAMED
File without changes
{assets → public}/images/cartasi.svg RENAMED
File without changes
{assets → public}/images/carte-bancaire.svg RENAMED
File without changes
{assets → public}/images/cbc.svg RENAMED
File without changes
{assets → public}/images/creditcard.svg RENAMED
File without changes
{assets → public}/images/creditcards-all.svg RENAMED
File without changes
{assets → public}/images/creditcards.svg RENAMED
File without changes
{assets → public}/images/directdebit.svg RENAMED
File without changes
{assets → public}/images/eps.svg RENAMED
File without changes
{assets → public}/images/eyegiftcard.svg RENAMED
File without changes
{assets → public}/images/fashioncheque.svg RENAMED
File without changes
{assets → public}/images/giftcard.svg RENAMED
File without changes
{assets → public}/images/giropay.svg RENAMED
File without changes
{assets → public}/images/ideal-qr.svg RENAMED
File without changes
{assets → public}/images/ideal.svg RENAMED
File without changes
{assets → public}/images/ing.svg RENAMED
File without changes
{assets → public}/images/inghomepay.svg RENAMED
File without changes
{assets → public}/images/kbc.svg RENAMED
File without changes
{assets → public}/images/klarna-descriptive.svg RENAMED
File without changes
{assets → public}/images/klarna-paylater.svg RENAMED
File without changes
{assets → public}/images/klarna-paynow.svg RENAMED
File without changes
{assets → public}/images/klarna.svg RENAMED
File without changes
{assets → public}/images/klarnapaylater.svg RENAMED
File without changes
{assets → public}/images/klarnasliceit.svg RENAMED
File without changes
{assets → public}/images/knab.svg RENAMED
File without changes
{assets → public}/images/lock-icon.svg RENAMED
File without changes
{assets → public}/images/maestro.svg RENAMED
File without changes
{assets → public}/images/mastercard.svg RENAMED
File without changes
{assets → public}/images/mollie-logo.svg RENAMED
File without changes
{assets → public}/images/moneyou.svg RENAMED
File without changes
{assets → public}/images/multi-banco.svg RENAMED
File without changes
{assets → public}/images/mybank.svg RENAMED
File without changes
{assets → public}/images/nationale-bioscoopbon.svg RENAMED
File without changes
{assets → public}/images/nationale-entertainment-card.svg RENAMED
File without changes
{assets → public}/images/nationale-kunst-cultuurkaart.svg RENAMED
File without changes
{assets → public}/images/not-found.svg RENAMED
File without changes
{assets → public}/images/paypal.svg RENAMED
File without changes
{assets → public}/images/paysafecard.svg RENAMED
File without changes
{assets → public}/images/podium-cadeaukaart.svg RENAMED
File without changes
{assets → public}/images/przelewy24.svg RENAMED
File without changes
{assets → public}/images/rabobank.svg RENAMED
File without changes
{assets → public}/images/regiobank.svg RENAMED
File without changes
{assets → public}/images/sns.svg RENAMED
File without changes
{assets → public}/images/sofort.svg RENAMED
File without changes
{assets → public}/images/triodos.svg RENAMED
File without changes
{assets → public}/images/v-pay.svg RENAMED
File without changes
{assets → public}/images/van-lanschot.svg RENAMED
File without changes
{assets → public}/images/visa.svg RENAMED
File without changes
{assets → public}/images/vvvgiftcard.svg RENAMED
File without changes
{assets → public}/images/webshopgiftcard.svg RENAMED
File without changes
{assets → public}/images/yourgift.svg RENAMED
File without changes
{assets → public}/js/applepay.min.js RENAMED
@@ -1 +1 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){var n;n=window.ApplePaySession,document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelector(".payment_method_mollie_wc_gateway_applepay"),t=document.querySelector("form.woocommerce-checkout");t&&(n&&n.canMakePayments()?t.insertAdjacentHTML("beforeend",'<input type="hidden" name="mollie_apple_pay_method_allowed" value="1" />'):e&&e.parentNode.removeChild(e))}))}]);
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/public/js/",n(n.s="zZ86")}({zZ86:function(e,t){var n;n=window.ApplePaySession,document.addEventListener("DOMContentLoaded",(function(){var e=document.querySelector(".payment_method_mollie_wc_gateway_applepay"),t=document.querySelector("form.woocommerce-checkout");t&&(n&&n.canMakePayments()?t.insertAdjacentHTML("beforeend",'<input type="hidden" name="mollie_apple_pay_method_allowed" value="1" />'):e&&e.parentNode.removeChild(e))}))}});
public/js/babel-polyfill.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(t){var n={};function r(e){if(n[e])return n[e].exports;var i=n[e]={i:e,l:!1,exports:{}};return t[e].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=t,r.c=n,r.d=function(t,n,e){r.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,n){if(1&n&&(t=r(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)r.d(e,i,function(n){return t[n]}.bind(null,i));return e},r.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(n,"a",n),n},r.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},r.p="/public/js/",r(r.s="55Il")}({"+Xmh":function(t,n,r){r("jm62"),t.exports=r("g3g5").Object.getOwnPropertyDescriptors},"+auO":function(t,n,r){var e=r("XKFU"),i=r("lvtm");e(e.S,"Math",{cbrt:function(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},"+lvF":function(t,n,r){t.exports=r("VTer")("native-function-to-string",Function.toString)},"+oPb":function(t,n,r){"use strict";r("OGtf")("blink",(function(t){return function(){return t(this,"blink","","")}}))},"+rLv":function(t,n,r){var e=r("dyZX").document;t.exports=e&&e.documentElement},"/8Fb":function(t,n,r){var e=r("XKFU"),i=r("UExd")(!0);e(e.S,"Object",{entries:function(t){return i(t)}})},"/KAi":function(t,n,r){var e=r("XKFU"),i=r("dyZX").isFinite;e(e.S,"Number",{isFinite:function(t){return"number"==typeof t&&i(t)}})},"/SS/":function(t,n,r){var e=r("XKFU");e(e.S,"Object",{setPrototypeOf:r("i5dc").set})},"/e88":function(t,n){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},"0/R4":function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},"0E+W":function(t,n,r){r("elZq")("Array")},"0LDn":function(t,n,r){"use strict";r("OGtf")("italics",(function(t){return function(){return t(this,"i","","")}}))},"0YWM":function(t,n,r){var e=r("EemH"),i=r("OP3Y"),o=r("aagx"),u=r("XKFU"),c=r("0/R4"),a=r("y3w9");u(u.S,"Reflect",{get:function t(n,r){var u,f,s=arguments.length<3?n:arguments[2];return a(n)===s?n[r]:(u=e.f(n,r))?o(u,"value")?u.value:void 0!==u.get?u.get.call(s):void 0:c(f=i(n))?t(f,r,s):void 0}})},"0l/t":function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(2);e(e.P+e.F*!r("LyE8")([].filter,!0),"Array",{filter:function(t){return i(this,t,arguments[1])}})},"0mN4":function(t,n,r){"use strict";r("OGtf")("fixed",(function(t){return function(){return t(this,"tt","","")}}))},"0sh+":function(t,n,r){var e=r("quPj"),i=r("vhPU");t.exports=function(t,n,r){if(e(n))throw TypeError("String#"+r+" doesn't accept regex!");return String(i(t))}},"11IZ":function(t,n,r){var e=r("dyZX").parseFloat,i=r("qncB").trim;t.exports=1/e(r("/e88")+"-0")!=-1/0?function(t){var n=i(String(t),3),r=e(n);return 0===r&&"-"==n.charAt(0)?-0:r}:e},"1MBn":function(t,n,r){var e=r("DVgA"),i=r("JiEa"),o=r("UqcF");t.exports=function(t){var n=e(t),r=i.f;if(r)for(var u,c=r(t),a=o.f,f=0;c.length>f;)a.call(t,u=c[f++])&&n.push(u);return n}},"1TsA":function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},"1sa7":function(t,n){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},"25dN":function(t,n,r){var e=r("XKFU");e(e.S,"Object",{is:r("g6HL")})},"2GTP":function(t,n,r){var e=r("eaoh");t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,i){return t.call(n,r,e,i)}}return function(){return t.apply(n,arguments)}}},"2OiF":function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"2Spj":function(t,n,r){var e=r("XKFU");e(e.P,"Function",{bind:r("8MEG")})},"2atp":function(t,n,r){var e=r("XKFU"),i=Math.atanh;e(e.S+e.F*!(i&&1/i(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},"2faE":function(t,n,r){var e=r("5K7Z"),i=r("eUtF"),o=r("G8Mo"),u=Object.defineProperty;n.f=r("jmDH")?Object.defineProperty:function(t,n,r){if(e(t),n=o(n,!0),e(r),i)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},"3Lyj":function(t,n,r){var e=r("KroJ");t.exports=function(t,n,r){for(var i in n)e(t,i,n[i],r);return t}},"3xty":function(t,n,r){var e=r("XKFU"),i=r("2OiF"),o=r("y3w9"),u=(r("dyZX").Reflect||{}).apply,c=Function.apply;e(e.S+e.F*!r("eeVq")((function(){u((function(){}))})),"Reflect",{apply:function(t,n,r){var e=i(t),a=o(r);return u?u(e,n,a):c.call(e,n,a)}})},"4LiD":function(t,n,r){"use strict";var e=r("dyZX"),i=r("XKFU"),o=r("KroJ"),u=r("3Lyj"),c=r("Z6vF"),a=r("SlkY"),f=r("9gX7"),s=r("0/R4"),l=r("eeVq"),h=r("XMVh"),v=r("fyDq"),p=r("Xbzi");t.exports=function(t,n,r,y,g,d){var x=e[t],m=x,b=g?"set":"add",w=m&&m.prototype,F={},S=function(t){var n=w[t];o(w,t,"delete"==t?function(t){return!(d&&!s(t))&&n.call(this,0===t?0:t)}:"has"==t?function(t){return!(d&&!s(t))&&n.call(this,0===t?0:t)}:"get"==t?function(t){return d&&!s(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function(t){return n.call(this,0===t?0:t),this}:function(t,r){return n.call(this,0===t?0:t,r),this})};if("function"==typeof m&&(d||w.forEach&&!l((function(){(new m).entries().next()})))){var E=new m,O=E[b](d?{}:-0,1)!=E,U=l((function(){E.has(1)})),_=h((function(t){new m(t)})),P=!d&&l((function(){for(var t=new m,n=5;n--;)t[b](n,n);return!t.has(-0)}));_||((m=n((function(n,r){f(n,m,t);var e=p(new x,n,m);return null!=r&&a(r,g,e[b],e),e}))).prototype=w,w.constructor=m),(U||P)&&(S("delete"),S("has"),g&&S("get")),(P||O)&&S(b),d&&w.clear&&delete w.clear}else m=y.getConstructor(n,t,g,b),u(m.prototype,r),c.NEED=!0;return v(m,t),F[t]=m,i(i.G+i.W+i.F*(m!=x),F),d||y.setStrong(m,t,g),m}},"4R4u":function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"55Il":function(t,n,r){"use strict";r("g2aq");var e,i=(e=r("VsWn"))&&e.__esModule?e:{default:e};i.default._babelPolyfill&&"undefined"!=typeof console&&console.warn&&console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning."),i.default._babelPolyfill=!0},"5K7Z":function(t,n,r){var e=r("93I4");t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},"5Pf0":function(t,n,r){var e=r("S/j/"),i=r("OP3Y");r("Xtr8")("getPrototypeOf",(function(){return function(t){return i(e(t))}}))},"5T2Y":function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},"694e":function(t,n,r){var e=r("EemH"),i=r("XKFU"),o=r("y3w9");i(i.S,"Reflect",{getOwnPropertyDescriptor:function(t,n){return e.f(o(t),n)}})},"69bn":function(t,n,r){var e=r("y3w9"),i=r("2OiF"),o=r("K0xU")("species");t.exports=function(t,n){var r,u=e(t).constructor;return void 0===u||null==(r=e(u)[o])?n:i(r)}},"6AQ9":function(t,n,r){"use strict";var e=r("XKFU"),i=r("8a7r");e(e.S+e.F*r("eeVq")((function(){function t(){}return!(Array.of.call(t)instanceof t)})),"Array",{of:function(){for(var t=0,n=arguments.length,r=new("function"==typeof this?this:Array)(n);n>t;)i(r,t,arguments[t++]);return r.length=n,r}})},"6FMO":function(t,n,r){var e=r("0/R4"),i=r("EWmC"),o=r("K0xU")("species");t.exports=function(t){var n;return i(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!i(n.prototype)||(n=void 0),e(n)&&null===(n=n[o])&&(n=void 0)),void 0===n?Array:n}},"6VaU":function(t,n,r){"use strict";var e=r("XKFU"),i=r("xF/b"),o=r("S/j/"),u=r("ne8i"),c=r("2OiF"),a=r("zRwo");e(e.P,"Array",{flatMap:function(t){var n,r,e=o(this);return c(t),n=u(e.length),r=a(e,0),i(r,e,e,n,0,1,t,arguments[1]),r}}),r("nGyu")("flatMap")},"7DDg":function(t,n,r){"use strict";if(r("nh4g")){var e=r("LQAc"),i=r("dyZX"),o=r("eeVq"),u=r("XKFU"),c=r("D4iV"),a=r("7Qtz"),f=r("m0Pp"),s=r("9gX7"),l=r("RjD/"),h=r("Mukb"),v=r("3Lyj"),p=r("RYi7"),y=r("ne8i"),g=r("Cfrj"),d=r("d/Gc"),x=r("apmT"),m=r("aagx"),b=r("I8a+"),w=r("0/R4"),F=r("S/j/"),S=r("M6Qj"),E=r("Kuth"),O=r("OP3Y"),U=r("kJMx").f,_=r("J+6e"),P=r("ylqs"),M=r("K0xU"),K=r("CkkT"),j=r("w2a5"),X=r("69bn"),A=r("yt8O"),I=r("hPIQ"),L=r("XMVh"),R=r("elZq"),T=r("Nr18"),N=r("upKx"),k=r("hswa"),D=r("EemH"),V=k.f,C=D.f,q=i.RangeError,Z=i.TypeError,W=i.Uint8Array,G=Array.prototype,Y=a.ArrayBuffer,B=a.DataView,z=K(0),J=K(2),H=K(3),Q=K(4),$=K(5),tt=K(6),nt=j(!0),rt=j(!1),et=A.values,it=A.keys,ot=A.entries,ut=G.lastIndexOf,ct=G.reduce,at=G.reduceRight,ft=G.join,st=G.sort,lt=G.slice,ht=G.toString,vt=G.toLocaleString,pt=M("iterator"),yt=M("toStringTag"),gt=P("typed_constructor"),dt=P("def_constructor"),xt=c.CONSTR,mt=c.TYPED,bt=c.VIEW,wt=K(1,(function(t,n){return Ut(X(t,t[dt]),n)})),Ft=o((function(){return 1===new W(new Uint16Array([1]).buffer)[0]})),St=!!W&&!!W.prototype.set&&o((function(){new W(1).set({})})),Et=function(t,n){var r=p(t);if(r<0||r%n)throw q("Wrong offset!");return r},Ot=function(t){if(w(t)&&mt in t)return t;throw Z(t+" is not a typed array!")},Ut=function(t,n){if(!(w(t)&&gt in t))throw Z("It is not a typed array constructor!");return new t(n)},_t=function(t,n){return Pt(X(t,t[dt]),n)},Pt=function(t,n){for(var r=0,e=n.length,i=Ut(t,e);e>r;)i[r]=n[r++];return i},Mt=function(t,n,r){V(t,n,{get:function(){return this._d[r]}})},Kt=function(t){var n,r,e,i,o,u,c=F(t),a=arguments.length,s=a>1?arguments[1]:void 0,l=void 0!==s,h=_(c);if(null!=h&&!S(h)){for(u=h.call(c),e=[],n=0;!(o=u.next()).done;n++)e.push(o.value);c=e}for(l&&a>2&&(s=f(s,arguments[2],2)),n=0,r=y(c.length),i=Ut(this,r);r>n;n++)i[n]=l?s(c[n],n):c[n];return i},jt=function(){for(var t=0,n=arguments.length,r=Ut(this,n);n>t;)r[t]=arguments[t++];return r},Xt=!!W&&o((function(){vt.call(new W(1))})),At=function(){return vt.apply(Xt?lt.call(Ot(this)):Ot(this),arguments)},It={copyWithin:function(t,n){return N.call(Ot(this),t,n,arguments.length>2?arguments[2]:void 0)},every:function(t){return Q(Ot(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return T.apply(Ot(this),arguments)},filter:function(t){return _t(this,J(Ot(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return $(Ot(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){z(Ot(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return rt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return nt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return ft.apply(Ot(this),arguments)},lastIndexOf:function(t){return ut.apply(Ot(this),arguments)},map:function(t){return wt(Ot(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return ct.apply(Ot(this),arguments)},reduceRight:function(t){return at.apply(Ot(this),arguments)},reverse:function(){for(var t,n=Ot(this).length,r=Math.floor(n/2),e=0;e<r;)t=this[e],this[e++]=this[--n],this[n]=t;return this},some:function(t){return H(Ot(this),t,arguments.length>1?arguments[1]:void 0)},sort:function(t){return st.call(Ot(this),t)},subarray:function(t,n){var r=Ot(this),e=r.length,i=d(t,e);return new(X(r,r[dt]))(r.buffer,r.byteOffset+i*r.BYTES_PER_ELEMENT,y((void 0===n?e:d(n,e))-i))}},Lt=function(t,n){return _t(this,lt.call(Ot(this),t,n))},Rt=function(t){Ot(this);var n=Et(arguments[1],1),r=this.length,e=F(t),i=y(e.length),o=0;if(i+n>r)throw q("Wrong length!");for(;o<i;)this[n+o]=e[o++]},Tt={entries:function(){return ot.call(Ot(this))},keys:function(){return it.call(Ot(this))},values:function(){return et.call(Ot(this))}},Nt=function(t,n){return w(t)&&t[mt]&&"symbol"!=typeof n&&n in t&&String(+n)==String(n)},kt=function(t,n){return Nt(t,n=x(n,!0))?l(2,t[n]):C(t,n)},Dt=function(t,n,r){return!(Nt(t,n=x(n,!0))&&w(r)&&m(r,"value"))||m(r,"get")||m(r,"set")||r.configurable||m(r,"writable")&&!r.writable||m(r,"enumerable")&&!r.enumerable?V(t,n,r):(t[n]=r.value,t)};xt||(D.f=kt,k.f=Dt),u(u.S+u.F*!xt,"Object",{getOwnPropertyDescriptor:kt,defineProperty:Dt}),o((function(){ht.call({})}))&&(ht=vt=function(){return ft.call(this)});var Vt=v({},It);v(Vt,Tt),h(Vt,pt,Tt.values),v(Vt,{slice:Lt,set:Rt,constructor:function(){},toString:ht,toLocaleString:At}),Mt(Vt,"buffer","b"),Mt(Vt,"byteOffset","o"),Mt(Vt,"byteLength","l"),Mt(Vt,"length","e"),V(Vt,yt,{get:function(){return this[mt]}}),t.exports=function(t,n,r,a){var f=t+((a=!!a)?"Clamped":"")+"Array",l="get"+t,v="set"+t,p=i[f],d=p||{},x=p&&O(p),m=!p||!c.ABV,F={},S=p&&p.prototype,_=function(t,r){V(t,r,{get:function(){return function(t,r){var e=t._d;return e.v[l](r*n+e.o,Ft)}(this,r)},set:function(t){return function(t,r,e){var i=t._d;a&&(e=(e=Math.round(e))<0?0:e>255?255:255&e),i.v[v](r*n+i.o,e,Ft)}(this,r,t)},enumerable:!0})};m?(p=r((function(t,r,e,i){s(t,p,f,"_d");var o,u,c,a,l=0,v=0;if(w(r)){if(!(r instanceof Y||"ArrayBuffer"==(a=b(r))||"SharedArrayBuffer"==a))return mt in r?Pt(p,r):Kt.call(p,r);o=r,v=Et(e,n);var d=r.byteLength;if(void 0===i){if(d%n)throw q("Wrong length!");if((u=d-v)<0)throw q("Wrong length!")}else if((u=y(i)*n)+v>d)throw q("Wrong length!");c=u/n}else c=g(r),o=new Y(u=c*n);for(h(t,"_d",{b:o,o:v,l:u,e:c,v:new B(o)});l<c;)_(t,l++)})),S=p.prototype=E(Vt),h(S,"constructor",p)):o((function(){p(1)}))&&o((function(){new p(-1)}))&&L((function(t){new p,new p(null),new p(1.5),new p(t)}),!0)||(p=r((function(t,r,e,i){var o;return s(t,p,f),w(r)?r instanceof Y||"ArrayBuffer"==(o=b(r))||"SharedArrayBuffer"==o?void 0!==i?new d(r,Et(e,n),i):void 0!==e?new d(r,Et(e,n)):new d(r):mt in r?Pt(p,r):Kt.call(p,r):new d(g(r))})),z(x!==Function.prototype?U(d).concat(U(x)):U(d),(function(t){t in p||h(p,t,d[t])})),p.prototype=S,e||(S.constructor=p));var P=S[pt],M=!!P&&("values"==P.name||null==P.name),K=Tt.values;h(p,gt,!0),h(S,mt,f),h(S,bt,!0),h(S,dt,p),(a?new p(1)[yt]==f:yt in S)||V(S,yt,{get:function(){return f}}),F[f]=p,u(u.G+u.W+u.F*(p!=d),F),u(u.S,f,{BYTES_PER_ELEMENT:n}),u(u.S+u.F*o((function(){d.of.call(p,1)})),f,{from:Kt,of:jt}),"BYTES_PER_ELEMENT"in S||h(S,"BYTES_PER_ELEMENT",n),u(u.P,f,It),R(f),u(u.P+u.F*St,f,{set:Rt}),u(u.P+u.F*!M,f,Tt),e||S.toString==ht||(S.toString=ht),u(u.P+u.F*o((function(){new p(1).slice()})),f,{slice:Lt}),u(u.P+u.F*(o((function(){return[1,2].toLocaleString()!=new p([1,2]).toLocaleString()}))||!o((function(){S.toLocaleString.call([1,2])}))),f,{toLocaleString:At}),I[f]=M?P:K,e||M||h(S,pt,K)}}else t.exports=function(){}},"7PI8":function(t,n,r){var e=r("Y7ZC");e(e.G,{global:r("5T2Y")})},"7Qtz":function(t,n,r){"use strict";var e=r("dyZX"),i=r("nh4g"),o=r("LQAc"),u=r("D4iV"),c=r("Mukb"),a=r("3Lyj"),f=r("eeVq"),s=r("9gX7"),l=r("RYi7"),h=r("ne8i"),v=r("Cfrj"),p=r("kJMx").f,y=r("hswa").f,g=r("Nr18"),d=r("fyDq"),x="prototype",m="Wrong index!",b=e.ArrayBuffer,w=e.DataView,F=e.Math,S=e.RangeError,E=e.Infinity,O=b,U=F.abs,_=F.pow,P=F.floor,M=F.log,K=F.LN2,j=i?"_b":"buffer",X=i?"_l":"byteLength",A=i?"_o":"byteOffset";function I(t,n,r){var e,i,o,u=new Array(r),c=8*r-n-1,a=(1<<c)-1,f=a>>1,s=23===n?_(2,-24)-_(2,-77):0,l=0,h=t<0||0===t&&1/t<0?1:0;for((t=U(t))!=t||t===E?(i=t!=t?1:0,e=a):(e=P(M(t)/K),t*(o=_(2,-e))<1&&(e--,o*=2),(t+=e+f>=1?s/o:s*_(2,1-f))*o>=2&&(e++,o/=2),e+f>=a?(i=0,e=a):e+f>=1?(i=(t*o-1)*_(2,n),e+=f):(i=t*_(2,f-1)*_(2,n),e=0));n>=8;u[l++]=255&i,i/=256,n-=8);for(e=e<<n|i,c+=n;c>0;u[l++]=255&e,e/=256,c-=8);return u[--l]|=128*h,u}function L(t,n,r){var e,i=8*r-n-1,o=(1<<i)-1,u=o>>1,c=i-7,a=r-1,f=t[a--],s=127&f;for(f>>=7;c>0;s=256*s+t[a],a--,c-=8);for(e=s&(1<<-c)-1,s>>=-c,c+=n;c>0;e=256*e+t[a],a--,c-=8);if(0===s)s=1-u;else{if(s===o)return e?NaN:f?-E:E;e+=_(2,n),s-=u}return(f?-1:1)*e*_(2,s-n)}function R(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function T(t){return[255&t]}function N(t){return[255&t,t>>8&255]}function k(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function D(t){return I(t,52,8)}function V(t){return I(t,23,4)}function C(t,n,r){y(t[x],n,{get:function(){return this[r]}})}function q(t,n,r,e){var i=v(+r);if(i+n>t[X])throw S(m);var o=t[j]._b,u=i+t[A],c=o.slice(u,u+n);return e?c:c.reverse()}function Z(t,n,r,e,i,o){var u=v(+r);if(u+n>t[X])throw S(m);for(var c=t[j]._b,a=u+t[A],f=e(+i),s=0;s<n;s++)c[a+s]=f[o?s:n-s-1]}if(u.ABV){if(!f((function(){b(1)}))||!f((function(){new b(-1)}))||f((function(){return new b,new b(1.5),new b(NaN),"ArrayBuffer"!=b.name}))){for(var W,G=(b=function(t){return s(this,b),new O(v(t))})[x]=O[x],Y=p(O),B=0;Y.length>B;)(W=Y[B++])in b||c(b,W,O[W]);o||(G.constructor=b)}var z=new w(new b(2)),J=w[x].setInt8;z.setInt8(0,2147483648),z.setInt8(1,2147483649),!z.getInt8(0)&&z.getInt8(1)||a(w[x],{setInt8:function(t,n){J.call(this,t,n<<24>>24)},setUint8:function(t,n){J.call(this,t,n<<24>>24)}},!0)}else b=function(t){s(this,b,"ArrayBuffer");var n=v(t);this._b=g.call(new Array(n),0),this[X]=n},w=function(t,n,r){s(this,w,"DataView"),s(t,b,"DataView");var e=t[X],i=l(n);if(i<0||i>e)throw S("Wrong offset!");if(i+(r=void 0===r?e-i:h(r))>e)throw S("Wrong length!");this[j]=t,this[A]=i,this[X]=r},i&&(C(b,"byteLength","_l"),C(w,"buffer","_b"),C(w,"byteLength","_l"),C(w,"byteOffset","_o")),a(w[x],{getInt8:function(t){return q(this,1,t)[0]<<24>>24},getUint8:function(t){return q(this,1,t)[0]},getInt16:function(t){var n=q(this,2,t,arguments[1]);return(n[1]<<8|n[0])<<16>>16},getUint16:function(t){var n=q(this,2,t,arguments[1]);return n[1]<<8|n[0]},getInt32:function(t){return R(q(this,4,t,arguments[1]))},getUint32:function(t){return R(q(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return L(q(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return L(q(this,8,t,arguments[1]),52,8)},setInt8:function(t,n){Z(this,1,t,T,n)},setUint8:function(t,n){Z(this,1,t,T,n)},setInt16:function(t,n){Z(this,2,t,N,n,arguments[2])},setUint16:function(t,n){Z(this,2,t,N,n,arguments[2])},setInt32:function(t,n){Z(this,4,t,k,n,arguments[2])},setUint32:function(t,n){Z(this,4,t,k,n,arguments[2])},setFloat32:function(t,n){Z(this,4,t,V,n,arguments[2])},setFloat64:function(t,n){Z(this,8,t,D,n,arguments[2])}});d(b,"ArrayBuffer"),d(w,"DataView"),c(w[x],u.VIEW,!0),n.ArrayBuffer=b,n.DataView=w},"7VC1":function(t,n,r){"use strict";var e=r("XKFU"),i=r("Lgjv"),o=r("ol8x"),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padEnd:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},"7h0T":function(t,n,r){var e=r("XKFU");e(e.S,"Number",{isNaN:function(t){return t!=t}})},"8+KV":function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(0),o=r("LyE8")([].forEach,!0);e(e.P+e.F*!o,"Array",{forEach:function(t){return i(this,t,arguments[1])}})},"84bF":function(t,n,r){"use strict";r("OGtf")("small",(function(t){return function(){return t(this,"small","","")}}))},"8MEG":function(t,n,r){"use strict";var e=r("2OiF"),i=r("0/R4"),o=r("MfQN"),u=[].slice,c={},a=function(t,n,r){if(!(n in c)){for(var e=[],i=0;i<n;i++)e[i]="a["+i+"]";c[n]=Function("F,a","return new F("+e.join(",")+")")}return c[n](t,r)};t.exports=Function.bind||function(t){var n=e(this),r=u.call(arguments,1),c=function(){var e=r.concat(u.call(arguments));return this instanceof c?a(n,e.length,e):o(n,e,t)};return i(n.prototype)&&(c.prototype=n.prototype),c}},"8a7r":function(t,n,r){"use strict";var e=r("hswa"),i=r("RjD/");t.exports=function(t,n,r){n in t?e.f(t,n,i(0,r)):t[n]=r}},"91GP":function(t,n,r){var e=r("XKFU");e(e.S+e.F,"Object",{assign:r("czNK")})},"93I4":function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},"9AAn":function(t,n,r){"use strict";var e=r("wmvG"),i=r("s5qY");t.exports=r("4LiD")("Map",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(t){var n=e.getEntry(i(this,"Map"),t);return n&&n.v},set:function(t,n){return e.def(i(this,"Map"),0===t?0:t,n)}},e,!0)},"9P93":function(t,n,r){var e=r("XKFU"),i=Math.imul;e(e.S+e.F*r("eeVq")((function(){return-5!=i(4294967295,5)||2!=i.length})),"Math",{imul:function(t,n){var r=+t,e=+n,i=65535&r,o=65535&e;return 0|i*o+((65535&r>>>16)*o+i*(65535&e>>>16)<<16>>>0)}})},"9VmF":function(t,n,r){"use strict";var e=r("XKFU"),i=r("ne8i"),o=r("0sh+"),u="".startsWith;e(e.P+e.F*r("UUeW")("startsWith"),"String",{startsWith:function(t){var n=o(this,t,"startsWith"),r=i(Math.min(arguments.length>1?arguments[1]:void 0,n.length)),e=String(t);return u?u.call(n,e,r):n.slice(r,r+e.length)===e}})},"9XZr":function(t,n,r){"use strict";var e=r("XKFU"),i=r("Lgjv"),o=r("ol8x"),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o);e(e.P+e.F*u,"String",{padStart:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},"9gX7":function(t,n){t.exports=function(t,n,r,e){if(!(t instanceof n)||void 0!==e&&e in t)throw TypeError(r+": incorrect invocation!");return t}},"9rMk":function(t,n,r){var e=r("XKFU");e(e.S,"Reflect",{has:function(t,n){return n in t}})},A2zW:function(t,n,r){"use strict";var e=r("XKFU"),i=r("RYi7"),o=r("vvmO"),u=r("l0Rn"),c=1..toFixed,a=Math.floor,f=[0,0,0,0,0,0],s="Number.toFixed: incorrect invocation!",l=function(t,n){for(var r=-1,e=n;++r<6;)e+=t*f[r],f[r]=e%1e7,e=a(e/1e7)},h=function(t){for(var n=6,r=0;--n>=0;)r+=f[n],f[n]=a(r/t),r=r%t*1e7},v=function(){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==f[t]){var r=String(f[t]);n=""===n?r:n+u.call("0",7-r.length)+r}return n},p=function(t,n,r){return 0===n?r:n%2==1?p(t,n-1,r*t):p(t*t,n/2,r)};e(e.P+e.F*(!!c&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!r("eeVq")((function(){c.call({})}))),"Number",{toFixed:function(t){var n,r,e,c,a=o(this,s),f=i(t),y="",g="0";if(f<0||f>20)throw RangeError(s);if(a!=a)return"NaN";if(a<=-1e21||a>=1e21)return String(a);if(a<0&&(y="-",a=-a),a>1e-21)if(r=(n=function(t){for(var n=0,r=t;r>=4096;)n+=12,r/=4096;for(;r>=2;)n+=1,r/=2;return n}(a*p(2,69,1))-69)<0?a*p(2,-n,1):a/p(2,n,1),r*=4503599627370496,(n=52-n)>0){for(l(0,r),e=f;e>=7;)l(1e7,0),e-=7;for(l(p(10,e,1),0),e=n-1;e>=23;)h(1<<23),e-=23;h(1<<e),l(1,1),h(2),g=v()}else l(0,r),l(1<<-n,0),g=v()+u.call("0",f);return g=f>0?y+((c=g.length)<=f?"0."+u.call("0",f-c)+g:g.slice(0,c-f)+"."+g.slice(c-f)):y+g}})},A5AN:function(t,n,r){"use strict";var e=r("AvRE")(!0);t.exports=function(t,n,r){return n+(r?e(t,n).length:1)}},Afnz:function(t,n,r){"use strict";var e=r("LQAc"),i=r("XKFU"),o=r("KroJ"),u=r("Mukb"),c=r("hPIQ"),a=r("QaDb"),f=r("fyDq"),s=r("OP3Y"),l=r("K0xU")("iterator"),h=!([].keys&&"next"in[].keys()),v=function(){return this};t.exports=function(t,n,r,p,y,g,d){a(r,n,p);var x,m,b,w=function(t){if(!h&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new r(this,t)}}return function(){return new r(this,t)}},F=n+" Iterator",S="values"==y,E=!1,O=t.prototype,U=O[l]||O["@@iterator"]||y&&O[y],_=U||w(y),P=y?S?w("entries"):_:void 0,M="Array"==n&&O.entries||U;if(M&&(b=s(M.call(new t)))!==Object.prototype&&b.next&&(f(b,F,!0),e||"function"==typeof b[l]||u(b,l,v)),S&&U&&"values"!==U.name&&(E=!0,_=function(){return U.call(this)}),e&&!d||!h&&!E&&O[l]||u(O,l,_),c[n]=_,c[F]=v,y)if(x={values:S?_:w("values"),keys:g?_:w("keys"),entries:P},d)for(m in x)m in O||o(O,m,x[m]);else i(i.P+i.F*(h||E),n,x);return x}},AphP:function(t,n,r){"use strict";var e=r("XKFU"),i=r("S/j/"),o=r("apmT");e(e.P+e.F*r("eeVq")((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})),"Date",{toJSON:function(t){var n=i(this),r=o(n);return"number"!=typeof r||isFinite(r)?n.toISOString():null}})},AvRE:function(t,n,r){var e=r("RYi7"),i=r("vhPU");t.exports=function(t){return function(n,r){var o,u,c=String(i(n)),a=e(r),f=c.length;return a<0||a>=f?t?"":void 0:(o=c.charCodeAt(a))<55296||o>56319||a+1===f||(u=c.charCodeAt(a+1))<56320||u>57343?t?c.charAt(a):o:t?c.slice(a,a+2):u-56320+(o-55296<<10)+65536}}},"B+OT":function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},BC7C:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{fround:r("kcoS")})},"BJ/l":function(t,n,r){var e=r("XKFU");e(e.S,"Math",{log1p:r("1sa7")})},BP8U:function(t,n,r){var e=r("XKFU"),i=r("PKUr");e(e.S+e.F*(Number.parseInt!=i),"Number",{parseInt:i})},Btvt:function(t,n,r){"use strict";var e=r("I8a+"),i={};i[r("K0xU")("toStringTag")]="z",i+""!="[object z]"&&r("KroJ")(Object.prototype,"toString",(function(){return"[object "+e(this)+"]"}),!0)},"C/va":function(t,n,r){"use strict";var e=r("y3w9");t.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},CX2u:function(t,n,r){"use strict";var e=r("XKFU"),i=r("g3g5"),o=r("dyZX"),u=r("69bn"),c=r("vKrd");e(e.P+e.R,"Promise",{finally:function(t){var n=u(this,i.Promise||o.Promise),r="function"==typeof t;return this.then(r?function(r){return c(n,t()).then((function(){return r}))}:t,r?function(r){return c(n,t()).then((function(){throw r}))}:t)}})},Cfrj:function(t,n,r){var e=r("RYi7"),i=r("ne8i");t.exports=function(t){if(void 0===t)return 0;var n=e(t),r=i(n);if(n!==r)throw RangeError("Wrong length!");return r}},CkkT:function(t,n,r){var e=r("m0Pp"),i=r("Ymqv"),o=r("S/j/"),u=r("ne8i"),c=r("zRwo");t.exports=function(t,n){var r=1==t,a=2==t,f=3==t,s=4==t,l=6==t,h=5==t||l,v=n||c;return function(n,c,p){for(var y,g,d=o(n),x=i(d),m=e(c,p,3),b=u(x.length),w=0,F=r?v(n,b):a?v(n,0):void 0;b>w;w++)if((h||w in x)&&(g=m(y=x[w],w,d),t))if(r)F[w]=g;else if(g)switch(t){case 3:return!0;case 5:return y;case 6:return w;case 2:F.push(y)}else if(s)return!1;return l?-1:f||s?s:F}}},CyHz:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{sign:r("lvtm")})},D4iV:function(t,n,r){for(var e,i=r("dyZX"),o=r("Mukb"),u=r("ylqs"),c=u("typed_array"),a=u("view"),f=!(!i.ArrayBuffer||!i.DataView),s=f,l=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(e=i[h[l++]])?(o(e.prototype,c,!0),o(e.prototype,a,!0)):s=!1;t.exports={ABV:f,CONSTR:s,TYPED:c,VIEW:a}},DNiP:function(t,n,r){"use strict";var e=r("XKFU"),i=r("eyMr");e(e.P+e.F*!r("LyE8")([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},DVgA:function(t,n,r){var e=r("zhAb"),i=r("4R4u");t.exports=Object.keys||function(t){return e(t,i)}},DW2E:function(t,n,r){var e=r("0/R4"),i=r("Z6vF").onFreeze;r("Xtr8")("freeze",(function(t){return function(n){return t&&e(n)?t(i(n)):n}}))},EK0E:function(t,n,r){"use strict";var e,i=r("dyZX"),o=r("CkkT")(0),u=r("KroJ"),c=r("Z6vF"),a=r("czNK"),f=r("ZD67"),s=r("0/R4"),l=r("s5qY"),h=r("s5qY"),v=!i.ActiveXObject&&"ActiveXObject"in i,p=c.getWeak,y=Object.isExtensible,g=f.ufstore,d=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},x={get:function(t){if(s(t)){var n=p(t);return!0===n?g(l(this,"WeakMap")).get(t):n?n[this._i]:void 0}},set:function(t,n){return f.def(l(this,"WeakMap"),t,n)}},m=t.exports=r("4LiD")("WeakMap",d,x,f,!0,!0);h&&v&&(a((e=f.getConstructor(d,"WeakMap")).prototype,x),c.NEED=!0,o(["delete","has","get","set"],(function(t){var n=m.prototype,r=n[t];u(n,t,(function(n,i){if(s(n)&&!y(n)){this._f||(this._f=new e);var o=this._f[t](n,i);return"set"==t?this:o}return r.call(this,n,i)}))})))},EWmC:function(t,n,r){var e=r("LZWt");t.exports=Array.isArray||function(t){return"Array"==e(t)}},EemH:function(t,n,r){var e=r("UqcF"),i=r("RjD/"),o=r("aCFj"),u=r("apmT"),c=r("aagx"),a=r("xpql"),f=Object.getOwnPropertyDescriptor;n.f=r("nh4g")?f:function(t,n){if(t=o(t),n=u(n,!0),a)try{return f(t,n)}catch(t){}if(c(t,n))return i(!e.f.call(t,n),t[n])}},"Ew+T":function(t,n,r){var e=r("XKFU"),i=r("GZEu");e(e.G+e.B,{setImmediate:i.set,clearImmediate:i.clear})},FDph:function(t,n,r){r("Z2Ku"),t.exports=r("g3g5").Array.includes},FEjr:function(t,n,r){"use strict";r("OGtf")("strike",(function(t){return function(){return t(this,"strike","","")}}))},FJW5:function(t,n,r){var e=r("hswa"),i=r("y3w9"),o=r("DVgA");t.exports=r("nh4g")?Object.defineProperties:function(t,n){i(t);for(var r,u=o(n),c=u.length,a=0;c>a;)e.f(t,r=u[a++],n[r]);return t}},FLlr:function(t,n,r){var e=r("XKFU");e(e.P,"String",{repeat:r("l0Rn")})},Faw5:function(t,n,r){r("7DDg")("Int16",2,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},FlsD:function(t,n,r){var e=r("0/R4");r("Xtr8")("isExtensible",(function(t){return function(n){return!!e(n)&&(!t||t(n))}}))},FxUG:function(t,n,r){r("R5XZ"),r("Ew+T"),r("rGqo"),t.exports=r("g3g5")},G8Mo:function(t,n,r){var e=r("93I4");t.exports=function(t,n){if(!e(t))return t;var r,i;if(n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!e(i=r.call(t)))return i;if(!n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},GNAe:function(t,n,r){var e=r("XKFU"),i=r("PKUr");e(e.G+e.F*(parseInt!=i),{parseInt:i})},GZEu:function(t,n,r){var e,i,o,u=r("m0Pp"),c=r("MfQN"),a=r("+rLv"),f=r("Iw71"),s=r("dyZX"),l=s.process,h=s.setImmediate,v=s.clearImmediate,p=s.MessageChannel,y=s.Dispatch,g=0,d={},x=function(){var t=+this;if(d.hasOwnProperty(t)){var n=d[t];delete d[t],n()}},m=function(t){x.call(t.data)};h&&v||(h=function(t){for(var n=[],r=1;arguments.length>r;)n.push(arguments[r++]);return d[++g]=function(){c("function"==typeof t?t:Function(t),n)},e(g),g},v=function(t){delete d[t]},"process"==r("LZWt")(l)?e=function(t){l.nextTick(u(x,t,1))}:y&&y.now?e=function(t){y.now(u(x,t,1))}:p?(o=(i=new p).port2,i.port1.onmessage=m,e=u(o.postMessage,o,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts?(e=function(t){s.postMessage(t+"","*")},s.addEventListener("message",m,!1)):e="onreadystatechange"in f("script")?function(t){a.appendChild(f("script")).onreadystatechange=function(){a.removeChild(this),x.call(t)}}:function(t){setTimeout(u(x,t,1),0)}),t.exports={set:h,clear:v}},H6hf:function(t,n,r){var e=r("y3w9");t.exports=function(t,n,r,i){try{return i?n(e(r)[0],r[1]):n(r)}catch(n){var o=t.return;throw void 0!==o&&e(o.call(t)),n}}},"HAE/":function(t,n,r){var e=r("XKFU");e(e.S+e.F*!r("nh4g"),"Object",{defineProperty:r("hswa").f})},HEwt:function(t,n,r){"use strict";var e=r("m0Pp"),i=r("XKFU"),o=r("S/j/"),u=r("H6hf"),c=r("M6Qj"),a=r("ne8i"),f=r("8a7r"),s=r("J+6e");i(i.S+i.F*!r("XMVh")((function(t){Array.from(t)})),"Array",{from:function(t){var n,r,i,l,h=o(t),v="function"==typeof this?this:Array,p=arguments.length,y=p>1?arguments[1]:void 0,g=void 0!==y,d=0,x=s(h);if(g&&(y=e(y,p>2?arguments[2]:void 0,2)),null==x||v==Array&&c(x))for(r=new v(n=a(h.length));n>d;d++)f(r,d,g?y(h[d],d):h[d]);else for(l=x.call(h),r=new v;!(i=l.next()).done;d++)f(r,d,g?u(l,y,[i.value,d],!0):i.value);return r.length=d,r}})},Hsns:function(t,n,r){var e=r("93I4"),i=r("5T2Y").document,o=e(i)&&e(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},I5cv:function(t,n,r){var e=r("XKFU"),i=r("Kuth"),o=r("2OiF"),u=r("y3w9"),c=r("0/R4"),a=r("eeVq"),f=r("8MEG"),s=(r("dyZX").Reflect||{}).construct,l=a((function(){function t(){}return!(s((function(){}),[],t)instanceof t)})),h=!a((function(){s((function(){}))}));e(e.S+e.F*(l||h),"Reflect",{construct:function(t,n){o(t),u(n);var r=arguments.length<3?t:o(arguments[2]);if(h&&!l)return s(t,n,r);if(t==r){switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var e=[null];return e.push.apply(e,n),new(f.apply(t,e))}var a=r.prototype,v=i(c(a)?a:Object.prototype),p=Function.apply.call(t,v,n);return c(p)?p:v}})},I74W:function(t,n,r){"use strict";r("qncB")("trimLeft",(function(t){return function(){return t(this,1)}}),"trimStart")},I78e:function(t,n,r){"use strict";var e=r("XKFU"),i=r("+rLv"),o=r("LZWt"),u=r("d/Gc"),c=r("ne8i"),a=[].slice;e(e.P+e.F*r("eeVq")((function(){i&&a.call(i)})),"Array",{slice:function(t,n){var r=c(this.length),e=o(this);if(n=void 0===n?r:n,"Array"==e)return a.call(this,t,n);for(var i=u(t,r),f=u(n,r),s=c(f-i),l=new Array(s),h=0;h<s;h++)l[h]="String"==e?this.charAt(i+h):this[i+h];return l}})},"I8a+":function(t,n,r){var e=r("LZWt"),i=r("K0xU")("toStringTag"),o="Arguments"==e(function(){return arguments}());t.exports=function(t){var n,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),i))?r:o?e(n):"Object"==(u=e(n))&&"function"==typeof n.callee?"Arguments":u}},INYr:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(6),o="findIndex",u=!0;o in[]&&Array(1)[o]((function(){u=!1})),e(e.P+e.F*u,"Array",{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r("nGyu")(o)},"IU+Z":function(t,n,r){"use strict";r("sMXx");var e=r("KroJ"),i=r("Mukb"),o=r("eeVq"),u=r("vhPU"),c=r("K0xU"),a=r("Ugos"),f=c("species"),s=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),l=function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var r="ab".split(t);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();t.exports=function(t,n,r){var h=c(t),v=!o((function(){var n={};return n[h]=function(){return 7},7!=""[t](n)})),p=v?!o((function(){var n=!1,r=/a/;return r.exec=function(){return n=!0,null},"split"===t&&(r.constructor={},r.constructor[f]=function(){return r}),r[h](""),!n})):void 0;if(!v||!p||"replace"===t&&!s||"split"===t&&!l){var y=/./[h],g=r(u,h,""[t],(function(t,n,r,e,i){return n.exec===a?v&&!i?{done:!0,value:y.call(n,r,e)}:{done:!0,value:t.call(r,n,e)}:{done:!1}})),d=g[0],x=g[1];e(String.prototype,t,d),i(RegExp.prototype,h,2==n?function(t,n){return x.call(t,this,n)}:function(t){return x.call(t,this)})}}},IXt9:function(t,n,r){"use strict";var e=r("0/R4"),i=r("OP3Y"),o=r("K0xU")("hasInstance"),u=Function.prototype;o in u||r("hswa").f(u,o,{value:function(t){if("function"!=typeof this||!e(t))return!1;if(!e(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},IlFx:function(t,n,r){var e=r("XKFU"),i=r("y3w9"),o=Object.isExtensible;e(e.S,"Reflect",{isExtensible:function(t){return i(t),!o||o(t)}})},Iw71:function(t,n,r){var e=r("0/R4"),i=r("dyZX").document,o=e(i)&&e(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},Izvi:function(t,n,r){r("I74W"),t.exports=r("g3g5").String.trimLeft},"J+6e":function(t,n,r){var e=r("I8a+"),i=r("K0xU")("iterator"),o=r("hPIQ");t.exports=r("g3g5").getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[e(t)]}},JCqj:function(t,n,r){"use strict";r("OGtf")("sup",(function(t){return function(){return t(this,"sup","","")}}))},JbTB:function(t,n,r){r("/8Fb"),t.exports=r("g3g5").Object.entries},Jcmo:function(t,n,r){var e=r("XKFU"),i=Math.exp;e(e.S,"Math",{cosh:function(t){return(i(t=+t)+i(-t))/2}})},JduL:function(t,n,r){r("Xtr8")("getOwnPropertyNames",(function(){return r("e7yV").f}))},"Ji/l":function(t,n,r){var e=r("XKFU");e(e.G+e.W+e.F*!r("D4iV").ABV,{DataView:r("7Qtz").DataView})},JiEa:function(t,n){n.f=Object.getOwnPropertySymbols},K0xU:function(t,n,r){var e=r("VTer")("wks"),i=r("ylqs"),o=r("dyZX").Symbol,u="function"==typeof o;(t.exports=function(t){return e[t]||(e[t]=u&&o[t]||(u?o:i)("Symbol."+t))}).store=e},KKXr:function(t,n,r){"use strict";var e=r("quPj"),i=r("y3w9"),o=r("69bn"),u=r("A5AN"),c=r("ne8i"),a=r("Xxuz"),f=r("Ugos"),s=r("eeVq"),l=Math.min,h=[].push,v=!s((function(){RegExp(4294967295,"y")}));r("IU+Z")("split",2,(function(t,n,r,s){var p;return p="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=String(this);if(void 0===t&&0===n)return[];if(!e(t))return r.call(i,t,n);for(var o,u,c,a=[],s=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),l=0,v=void 0===n?4294967295:n>>>0,p=new RegExp(t.source,s+"g");(o=f.call(p,i))&&!((u=p.lastIndex)>l&&(a.push(i.slice(l,o.index)),o.length>1&&o.index<i.length&&h.apply(a,o.slice(1)),c=o[0].length,l=u,a.length>=v));)p.lastIndex===o.index&&p.lastIndex++;return l===i.length?!c&&p.test("")||a.push(""):a.push(i.slice(l)),a.length>v?a.slice(0,v):a}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:r.call(this,t,n)}:r,[function(r,e){var i=t(this),o=null==r?void 0:r[n];return void 0!==o?o.call(r,i,e):p.call(String(i),r,e)},function(t,n){var e=s(p,t,this,n,p!==r);if(e.done)return e.value;var f=i(t),h=String(this),y=o(f,RegExp),g=f.unicode,d=(f.ignoreCase?"i":"")+(f.multiline?"m":"")+(f.unicode?"u":"")+(v?"y":"g"),x=new y(v?f:"^(?:"+f.source+")",d),m=void 0===n?4294967295:n>>>0;if(0===m)return[];if(0===h.length)return null===a(x,h)?[h]:[];for(var b=0,w=0,F=[];w<h.length;){x.lastIndex=v?w:0;var S,E=a(x,v?h:h.slice(w));if(null===E||(S=l(c(x.lastIndex+(v?0:w)),h.length))===b)w=u(h,w,g);else{if(F.push(h.slice(b,w)),F.length===m)return F;for(var O=1;O<=E.length-1;O++)if(F.push(E[O]),F.length===m)return F;w=b=S}}return F.push(h.slice(b)),F}]}))},KUxP:function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},KroJ:function(t,n,r){var e=r("dyZX"),i=r("Mukb"),o=r("aagx"),u=r("ylqs")("src"),c=r("+lvF"),a=(""+c).split("toString");r("g3g5").inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,r,c){var f="function"==typeof r;f&&(o(r,"name")||i(r,"name",n)),t[n]!==r&&(f&&(o(r,u)||i(r,u,t[n]?""+t[n]:a.join(String(n)))),t===e?t[n]=r:c?t[n]?t[n]=r:i(t,n,r):(delete t[n],i(t,n,r)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[u]||c.call(this)}))},Kuth:function(t,n,r){var e=r("y3w9"),i=r("FJW5"),o=r("4R4u"),u=r("YTvA")("IE_PROTO"),c=function(){},a=function(){var t,n=r("Iw71")("iframe"),e=o.length;for(n.style.display="none",r("+rLv").appendChild(n),n.src="javascript:",(t=n.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),a=t.F;e--;)delete a.prototype[o[e]];return a()};t.exports=Object.create||function(t,n){var r;return null!==t?(c.prototype=e(t),r=new c,c.prototype=null,r[u]=t):r=a(),void 0===n?r:i(r,n)}},L9s1:function(t,n,r){"use strict";var e=r("XKFU"),i=r("0sh+");e(e.P+e.F*r("UUeW")("includes"),"String",{includes:function(t){return!!~i(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},LK8F:function(t,n,r){var e=r("XKFU");e(e.S,"Array",{isArray:r("EWmC")})},LQAc:function(t,n){t.exports=!1},LTTk:function(t,n,r){var e=r("XKFU"),i=r("OP3Y"),o=r("y3w9");e(e.S,"Reflect",{getPrototypeOf:function(t){return i(o(t))}})},LVwc:function(t,n){var r=Math.expm1;t.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:r},LZWt:function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},Lgjv:function(t,n,r){var e=r("ne8i"),i=r("l0Rn"),o=r("vhPU");t.exports=function(t,n,r,u){var c=String(o(t)),a=c.length,f=void 0===r?" ":String(r),s=e(n);if(s<=a||""==f)return c;var l=s-a,h=i.call(f,Math.ceil(l/f.length));return h.length>l&&(h=h.slice(0,l)),u?h+c:c+h}},Ljet:function(t,n,r){var e=r("XKFU");e(e.S,"Number",{EPSILON:Math.pow(2,-52)})},LyE8:function(t,n,r){"use strict";var e=r("eeVq");t.exports=function(t,n){return!!t&&e((function(){n?t.call(null,(function(){}),1):t.call(null)}))}},M6Qj:function(t,n,r){var e=r("hPIQ"),i=r("K0xU")("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(e.Array===t||o[i]===t)}},MfQN:function(t,n){t.exports=function(t,n,r){var e=void 0===r;switch(n.length){case 0:return e?t():t.call(r);case 1:return e?t(n[0]):t.call(r,n[0]);case 2:return e?t(n[0],n[1]):t.call(r,n[0],n[1]);case 3:return e?t(n[0],n[1],n[2]):t.call(r,n[0],n[1],n[2]);case 4:return e?t(n[0],n[1],n[2],n[3]):t.call(r,n[0],n[1],n[2],n[3])}return t.apply(r,n)}},MtdB:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},Mukb:function(t,n,r){var e=r("hswa"),i=r("RjD/");t.exports=r("nh4g")?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},N8g3:function(t,n,r){n.f=r("K0xU")},NO8f:function(t,n,r){r("7DDg")("Uint8",1,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},NegM:function(t,n,r){var e=r("2faE"),i=r("rr1i");t.exports=r("jmDH")?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},Nr18:function(t,n,r){"use strict";var e=r("S/j/"),i=r("d/Gc"),o=r("ne8i");t.exports=function(t){for(var n=e(this),r=o(n.length),u=arguments.length,c=i(u>1?arguments[1]:void 0,r),a=u>2?arguments[2]:void 0,f=void 0===a?r:i(a,r);f>c;)n[c++]=t;return n}},Nz9U:function(t,n,r){"use strict";var e=r("XKFU"),i=r("aCFj"),o=[].join;e(e.P+e.F*(r("Ymqv")!=Object||!r("LyE8")(o)),"Array",{join:function(t){return o.call(i(this),void 0===t?",":t)}})},OEbY:function(t,n,r){r("nh4g")&&"g"!=/./g.flags&&r("hswa").f(RegExp.prototype,"flags",{configurable:!0,get:r("C/va")})},OG14:function(t,n,r){"use strict";var e=r("y3w9"),i=r("g6HL"),o=r("Xxuz");r("IU+Z")("search",1,(function(t,n,r,u){return[function(r){var e=t(this),i=null==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},function(t){var n=u(r,t,this);if(n.done)return n.value;var c=e(t),a=String(this),f=c.lastIndex;i(f,0)||(c.lastIndex=0);var s=o(c,a);return i(c.lastIndex,f)||(c.lastIndex=f),null===s?-1:s.index}]}))},OGtf:function(t,n,r){var e=r("XKFU"),i=r("eeVq"),o=r("vhPU"),u=/"/g,c=function(t,n,r,e){var i=String(o(t)),c="<"+n;return""!==r&&(c+=" "+r+'="'+String(e).replace(u,"&quot;")+'"'),c+">"+i+"</"+n+">"};t.exports=function(t,n){var r={};r[t]=n(c),e(e.P+e.F*i((function(){var n=""[t]('"');return n!==n.toLowerCase()||n.split('"').length>3})),"String",r)}},OP3Y:function(t,n,r){var e=r("aagx"),i=r("S/j/"),o=r("YTvA")("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),e(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},OnI7:function(t,n,r){var e=r("dyZX"),i=r("g3g5"),o=r("LQAc"),u=r("N8g3"),c=r("hswa").f;t.exports=function(t){var n=i.Symbol||(i.Symbol=o?{}:e.Symbol||{});"_"==t.charAt(0)||t in n||c(n,t,{value:u.f(t)})}},Oyvg:function(t,n,r){var e=r("dyZX"),i=r("Xbzi"),o=r("hswa").f,u=r("kJMx").f,c=r("quPj"),a=r("C/va"),f=e.RegExp,s=f,l=f.prototype,h=/a/g,v=/a/g,p=new f(h)!==h;if(r("nh4g")&&(!p||r("eeVq")((function(){return v[r("K0xU")("match")]=!1,f(h)!=h||f(v)==v||"/a/i"!=f(h,"i")})))){f=function(t,n){var r=this instanceof f,e=c(t),o=void 0===n;return!r&&e&&t.constructor===f&&o?t:i(p?new s(e&&!o?t.source:t,n):s((e=t instanceof f)?t.source:t,e&&o?a.call(t):n),r?this:l,f)};for(var y=function(t){t in f||o(f,t,{configurable:!0,get:function(){return s[t]},set:function(n){s[t]=n}})},g=u(s),d=0;g.length>d;)y(g[d++]);l.constructor=f,f.prototype=l,r("KroJ")(e,"RegExp",f)}r("elZq")("RegExp")},PKUr:function(t,n,r){var e=r("dyZX").parseInt,i=r("qncB").trim,o=r("/e88"),u=/^[-+]?0[xX]/;t.exports=8!==e(o+"08")||22!==e(o+"0x16")?function(t,n){var r=i(String(t),3);return e(r,n>>>0||(u.test(r)?16:10))}:e},QNwp:function(t,n,r){r("7VC1"),t.exports=r("g3g5").String.padEnd},QaDb:function(t,n,r){"use strict";var e=r("Kuth"),i=r("RjD/"),o=r("fyDq"),u={};r("Mukb")(u,r("K0xU")("iterator"),(function(){return this})),t.exports=function(t,n,r){t.prototype=e(u,{next:i(1,r)}),o(t,n+" Iterator")}},R5XZ:function(t,n,r){var e=r("dyZX"),i=r("XKFU"),o=r("ol8x"),u=[].slice,c=/MSIE .\./.test(o),a=function(t){return function(n,r){var e=arguments.length>2,i=!!e&&u.call(arguments,2);return t(e?function(){("function"==typeof n?n:Function(n)).apply(this,i)}:n,r)}};i(i.G+i.B+i.F*c,{setTimeout:a(e.setTimeout),setInterval:a(e.setInterval)})},RW0V:function(t,n,r){var e=r("S/j/"),i=r("DVgA");r("Xtr8")("keys",(function(){return function(t){return i(e(t))}}))},RYi7:function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},"RjD/":function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},"S/j/":function(t,n,r){var e=r("vhPU");t.exports=function(t){return Object(e(t))}},SMB2:function(t,n,r){"use strict";r("OGtf")("bold",(function(t){return function(){return t(this,"b","","")}}))},SPin:function(t,n,r){"use strict";var e=r("XKFU"),i=r("eyMr");e(e.P+e.F*!r("LyE8")([].reduceRight,!0),"Array",{reduceRight:function(t){return i(this,t,arguments.length,arguments[1],!0)}})},SRfc:function(t,n,r){"use strict";var e=r("y3w9"),i=r("ne8i"),o=r("A5AN"),u=r("Xxuz");r("IU+Z")("match",1,(function(t,n,r,c){return[function(r){var e=t(this),i=null==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},function(t){var n=c(r,t,this);if(n.done)return n.value;var a=e(t),f=String(this);if(!a.global)return u(a,f);var s=a.unicode;a.lastIndex=0;for(var l,h=[],v=0;null!==(l=u(a,f));){var p=String(l[0]);h[v]=p,""===p&&(a.lastIndex=o(f,i(a.lastIndex),s)),v++}return 0===v?null:h}]}))},SlkY:function(t,n,r){var e=r("m0Pp"),i=r("H6hf"),o=r("M6Qj"),u=r("y3w9"),c=r("ne8i"),a=r("J+6e"),f={},s={};(n=t.exports=function(t,n,r,l,h){var v,p,y,g,d=h?function(){return t}:a(t),x=e(r,l,n?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(o(d)){for(v=c(t.length);v>m;m++)if((g=n?x(u(p=t[m])[0],p[1]):x(t[m]))===f||g===s)return g}else for(y=d.call(t);!(p=y.next()).done;)if((g=i(y,x,p.value,n))===f||g===s)return g}).BREAK=f,n.RETURN=s},T39b:function(t,n,r){"use strict";var e=r("wmvG"),i=r("s5qY");t.exports=r("4LiD")("Set",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return e.def(i(this,"Set"),t=0===t?0:t,t)}},e)},TIpR:function(t,n,r){"use strict";r("VRzm"),r("CX2u"),t.exports=r("g3g5").Promise.finally},Tdpu:function(t,n,r){r("7DDg")("Float64",8,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},Tze0:function(t,n,r){"use strict";r("qncB")("trim",(function(t){return function(){return t(this,3)}}))},U2t9:function(t,n,r){var e=r("XKFU"),i=Math.asinh;e(e.S+e.F*!(i&&1/i(0)>0),"Math",{asinh:function t(n){return isFinite(n=+n)&&0!=n?n<0?-t(-n):Math.log(n+Math.sqrt(n*n+1)):n}})},UExd:function(t,n,r){var e=r("nh4g"),i=r("DVgA"),o=r("aCFj"),u=r("UqcF").f;t.exports=function(t){return function(n){for(var r,c=o(n),a=i(c),f=a.length,s=0,l=[];f>s;)r=a[s++],e&&!u.call(c,r)||l.push(t?[r,c[r]]:c[r]);return l}}},UUeW:function(t,n,r){var e=r("K0xU")("match");t.exports=function(t){var n=/./;try{"/./"[t](n)}catch(r){try{return n[e]=!1,!"/./"[t](n)}catch(t){}}return!0}},Ugos:function(t,n,r){"use strict";var e,i,o=r("C/va"),u=RegExp.prototype.exec,c=String.prototype.replace,a=u,f=(e=/a/,i=/b*/g,u.call(e,"a"),u.call(i,"a"),0!==e.lastIndex||0!==i.lastIndex),s=void 0!==/()??/.exec("")[1];(f||s)&&(a=function(t){var n,r,e,i,a=this;return s&&(r=new RegExp("^"+a.source+"$(?!\\s)",o.call(a))),f&&(n=a.lastIndex),e=u.call(a,t),f&&e&&(a.lastIndex=a.global?e.index+e[0].length:n),s&&e&&e.length>1&&c.call(e[0],r,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(e[i]=void 0)})),e}),t.exports=a},UqcF:function(t,n){n.f={}.propertyIsEnumerable},"V+eJ":function(t,n,r){"use strict";var e=r("XKFU"),i=r("w2a5")(!1),o=[].indexOf,u=!!o&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!r("LyE8")(o)),"Array",{indexOf:function(t){return u?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},"V/DX":function(t,n,r){var e=r("0/R4");r("Xtr8")("isSealed",(function(t){return function(n){return!e(n)||!!t&&t(n)}}))},VKir:function(t,n,r){"use strict";var e=r("XKFU"),i=r("eeVq"),o=r("vvmO"),u=1..toPrecision;e(e.P+e.F*(i((function(){return"1"!==u.call(1,void 0)}))||!i((function(){u.call({})}))),"Number",{toPrecision:function(t){var n=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?u.call(n):u.call(n,t)}})},VRzm:function(t,n,r){"use strict";var e,i,o,u,c=r("LQAc"),a=r("dyZX"),f=r("m0Pp"),s=r("I8a+"),l=r("XKFU"),h=r("0/R4"),v=r("2OiF"),p=r("9gX7"),y=r("SlkY"),g=r("69bn"),d=r("GZEu").set,x=r("gHnn")(),m=r("pbhE"),b=r("nICZ"),w=r("ol8x"),F=r("vKrd"),S=a.TypeError,E=a.process,O=E&&E.versions,U=O&&O.v8||"",_=a.Promise,P="process"==s(E),M=function(){},K=i=m.f,j=!!function(){try{var t=_.resolve(1),n=(t.constructor={})[r("K0xU")("species")]=function(t){t(M,M)};return(P||"function"==typeof PromiseRejectionEvent)&&t.then(M)instanceof n&&0!==U.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(t){}}(),X=function(t){var n;return!(!h(t)||"function"!=typeof(n=t.then))&&n},A=function(t,n){if(!t._n){t._n=!0;var r=t._c;x((function(){for(var e=t._v,i=1==t._s,o=0,u=function(n){var r,o,u,c=i?n.ok:n.fail,a=n.resolve,f=n.reject,s=n.domain;try{c?(i||(2==t._h&&R(t),t._h=1),!0===c?r=e:(s&&s.enter(),r=c(e),s&&(s.exit(),u=!0)),r===n.promise?f(S("Promise-chain cycle")):(o=X(r))?o.call(r,a,f):a(r)):f(e)}catch(t){s&&!u&&s.exit(),f(t)}};r.length>o;)u(r[o++]);t._c=[],t._n=!1,n&&!t._h&&I(t)}))}},I=function(t){d.call(a,(function(){var n,r,e,i=t._v,o=L(t);if(o&&(n=b((function(){P?E.emit("unhandledRejection",i,t):(r=a.onunhandledrejection)?r({promise:t,reason:i}):(e=a.console)&&e.error&&e.error("Unhandled promise rejection",i)})),t._h=P||L(t)?2:1),t._a=void 0,o&&n.e)throw n.v}))},L=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){d.call(a,(function(){var n;P?E.emit("rejectionHandled",t):(n=a.onrejectionhandled)&&n({promise:t,reason:t._v})}))},T=function(t){var n=this;n._d||(n._d=!0,(n=n._w||n)._v=t,n._s=2,n._a||(n._a=n._c.slice()),A(n,!0))},N=function(t){var n,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===t)throw S("Promise can't be resolved itself");(n=X(t))?x((function(){var e={_w:r,_d:!1};try{n.call(t,f(N,e,1),f(T,e,1))}catch(t){T.call(e,t)}})):(r._v=t,r._s=1,A(r,!1))}catch(t){T.call({_w:r,_d:!1},t)}}};j||(_=function(t){p(this,_,"Promise","_h"),v(t),e.call(this);try{t(f(N,this,1),f(T,this,1))}catch(t){T.call(this,t)}},(e=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r("3Lyj")(_.prototype,{then:function(t,n){var r=K(g(this,_));return r.ok="function"!=typeof t||t,r.fail="function"==typeof n&&n,r.domain=P?E.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&A(this,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new e;this.promise=t,this.resolve=f(N,t,1),this.reject=f(T,t,1)},m.f=K=function(t){return t===_||t===u?new o(t):i(t)}),l(l.G+l.W+l.F*!j,{Promise:_}),r("fyDq")(_,"Promise"),r("elZq")("Promise"),u=r("g3g5").Promise,l(l.S+l.F*!j,"Promise",{reject:function(t){var n=K(this);return(0,n.reject)(t),n.promise}}),l(l.S+l.F*(c||!j),"Promise",{resolve:function(t){return F(c&&this===u?_:this,t)}}),l(l.S+l.F*!(j&&r("XMVh")((function(t){_.all(t).catch(M)}))),"Promise",{all:function(t){var n=this,r=K(n),e=r.resolve,i=r.reject,o=b((function(){var r=[],o=0,u=1;y(t,!1,(function(t){var c=o++,a=!1;r.push(void 0),u++,n.resolve(t).then((function(t){a||(a=!0,r[c]=t,--u||e(r))}),i)})),--u||e(r)}));return o.e&&i(o.v),r.promise},race:function(t){var n=this,r=K(n),e=r.reject,i=b((function(){y(t,!1,(function(t){n.resolve(t).then(r.resolve,e)}))}));return i.e&&e(i.v),r.promise}})},VTer:function(t,n,r){var e=r("g3g5"),i=r("dyZX"),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,n){return o[t]||(o[t]=void 0!==n?n:{})})("versions",[]).push({version:e.version,mode:r("LQAc")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},Vd3H:function(t,n,r){"use strict";var e=r("XKFU"),i=r("2OiF"),o=r("S/j/"),u=r("eeVq"),c=[].sort,a=[1,2,3];e(e.P+e.F*(u((function(){a.sort(void 0)}))||!u((function(){a.sort(null)}))||!r("LyE8")(c)),"Array",{sort:function(t){return void 0===t?c.call(o(this)):c.call(o(this),i(t))}})},VpUO:function(t,n,r){var e=r("XKFU"),i=r("d/Gc"),o=String.fromCharCode,u=String.fromCodePoint;e(e.S+e.F*(!!u&&1!=u.length),"String",{fromCodePoint:function(t){for(var n,r=[],e=arguments.length,u=0;e>u;){if(n=+arguments[u++],i(n,1114111)!==n)throw RangeError(n+" is not a valid code point");r.push(n<65536?o(n):o(55296+((n-=65536)>>10),n%1024+56320))}return r.join("")}})},VsWn:function(t,n,r){r("7PI8"),t.exports=r("WEpk").global},W9dy:function(t,n,r){r("ioFf"),r("hHhE"),r("HAE/"),r("WLL4"),r("mYba"),r("5Pf0"),r("RW0V"),r("JduL"),r("DW2E"),r("z2o2"),r("mura"),r("Zshi"),r("V/DX"),r("FlsD"),r("91GP"),r("25dN"),r("/SS/"),r("Btvt"),r("2Spj"),r("f3/d"),r("IXt9"),r("GNAe"),r("tyy+"),r("xfY5"),r("A2zW"),r("VKir"),r("Ljet"),r("/KAi"),r("fN96"),r("7h0T"),r("sbF8"),r("h/M4"),r("knhD"),r("XfKG"),r("BP8U"),r("fyVe"),r("U2t9"),r("2atp"),r("+auO"),r("MtdB"),r("Jcmo"),r("nzyx"),r("BC7C"),r("x8ZO"),r("9P93"),r("eHKK"),r("BJ/l"),r("pp/T"),r("CyHz"),r("bBoP"),r("x8Yj"),r("hLT2"),r("VpUO"),r("eI33"),r("Tze0"),r("XfO3"),r("oDIu"),r("rvZc"),r("L9s1"),r("FLlr"),r("9VmF"),r("hEkN"),r("nIY7"),r("+oPb"),r("SMB2"),r("0mN4"),r("bDcW"),r("nsiH"),r("0LDn"),r("tUrg"),r("84bF"),r("FEjr"),r("Zz4T"),r("JCqj"),r("eM6i"),r("AphP"),r("jqX0"),r("h7Nl"),r("yM4b"),r("LK8F"),r("HEwt"),r("6AQ9"),r("Nz9U"),r("I78e"),r("Vd3H"),r("8+KV"),r("bWfx"),r("0l/t"),r("dZ+Y"),r("YJVH"),r("DNiP"),r("SPin"),r("V+eJ"),r("mGWK"),r("dE+T"),r("bHtr"),r("dRSK"),r("INYr"),r("0E+W"),r("yt8O"),r("Oyvg"),r("sMXx"),r("a1Th"),r("OEbY"),r("SRfc"),r("pIFo"),r("OG14"),r("KKXr"),r("VRzm"),r("9AAn"),r("T39b"),r("EK0E"),r("wCsR"),r("xm80"),r("Ji/l"),r("sFw1"),r("NO8f"),r("aqI/"),r("Faw5"),r("r1bV"),r("tuSo"),r("nCnK"),r("Y9lz"),r("Tdpu"),r("3xty"),r("I5cv"),r("iMoV"),r("uhZd"),r("f/aN"),r("0YWM"),r("694e"),r("LTTk"),r("9rMk"),r("IlFx"),r("xpiv"),r("oZ/O"),r("klPD"),r("knU9"),t.exports=r("g3g5")},WEpk:function(t,n){var r=t.exports={version:"2.6.10"};"number"==typeof __e&&(__e=r)},WLL4:function(t,n,r){var e=r("XKFU");e(e.S+e.F*!r("nh4g"),"Object",{defineProperties:r("FJW5")})},XKFU:function(t,n,r){var e=r("dyZX"),i=r("g3g5"),o=r("Mukb"),u=r("KroJ"),c=r("m0Pp"),a=function(t,n,r){var f,s,l,h,v=t&a.F,p=t&a.G,y=t&a.S,g=t&a.P,d=t&a.B,x=p?e:y?e[n]||(e[n]={}):(e[n]||{}).prototype,m=p?i:i[n]||(i[n]={}),b=m.prototype||(m.prototype={});for(f in p&&(r=n),r)l=((s=!v&&x&&void 0!==x[f])?x:r)[f],h=d&&s?c(l,e):g&&"function"==typeof l?c(Function.call,l):l,x&&u(x,f,l,t&a.U),m[f]!=l&&o(m,f,h),g&&b[f]!=l&&(b[f]=l)};e.core=i,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},XMVh:function(t,n,r){var e=r("K0xU")("iterator"),i=!1;try{var o=[7][e]();o.return=function(){i=!0},Array.from(o,(function(){throw 2}))}catch(t){}t.exports=function(t,n){if(!n&&!i)return!1;var r=!1;try{var o=[7],u=o[e]();u.next=function(){return{done:r=!0}},o[e]=function(){return u},t(o)}catch(t){}return r}},Xbzi:function(t,n,r){var e=r("0/R4"),i=r("i5dc").set;t.exports=function(t,n,r){var o,u=n.constructor;return u!==r&&"function"==typeof u&&(o=u.prototype)!==r.prototype&&e(o)&&i&&i(t,o),t}},XfKG:function(t,n,r){var e=r("XKFU"),i=r("11IZ");e(e.S+e.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},XfO3:function(t,n,r){"use strict";var e=r("AvRE")(!0);r("Afnz")(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})}))},Xtr8:function(t,n,r){var e=r("XKFU"),i=r("g3g5"),o=r("eeVq");t.exports=function(t,n){var r=(i.Object||{})[t]||Object[t],u={};u[t]=n(r),e(e.S+e.F*o((function(){r(1)})),"Object",u)}},Xxuz:function(t,n,r){"use strict";var e=r("I8a+"),i=RegExp.prototype.exec;t.exports=function(t,n){var r=t.exec;if("function"==typeof r){var o=r.call(t,n);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==e(t))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(t,n)}},Y7ZC:function(t,n,r){var e=r("5T2Y"),i=r("WEpk"),o=r("2GTP"),u=r("NegM"),c=r("B+OT"),a=function(t,n,r){var f,s,l,h=t&a.F,v=t&a.G,p=t&a.S,y=t&a.P,g=t&a.B,d=t&a.W,x=v?i:i[n]||(i[n]={}),m=x.prototype,b=v?e:p?e[n]:(e[n]||{}).prototype;for(f in v&&(r=n),r)(s=!h&&b&&void 0!==b[f])&&c(x,f)||(l=s?b[f]:r[f],x[f]=v&&"function"!=typeof b[f]?r[f]:g&&s?o(l,e):d&&b[f]==l?function(t){var n=function(n,r,e){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(n);case 2:return new t(n,r)}return new t(n,r,e)}return t.apply(this,arguments)};return n.prototype=t.prototype,n}(l):y&&"function"==typeof l?o(Function.call,l):l,y&&((x.virtual||(x.virtual={}))[f]=l,t&a.R&&m&&!m[f]&&u(m,f,l)))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},Y9lz:function(t,n,r){r("7DDg")("Float32",4,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},YJVH:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(4);e(e.P+e.F*!r("LyE8")([].every,!0),"Array",{every:function(t){return i(this,t,arguments[1])}})},YTvA:function(t,n,r){var e=r("VTer")("keys"),i=r("ylqs");t.exports=function(t){return e[t]||(e[t]=i(t))}},Ymqv:function(t,n,r){var e=r("LZWt");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},Yp8f:function(t,n,r){r("6VaU"),t.exports=r("g3g5").Array.flatMap},Z2Ku:function(t,n,r){"use strict";var e=r("XKFU"),i=r("w2a5")(!0);e(e.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r("nGyu")("includes")},Z6vF:function(t,n,r){var e=r("ylqs")("meta"),i=r("0/R4"),o=r("aagx"),u=r("hswa").f,c=0,a=Object.isExtensible||function(){return!0},f=!r("eeVq")((function(){return a(Object.preventExtensions({}))})),s=function(t){u(t,e,{value:{i:"O"+ ++c,w:{}}})},l=t.exports={KEY:e,NEED:!1,fastKey:function(t,n){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,e)){if(!a(t))return"F";if(!n)return"E";s(t)}return t[e].i},getWeak:function(t,n){if(!o(t,e)){if(!a(t))return!0;if(!n)return!1;s(t)}return t[e].w},onFreeze:function(t){return f&&l.NEED&&a(t)&&!o(t,e)&&s(t),t}}},ZD67:function(t,n,r){"use strict";var e=r("3Lyj"),i=r("Z6vF").getWeak,o=r("y3w9"),u=r("0/R4"),c=r("9gX7"),a=r("SlkY"),f=r("CkkT"),s=r("aagx"),l=r("s5qY"),h=f(5),v=f(6),p=0,y=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},d=function(t,n){return h(t.a,(function(t){return t[0]===n}))};g.prototype={get:function(t){var n=d(this,t);if(n)return n[1]},has:function(t){return!!d(this,t)},set:function(t,n){var r=d(this,t);r?r[1]=n:this.a.push([t,n])},delete:function(t){var n=v(this.a,(function(n){return n[0]===t}));return~n&&this.a.splice(n,1),!!~n}},t.exports={getConstructor:function(t,n,r,o){var f=t((function(t,e){c(t,f,n,"_i"),t._t=n,t._i=p++,t._l=void 0,null!=e&&a(e,r,t[o],t)}));return e(f.prototype,{delete:function(t){if(!u(t))return!1;var r=i(t);return!0===r?y(l(this,n)).delete(t):r&&s(r,this._i)&&delete r[this._i]},has:function(t){if(!u(t))return!1;var r=i(t);return!0===r?y(l(this,n)).has(t):r&&s(r,this._i)}}),f},def:function(t,n,r){var e=i(o(n),!0);return!0===e?y(t).set(n,r):e[t._i]=r,t},ufstore:y}},Zshi:function(t,n,r){var e=r("0/R4");r("Xtr8")("isFrozen",(function(t){return function(n){return!e(n)||!!t&&t(n)}}))},Zz4T:function(t,n,r){"use strict";r("OGtf")("sub",(function(t){return function(){return t(this,"sub","","")}}))},a1Th:function(t,n,r){"use strict";r("OEbY");var e=r("y3w9"),i=r("C/va"),o=r("nh4g"),u=/./.toString,c=function(t){r("KroJ")(RegExp.prototype,"toString",t,!0)};r("eeVq")((function(){return"/a/b"!=u.call({source:"a",flags:"b"})}))?c((function(){var t=e(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)})):"toString"!=u.name&&c((function(){return u.call(this)}))},aCFj:function(t,n,r){var e=r("Ymqv"),i=r("vhPU");t.exports=function(t){return e(i(t))}},aagx:function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},apmT:function(t,n,r){var e=r("0/R4");t.exports=function(t,n){if(!e(t))return t;var r,i;if(n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!e(i=r.call(t)))return i;if(!n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},"aqI/":function(t,n,r){r("7DDg")("Uint8",1,(function(t){return function(n,r,e){return t(this,n,r,e)}}),!0)},bBoP:function(t,n,r){var e=r("XKFU"),i=r("LVwc"),o=Math.exp;e(e.S+e.F*r("eeVq")((function(){return-2e-17!=!Math.sinh(-2e-17)})),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},bDcW:function(t,n,r){"use strict";r("OGtf")("fontcolor",(function(t){return function(n){return t(this,"font","color",n)}}))},bHtr:function(t,n,r){var e=r("XKFU");e(e.P,"Array",{fill:r("Nr18")}),r("nGyu")("fill")},bWfx:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(1);e(e.P+e.F*!r("LyE8")([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},czNK:function(t,n,r){"use strict";var e=r("nh4g"),i=r("DVgA"),o=r("JiEa"),u=r("UqcF"),c=r("S/j/"),a=r("Ymqv"),f=Object.assign;t.exports=!f||r("eeVq")((function(){var t={},n={},r=Symbol(),e="abcdefghijklmnopqrst";return t[r]=7,e.split("").forEach((function(t){n[t]=t})),7!=f({},t)[r]||Object.keys(f({},n)).join("")!=e}))?function(t,n){for(var r=c(t),f=arguments.length,s=1,l=o.f,h=u.f;f>s;)for(var v,p=a(arguments[s++]),y=l?i(p).concat(l(p)):i(p),g=y.length,d=0;g>d;)v=y[d++],e&&!h.call(p,v)||(r[v]=p[v]);return r}:f},"d/Gc":function(t,n,r){var e=r("RYi7"),i=Math.max,o=Math.min;t.exports=function(t,n){return(t=e(t))<0?i(t+n,0):o(t,n)}},"dE+T":function(t,n,r){var e=r("XKFU");e(e.P,"Array",{copyWithin:r("upKx")}),r("nGyu")("copyWithin")},dRSK:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(5),o=!0;"find"in[]&&Array(1).find((function(){o=!1})),e(e.P+e.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r("nGyu")("find")},"dZ+Y":function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(3);e(e.P+e.F*!r("LyE8")([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},dyZX:function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},e7yV:function(t,n,r){var e=r("aCFj"),i=r("kJMx").f,o={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return u&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return u.slice()}}(t):i(e(t))}},eHKK:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},eI33:function(t,n,r){var e=r("XKFU"),i=r("aCFj"),o=r("ne8i");e(e.S,"String",{raw:function(t){for(var n=i(t.raw),r=o(n.length),e=arguments.length,u=[],c=0;r>c;)u.push(String(n[c++])),c<e&&u.push(String(arguments[c]));return u.join("")}})},eM6i:function(t,n,r){var e=r("XKFU");e(e.S,"Date",{now:function(){return(new Date).getTime()}})},eUtF:function(t,n,r){t.exports=!r("jmDH")&&!r("KUxP")((function(){return 7!=Object.defineProperty(r("Hsns")("div"),"a",{get:function(){return 7}}).a}))},eaoh:function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},eeVq:function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},elZq:function(t,n,r){"use strict";var e=r("dyZX"),i=r("hswa"),o=r("nh4g"),u=r("K0xU")("species");t.exports=function(t){var n=e[t];o&&n&&!n[u]&&i.f(n,u,{configurable:!0,get:function(){return this}})}},eyMr:function(t,n,r){var e=r("2OiF"),i=r("S/j/"),o=r("Ymqv"),u=r("ne8i");t.exports=function(t,n,r,c,a){e(n);var f=i(t),s=o(f),l=u(f.length),h=a?l-1:0,v=a?-1:1;if(r<2)for(;;){if(h in s){c=s[h],h+=v;break}if(h+=v,a?h<0:l<=h)throw TypeError("Reduce of empty array with no initial value")}for(;a?h>=0:l>h;h+=v)h in s&&(c=n(c,s[h],h,f));return c}},"f/aN":function(t,n,r){"use strict";var e=r("XKFU"),i=r("y3w9"),o=function(t){this._t=i(t),this._i=0;var n,r=this._k=[];for(n in t)r.push(n)};r("QaDb")(o,"Object",(function(){var t,n=this._k;do{if(this._i>=n.length)return{value:void 0,done:!0}}while(!((t=n[this._i++])in this._t));return{value:t,done:!1}})),e(e.S,"Reflect",{enumerate:function(t){return new o(t)}})},"f3/d":function(t,n,r){var e=r("hswa").f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||r("nh4g")&&e(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},fA63:function(t,n,r){"use strict";r("qncB")("trimRight",(function(t){return function(){return t(this,2)}}),"trimEnd")},fN96:function(t,n,r){var e=r("XKFU");e(e.S,"Number",{isInteger:r("nBIS")})},fyDq:function(t,n,r){var e=r("hswa").f,i=r("aagx"),o=r("K0xU")("toStringTag");t.exports=function(t,n,r){t&&!i(t=r?t:t.prototype,o)&&e(t,o,{configurable:!0,value:n})}},fyVe:function(t,n,r){var e=r("XKFU"),i=r("1sa7"),o=Math.sqrt,u=Math.acosh;e(e.S+e.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))&&u(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},g2aq:function(t,n,r){"use strict";r("W9dy"),r("FDph"),r("Yp8f"),r("wYy3"),r("QNwp"),r("Izvi"),r("ln0Z"),r("wDwx"),r("+Xmh"),r("zFFn"),r("JbTB"),r("TIpR"),r("FxUG"),r("ls82")},g3g5:function(t,n){var r=t.exports={version:"2.6.10"};"number"==typeof __e&&(__e=r)},g4EE:function(t,n,r){"use strict";var e=r("y3w9"),i=r("apmT");t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return i(e(this),"number"!=t)}},g6HL:function(t,n){t.exports=Object.is||function(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n}},gHnn:function(t,n,r){var e=r("dyZX"),i=r("GZEu").set,o=e.MutationObserver||e.WebKitMutationObserver,u=e.process,c=e.Promise,a="process"==r("LZWt")(u);t.exports=function(){var t,n,r,f=function(){var e,i;for(a&&(e=u.domain)&&e.exit();t;){i=t.fn,t=t.next;try{i()}catch(e){throw t?r():n=void 0,e}}n=void 0,e&&e.enter()};if(a)r=function(){u.nextTick(f)};else if(!o||e.navigator&&e.navigator.standalone)if(c&&c.resolve){var s=c.resolve(void 0);r=function(){s.then(f)}}else r=function(){i.call(e,f)};else{var l=!0,h=document.createTextNode("");new o(f).observe(h,{characterData:!0}),r=function(){h.data=l=!l}}return function(e){var i={fn:e,next:void 0};n&&(n.next=i),t||(t=i,r()),n=i}}},"h/M4":function(t,n,r){var e=r("XKFU");e(e.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},h7Nl:function(t,n,r){var e=Date.prototype,i=e.toString,o=e.getTime;new Date(NaN)+""!="Invalid Date"&&r("KroJ")(e,"toString",(function(){var t=o.call(this);return t==t?i.call(this):"Invalid Date"}))},hEkN:function(t,n,r){"use strict";r("OGtf")("anchor",(function(t){return function(n){return t(this,"a","name",n)}}))},hHhE:function(t,n,r){var e=r("XKFU");e(e.S,"Object",{create:r("Kuth")})},hLT2:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},hPIQ:function(t,n){t.exports={}},hhXQ:function(t,n,r){var e=r("XKFU"),i=r("UExd")(!1);e(e.S,"Object",{values:function(t){return i(t)}})},hswa:function(t,n,r){var e=r("y3w9"),i=r("xpql"),o=r("apmT"),u=Object.defineProperty;n.f=r("nh4g")?Object.defineProperty:function(t,n,r){if(e(t),n=o(n,!0),e(r),i)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},i5dc:function(t,n,r){var e=r("0/R4"),i=r("y3w9"),o=function(t,n){if(i(t),!e(n)&&null!==n)throw TypeError(n+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,e){try{(e=r("m0Pp")(Function.call,r("EemH").f(Object.prototype,"__proto__").set,2))(t,[]),n=!(t instanceof Array)}catch(t){n=!0}return function(t,r){return o(t,r),n?t.__proto__=r:e(t,r),t}}({},!1):void 0),check:o}},iMoV:function(t,n,r){var e=r("hswa"),i=r("XKFU"),o=r("y3w9"),u=r("apmT");i(i.S+i.F*r("eeVq")((function(){Reflect.defineProperty(e.f({},1,{value:1}),1,{value:2})})),"Reflect",{defineProperty:function(t,n,r){o(t),n=u(n,!0),o(r);try{return e.f(t,n,r),!0}catch(t){return!1}}})},ioFf:function(t,n,r){"use strict";var e=r("dyZX"),i=r("aagx"),o=r("nh4g"),u=r("XKFU"),c=r("KroJ"),a=r("Z6vF").KEY,f=r("eeVq"),s=r("VTer"),l=r("fyDq"),h=r("ylqs"),v=r("K0xU"),p=r("N8g3"),y=r("OnI7"),g=r("1MBn"),d=r("EWmC"),x=r("y3w9"),m=r("0/R4"),b=r("S/j/"),w=r("aCFj"),F=r("apmT"),S=r("RjD/"),E=r("Kuth"),O=r("e7yV"),U=r("EemH"),_=r("JiEa"),P=r("hswa"),M=r("DVgA"),K=U.f,j=P.f,X=O.f,A=e.Symbol,I=e.JSON,L=I&&I.stringify,R=v("_hidden"),T=v("toPrimitive"),N={}.propertyIsEnumerable,k=s("symbol-registry"),D=s("symbols"),V=s("op-symbols"),C=Object.prototype,q="function"==typeof A&&!!_.f,Z=e.QObject,W=!Z||!Z.prototype||!Z.prototype.findChild,G=o&&f((function(){return 7!=E(j({},"a",{get:function(){return j(this,"a",{value:7}).a}})).a}))?function(t,n,r){var e=K(C,n);e&&delete C[n],j(t,n,r),e&&t!==C&&j(C,n,e)}:j,Y=function(t){var n=D[t]=E(A.prototype);return n._k=t,n},B=q&&"symbol"==typeof A.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof A},z=function(t,n,r){return t===C&&z(V,n,r),x(t),n=F(n,!0),x(r),i(D,n)?(r.enumerable?(i(t,R)&&t[R][n]&&(t[R][n]=!1),r=E(r,{enumerable:S(0,!1)})):(i(t,R)||j(t,R,S(1,{})),t[R][n]=!0),G(t,n,r)):j(t,n,r)},J=function(t,n){x(t);for(var r,e=g(n=w(n)),i=0,o=e.length;o>i;)z(t,r=e[i++],n[r]);return t},H=function(t){var n=N.call(this,t=F(t,!0));return!(this===C&&i(D,t)&&!i(V,t))&&(!(n||!i(this,t)||!i(D,t)||i(this,R)&&this[R][t])||n)},Q=function(t,n){if(t=w(t),n=F(n,!0),t!==C||!i(D,n)||i(V,n)){var r=K(t,n);return!r||!i(D,n)||i(t,R)&&t[R][n]||(r.enumerable=!0),r}},$=function(t){for(var n,r=X(w(t)),e=[],o=0;r.length>o;)i(D,n=r[o++])||n==R||n==a||e.push(n);return e},tt=function(t){for(var n,r=t===C,e=X(r?V:w(t)),o=[],u=0;e.length>u;)!i(D,n=e[u++])||r&&!i(C,n)||o.push(D[n]);return o};q||(c((A=function(){if(this instanceof A)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),n=function(r){this===C&&n.call(V,r),i(this,R)&&i(this[R],t)&&(this[R][t]=!1),G(this,t,S(1,r))};return o&&W&&G(C,t,{configurable:!0,set:n}),Y(t)}).prototype,"toString",(function(){return this._k})),U.f=Q,P.f=z,r("kJMx").f=O.f=$,r("UqcF").f=H,_.f=tt,o&&!r("LQAc")&&c(C,"propertyIsEnumerable",H,!0),p.f=function(t){return Y(v(t))}),u(u.G+u.W+u.F*!q,{Symbol:A});for(var nt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;nt.length>rt;)v(nt[rt++]);for(var et=M(v.store),it=0;et.length>it;)y(et[it++]);u(u.S+u.F*!q,"Symbol",{for:function(t){return i(k,t+="")?k[t]:k[t]=A(t)},keyFor:function(t){if(!B(t))throw TypeError(t+" is not a symbol!");for(var n in k)if(k[n]===t)return n},useSetter:function(){W=!0},useSimple:function(){W=!1}}),u(u.S+u.F*!q,"Object",{create:function(t,n){return void 0===n?E(t):J(E(t),n)},defineProperty:z,defineProperties:J,getOwnPropertyDescriptor:Q,getOwnPropertyNames:$,getOwnPropertySymbols:tt});var ot=f((function(){_.f(1)}));u(u.S+u.F*ot,"Object",{getOwnPropertySymbols:function(t){return _.f(b(t))}}),I&&u(u.S+u.F*(!q||f((function(){var t=A();return"[null]"!=L([t])||"{}"!=L({a:t})||"{}"!=L(Object(t))}))),"JSON",{stringify:function(t){for(var n,r,e=[t],i=1;arguments.length>i;)e.push(arguments[i++]);if(r=n=e[1],(m(n)||void 0!==t)&&!B(t))return d(n)||(n=function(t,n){if("function"==typeof r&&(n=r.call(this,t,n)),!B(n))return n}),e[1]=n,L.apply(I,e)}}),A.prototype[T]||r("Mukb")(A.prototype,T,A.prototype.valueOf),l(A,"Symbol"),l(Math,"Math",!0),l(e.JSON,"JSON",!0)},jm62:function(t,n,r){var e=r("XKFU"),i=r("mQtv"),o=r("aCFj"),u=r("EemH"),c=r("8a7r");e(e.S,"Object",{getOwnPropertyDescriptors:function(t){for(var n,r,e=o(t),a=u.f,f=i(e),s={},l=0;f.length>l;)void 0!==(r=a(e,n=f[l++]))&&c(s,n,r);return s}})},jmDH:function(t,n,r){t.exports=!r("KUxP")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},jqX0:function(t,n,r){var e=r("XKFU"),i=r("jtBr");e(e.P+e.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},jtBr:function(t,n,r){"use strict";var e=r("eeVq"),i=Date.prototype.getTime,o=Date.prototype.toISOString,u=function(t){return t>9?t:"0"+t};t.exports=e((function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))}))||!e((function(){o.call(new Date(NaN))}))?function(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),r=t.getUTCMilliseconds(),e=n<0?"-":n>9999?"+":"";return e+("00000"+Math.abs(n)).slice(e?-6:-4)+"-"+u(t.getUTCMonth()+1)+"-"+u(t.getUTCDate())+"T"+u(t.getUTCHours())+":"+u(t.getUTCMinutes())+":"+u(t.getUTCSeconds())+"."+(r>99?r:"0"+u(r))+"Z"}:o},kJMx:function(t,n,r){var e=r("zhAb"),i=r("4R4u").concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return e(t,i)}},kcoS:function(t,n,r){var e=r("lvtm"),i=Math.pow,o=i(2,-52),u=i(2,-23),c=i(2,127)*(2-u),a=i(2,-126);t.exports=Math.fround||function(t){var n,r,i=Math.abs(t),f=e(t);return i<a?f*(i/a/u+1/o-1/o)*a*u:(r=(n=(1+u/o)*i)-(n-i))>c||r!=r?f*(1/0):f*r}},klPD:function(t,n,r){var e=r("hswa"),i=r("EemH"),o=r("OP3Y"),u=r("aagx"),c=r("XKFU"),a=r("RjD/"),f=r("y3w9"),s=r("0/R4");c(c.S,"Reflect",{set:function t(n,r,c){var l,h,v=arguments.length<4?n:arguments[3],p=i.f(f(n),r);if(!p){if(s(h=o(n)))return t(h,r,c,v);p=a(0)}if(u(p,"value")){if(!1===p.writable||!s(v))return!1;if(l=i.f(v,r)){if(l.get||l.set||!1===l.writable)return!1;l.value=c,e.f(v,r,l)}else e.f(v,r,a(0,c));return!0}return void 0!==p.set&&(p.set.call(v,c),!0)}})},knU9:function(t,n,r){var e=r("XKFU"),i=r("i5dc");i&&e(e.S,"Reflect",{setPrototypeOf:function(t,n){i.check(t,n);try{return i.set(t,n),!0}catch(t){return!1}}})},knhD:function(t,n,r){var e=r("XKFU");e(e.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},l0Rn:function(t,n,r){"use strict";var e=r("RYi7"),i=r("vhPU");t.exports=function(t){var n=String(i(this)),r="",o=e(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(n+=n))1&o&&(r+=n);return r}},ln0Z:function(t,n,r){r("fA63"),t.exports=r("g3g5").String.trimRight},ls82:function(t,n,r){var e=function(t){"use strict";var n,r=Object.prototype,e=r.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function a(t,n,r,e){var i=n&&n.prototype instanceof y?n:y,o=Object.create(i.prototype),u=new _(e||[]);return o._invoke=function(t,n,r){var e=s;return function(i,o){if(e===h)throw new Error("Generator is already running");if(e===v){if("throw"===i)throw o;return M()}for(r.method=i,r.arg=o;;){var u=r.delegate;if(u){var c=E(u,r);if(c){if(c===p)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(e===s)throw e=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);e=h;var a=f(t,n,r);if("normal"===a.type){if(e=r.done?v:l,a.arg===p)continue;return{value:a.arg,done:r.done}}"throw"===a.type&&(e=v,r.method="throw",r.arg=a.arg)}}}(t,r,u),o}function f(t,n,r){try{return{type:"normal",arg:t.call(n,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=a;var s="suspendedStart",l="suspendedYield",h="executing",v="completed",p={};function y(){}function g(){}function d(){}var x={};x[o]=function(){return this};var m=Object.getPrototypeOf,b=m&&m(m(P([])));b&&b!==r&&e.call(b,o)&&(x=b);var w=d.prototype=y.prototype=Object.create(x);function F(t){["next","throw","return"].forEach((function(n){t[n]=function(t){return this._invoke(n,t)}}))}function S(t){var n;this._invoke=function(r,i){function o(){return new Promise((function(n,o){!function n(r,i,o,u){var c=f(t[r],t,i);if("throw"!==c.type){var a=c.arg,s=a.value;return s&&"object"==typeof s&&e.call(s,"__await")?Promise.resolve(s.__await).then((function(t){n("next",t,o,u)}),(function(t){n("throw",t,o,u)})):Promise.resolve(s).then((function(t){a.value=t,o(a)}),(function(t){return n("throw",t,o,u)}))}u(c.arg)}(r,i,n,o)}))}return n=n?n.then(o,o):o()}}function E(t,r){var e=t.iterator[r.method];if(e===n){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=n,E(t,r),"throw"===r.method))return p;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var i=f(e,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,p;var o=i.arg;return o?o.done?(r[t.resultName]=o.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=n),r.delegate=null,p):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,p)}function O(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function U(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function P(t){if(t){var r=t[o];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,u=function r(){for(;++i<t.length;)if(e.call(t,i))return r.value=t[i],r.done=!1,r;return r.value=n,r.done=!0,r};return u.next=u}}return{next:M}}function M(){return{value:n,done:!0}}return g.prototype=w.constructor=d,d.constructor=g,d[c]=g.displayName="GeneratorFunction",t.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===g||"GeneratorFunction"===(n.displayName||n.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(w),t},t.awrap=function(t){return{__await:t}},F(S.prototype),S.prototype[u]=function(){return this},t.AsyncIterator=S,t.async=function(n,r,e,i){var o=new S(a(n,r,e,i));return t.isGeneratorFunction(r)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},F(w),w[c]="Generator",w[o]=function(){return this},w.toString=function(){return"[object Generator]"},t.keys=function(t){var n=[];for(var r in t)n.push(r);return n.reverse(),function r(){for(;n.length;){var e=n.pop();if(e in t)return r.value=e,r.done=!1,r}return r.done=!0,r}},t.values=P,_.prototype={constructor:_,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(U),!t)for(var r in this)"t"===r.charAt(0)&&e.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function i(e,i){return c.type="throw",c.arg=t,r.next=e,i&&(r.method="next",r.arg=n),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var u=this.tryEntries[o],c=u.completion;if("root"===u.tryLoc)return i("end");if(u.tryLoc<=this.prev){var a=e.call(u,"catchLoc"),f=e.call(u,"finallyLoc");if(a&&f){if(this.prev<u.catchLoc)return i(u.catchLoc,!0);if(this.prev<u.finallyLoc)return i(u.finallyLoc)}else if(a){if(this.prev<u.catchLoc)return i(u.catchLoc,!0)}else{if(!f)throw new Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return i(u.finallyLoc)}}}},abrupt:function(t,n){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&e.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=n&&n<=o.finallyLoc&&(o=null);var u=o?o.completion:{};return u.type=t,u.arg=n,o?(this.method="next",this.next=o.finallyLoc,p):this.complete(u)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),p},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),U(r),p}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc===t){var e=r.completion;if("throw"===e.type){var i=e.arg;U(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,e){return this.delegate={iterator:P(t),resultName:r,nextLoc:e},"next"===this.method&&(this.arg=n),p}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},lvtm:function(t,n){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},m0Pp:function(t,n,r){var e=r("2OiF");t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,i){return t.call(n,r,e,i)}}return function(){return t.apply(n,arguments)}}},mGWK:function(t,n,r){"use strict";var e=r("XKFU"),i=r("aCFj"),o=r("RYi7"),u=r("ne8i"),c=[].lastIndexOf,a=!!c&&1/[1].lastIndexOf(1,-0)<0;e(e.P+e.F*(a||!r("LyE8")(c)),"Array",{lastIndexOf:function(t){if(a)return c.apply(this,arguments)||0;var n=i(this),r=u(n.length),e=r-1;for(arguments.length>1&&(e=Math.min(e,o(arguments[1]))),e<0&&(e=r+e);e>=0;e--)if(e in n&&n[e]===t)return e||0;return-1}})},mQtv:function(t,n,r){var e=r("kJMx"),i=r("JiEa"),o=r("y3w9"),u=r("dyZX").Reflect;t.exports=u&&u.ownKeys||function(t){var n=e.f(o(t)),r=i.f;return r?n.concat(r(t)):n}},mYba:function(t,n,r){var e=r("aCFj"),i=r("EemH").f;r("Xtr8")("getOwnPropertyDescriptor",(function(){return function(t,n){return i(e(t),n)}}))},mura:function(t,n,r){var e=r("0/R4"),i=r("Z6vF").onFreeze;r("Xtr8")("preventExtensions",(function(t){return function(n){return t&&e(n)?t(i(n)):n}}))},nBIS:function(t,n,r){var e=r("0/R4"),i=Math.floor;t.exports=function(t){return!e(t)&&isFinite(t)&&i(t)===t}},nCnK:function(t,n,r){r("7DDg")("Uint32",4,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},nGyu:function(t,n,r){var e=r("K0xU")("unscopables"),i=Array.prototype;null==i[e]&&r("Mukb")(i,e,{}),t.exports=function(t){i[e][t]=!0}},nICZ:function(t,n){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},nIY7:function(t,n,r){"use strict";r("OGtf")("big",(function(t){return function(){return t(this,"big","","")}}))},ne8i:function(t,n,r){var e=r("RYi7"),i=Math.min;t.exports=function(t){return t>0?i(e(t),9007199254740991):0}},nh4g:function(t,n,r){t.exports=!r("eeVq")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},nsiH:function(t,n,r){"use strict";r("OGtf")("fontsize",(function(t){return function(n){return t(this,"font","size",n)}}))},nzyx:function(t,n,r){var e=r("XKFU"),i=r("LVwc");e(e.S+e.F*(i!=Math.expm1),"Math",{expm1:i})},oDIu:function(t,n,r){"use strict";var e=r("XKFU"),i=r("AvRE")(!1);e(e.P,"String",{codePointAt:function(t){return i(this,t)}})},"oZ/O":function(t,n,r){var e=r("XKFU"),i=r("y3w9"),o=Object.preventExtensions;e(e.S,"Reflect",{preventExtensions:function(t){i(t);try{return o&&o(t),!0}catch(t){return!1}}})},ol8x:function(t,n,r){var e=r("dyZX").navigator;t.exports=e&&e.userAgent||""},pIFo:function(t,n,r){"use strict";var e=r("y3w9"),i=r("S/j/"),o=r("ne8i"),u=r("RYi7"),c=r("A5AN"),a=r("Xxuz"),f=Math.max,s=Math.min,l=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,v=/\$([$&`']|\d\d?)/g;r("IU+Z")("replace",2,(function(t,n,r,p){return[function(e,i){var o=t(this),u=null==e?void 0:e[n];return void 0!==u?u.call(e,o,i):r.call(String(o),e,i)},function(t,n){var i=p(r,t,this,n);if(i.done)return i.value;var l=e(t),h=String(this),v="function"==typeof n;v||(n=String(n));var g=l.global;if(g){var d=l.unicode;l.lastIndex=0}for(var x=[];;){var m=a(l,h);if(null===m)break;if(x.push(m),!g)break;""===String(m[0])&&(l.lastIndex=c(h,o(l.lastIndex),d))}for(var b,w="",F=0,S=0;S<x.length;S++){m=x[S];for(var E=String(m[0]),O=f(s(u(m.index),h.length),0),U=[],_=1;_<m.length;_++)U.push(void 0===(b=m[_])?b:String(b));var P=m.groups;if(v){var M=[E].concat(U,O,h);void 0!==P&&M.push(P);var K=String(n.apply(void 0,M))}else K=y(E,h,O,U,P,n);O>=F&&(w+=h.slice(F,O)+K,F=O+E.length)}return w+h.slice(F)}];function y(t,n,e,o,u,c){var a=e+t.length,f=o.length,s=v;return void 0!==u&&(u=i(u),s=h),r.call(c,s,(function(r,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,e);case"'":return n.slice(a);case"<":c=u[i.slice(1,-1)];break;default:var s=+i;if(0===s)return r;if(s>f){var h=l(s/10);return 0===h?r:h<=f?void 0===o[h-1]?i.charAt(1):o[h-1]+i.charAt(1):r}c=o[s-1]}return void 0===c?"":c}))}}))},pbhE:function(t,n,r){"use strict";var e=r("2OiF");function i(t){var n,r;this.promise=new t((function(t,e){if(void 0!==n||void 0!==r)throw TypeError("Bad Promise constructor");n=t,r=e})),this.resolve=e(n),this.reject=e(r)}t.exports.f=function(t){return new i(t)}},"pp/T":function(t,n,r){var e=r("XKFU");e(e.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},qncB:function(t,n,r){var e=r("XKFU"),i=r("vhPU"),o=r("eeVq"),u=r("/e88"),c="["+u+"]",a=RegExp("^"+c+c+"*"),f=RegExp(c+c+"*$"),s=function(t,n,r){var i={},c=o((function(){return!!u[t]()||"​…"!="​…"[t]()})),a=i[t]=c?n(l):u[t];r&&(i[r]=a),e(e.P+e.F*c,"String",i)},l=s.trim=function(t,n){return t=String(i(t)),1&n&&(t=t.replace(a,"")),2&n&&(t=t.replace(f,"")),t};t.exports=s},quPj:function(t,n,r){var e=r("0/R4"),i=r("LZWt"),o=r("K0xU")("match");t.exports=function(t){var n;return e(t)&&(void 0!==(n=t[o])?!!n:"RegExp"==i(t))}},r1bV:function(t,n,r){r("7DDg")("Uint16",2,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},rE2o:function(t,n,r){r("OnI7")("asyncIterator")},rGqo:function(t,n,r){for(var e=r("yt8O"),i=r("DVgA"),o=r("KroJ"),u=r("dyZX"),c=r("Mukb"),a=r("hPIQ"),f=r("K0xU"),s=f("iterator"),l=f("toStringTag"),h=a.Array,v={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},p=i(v),y=0;y<p.length;y++){var g,d=p[y],x=v[d],m=u[d],b=m&&m.prototype;if(b&&(b[s]||c(b,s,h),b[l]||c(b,l,d),a[d]=h,x))for(g in e)b[g]||o(b,g,e[g],!0)}},rr1i:function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},rvZc:function(t,n,r){"use strict";var e=r("XKFU"),i=r("ne8i"),o=r("0sh+"),u="".endsWith;e(e.P+e.F*r("UUeW")("endsWith"),"String",{endsWith:function(t){var n=o(this,t,"endsWith"),r=arguments.length>1?arguments[1]:void 0,e=i(n.length),c=void 0===r?e:Math.min(i(r),e),a=String(t);return u?u.call(n,a,c):n.slice(c-a.length,c)===a}})},s5qY:function(t,n,r){var e=r("0/R4");t.exports=function(t,n){if(!e(t)||t._t!==n)throw TypeError("Incompatible receiver, "+n+" required!");return t}},sFw1:function(t,n,r){r("7DDg")("Int8",1,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},sMXx:function(t,n,r){"use strict";var e=r("Ugos");r("XKFU")({target:"RegExp",proto:!0,forced:e!==/./.exec},{exec:e})},sbF8:function(t,n,r){var e=r("XKFU"),i=r("nBIS"),o=Math.abs;e(e.S,"Number",{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},tUrg:function(t,n,r){"use strict";r("OGtf")("link",(function(t){return function(n){return t(this,"a","href",n)}}))},tuSo:function(t,n,r){r("7DDg")("Int32",4,(function(t){return function(n,r,e){return t(this,n,r,e)}}))},"tyy+":function(t,n,r){var e=r("XKFU"),i=r("11IZ");e(e.G+e.F*(parseFloat!=i),{parseFloat:i})},uhZd:function(t,n,r){var e=r("XKFU"),i=r("EemH").f,o=r("y3w9");e(e.S,"Reflect",{deleteProperty:function(t,n){var r=i(o(t),n);return!(r&&!r.configurable)&&delete t[n]}})},upKx:function(t,n,r){"use strict";var e=r("S/j/"),i=r("d/Gc"),o=r("ne8i");t.exports=[].copyWithin||function(t,n){var r=e(this),u=o(r.length),c=i(t,u),a=i(n,u),f=arguments.length>2?arguments[2]:void 0,s=Math.min((void 0===f?u:i(f,u))-a,u-c),l=1;for(a<c&&c<a+s&&(l=-1,a+=s-1,c+=s-1);s-- >0;)a in r?r[c]=r[a]:delete r[c],c+=l,a+=l;return r}},vKrd:function(t,n,r){var e=r("y3w9"),i=r("0/R4"),o=r("pbhE");t.exports=function(t,n){if(e(t),i(n)&&n.constructor===t)return n;var r=o.f(t);return(0,r.resolve)(n),r.promise}},vhPU:function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},vvmO:function(t,n,r){var e=r("LZWt");t.exports=function(t,n){if("number"!=typeof t&&"Number"!=e(t))throw TypeError(n);return+t}},w2a5:function(t,n,r){var e=r("aCFj"),i=r("ne8i"),o=r("d/Gc");t.exports=function(t){return function(n,r,u){var c,a=e(n),f=i(a.length),s=o(u,f);if(t&&r!=r){for(;f>s;)if((c=a[s++])!=c)return!0}else for(;f>s;s++)if((t||s in a)&&a[s]===r)return t||s||0;return!t&&-1}}},wCsR:function(t,n,r){"use strict";var e=r("ZD67"),i=r("s5qY");r("4LiD")("WeakSet",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return e.def(i(this,"WeakSet"),t,!0)}},e,!1,!0)},wDwx:function(t,n,r){r("rE2o"),t.exports=r("N8g3").f("asyncIterator")},wYy3:function(t,n,r){r("9XZr"),t.exports=r("g3g5").String.padStart},wmvG:function(t,n,r){"use strict";var e=r("hswa").f,i=r("Kuth"),o=r("3Lyj"),u=r("m0Pp"),c=r("9gX7"),a=r("SlkY"),f=r("Afnz"),s=r("1TsA"),l=r("elZq"),h=r("nh4g"),v=r("Z6vF").fastKey,p=r("s5qY"),y=h?"_s":"size",g=function(t,n){var r,e=v(n);if("F"!==e)return t._i[e];for(r=t._f;r;r=r.n)if(r.k==n)return r};t.exports={getConstructor:function(t,n,r,f){var s=t((function(t,e){c(t,s,n,"_i"),t._t=n,t._i=i(null),t._f=void 0,t._l=void 0,t[y]=0,null!=e&&a(e,r,t[f],t)}));return o(s.prototype,{clear:function(){for(var t=p(this,n),r=t._i,e=t._f;e;e=e.n)e.r=!0,e.p&&(e.p=e.p.n=void 0),delete r[e.i];t._f=t._l=void 0,t[y]=0},delete:function(t){var r=p(this,n),e=g(r,t);if(e){var i=e.n,o=e.p;delete r._i[e.i],e.r=!0,o&&(o.n=i),i&&(i.p=o),r._f==e&&(r._f=i),r._l==e&&(r._l=o),r[y]--}return!!e},forEach:function(t){p(this,n);for(var r,e=u(t,arguments.length>1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(e(r.v,r.k,this);r&&r.r;)r=r.p},has:function(t){return!!g(p(this,n),t)}}),h&&e(s.prototype,"size",{get:function(){return p(this,n)[y]}}),s},def:function(t,n,r){var e,i,o=g(t,n);return o?o.v=r:(t._l=o={i:i=v(n,!0),k:n,v:r,p:e=t._l,n:void 0,r:!1},t._f||(t._f=o),e&&(e.n=o),t[y]++,"F"!==i&&(t._i[i]=o)),t},getEntry:g,setStrong:function(t,n,r){f(t,n,(function(t,r){this._t=p(t,n),this._k=r,this._l=void 0}),(function(){for(var t=this._k,n=this._l;n&&n.r;)n=n.p;return this._t&&(this._l=n=n?n.n:this._t._f)?s(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(this._t=void 0,s(1))}),r?"entries":"values",!r,!0),l(n)}}},x8Yj:function(t,n,r){var e=r("XKFU"),i=r("LVwc"),o=Math.exp;e(e.S,"Math",{tanh:function(t){var n=i(t=+t),r=i(-t);return n==1/0?1:r==1/0?-1:(n-r)/(o(t)+o(-t))}})},x8ZO:function(t,n,r){var e=r("XKFU"),i=Math.abs;e(e.S,"Math",{hypot:function(t,n){for(var r,e,o=0,u=0,c=arguments.length,a=0;u<c;)a<(r=i(arguments[u++]))?(o=o*(e=a/r)*e+1,a=r):o+=r>0?(e=r/a)*e:r;return a===1/0?1/0:a*Math.sqrt(o)}})},"xF/b":function(t,n,r){"use strict";var e=r("EWmC"),i=r("0/R4"),o=r("ne8i"),u=r("m0Pp"),c=r("K0xU")("isConcatSpreadable");t.exports=function t(n,r,a,f,s,l,h,v){for(var p,y,g=s,d=0,x=!!h&&u(h,v,3);d<f;){if(d in a){if(p=x?x(a[d],d,r):a[d],y=!1,i(p)&&(y=void 0!==(y=p[c])?!!y:e(p)),y&&l>0)g=t(n,r,p,o(p.length),g,l-1)-1;else{if(g>=9007199254740991)throw TypeError();n[g]=p}g++}d++}return g}},xfY5:function(t,n,r){"use strict";var e=r("dyZX"),i=r("aagx"),o=r("LZWt"),u=r("Xbzi"),c=r("apmT"),a=r("eeVq"),f=r("kJMx").f,s=r("EemH").f,l=r("hswa").f,h=r("qncB").trim,v=e.Number,p=v,y=v.prototype,g="Number"==o(r("Kuth")(y)),d="trim"in String.prototype,x=function(t){var n=c(t,!1);if("string"==typeof n&&n.length>2){var r,e,i,o=(n=d?n.trim():h(n,3)).charCodeAt(0);if(43===o||45===o){if(88===(r=n.charCodeAt(2))||120===r)return NaN}else if(48===o){switch(n.charCodeAt(1)){case 66:case 98:e=2,i=49;break;case 79:case 111:e=8,i=55;break;default:return+n}for(var u,a=n.slice(2),f=0,s=a.length;f<s;f++)if((u=a.charCodeAt(f))<48||u>i)return NaN;return parseInt(a,e)}}return+n};if(!v(" 0o1")||!v("0b1")||v("+0x1")){v=function(t){var n=arguments.length<1?0:t,r=this;return r instanceof v&&(g?a((function(){y.valueOf.call(r)})):"Number"!=o(r))?u(new p(x(n)),r,v):x(n)};for(var m,b=r("nh4g")?f(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;b.length>w;w++)i(p,m=b[w])&&!i(v,m)&&l(v,m,s(p,m));v.prototype=y,y.constructor=v,r("KroJ")(e,"Number",v)}},xm80:function(t,n,r){"use strict";var e=r("XKFU"),i=r("D4iV"),o=r("7Qtz"),u=r("y3w9"),c=r("d/Gc"),a=r("ne8i"),f=r("0/R4"),s=r("dyZX").ArrayBuffer,l=r("69bn"),h=o.ArrayBuffer,v=o.DataView,p=i.ABV&&s.isView,y=h.prototype.slice,g=i.VIEW;e(e.G+e.W+e.F*(s!==h),{ArrayBuffer:h}),e(e.S+e.F*!i.CONSTR,"ArrayBuffer",{isView:function(t){return p&&p(t)||f(t)&&g in t}}),e(e.P+e.U+e.F*r("eeVq")((function(){return!new h(2).slice(1,void 0).byteLength})),"ArrayBuffer",{slice:function(t,n){if(void 0!==y&&void 0===n)return y.call(u(this),t);for(var r=u(this).byteLength,e=c(t,r),i=c(void 0===n?r:n,r),o=new(l(this,h))(a(i-e)),f=new v(this),s=new v(o),p=0;e<i;)s.setUint8(p++,f.getUint8(e++));return o}}),r("elZq")("ArrayBuffer")},xpiv:function(t,n,r){var e=r("XKFU");e(e.S,"Reflect",{ownKeys:r("mQtv")})},xpql:function(t,n,r){t.exports=!r("nh4g")&&!r("eeVq")((function(){return 7!=Object.defineProperty(r("Iw71")("div"),"a",{get:function(){return 7}}).a}))},y3w9:function(t,n,r){var e=r("0/R4");t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},yM4b:function(t,n,r){var e=r("K0xU")("toPrimitive"),i=Date.prototype;e in i||r("Mukb")(i,e,r("g4EE"))},ylqs:function(t,n){var r=0,e=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+e).toString(36))}},yt8O:function(t,n,r){"use strict";var e=r("nGyu"),i=r("1TsA"),o=r("hPIQ"),u=r("aCFj");t.exports=r("Afnz")(Array,"Array",(function(t,n){this._t=u(t),this._i=0,this._k=n}),(function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):i(0,"keys"==n?r:"values"==n?t[r]:[r,t[r]])}),"values"),o.Arguments=o.Array,e("keys"),e("values"),e("entries")},z2o2:function(t,n,r){var e=r("0/R4"),i=r("Z6vF").onFreeze;r("Xtr8")("seal",(function(t){return function(n){return t&&e(n)?t(i(n)):n}}))},zFFn:function(t,n,r){r("hhXQ"),t.exports=r("g3g5").Object.values},zRwo:function(t,n,r){var e=r("6FMO");t.exports=function(t,n){return new(e(t))(n)}},zhAb:function(t,n,r){var e=r("aagx"),i=r("aCFj"),o=r("w2a5")(!1),u=r("YTvA")("IE_PROTO");t.exports=function(t,n){var r,c=i(t),a=0,f=[];for(r in c)r!=u&&e(c,r)&&f.push(r);for(;n.length>a;)e(c,r=n[a++])&&(~o(f,r)||f.push(r));return f}}});
public/js/mollie-components.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/public/js/",t(t.s="hgRJ")}({hgRJ:function(e,n){var t=".cardToken",r=".mollie-components",o="form",c=".wc_payment_methods",a="#mollie-notice";function u(){return!1}function i(e){return e?e.querySelector(c):null}function l(e,n){return n?n.querySelector(".payment_method_mollie_wc_gateway_".concat(e)):null}function s(e){return e?e.querySelector(a):null}function f(e){return e?e.querySelector(r):null}function m(e,n){var t,r,o,c=y(i(document)).parentNode||null,a=s(document),u=(r=(t=n).content,o=t.type,'\n <div id="mollie-notice" class="woocommerce-'.concat(o,'">\n ').concat(r,"\n </div>\n "));a&&a.remove(),c?(c.insertAdjacentHTML("beforebegin",u),function(e){var n=s(document);n||(n=i(document));e.scroll_to_notices(e(n))}(e)):alert(n.content)}function d(e){var n,r,o;return regeneratorRuntime.async((function(c){for(;;)switch(c.prev=c.next){case 0:return c.next=2,regeneratorRuntime.awrap(e.createToken(t));case 2:if(n=c.sent,r=n.token,!(o=n.error)){c.next=7;break}throw new Error(o.message||"");case 7:return c.abrupt("return",r);case 8:case"end":return c.stop()}}))}function p(e,n){n&&(n.value=e,n.setAttribute("value",e))}function y(e){return e?e.closest(o):null}function b(e){e.off("checkout_place_order",u),e.off("submit",g)}function v(e){var n=l(e,document),t=n?n.querySelector("#payment_method_mollie_wc_gateway_".concat(e)):null;return t&&t.checked||!1}function g(e){var n,r,o,c,a,u,i,l,s,f,g,_,h;return regeneratorRuntime.async((function(w){for(;;)switch(w.prev=w.next){case 0:if(n="",r=e.data,o=r.jQuery,c=r.mollie,a=r.gateway,u=r.gatewayContainer,i=r.messages,l=y(u),s=o(l),f=o(document.body),v(a)){w.next=9;break}return b(s),s.submit(),w.abrupt("return");case 9:return e.preventDefault(),e.stopImmediatePropagation(),w.prev=11,w.next=14,regeneratorRuntime.awrap(d(c));case 14:n=w.sent,w.next=24;break;case 17:return w.prev=17,w.t0=w.catch(11),g=w.t0,_=g.message,message=void 0===_?i.defaultErrorMessage:_,(h=g)&&m(o,{content:h,type:"error"}),s.removeClass("processing").unblock(),f.trigger("checkout_error"),w.abrupt("return");case 24:b(s),n&&p(n,u.querySelector(t)),s.submit();case 27:case"end":return w.stop()}}),null,null,[[11,17]])}function _(e,n,t,r,o){t.forEach((function(t){return function(e,n,t,r,o){var c=t.name,a=function(e,n,t,r){var o;return r.has(e)&&(o=r.get(e)),o||(o=n.createComponent(e,t)),o}(c,e,n,r);f(o).insertAdjacentHTML("beforeend",'<div id="'.concat(c,'"></div>')),a.mount("#".concat(c));var u,i,l=(u=c,(i=o)?i.querySelector(".mollie-component--".concat(u)):null);l?(!function(e,n){var t=n.label;e.insertAdjacentHTML("beforebegin",'<b class="mollie-component-label">'.concat(t,"</b>"))}(l,t),function(e,n){var t=n.name;e.insertAdjacentHTML("afterend",'<div role="alert" id="'.concat(t,'-errors"></div>'))}(l,t),!r.has(c)&&r.set(c,a)):console.warn("Component ".concat(c," not found in the DOM. Probably had problem during mount."))}(e,n,t,r,o)}))}!function(e){var n=e._,t=e.Mollie,r=e.mollieComponentsSettings,o=e.jQuery;if(!n.isEmpty(r)&&n.isFunction(t)){var c="updated_checkout",a=new Map,i=o(document),s=r.merchantProfileId,m=r.options,d=r.isCheckoutPayPage,p=new t(s,m);d&&(c="payment_method_selected"),i.on(c,(function(){return function(e,n,t,r){t.options,t.merchantProfileId;var o=t.componentsSettings,c=t.componentsAttributes,a=t.enabledGateways,i=t.messages;!function(e){e.forEach((function(e){return e.unmount()}))}(r),a.forEach((function(t){var a,s=l(t,document),m=f(s),d=y(s),p=e(d);s?d?(b(p),(a=m)&&(a.innerText=""),function(e){e.insertAdjacentHTML("beforeend",'<input type="hidden" name="cardToken" class="cardToken" value="" />')}(m),_(n,o[t],c,r,s),p.on("checkout_place_order",u),p.on("submit",null,{jQuery:e,mollie:n,gateway:t,gatewayContainer:s,messages:i},g)):console.warn("Cannot initialize Mollie Components, no form found."):console.warn("Cannot initialize Mollie Components for gateway ".concat(t,"."))}))}(o,p,r,a)}))}}(window)}});
{assets → public}/js/settings.min.js RENAMED
@@ -1 +1 @@
1
- !function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t){jQuery((function(e){e("#mollie-payments-for-woocommerce_test_mode_enabled").change((function(){e(this).is(":checked")?e("#mollie-payments-for-woocommerce_test_api_key").attr("required",!0).closest("tr").show():e("#mollie-payments-for-woocommerce_test_api_key").removeAttr("required").closest("tr").hide()})).change()}))}]);
1
+ !function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/public/js/",r(r.s="Hiql")}({Hiql:function(e,t){jQuery((function(e){e("#mollie-payments-for-woocommerce_test_mode_enabled").change((function(){e(this).is(":checked")?e("#mollie-payments-for-woocommerce_test_api_key").attr("required",!0).closest("tr").show():e("#mollie-payments-for-woocommerce_test_api_key").removeAttr("required").closest("tr").hide()})).change()}))}});
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Mollie Payments for WooCommerce ===
2
- Contributors: daanvm, danielhuesken, davdebcom, dinamiko, inpsyde, l.vangunst, ndijkstra, robin-mollie, wido
3
  Tags: mollie, payments, payment gateway, woocommerce, credit card, ideal, bancontact, klarna, sofort, giropay, woocommerce subscriptions
4
  Requires at least: 3.8
5
  Tested up to: 5.3
6
- Stable tag: 5.4.2
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -181,6 +181,16 @@ Automatic updates should work like a charm; as always though, ensure you backup
181
 
182
  == Changelog ==
183
 
 
 
 
 
 
 
 
 
 
 
184
  = 5.4.2 - 09-12-2019 =
185
 
186
  * Fix - Mollie crash when WooCommerce plugin is not active
1
  === Mollie Payments for WooCommerce ===
2
+ Contributors: daanvm, danielhuesken, davdebcom, dinamiko, inpsyde, l.vangunst, ndijkstra, robin-mollie, wido, carmen222
3
  Tags: mollie, payments, payment gateway, woocommerce, credit card, ideal, bancontact, klarna, sofort, giropay, woocommerce subscriptions
4
  Requires at least: 3.8
5
  Tested up to: 5.3
6
+ Stable tag: 5.5.0
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
181
 
182
  == Changelog ==
183
 
184
+ = 5.5.0 - 11-03-2020 =
185
+
186
+ * Add - Use key instead of id to retrieve order onMollieReturn event webhooks
187
+ * Tweak - Page load performance improvements
188
+ * Tweak - Improve payment methods icons delivery mechanism by rely on cloud and fallback to static images
189
+ * Fix - Null pointer exception in case getActiveMolliePayment returns null
190
+ * Fix - WooCommerce order status can be modified via Mollie webhook without taking into account possible changes in WooCommerce
191
+ * Fix - 404 response during redirection on checkout when Polylang plugin is active
192
+ * Fix - Handle domain with non-ASCII characters
193
+
194
  = 5.4.2 - 09-12-2019 =
195
 
196
  * Fix - Mollie crash when WooCommerce plugin is not active
src/Mollie/WC/Gateway/Abstract.php CHANGED
@@ -150,21 +150,14 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
150
  /**
151
  * @return string
152
  */
153
- public function getIconUrl ()
154
  {
155
- // In checkout, show the creditcards.svg with multiple logo's
156
- if ( $this->getMollieMethodId() === PaymentMethod::CREDITCARD && !is_admin()) {
157
- return Mollie_WC_Plugin::getPluginUrl('assets/images/' . $this->getMollieMethodId() . 's.svg');
158
- }
159
- return Mollie_WC_Plugin::getPluginUrl('assets/images/' . $this->getMollieMethodId() . '.svg');
160
- }
161
 
162
- /**
163
- * @return string
164
- */
165
- public function getIssuerIconUrl( $issuer_id ) {
166
- return Mollie_WC_Plugin::getPluginUrl( 'assets/images/' . $issuer_id . '.svg' );
167
- }
168
 
169
  protected function _initIcon ()
170
  {
@@ -1252,20 +1245,15 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
1252
  *
1253
  * @return string
1254
  */
1255
- public function getReturnRedirectUrlForOrder( WC_Order $order ) {
1256
-
1257
- // Get order ID in the correct way depending on WooCommerce version
1258
- if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
1259
- $order_id = $order->id;
1260
- } else {
1261
- $order_id = $order->get_id();
1262
- }
1263
-
1264
- Mollie_WC_Plugin::debug( __METHOD__ . " $order_id: Determine what the redirect URL in WooCommerce should be." );
1265
 
1266
- if ( $this->orderNeedsPayment( $order ) ) {
1267
 
1268
- $hasCancelledMolliePayment = Mollie_WC_Plugin::getPaymentObject()->getCancelledMolliePaymentId( $order_id );
1269
 
1270
  if ( $hasCancelledMolliePayment ) {
1271
 
@@ -1296,25 +1284,61 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
1296
 
1297
  }
1298
 
1299
- $payment = Mollie_WC_Plugin::getPaymentObject()->getActiveMolliePayment($order_id, false );
1300
-
1301
- if ( ! $payment->isOpen() && ! $payment->isPending() && ! $payment->isPaid() && ! $payment->isAuthorized() ) {
1302
- Mollie_WC_Plugin::addNotice( __( 'Your payment was not successful. Please complete your order with a different payment method.', 'mollie-payments-for-woocommerce' ) );
1303
- // Return to order payment page
1304
- if ( method_exists( $order, 'get_checkout_payment_url' ) ) {
1305
- return $order->get_checkout_payment_url( false );
1306
- }
1307
- }
1308
-
 
 
 
 
 
 
 
1309
  }
1310
 
1311
- do_action( Mollie_WC_Plugin::PLUGIN_ID . '_customer_return_payment_success', $order );
1312
  /*
1313
  * Return to order received page
1314
  */
1315
-
1316
  return $this->get_return_url( $order );
1317
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1318
 
1319
  /**
1320
  * Process a refund if supported
@@ -1689,111 +1713,79 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
1689
  }
1690
 
1691
  /**
1692
- * @param WC_Order $order
1693
- * @return string
 
 
 
 
1694
  */
1695
  public function getReturnUrl (WC_Order $order)
1696
  {
1697
- $site_url = get_home_url();
1698
-
1699
- $return_url = WC()->api_request_url( 'mollie_return' );
1700
- $return_url = $this->removeTrailingSlashAfterParamater( $return_url );
1701
-
1702
- if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
1703
- $return_url = add_query_arg(array(
1704
- 'order_id' => $order->id,
1705
- 'key' => $order->order_key,
1706
- ), $return_url);
1707
- } else {
1708
- $return_url = add_query_arg(array(
1709
- 'order_id' => $order->get_id(),
1710
- 'key' => $order->get_order_key(),
1711
- ), $return_url);
1712
- }
1713
- $return_url = $this->removeTrailingSlashAfterParamater( $return_url );
1714
-
1715
- $lang_url = $this->getSiteUrlWithLanguage();
1716
 
1717
  // Make sure there aren't any double /? in the URL (some (multilanguage) plugins will add this)
1718
- if ( strpos( $lang_url, '/?' ) !== false ) {
1719
- $lang_url_params = substr( $lang_url, strpos( $lang_url, "/?" ) + 2 );
1720
- $return_url = $return_url . '&' . $lang_url_params;
1721
- } else {
1722
- $return_url = str_replace( $site_url, $lang_url, $return_url );
1723
  }
1724
-
1725
- if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
1726
- Mollie_WC_Plugin::debug( $this->id . ': Order ' . $order->id . ' returnUrl: ' . $return_url, true );
1727
- } else {
1728
- Mollie_WC_Plugin::debug( $this->id . ': Order ' . $order->get_id() . ' returnUrl: ' . $return_url, true );
1729
- }
1730
-
1731
- return apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_return_url', $return_url, $order);
1732
  }
1733
 
1734
  /**
1735
- * @param WC_Order $order
1736
- * @return string
 
 
 
 
1737
  */
1738
  public function getWebhookUrl (WC_Order $order)
1739
  {
1740
- $site_url = get_home_url();
1741
-
1742
- $webhook_url = WC()->api_request_url( strtolower( get_class( $this ) ) );
1743
- $webhook_url = $this->removeTrailingSlashAfterParamater( $webhook_url );
1744
-
1745
- if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
1746
- $webhook_url = add_query_arg(array(
1747
- 'order_id' => $order->id,
1748
- 'key' => $order->order_key,
1749
- ), $webhook_url);
1750
- } else {
1751
- $webhook_url = add_query_arg(array(
1752
- 'order_id' => $order->get_id(),
1753
- 'key' => $order->get_order_key(),
1754
- ), $webhook_url);
1755
- }
1756
- $webhook_url = $this->removeTrailingSlashAfterParamater( $webhook_url );
1757
 
1758
- $lang_url = $this->getSiteUrlWithLanguage();
1759
 
1760
  // Make sure there aren't any double /? in the URL (some (multilanguage) plugins will add this)
1761
- if ( strpos( $lang_url, '/?' ) !== false ) {
1762
- $lang_url_params = substr( $lang_url, strpos( $lang_url, "/?" ) + 2 );
1763
- $webhook_url = $webhook_url . '&' . $lang_url_params;
1764
  } else {
1765
- $webhook_url = str_replace( $site_url, $lang_url, $webhook_url );
1766
  }
1767
 
1768
  // Some (multilanguage) plugins will add a extra slash to the url (/nl//) causing the URL to redirect and lose it's data.
1769
  // Status updates via webhook will therefor not be processed. The below regex will find and remove those double slashes.
1770
- $webhook_url = preg_replace('/([^:])(\/{2,})/', '$1/', $webhook_url);
 
1771
 
1772
- if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
1773
- Mollie_WC_Plugin::debug( $this->id . ': Order ' . $order->id . ' webhookUrl: ' . $webhook_url, true );
1774
- } else {
1775
- Mollie_WC_Plugin::debug( $this->id . ': Order ' . $order->get_id() . ' webhookUrl: ' . $webhook_url, true );
1776
- }
1777
-
1778
- return apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_webhook_url', $webhook_url, $order);
1779
  }
1780
 
1781
- /**
1782
- * Remove a trailing slash after a query string if there is one in the WooCommerce API request URL.
1783
- * For example WMPL adds a query string with trailing slash like /?lang=de/ to WC()->api_request_url.
1784
- * This causes issues when we append to that URL with add_query_arg.
1785
- *
1786
- * @return string
1787
- */
1788
- protected function removeTrailingSlashAfterParamater( $url ) {
1789
-
1790
- if ( strpos( $url, '?' ) ) {
1791
- $url = untrailingslashit( $url );
1792
- }
1793
-
1794
- return $url;
1795
- }
1796
-
1797
  /**
1798
  * Check if any multi language plugins are enabled and return the correct site url.
1799
  *
@@ -2080,14 +2072,65 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
2080
  protected function lockIcon()
2081
  {
2082
  return file_get_contents(
2083
- Mollie_WC_Plugin::getPluginPath('assets/images/lock-icon.svg')
2084
  );
2085
  }
2086
 
2087
  protected function mollieLogo()
2088
  {
2089
  return file_get_contents(
2090
- Mollie_WC_Plugin::getPluginPath('assets/images/mollie-logo.svg')
2091
  );
2092
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2093
  }
150
  /**
151
  * @return string
152
  */
153
+ public function getIconUrl()
154
  {
155
+ $svg = $this->iconFactory()->svgUrlForPaymentMethod(
156
+ $this->getMollieMethodId()
157
+ );
 
 
 
158
 
159
+ return $svg;
160
+ }
 
 
 
 
161
 
162
  protected function _initIcon ()
163
  {
1245
  *
1246
  * @return string
1247
  */
1248
+ public function getReturnRedirectUrlForOrder( WC_Order $order )
1249
+ {
1250
+ $order_id = wooCommerceOrderId($order);
1251
+ $debugLine = __METHOD__ . " {$order_id}: Determine what the redirect URL in WooCommerce should be.";
1252
+ debug($debugLine);
 
 
 
 
 
1253
 
1254
+ if ( $this->orderNeedsPayment( $order ) ) {
1255
 
1256
+ $hasCancelledMolliePayment = $this->paymentObject()->getCancelledMolliePaymentId( $order_id );
1257
 
1258
  if ( $hasCancelledMolliePayment ) {
1259
 
1284
 
1285
  }
1286
 
1287
+ try {
1288
+ $payment = $this->activePaymentObject($order_id, false);
1289
+ if ( ! $payment->isOpen() && ! $payment->isPending() && ! $payment->isPaid() && ! $payment->isAuthorized() ) {
1290
+ notice(__('Your payment was not successful. Please complete your order with a different payment method.', 'mollie-payments-for-woocommerce'));
1291
+ // Return to order payment page
1292
+ if ( method_exists( $order, 'get_checkout_payment_url' ) ) {
1293
+ return $order->get_checkout_payment_url( false );
1294
+ }
1295
+ }
1296
+ do_action( Mollie_WC_Plugin::PLUGIN_ID . '_customer_return_payment_success', $order );
1297
+ } catch (UnexpectedValueException $exc) {
1298
+ notice( __('Your payment was not successful. Please complete your order with a different payment method.', 'mollie-payments-for-woocommerce' ));
1299
+ $exceptionMessage = $exc->getMessage();
1300
+ $debugLine = __METHOD__ . " Problem processing the payment. {$exceptionMessage}";
1301
+ debug($debugLine);
1302
+ do_action( Mollie_WC_Plugin::PLUGIN_ID . '_customer_return_payment_failed', $order );
1303
+ }
1304
  }
1305
 
 
1306
  /*
1307
  * Return to order received page
1308
  */
 
1309
  return $this->get_return_url( $order );
1310
  }
1311
+ /**
1312
+ * Retrieve the payment object
1313
+ *
1314
+ * @return Mollie_WC_Payment_Object
1315
+ */
1316
+ protected function paymentObject()
1317
+ {
1318
+ return Mollie_WC_Plugin::getPaymentObject();
1319
+ }
1320
+
1321
+ /**
1322
+ * Retrieve the active payment object
1323
+ *
1324
+ * @param $orderId
1325
+ * @param $useCache
1326
+ * @return Payment
1327
+ * @throws UnexpectedValueException
1328
+ */
1329
+ protected function activePaymentObject($orderId, $useCache)
1330
+ {
1331
+ $paymentObject = $this->paymentObject();
1332
+ $activePaymentObject = $paymentObject->getActiveMolliePayment($orderId, $useCache);
1333
+
1334
+ if ($activePaymentObject === null) {
1335
+ throw new UnexpectedValueException(
1336
+ "Active Payment Object is not a valid Payment Resource instance. Order ID: {$orderId}"
1337
+ );
1338
+ }
1339
+
1340
+ return $activePaymentObject;
1341
+ }
1342
 
1343
  /**
1344
  * Process a refund if supported
1713
  }
1714
 
1715
  /**
1716
+ * Get the url to return to on Mollie return
1717
+ * For example 'http://mollie-wc.docker.myhost/wc-api/mollie_return/?order_id=89&key=wc_order_eFZyH8jki6fge'
1718
+ *
1719
+ * @param WC_Order $order The order processed
1720
+ *
1721
+ * @return string The url with order id and key as params
1722
  */
1723
  public function getReturnUrl (WC_Order $order)
1724
  {
1725
+ $returnUrl = WC()->api_request_url( 'mollie_return' );
1726
+ $returnUrl = untrailingslashit($returnUrl);
1727
+ $returnUrl = idn_to_ascii($returnUrl);
1728
+ $orderId = wooCommerceOrderId($order);
1729
+ $orderKey = wooCommerceOrderKey($order);
1730
+ $returnUrl = $this->appendOrderArgumentsToUrl(
1731
+ $orderId,
1732
+ $orderKey,
1733
+ $returnUrl
1734
+ );
1735
+ $returnUrl = untrailingslashit($returnUrl);
1736
+ $langUrl = $this->getSiteUrlWithLanguage();
 
 
 
 
 
 
 
1737
 
1738
  // Make sure there aren't any double /? in the URL (some (multilanguage) plugins will add this)
1739
+ if ( strpos( $langUrl, '/?' ) !== false ) {
1740
+ $langUrlParams = substr( $langUrl, strpos( $langUrl, "/?" ) + 2 );
1741
+ $returnUrl = $returnUrl . '&' . $langUrlParams;
 
 
1742
  }
1743
+ debug("{$this->id} : Order {$orderId} returnUrl: {$returnUrl}", true);
1744
+ return apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_return_url', $returnUrl, $order);
 
 
 
 
 
 
1745
  }
1746
 
1747
  /**
1748
+ * Get the webhook url
1749
+ * For example 'http://mollie-wc.docker.myhost/wc-api/mollie_return/mollie_wc_gateway_bancontact/?order_id=89&key=wc_order_eFZyH8jki6fge'
1750
+ *
1751
+ * @param WC_Order $order The order processed
1752
+ *
1753
+ * @return string The url with gateway and order id and key as params
1754
  */
1755
  public function getWebhookUrl (WC_Order $order)
1756
  {
1757
+ $siteUrl = get_home_url();
1758
+
1759
+ $webhookUrl = WC()->api_request_url(strtolower(get_class($this)));
1760
+ $webhookUrl = untrailingslashit($webhookUrl);
1761
+ $webhookUrl = idn_to_ascii($webhookUrl);
1762
+ $orderId = wooCommerceOrderId($order);
1763
+ $orderKey = wooCommerceOrderKey($order);
1764
+ $webhookUrl = $this->appendOrderArgumentsToUrl(
1765
+ $orderId,
1766
+ $orderKey,
1767
+ $webhookUrl
1768
+ );
1769
+ $webhookUrl = untrailingslashit($webhookUrl);
 
 
 
 
1770
 
1771
+ $langUrl = $this->getSiteUrlWithLanguage();
1772
 
1773
  // Make sure there aren't any double /? in the URL (some (multilanguage) plugins will add this)
1774
+ if ( strpos( $langUrl, '/?' ) !== false ) {
1775
+ $langUrlParams = substr( $langUrl, strpos( $langUrl, "/?" ) + 2 );
1776
+ $webhookUrl = $webhookUrl . '&' . $langUrlParams;
1777
  } else {
1778
+ $webhookUrl = str_replace( $siteUrl, $langUrl, $webhookUrl );
1779
  }
1780
 
1781
  // Some (multilanguage) plugins will add a extra slash to the url (/nl//) causing the URL to redirect and lose it's data.
1782
  // Status updates via webhook will therefor not be processed. The below regex will find and remove those double slashes.
1783
+ $webhookUrl = preg_replace('/([^:])(\/{2,})/', '$1/', $webhookUrl);
1784
+ debug("{$this->id} : Order {$orderId} webhookUrl: {$webhookUrl}", true);
1785
 
1786
+ return apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_webhook_url', $webhookUrl, $order);
 
 
 
 
 
 
1787
  }
1788
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1789
  /**
1790
  * Check if any multi language plugins are enabled and return the correct site url.
1791
  *
2072
  protected function lockIcon()
2073
  {
2074
  return file_get_contents(
2075
+ Mollie_WC_Plugin::getPluginPath('public/images/lock-icon.svg')
2076
  );
2077
  }
2078
 
2079
  protected function mollieLogo()
2080
  {
2081
  return file_get_contents(
2082
+ Mollie_WC_Plugin::getPluginPath('public/images/mollie-logo.svg')
2083
  );
2084
  }
2085
+
2086
+ /**
2087
+ * Singleton of the class that handles icons (API/fallback)
2088
+ * @return Mollie_WC_Helper_PaymentMethodIconUrl|null
2089
+ */
2090
+ protected function iconFactory()
2091
+ {
2092
+ static $factory = null;
2093
+ if ($factory === null){
2094
+ $paymentMethods = array_filter((array)availablePaymentMethods());
2095
+ $paymentMethodsImages = $this->associativePaymentMethodsImages($paymentMethods);
2096
+ $factory = new Mollie_WC_Helper_PaymentMethodsIconUrl($paymentMethodsImages);
2097
+ }
2098
+
2099
+ return $factory;
2100
+ }
2101
+
2102
+ /**
2103
+ * @param $paymentMethods
2104
+ * @return array
2105
+ */
2106
+ protected function associativePaymentMethodsImages(array $paymentMethods)
2107
+ {
2108
+ $list = [];
2109
+ if($paymentMethods){
2110
+ $listIds = array_column($paymentMethods, 'id');
2111
+ $listImg = array_column($paymentMethods, 'image');
2112
+ $list = array_combine($listIds, $listImg);
2113
+ }
2114
+
2115
+ return $list;
2116
+ }
2117
+
2118
+ /**
2119
+ * @param $order_id
2120
+ * @param $order_key
2121
+ * @param $webhook_url
2122
+ *
2123
+ * @return string
2124
+ */
2125
+ protected function appendOrderArgumentsToUrl($order_id, $order_key, $webhook_url)
2126
+ {
2127
+ $webhook_url = add_query_arg(
2128
+ array(
2129
+ 'order_id' => $order_id,
2130
+ 'key' => $order_key,
2131
+ ),
2132
+ $webhook_url
2133
+ );
2134
+ return $webhook_url;
2135
+ }
2136
  }
src/Mollie/WC/Helper/PaymentMethodsIconUrl.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ use Mollie\Api\Types\PaymentMethod;
4
+
5
+ class Mollie_WC_Helper_PaymentMethodsIconUrl
6
+ {
7
+ /**
8
+ * @var array
9
+ */
10
+ private $paymentMethodImages;
11
+
12
+ /**
13
+ * PaymentMethodIconUrl constructor.
14
+ * @param array $paymentMethodImages
15
+ */
16
+ public function __construct(array $paymentMethodImages)
17
+ {
18
+ $this->paymentMethodImages = $paymentMethodImages;
19
+ }
20
+
21
+ /**
22
+ * @param string $paymentMethodName
23
+ * @return mixed
24
+ */
25
+ public function svgUrlForPaymentMethod($paymentMethodName)
26
+ {
27
+ return isset($this->paymentMethodImages[$paymentMethodName]->svg)
28
+ ? $this->paymentMethodImages[$paymentMethodName]->svg
29
+ : $this->fallToAssets($paymentMethodName);
30
+ }
31
+
32
+ /**
33
+ * @param string $paymentMethodName
34
+ * @return string
35
+ */
36
+ protected function fallToAssets($paymentMethodName)
37
+ {
38
+ if ( $paymentMethodName == PaymentMethod::CREDITCARD && !is_admin()) {
39
+ return Mollie_WC_Plugin::getPluginUrl('public/images/' . $paymentMethodName . 's.svg');
40
+ }
41
+
42
+ return Mollie_WC_Plugin::getPluginUrl('public/images/' . $paymentMethodName . '.svg');
43
+ }
44
+ }
45
+
src/Mollie/WC/Helper/Settings.php CHANGED
@@ -160,7 +160,7 @@ class Mollie_WC_Helper_Settings
160
  return $optionValue;
161
  }
162
 
163
- $merchantProfileIdOptionKey = Mollie_WC_Plugin::PLUGIN_ID . '_merchant_profile_id';
164
 
165
  try {
166
  $merchantProfile = merchantProfile();
@@ -169,7 +169,7 @@ class Mollie_WC_Helper_Settings
169
  $merchantProfileId = '';
170
  }
171
 
172
- update_option($merchantProfileIdOptionKey, $merchantProfileId, false);
173
 
174
  return $optionValue;
175
  }
@@ -331,7 +331,7 @@ class Mollie_WC_Helper_Settings
331
  */
332
  public function addGlobalSettingsFields (array $settings)
333
  {
334
- wp_register_script('mollie_wc_admin_settings', Mollie_WC_Plugin::getPluginUrl('/assets/js/settings.min.js'), array('jquery'), Mollie_WC_Plugin::PLUGIN_VERSION);
335
  wp_enqueue_script('mollie_wc_admin_settings');
336
 
337
  $content = ''
160
  return $optionValue;
161
  }
162
 
163
+ $merchantProfileIdOptionKey = Mollie_WC_Plugin::PLUGIN_ID . '_profile_merchant_id';
164
 
165
  try {
166
  $merchantProfile = merchantProfile();
169
  $merchantProfileId = '';
170
  }
171
 
172
+ update_option($merchantProfileIdOptionKey, $merchantProfileId);
173
 
174
  return $optionValue;
175
  }
331
  */
332
  public function addGlobalSettingsFields (array $settings)
333
  {
334
+ wp_register_script('mollie_wc_admin_settings', Mollie_WC_Plugin::getPluginUrl('/public/js/settings.min.js'), array('jquery'), Mollie_WC_Plugin::PLUGIN_VERSION);
335
  wp_enqueue_script('mollie_wc_admin_settings');
336
 
337
  $content = ''
src/Mollie/WC/Payment/Object.php CHANGED
@@ -2,7 +2,9 @@
2
 
3
  class Mollie_WC_Payment_Object {
4
 
5
- public static $paymentId;
 
 
6
  public static $customerId;
7
  public static $order;
8
  public static $payment;
@@ -643,4 +645,22 @@ class Mollie_WC_Payment_Object {
643
  }
644
  }
645
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
646
  }
2
 
3
  class Mollie_WC_Payment_Object {
4
 
5
+ const FINAL_STATUSES = ['completed', 'refunded', 'canceled'];
6
+
7
+ public static $paymentId;
8
  public static $customerId;
9
  public static $order;
10
  public static $payment;
645
  }
646
  }
647
 
648
+ /**
649
+ * @param WC_Order $order
650
+ *
651
+ * @return bool
652
+ */
653
+ protected function isFinalOrderStatus(WC_Order $order)
654
+ {
655
+ $dataHelper = getDataHelper();
656
+ $orderStatus = $dataHelper->getOrderStatus($order);
657
+ $isFinalOrderStatus = in_array(
658
+ $orderStatus,
659
+ self::FINAL_STATUSES,
660
+ true
661
+ );
662
+
663
+ return $isFinalOrderStatus;
664
+ }
665
+
666
  }
src/Mollie/WC/Payment/Order.php CHANGED
@@ -483,15 +483,22 @@ class Mollie_WC_Payment_Order extends Mollie_WC_Payment_Object {
483
  public function onWebhookCanceled( WC_Order $order, $payment, $payment_method_title ) {
484
 
485
  // Get order ID in the correct way depending on WooCommerce version
486
- if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
487
- $order_id = $order->id;
488
- } else {
489
- $order_id = $order->get_id();
490
- }
491
 
492
  // Add messages to log
493
- Mollie_WC_Plugin::debug( __METHOD__ . ' called for order ' . $order_id );
494
 
 
 
 
 
 
 
 
 
 
 
 
495
  $this->unsetActiveMolliePayment( $order_id, $payment->id );
496
  $this->setCancelledMolliePaymentId( $order_id, $payment->id );
497
 
@@ -1051,5 +1058,4 @@ class Mollie_WC_Payment_Order extends Mollie_WC_Payment_Object {
1051
 
1052
  return false;
1053
  }
1054
-
1055
  }
483
  public function onWebhookCanceled( WC_Order $order, $payment, $payment_method_title ) {
484
 
485
  // Get order ID in the correct way depending on WooCommerce version
486
+ $order_id = wooCommerceOrderId($order);
 
 
 
 
487
 
488
  // Add messages to log
489
+ debug( __METHOD__ . " called for order {$order_id}" );
490
 
491
+ // if the status is Completed|Refunded|Cancelled DONT change the status to cancelled
492
+ if ($this->isFinalOrderStatus($order)) {
493
+ debug(
494
+ __METHOD__
495
+ . " called for payment {$order_id} has final status. Nothing to be done"
496
+ );
497
+
498
+ return;
499
+ }
500
+
501
+ //status is Pending|Failed|Processing|On-hold so Cancel
502
  $this->unsetActiveMolliePayment( $order_id, $payment->id );
503
  $this->setCancelledMolliePaymentId( $order_id, $payment->id );
504
 
1058
 
1059
  return false;
1060
  }
 
1061
  }
src/Mollie/WC/Payment/Payment.php CHANGED
@@ -285,15 +285,22 @@ class Mollie_WC_Payment_Payment extends Mollie_WC_Payment_Object {
285
  public function onWebhookCanceled( WC_Order $order, $payment, $payment_method_title ) {
286
 
287
  // Get order ID in the correct way depending on WooCommerce version
288
- if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
289
- $order_id = $order->id;
290
- } else {
291
- $order_id = $order->get_id();
292
- }
293
 
294
  // Add messages to log
295
- Mollie_WC_Plugin::debug( __METHOD__ . ' called for payment ' . $order_id );
296
 
 
 
 
 
 
 
 
 
 
 
 
297
  // Get current gateway
298
  $gateway = Mollie_WC_Plugin::getDataHelper()->getWcPaymentGatewayByOrder( $order );
299
 
@@ -358,7 +365,6 @@ class Mollie_WC_Payment_Payment extends Mollie_WC_Payment_Object {
358
  }
359
  }
360
  }
361
-
362
  }
363
 
364
  /**
285
  public function onWebhookCanceled( WC_Order $order, $payment, $payment_method_title ) {
286
 
287
  // Get order ID in the correct way depending on WooCommerce version
288
+ $order_id = wooCommerceOrderId($order);
 
 
 
 
289
 
290
  // Add messages to log
291
+ debug( __METHOD__ . " called for payment {$order_id}" );
292
 
293
+ // if the status is Completed|Refunded|Cancelled DONT change the status to cancelled
294
+ if ($this->isFinalOrderStatus($order)) {
295
+ debug(
296
+ __METHOD__
297
+ . " called for payment {$order_id} has final status. Nothing to be done"
298
+ );
299
+
300
+ return;
301
+ }
302
+
303
+ //status is Pending|Failed|Processing|On-hold so Cancel
304
  // Get current gateway
305
  $gateway = Mollie_WC_Plugin::getDataHelper()->getWcPaymentGatewayByOrder( $order );
306
 
365
  }
366
  }
367
  }
 
368
  }
369
 
370
  /**
src/Mollie/WC/Plugin.php CHANGED
@@ -8,7 +8,7 @@ class Mollie_WC_Plugin
8
  {
9
  const PLUGIN_ID = 'mollie-payments-for-woocommerce';
10
  const PLUGIN_TITLE = 'Mollie Payments for WooCommerce';
11
- const PLUGIN_VERSION = '5.4.2';
12
 
13
  const DB_VERSION = '1.0';
14
  const DB_VERSION_PARAM_NAME = 'mollie-db-version';
@@ -323,33 +323,33 @@ class Mollie_WC_Plugin
323
  {
324
  wp_register_script(
325
  'babel-polyfill',
326
- Mollie_WC_Plugin::getPluginUrl('/assets/js/babel-polyfill.min.js'),
327
  [],
328
- filemtime(Mollie_WC_Plugin::getPluginPath('/assets/js/babel-polyfill.min.js')),
329
  true
330
  );
331
 
332
  wp_register_script(
333
  'mollie_wc_gateway_applepay',
334
- Mollie_WC_Plugin::getPluginUrl('/assets/js/applepay.min.js'),
335
  [],
336
- filemtime(Mollie_WC_Plugin::getPluginPath('/assets/js/applepay.min.js')),
337
  true
338
  );
339
 
340
  wp_register_style(
341
  'mollie-components',
342
- Mollie_WC_Plugin::getPluginUrl('/assets/css/mollie-components.css'),
343
  [],
344
- filemtime(Mollie_WC_Plugin::getPluginPath('/assets/css/mollie-components.css')),
345
  'screen'
346
  );
347
  wp_register_script('mollie', 'https://js.mollie.com/v1/mollie.js', [], null, true);
348
  wp_register_script(
349
  'mollie-components',
350
- Mollie_WC_Plugin::getPluginUrl('/assets/js/mollie-components.min.js'),
351
  ['underscore', 'jquery', 'mollie', 'babel-polyfill'],
352
- filemtime(Mollie_WC_Plugin::getPluginPath('/assets/js/mollie-components.min.js')),
353
  true
354
  );
355
  }
@@ -373,6 +373,10 @@ class Mollie_WC_Plugin
373
  */
374
  public static function enqueueComponentsAssets()
375
  {
 
 
 
 
376
  try {
377
  $merchantProfileId = merchantProfileId();
378
  } catch (ApiException $exception) {
@@ -386,10 +390,6 @@ class Mollie_WC_Plugin
386
  return;
387
  }
388
 
389
- if (is_admin() || !isCheckoutContext()) {
390
- return;
391
- }
392
-
393
  $locale = get_locale();
394
 
395
  wp_enqueue_style('mollie-components');
@@ -440,35 +440,61 @@ class Mollie_WC_Plugin
440
  }
441
 
442
  /**
443
- * Payment return url callback
 
 
444
  */
445
- public static function onMollieReturn ()
446
  {
447
- $dataHelper = self::getDataHelper();
448
 
449
  $orderId = filter_input(INPUT_GET, 'order_id', FILTER_SANITIZE_NUMBER_INT) ?: null;
450
  $key = filter_input(INPUT_GET, 'key', FILTER_SANITIZE_STRING) ?: null;
451
  $order = $dataHelper->getWcOrder($orderId);
452
 
453
  if (!$order) {
454
- self::setHttpResponseCode(404);
455
- self::debug(__METHOD__ . ": Could not find order $orderId.");
456
- return;
 
 
 
 
 
457
  }
458
 
459
  if (!$order->key_is_valid($key)) {
460
- self::setHttpResponseCode(401);
461
- self::debug(__METHOD__ . ": Invalid key $key for order $orderId.");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
462
  return;
463
  }
464
 
465
  $gateway = $dataHelper->getWcPaymentGatewayByOrder($order);
 
466
 
467
  if (!$gateway) {
468
  $gatewayName = $order->get_payment_method();
469
 
470
  self::setHttpResponseCode(404);
471
- self::debug(
472
  __METHOD__ . ": Could not find gateway {$gatewayName} for order {$orderId}."
473
  );
474
  return;
@@ -476,7 +502,7 @@ class Mollie_WC_Plugin
476
 
477
  if (!($gateway instanceof Mollie_WC_Gateway_Abstract)) {
478
  self::setHttpResponseCode(400);
479
- self::debug(__METHOD__ . ": Invalid gateway " . get_class($gateway) . " for this plugin. Order $orderId.");
480
  return;
481
  }
482
 
@@ -485,7 +511,7 @@ class Mollie_WC_Plugin
485
  // Add utm_nooverride query string
486
  $redirect_url = add_query_arg(['utm_nooverride' => 1], $redirect_url);
487
 
488
- self::debug(__METHOD__ . ": Redirect url on return order " . $gateway->id . ", order $orderId: $redirect_url");
489
 
490
  wp_safe_redirect($redirect_url);
491
  }
8
  {
9
  const PLUGIN_ID = 'mollie-payments-for-woocommerce';
10
  const PLUGIN_TITLE = 'Mollie Payments for WooCommerce';
11
+ const PLUGIN_VERSION = '5.5.0';
12
 
13
  const DB_VERSION = '1.0';
14
  const DB_VERSION_PARAM_NAME = 'mollie-db-version';
323
  {
324
  wp_register_script(
325
  'babel-polyfill',
326
+ Mollie_WC_Plugin::getPluginUrl('/public/js/babel-polyfill.min.js'),
327
  [],
328
+ filemtime(Mollie_WC_Plugin::getPluginPath('/public/js/babel-polyfill.min.js')),
329
  true
330
  );
331
 
332
  wp_register_script(
333
  'mollie_wc_gateway_applepay',
334
+ Mollie_WC_Plugin::getPluginUrl('/public/js/applepay.min.js'),
335
  [],
336
+ filemtime(Mollie_WC_Plugin::getPluginPath('/public/js/applepay.min.js')),
337
  true
338
  );
339
 
340
  wp_register_style(
341
  'mollie-components',
342
+ Mollie_WC_Plugin::getPluginUrl('/public/css/mollie-components.min.css'),
343
  [],
344
+ filemtime(Mollie_WC_Plugin::getPluginPath('/public/css/mollie-components.min.css')),
345
  'screen'
346
  );
347
  wp_register_script('mollie', 'https://js.mollie.com/v1/mollie.js', [], null, true);
348
  wp_register_script(
349
  'mollie-components',
350
+ Mollie_WC_Plugin::getPluginUrl('/public/js/mollie-components.min.js'),
351
  ['underscore', 'jquery', 'mollie', 'babel-polyfill'],
352
+ filemtime(Mollie_WC_Plugin::getPluginPath('/public/js/mollie-components.min.js')),
353
  true
354
  );
355
  }
373
  */
374
  public static function enqueueComponentsAssets()
375
  {
376
+ if (is_admin() || !isCheckoutContext()) {
377
+ return;
378
+ }
379
+
380
  try {
381
  $merchantProfileId = merchantProfileId();
382
  } catch (ApiException $exception) {
390
  return;
391
  }
392
 
 
 
 
 
393
  $locale = get_locale();
394
 
395
  wp_enqueue_style('mollie-components');
440
  }
441
 
442
  /**
443
+ * Returns the order from the Request first by Id, if not by Key
444
+ *
445
+ * @return bool|WC_Order
446
  */
447
+ public static function orderByRequest()
448
  {
449
+ $dataHelper = getDataHelper();
450
 
451
  $orderId = filter_input(INPUT_GET, 'order_id', FILTER_SANITIZE_NUMBER_INT) ?: null;
452
  $key = filter_input(INPUT_GET, 'key', FILTER_SANITIZE_STRING) ?: null;
453
  $order = $dataHelper->getWcOrder($orderId);
454
 
455
  if (!$order) {
456
+ $order = $dataHelper->getWcOrder(wc_get_order_id_by_order_key($key));
457
+ }
458
+
459
+ if (!$order) {
460
+ throw new RuntimeException(
461
+ "Could not find order by order Id {$orderId}",
462
+ 404
463
+ );
464
  }
465
 
466
  if (!$order->key_is_valid($key)) {
467
+ throw new RuntimeException(
468
+ "Invalid key given. Key {$key} does not match the order id: {$orderId}",
469
+ 401
470
+ );
471
+ }
472
+
473
+ return $order;
474
+ }
475
+ /**
476
+ * Payment return url callback
477
+ */
478
+ public static function onMollieReturn ()
479
+ {
480
+ $dataHelper = getDataHelper();
481
+
482
+ try {
483
+ $order = self::orderByRequest();
484
+ } catch (RuntimeException $exc) {
485
+ self::setHttpResponseCode($exc->getCode());
486
+ debug(__METHOD__ . ": {$exc->getMessage()}");
487
  return;
488
  }
489
 
490
  $gateway = $dataHelper->getWcPaymentGatewayByOrder($order);
491
+ $orderId = wooCommerceOrderId($order);
492
 
493
  if (!$gateway) {
494
  $gatewayName = $order->get_payment_method();
495
 
496
  self::setHttpResponseCode(404);
497
+ debug(
498
  __METHOD__ . ": Could not find gateway {$gatewayName} for order {$orderId}."
499
  );
500
  return;
502
 
503
  if (!($gateway instanceof Mollie_WC_Gateway_Abstract)) {
504
  self::setHttpResponseCode(400);
505
+ debug(__METHOD__ . ": Invalid gateway {get_class($gateway)} for this plugin. Order {$orderId}.");
506
  return;
507
  }
508
 
511
  // Add utm_nooverride query string
512
  $redirect_url = add_query_arg(['utm_nooverride' => 1], $redirect_url);
513
 
514
+ debug(__METHOD__ . ": Redirect url on return order {$gateway->id}, order {$orderId}: {$redirect_url}");
515
 
516
  wp_safe_redirect($redirect_url);
517
  }
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit370efe70cdd87ac8963ae1cf674c7eb2::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit3a6433875eadc19b9fbc0964b61769a4::getLoader();
vendor/composer/autoload_classmap.php CHANGED
@@ -196,6 +196,7 @@ return array(
196
  'Mollie_WC_Helper_Data' => $baseDir . '/src/Mollie/WC/Helper/Data.php',
197
  'Mollie_WC_Helper_OrderLines' => $baseDir . '/src/Mollie/WC/Helper/OrderLines.php',
198
  'Mollie_WC_Helper_PaymentFactory' => $baseDir . '/src/Mollie/WC/Helper/PaymentFactory.php',
 
199
  'Mollie_WC_Helper_Settings' => $baseDir . '/src/Mollie/WC/Helper/Settings.php',
200
  'Mollie_WC_Helper_Status' => $baseDir . '/src/Mollie/WC/Helper/Status.php',
201
  'Mollie_WC_OrderLineStatus' => $baseDir . '/src/Mollie/WC/OrderLineStatus.php',
196
  'Mollie_WC_Helper_Data' => $baseDir . '/src/Mollie/WC/Helper/Data.php',
197
  'Mollie_WC_Helper_OrderLines' => $baseDir . '/src/Mollie/WC/Helper/OrderLines.php',
198
  'Mollie_WC_Helper_PaymentFactory' => $baseDir . '/src/Mollie/WC/Helper/PaymentFactory.php',
199
+ 'Mollie_WC_Helper_PaymentMethodsIconUrl' => $baseDir . '/src/Mollie/WC/Helper/PaymentMethodsIconUrl.php',
200
  'Mollie_WC_Helper_Settings' => $baseDir . '/src/Mollie/WC/Helper/Settings.php',
201
  'Mollie_WC_Helper_Status' => $baseDir . '/src/Mollie/WC/Helper/Status.php',
202
  'Mollie_WC_OrderLineStatus' => $baseDir . '/src/Mollie/WC/OrderLineStatus.php',
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit370efe70cdd87ac8963ae1cf674c7eb2
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit370efe70cdd87ac8963ae1cf674c7eb2
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit370efe70cdd87ac8963ae1cf674c7eb2', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit370efe70cdd87ac8963ae1cf674c7eb2', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInit370efe70cdd87ac8963ae1cf674c7eb2::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
@@ -48,19 +48,19 @@ class ComposerAutoloaderInit370efe70cdd87ac8963ae1cf674c7eb2
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
- $includeFiles = Composer\Autoload\ComposerStaticInit370efe70cdd87ac8963ae1cf674c7eb2::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
- composerRequire370efe70cdd87ac8963ae1cf674c7eb2($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
- function composerRequire370efe70cdd87ac8963ae1cf674c7eb2($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit3a6433875eadc19b9fbc0964b61769a4
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit3a6433875eadc19b9fbc0964b61769a4', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit3a6433875eadc19b9fbc0964b61769a4', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit3a6433875eadc19b9fbc0964b61769a4::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
+ $includeFiles = Composer\Autoload\ComposerStaticInit3a6433875eadc19b9fbc0964b61769a4::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
+ composerRequire3a6433875eadc19b9fbc0964b61769a4($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
+ function composerRequire3a6433875eadc19b9fbc0964b61769a4($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit370efe70cdd87ac8963ae1cf674c7eb2
8
  {
9
  public static $files = array (
10
  '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
@@ -262,6 +262,7 @@ class ComposerStaticInit370efe70cdd87ac8963ae1cf674c7eb2
262
  'Mollie_WC_Helper_Data' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/Data.php',
263
  'Mollie_WC_Helper_OrderLines' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/OrderLines.php',
264
  'Mollie_WC_Helper_PaymentFactory' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/PaymentFactory.php',
 
265
  'Mollie_WC_Helper_Settings' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/Settings.php',
266
  'Mollie_WC_Helper_Status' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/Status.php',
267
  'Mollie_WC_OrderLineStatus' => __DIR__ . '/../..' . '/src/Mollie/WC/OrderLineStatus.php',
@@ -286,10 +287,10 @@ class ComposerStaticInit370efe70cdd87ac8963ae1cf674c7eb2
286
  public static function getInitializer(ClassLoader $loader)
287
  {
288
  return \Closure::bind(function () use ($loader) {
289
- $loader->prefixLengthsPsr4 = ComposerStaticInit370efe70cdd87ac8963ae1cf674c7eb2::$prefixLengthsPsr4;
290
- $loader->prefixDirsPsr4 = ComposerStaticInit370efe70cdd87ac8963ae1cf674c7eb2::$prefixDirsPsr4;
291
- $loader->prefixesPsr0 = ComposerStaticInit370efe70cdd87ac8963ae1cf674c7eb2::$prefixesPsr0;
292
- $loader->classMap = ComposerStaticInit370efe70cdd87ac8963ae1cf674c7eb2::$classMap;
293
 
294
  }, null, ClassLoader::class);
295
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit3a6433875eadc19b9fbc0964b61769a4
8
  {
9
  public static $files = array (
10
  '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
262
  'Mollie_WC_Helper_Data' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/Data.php',
263
  'Mollie_WC_Helper_OrderLines' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/OrderLines.php',
264
  'Mollie_WC_Helper_PaymentFactory' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/PaymentFactory.php',
265
+ 'Mollie_WC_Helper_PaymentMethodsIconUrl' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/PaymentMethodsIconUrl.php',
266
  'Mollie_WC_Helper_Settings' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/Settings.php',
267
  'Mollie_WC_Helper_Status' => __DIR__ . '/../..' . '/src/Mollie/WC/Helper/Status.php',
268
  'Mollie_WC_OrderLineStatus' => __DIR__ . '/../..' . '/src/Mollie/WC/OrderLineStatus.php',
287
  public static function getInitializer(ClassLoader $loader)
288
  {
289
  return \Closure::bind(function () use ($loader) {
290
+ $loader->prefixLengthsPsr4 = ComposerStaticInit3a6433875eadc19b9fbc0964b61769a4::$prefixLengthsPsr4;
291
+ $loader->prefixDirsPsr4 = ComposerStaticInit3a6433875eadc19b9fbc0964b61769a4::$prefixDirsPsr4;
292
+ $loader->prefixesPsr0 = ComposerStaticInit3a6433875eadc19b9fbc0964b61769a4::$prefixesPsr0;
293
+ $loader->classMap = ComposerStaticInit3a6433875eadc19b9fbc0964b61769a4::$classMap;
294
 
295
  }, null, ClassLoader::class);
296
  }
vendor/composer/ca-bundle/README.md DELETED
@@ -1,85 +0,0 @@
1
- composer/ca-bundle
2
- ==================
3
-
4
- Small utility library that lets you find a path to the system CA bundle,
5
- and includes a fallback to the Mozilla CA bundle.
6
-
7
- Originally written as part of [composer/composer](https://github.com/composer/composer),
8
- now extracted and made available as a stand-alone library.
9
-
10
-
11
- Installation
12
- ------------
13
-
14
- Install the latest version with:
15
-
16
- ```bash
17
- $ composer require composer/ca-bundle
18
- ```
19
-
20
-
21
- Requirements
22
- ------------
23
-
24
- * PHP 5.3.2 is required but using the latest version of PHP is highly recommended.
25
-
26
-
27
- Basic usage
28
- -----------
29
-
30
- ### `Composer\CaBundle\CaBundle`
31
-
32
- - `CaBundle::getSystemCaRootBundlePath()`: Returns the system CA bundle path, or a path to the bundled one as fallback
33
- - `CaBundle::getBundledCaBundlePath()`: Returns the path to the bundled CA file
34
- - `CaBundle::validateCaFile($filename)`: Validates a CA file using openssl_x509_parse only if it is safe to use
35
- - `CaBundle::isOpensslParseSafe()`: Test if it is safe to use the PHP function openssl_x509_parse()
36
- - `CaBundle::reset()`: Resets the static caches
37
-
38
-
39
- #### To use with curl
40
-
41
- ```php
42
- $curl = curl_init("https://example.org/");
43
-
44
- $caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath();
45
- if (is_dir($caPathOrFile)) {
46
- curl_setopt($curl, CURLOPT_CAPATH, $caPathOrFile);
47
- } else {
48
- curl_setopt($curl, CURLOPT_CAINFO, $caPathOrFile);
49
- }
50
-
51
- $result = curl_exec($curl);
52
- ```
53
-
54
- #### To use with php streams
55
-
56
- ```php
57
- $opts = array(
58
- 'http' => array(
59
- 'method' => "GET"
60
- )
61
- );
62
-
63
- $caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath();
64
- if (is_dir($caPathOrFile)) {
65
- $opts['ssl']['capath'] = $caPathOrFile;
66
- } else {
67
- $opts['ssl']['cafile'] = $caPathOrFile;
68
- }
69
-
70
- $context = stream_context_create($opts);
71
- $result = file_get_contents('https://example.com', false, $context);
72
- ```
73
-
74
- #### To use with Guzzle
75
-
76
- ```php
77
- $client = new \GuzzleHttp\Client([
78
- \GuzzleHttp\RequestOptions::VERIFY => \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath()
79
- ]);
80
- ```
81
-
82
- License
83
- -------
84
-
85
- composer/ca-bundle is licensed under the MIT License, see the LICENSE file for details.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/ca-bundle/composer.json DELETED
@@ -1,54 +0,0 @@
1
- {
2
- "name": "composer/ca-bundle",
3
- "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
4
- "type": "library",
5
- "license": "MIT",
6
- "keywords": [
7
- "cabundle",
8
- "cacert",
9
- "certificate",
10
- "ssl",
11
- "tls"
12
- ],
13
- "authors": [
14
- {
15
- "name": "Jordi Boggiano",
16
- "email": "j.boggiano@seld.be",
17
- "homepage": "http://seld.be"
18
- }
19
- ],
20
- "support": {
21
- "irc": "irc://irc.freenode.org/composer",
22
- "issues": "https://github.com/composer/ca-bundle/issues"
23
- },
24
- "require": {
25
- "ext-openssl": "*",
26
- "ext-pcre": "*",
27
- "php": "^5.3.2 || ^7.0 || ^8.0"
28
- },
29
- "require-dev": {
30
- "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
31
- "psr/log": "^1.0",
32
- "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
33
- },
34
- "autoload": {
35
- "psr-4": {
36
- "Composer\\CaBundle\\": "src"
37
- }
38
- },
39
- "autoload-dev": {
40
- "psr-4": {
41
- "Composer\\CaBundle\\": "tests"
42
- }
43
- },
44
- "extra": {
45
- "branch-alias": {
46
- "dev-master": "1.x-dev"
47
- }
48
- },
49
- "config": {
50
- "platform": {
51
- "php": "5.3.9"
52
- }
53
- }
54
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/ca-bundle/res/cacert.pem CHANGED
@@ -1,7 +1,7 @@
1
  ##
2
  ## Bundle of CA Root Certificates
3
  ##
4
- ## Certificate data from Mozilla as of: Wed Aug 28 03:12:10 2019 GMT
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
@@ -14,7 +14,7 @@
14
  ## Just configure this file as the SSLCACertificateFile.
15
  ##
16
  ## Conversion done with mk-ca-bundle.pl version 1.27.
17
- ## SHA256: fffa309937c3be940649293f749b8207fabc6eb224e50e4bb3f2c5e44e0d6a6b
18
  ##
19
 
20
 
@@ -592,28 +592,6 @@ mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
592
  vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
593
  -----END CERTIFICATE-----
594
 
595
- Certplus Class 2 Primary CA
596
- ===========================
597
- -----BEGIN CERTIFICATE-----
598
- MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
599
- BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
600
- OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
601
- dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
602
- ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
603
- 5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
604
- Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
605
- YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
606
- e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
607
- CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
608
- YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
609
- L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
610
- P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
611
- TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
612
- 7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
613
- //1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
614
- l7+ijrRU
615
- -----END CERTIFICATE-----
616
-
617
  DST Root CA X3
618
  ==============
619
  -----BEGIN CERTIFICATE-----
@@ -921,28 +899,6 @@ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
921
  WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
922
  -----END CERTIFICATE-----
923
 
924
- Deutsche Telekom Root CA 2
925
- ==========================
926
- -----BEGIN CERTIFICATE-----
927
- MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
928
- RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
929
- A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
930
- MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
931
- A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
932
- b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
933
- bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
934
- KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
935
- AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
936
- Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
937
- jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
938
- HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
939
- E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
940
- zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
941
- rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
942
- dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
943
- Cm26OWMohpLzGITY+9HPBVZkVw==
944
- -----END CERTIFICATE-----
945
-
946
  Cybertrust Global Root
947
  ======================
948
  -----BEGIN CERTIFICATE-----
@@ -3474,3 +3430,37 @@ hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB
3474
  60PZ2Pierc+xYw5F9KBaLJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fq
3475
  dBb9HxEGmpv0
3476
  -----END CERTIFICATE-----
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ##
2
  ## Bundle of CA Root Certificates
3
  ##
4
+ ## Certificate data from Mozilla as of: Wed Jan 1 04:12:10 2020 GMT
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
14
  ## Just configure this file as the SSLCACertificateFile.
15
  ##
16
  ## Conversion done with mk-ca-bundle.pl version 1.27.
17
+ ## SHA256: f3bdcd74612952da8476a9d4147f50b29ad0710b7dd95b4c8690500209986d70
18
  ##
19
 
20
 
592
  vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
593
  -----END CERTIFICATE-----
594
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
595
  DST Root CA X3
596
  ==============
597
  -----BEGIN CERTIFICATE-----
899
  WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
900
  -----END CERTIFICATE-----
901
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
902
  Cybertrust Global Root
903
  ======================
904
  -----BEGIN CERTIFICATE-----
3430
  60PZ2Pierc+xYw5F9KBaLJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fq
3431
  dBb9HxEGmpv0
3432
  -----END CERTIFICATE-----
3433
+
3434
+ Entrust Root Certification Authority - G4
3435
+ =========================================
3436
+ -----BEGIN CERTIFICATE-----
3437
+ MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV
3438
+ BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu
3439
+ bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1
3440
+ dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1
3441
+ dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT
3442
+ AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
3443
+ L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv
3444
+ cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv
3445
+ cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D
3446
+ umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV
3447
+ 3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds
3448
+ 8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ
3449
+ e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7
3450
+ ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X
3451
+ xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV
3452
+ 7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8
3453
+ dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW
3454
+ Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T
3455
+ AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n
3456
+ MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q
3457
+ jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht
3458
+ 7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK
3459
+ YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt
3460
+ jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+
3461
+ m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW
3462
+ RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA
3463
+ JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G
3464
+ +TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT
3465
+ kcpG2om3PVODLAgfi49T3f+sHw==
3466
+ -----END CERTIFICATE-----
vendor/composer/ca-bundle/src/CaBundle.php CHANGED
@@ -71,11 +71,11 @@ class CaBundle
71
 
72
  // If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that.
73
  // This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
74
- $caBundlePaths[] = getenv('SSL_CERT_FILE');
75
 
76
  // If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that.
77
  // This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
78
- $caBundlePaths[] = getenv('SSL_CERT_DIR');
79
 
80
  $caBundlePaths[] = ini_get('openssl.cafile');
81
  $caBundlePaths[] = ini_get('openssl.capath');
@@ -92,6 +92,7 @@ class CaBundle
92
  '/etc/ssl/cert.pem', // OpenBSD
93
  '/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x
94
  '/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package
 
95
  );
96
 
97
  foreach($otherLocations as $location) {
@@ -298,6 +299,19 @@ EOT;
298
  self::$useOpensslParse = null;
299
  }
300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  private static function caFileUsable($certFile, LoggerInterface $logger = null)
302
  {
303
  return $certFile && @is_file($certFile) && @is_readable($certFile) && static::validateCaFile($certFile, $logger);
71
 
72
  // If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that.
73
  // This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
74
+ $caBundlePaths[] = self::getEnvVariable('SSL_CERT_FILE');
75
 
76
  // If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that.
77
  // This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
78
+ $caBundlePaths[] = self::getEnvVariable('SSL_CERT_DIR');
79
 
80
  $caBundlePaths[] = ini_get('openssl.cafile');
81
  $caBundlePaths[] = ini_get('openssl.capath');
92
  '/etc/ssl/cert.pem', // OpenBSD
93
  '/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x
94
  '/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package
95
+ '/usr/local/etc/openssl@1.1/cert.pem', // OS X homebrew, openssl@1.1 package
96
  );
97
 
98
  foreach($otherLocations as $location) {
299
  self::$useOpensslParse = null;
300
  }
301
 
302
+ private static function getEnvVariable($name)
303
+ {
304
+ if (isset($_SERVER[$name])) {
305
+ return (string) $_SERVER[$name];
306
+ }
307
+
308
+ if (PHP_SAPI === 'cli' && ($value = getenv($name)) !== false && $value !== null) {
309
+ return (string) $value;
310
+ }
311
+
312
+ return false;
313
+ }
314
+
315
  private static function caFileUsable($certFile, LoggerInterface $logger = null)
316
  {
317
  return $certFile && @is_file($certFile) && @is_readable($certFile) && static::validateCaFile($certFile, $logger);
vendor/composer/installed.json CHANGED
@@ -6,12 +6,12 @@
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/composer/ca-bundle.git",
9
- "reference": "2655f9fa49d8996622b9d7371481648467573ac0"
10
  },
11
  "dist": {
12
  "type": "zip",
13
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/2655f9fa49d8996622b9d7371481648467573ac0",
14
- "reference": "2655f9fa49d8996622b9d7371481648467573ac0",
15
  "shasum": ""
16
  },
17
  "require": {
@@ -24,7 +24,7 @@
24
  "psr/log": "^1.0",
25
  "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
26
  },
27
- "time": "2019-11-01T11:58:05+00:00",
28
  "type": "library",
29
  "extra": {
30
  "branch-alias": {
@@ -132,12 +132,12 @@
132
  "source": {
133
  "type": "git",
134
  "url": "https://github.com/guzzle/promises.git",
135
- "reference": "17d36ed176c998839582c739ce0753381598edf0"
136
  },
137
  "dist": {
138
  "type": "zip",
139
- "url": "https://api.github.com/repos/guzzle/promises/zipball/17d36ed176c998839582c739ce0753381598edf0",
140
- "reference": "17d36ed176c998839582c739ce0753381598edf0",
141
  "shasum": ""
142
  },
143
  "require": {
@@ -146,7 +146,7 @@
146
  "require-dev": {
147
  "phpunit/phpunit": "^5.7.27 || ^7.5"
148
  },
149
- "time": "2019-07-02T14:54:06+00:00",
150
  "type": "library",
151
  "extra": {
152
  "branch-alias": {
@@ -185,12 +185,12 @@
185
  "source": {
186
  "type": "git",
187
  "url": "https://github.com/guzzle/psr7.git",
188
- "reference": "2595b33c1c924889b474d324f3d719fa40b6954e"
189
  },
190
  "dist": {
191
  "type": "zip",
192
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/2595b33c1c924889b474d324f3d719fa40b6954e",
193
- "reference": "2595b33c1c924889b474d324f3d719fa40b6954e",
194
  "shasum": ""
195
  },
196
  "require": {
@@ -208,7 +208,7 @@
208
  "suggest": {
209
  "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
210
  },
211
- "time": "2019-08-13T16:05:52+00:00",
212
  "type": "library",
213
  "extra": {
214
  "branch-alias": {
@@ -253,17 +253,17 @@
253
  },
254
  {
255
  "name": "mollie/mollie-api-php",
256
- "version": "v2.12.0",
257
- "version_normalized": "2.12.0.0",
258
  "source": {
259
  "type": "git",
260
  "url": "https://github.com/mollie/mollie-api-php.git",
261
- "reference": "a8540896e069fca409cf18351b33ec10f58622c6"
262
  },
263
  "dist": {
264
  "type": "zip",
265
- "url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/a8540896e069fca409cf18351b33ec10f58622c6",
266
- "reference": "a8540896e069fca409cf18351b33ec10f58622c6",
267
  "shasum": ""
268
  },
269
  "require": {
@@ -281,7 +281,7 @@
281
  "suggest": {
282
  "mollie/oauth2-mollie-php": "Use OAuth to authenticate with the Mollie API. This is needed for some endpoints. Visit https://docs.mollie.com/ for more information."
283
  },
284
- "time": "2019-09-26T12:36:04+00:00",
285
  "type": "library",
286
  "installation-source": "dist",
287
  "autoload": {
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/composer/ca-bundle.git",
9
+ "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e"
10
  },
11
  "dist": {
12
  "type": "zip",
13
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/47fe531de31fca4a1b997f87308e7d7804348f7e",
14
+ "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e",
15
  "shasum": ""
16
  },
17
  "require": {
24
  "psr/log": "^1.0",
25
  "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
26
  },
27
+ "time": "2020-01-13T10:02:55+00:00",
28
  "type": "library",
29
  "extra": {
30
  "branch-alias": {
132
  "source": {
133
  "type": "git",
134
  "url": "https://github.com/guzzle/promises.git",
135
+ "reference": "ac2529fc650684c5cd687e2b462d046cdbed556e"
136
  },
137
  "dist": {
138
  "type": "zip",
139
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/ac2529fc650684c5cd687e2b462d046cdbed556e",
140
+ "reference": "ac2529fc650684c5cd687e2b462d046cdbed556e",
141
  "shasum": ""
142
  },
143
  "require": {
146
  "require-dev": {
147
  "phpunit/phpunit": "^5.7.27 || ^7.5"
148
  },
149
+ "time": "2019-12-17T17:19:17+00:00",
150
  "type": "library",
151
  "extra": {
152
  "branch-alias": {
185
  "source": {
186
  "type": "git",
187
  "url": "https://github.com/guzzle/psr7.git",
188
+ "reference": "c291e45d40e638815990004e5f7ee367c2b752e9"
189
  },
190
  "dist": {
191
  "type": "zip",
192
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/c291e45d40e638815990004e5f7ee367c2b752e9",
193
+ "reference": "c291e45d40e638815990004e5f7ee367c2b752e9",
194
  "shasum": ""
195
  },
196
  "require": {
208
  "suggest": {
209
  "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
210
  },
211
+ "time": "2019-12-21T15:35:40+00:00",
212
  "type": "library",
213
  "extra": {
214
  "branch-alias": {
253
  },
254
  {
255
  "name": "mollie/mollie-api-php",
256
+ "version": "v2.12.1",
257
+ "version_normalized": "2.12.1.0",
258
  "source": {
259
  "type": "git",
260
  "url": "https://github.com/mollie/mollie-api-php.git",
261
+ "reference": "04e2c1840533cba377130291336cde3d392cc214"
262
  },
263
  "dist": {
264
  "type": "zip",
265
+ "url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/04e2c1840533cba377130291336cde3d392cc214",
266
+ "reference": "04e2c1840533cba377130291336cde3d392cc214",
267
  "shasum": ""
268
  },
269
  "require": {
281
  "suggest": {
282
  "mollie/oauth2-mollie-php": "Use OAuth to authenticate with the Mollie API. This is needed for some endpoints. Visit https://docs.mollie.com/ for more information."
283
  },
284
+ "time": "2019-11-29T10:27:50+00:00",
285
  "type": "library",
286
  "installation-source": "dist",
287
  "autoload": {
vendor/guzzlehttp/guzzle/.php_cs DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
-
3
- $config = PhpCsFixer\Config::create()
4
- ->setRiskyAllowed(true)
5
- ->setRules([
6
- '@PSR2' => true,
7
- 'array_syntax' => ['syntax' => 'short'],
8
- 'declare_strict_types' => false,
9
- 'concat_space' => ['spacing'=>'one'],
10
- 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
11
- 'ordered_imports' => true,
12
- // 'phpdoc_align' => ['align'=>'vertical'],
13
- // 'native_function_invocation' => true,
14
- ])
15
- ->setFinder(
16
- PhpCsFixer\Finder::create()
17
- ->in(__DIR__.'/src')
18
- ->in(__DIR__.'/tests')
19
- ->name('*.php')
20
- )
21
- ;
22
-
23
- return $config;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/guzzle/CHANGELOG.md DELETED
@@ -1,1304 +0,0 @@
1
- # Change Log
2
-
3
- ## 6.4.1 - 2019-10-23
4
-
5
- * No `guzzle.phar` was created in 6.4.0 due expired API token. This release will fix that
6
- * Added `parent::__construct()` to `FileCookieJar` and `SessionCookieJar`
7
-
8
- ## 6.4.0 - 2019-10-23
9
-
10
- * Improvement: Improved error messages when using curl < 7.21.2 [#2108](https://github.com/guzzle/guzzle/pull/2108)
11
- * Fix: Test if response is readable before returning a summary in `RequestException::getResponseBodySummary()` [#2081](https://github.com/guzzle/guzzle/pull/2081)
12
- * Fix: Add support for GUZZLE_CURL_SELECT_TIMEOUT environment variable [#2161](https://github.com/guzzle/guzzle/pull/2161)
13
- * Improvement: Added `GuzzleHttp\Exception\InvalidArgumentException` [#2163](https://github.com/guzzle/guzzle/pull/2163)
14
- * Improvement: Added `GuzzleHttp\_current_time()` to use `hrtime()` if that function exists. [#2242](https://github.com/guzzle/guzzle/pull/2242)
15
- * Improvement: Added curl's `appconnect_time` in `TransferStats` [#2284](https://github.com/guzzle/guzzle/pull/2284)
16
- * Improvement: Make GuzzleException extend Throwable wherever it's available [#2273](https://github.com/guzzle/guzzle/pull/2273)
17
- * Fix: Prevent concurrent writes to file when saving `CookieJar` [#2335](https://github.com/guzzle/guzzle/pull/2335)
18
- * Improvement: Update `MockHandler` so we can test transfer time [#2362](https://github.com/guzzle/guzzle/pull/2362)
19
-
20
- ## 6.3.3 - 2018-04-22
21
-
22
- * Fix: Default headers when decode_content is specified
23
-
24
-
25
- ## 6.3.2 - 2018-03-26
26
-
27
- * Fix: Release process
28
-
29
-
30
- ## 6.3.1 - 2018-03-26
31
-
32
- * Bug fix: Parsing 0 epoch expiry times in cookies [#2014](https://github.com/guzzle/guzzle/pull/2014)
33
- * Improvement: Better ConnectException detection [#2012](https://github.com/guzzle/guzzle/pull/2012)
34
- * Bug fix: Malformed domain that contains a "/" [#1999](https://github.com/guzzle/guzzle/pull/1999)
35
- * Bug fix: Undefined offset when a cookie has no first key-value pair [#1998](https://github.com/guzzle/guzzle/pull/1998)
36
- * Improvement: Support PHPUnit 6 [#1953](https://github.com/guzzle/guzzle/pull/1953)
37
- * Bug fix: Support empty headers [#1915](https://github.com/guzzle/guzzle/pull/1915)
38
- * Bug fix: Ignore case during header modifications [#1916](https://github.com/guzzle/guzzle/pull/1916)
39
-
40
- + Minor code cleanups, documentation fixes and clarifications.
41
-
42
-
43
- ## 6.3.0 - 2017-06-22
44
-
45
- * Feature: force IP resolution (ipv4 or ipv6) [#1608](https://github.com/guzzle/guzzle/pull/1608), [#1659](https://github.com/guzzle/guzzle/pull/1659)
46
- * Improvement: Don't include summary in exception message when body is empty [#1621](https://github.com/guzzle/guzzle/pull/1621)
47
- * Improvement: Handle `on_headers` option in MockHandler [#1580](https://github.com/guzzle/guzzle/pull/1580)
48
- * Improvement: Added SUSE Linux CA path [#1609](https://github.com/guzzle/guzzle/issues/1609)
49
- * Improvement: Use class reference for getting the name of the class instead of using hardcoded strings [#1641](https://github.com/guzzle/guzzle/pull/1641)
50
- * Feature: Added `read_timeout` option [#1611](https://github.com/guzzle/guzzle/pull/1611)
51
- * Bug fix: PHP 7.x fixes [#1685](https://github.com/guzzle/guzzle/pull/1685), [#1686](https://github.com/guzzle/guzzle/pull/1686), [#1811](https://github.com/guzzle/guzzle/pull/1811)
52
- * Deprecation: BadResponseException instantiation without a response [#1642](https://github.com/guzzle/guzzle/pull/1642)
53
- * Feature: Added NTLM auth [#1569](https://github.com/guzzle/guzzle/pull/1569)
54
- * Feature: Track redirect HTTP status codes [#1711](https://github.com/guzzle/guzzle/pull/1711)
55
- * Improvement: Check handler type during construction [#1745](https://github.com/guzzle/guzzle/pull/1745)
56
- * Improvement: Always include the Content-Length if there's a body [#1721](https://github.com/guzzle/guzzle/pull/1721)
57
- * Feature: Added convenience method to access a cookie by name [#1318](https://github.com/guzzle/guzzle/pull/1318)
58
- * Bug fix: Fill `CURLOPT_CAPATH` and `CURLOPT_CAINFO` properly [#1684](https://github.com/guzzle/guzzle/pull/1684)
59
- * Improvement: Use `\GuzzleHttp\Promise\rejection_for` function instead of object init [#1827](https://github.com/guzzle/guzzle/pull/1827)
60
-
61
-
62
- + Minor code cleanups, documentation fixes and clarifications.
63
-
64
- ## 6.2.3 - 2017-02-28
65
-
66
- * Fix deprecations with guzzle/psr7 version 1.4
67
-
68
- ## 6.2.2 - 2016-10-08
69
-
70
- * Allow to pass nullable Response to delay callable
71
- * Only add scheme when host is present
72
- * Fix drain case where content-length is the literal string zero
73
- * Obfuscate in-URL credentials in exceptions
74
-
75
- ## 6.2.1 - 2016-07-18
76
-
77
- * Address HTTP_PROXY security vulnerability, CVE-2016-5385:
78
- https://httpoxy.org/
79
- * Fixing timeout bug with StreamHandler:
80
- https://github.com/guzzle/guzzle/pull/1488
81
- * Only read up to `Content-Length` in PHP StreamHandler to avoid timeouts when
82
- a server does not honor `Connection: close`.
83
- * Ignore URI fragment when sending requests.
84
-
85
- ## 6.2.0 - 2016-03-21
86
-
87
- * Feature: added `GuzzleHttp\json_encode` and `GuzzleHttp\json_decode`.
88
- https://github.com/guzzle/guzzle/pull/1389
89
- * Bug fix: Fix sleep calculation when waiting for delayed requests.
90
- https://github.com/guzzle/guzzle/pull/1324
91
- * Feature: More flexible history containers.
92
- https://github.com/guzzle/guzzle/pull/1373
93
- * Bug fix: defer sink stream opening in StreamHandler.
94
- https://github.com/guzzle/guzzle/pull/1377
95
- * Bug fix: do not attempt to escape cookie values.
96
- https://github.com/guzzle/guzzle/pull/1406
97
- * Feature: report original content encoding and length on decoded responses.
98
- https://github.com/guzzle/guzzle/pull/1409
99
- * Bug fix: rewind seekable request bodies before dispatching to cURL.
100
- https://github.com/guzzle/guzzle/pull/1422
101
- * Bug fix: provide an empty string to `http_build_query` for HHVM workaround.
102
- https://github.com/guzzle/guzzle/pull/1367
103
-
104
- ## 6.1.1 - 2015-11-22
105
-
106
- * Bug fix: Proxy::wrapSync() now correctly proxies to the appropriate handler
107
- https://github.com/guzzle/guzzle/commit/911bcbc8b434adce64e223a6d1d14e9a8f63e4e4
108
- * Feature: HandlerStack is now more generic.
109
- https://github.com/guzzle/guzzle/commit/f2102941331cda544745eedd97fc8fd46e1ee33e
110
- * Bug fix: setting verify to false in the StreamHandler now disables peer
111
- verification. https://github.com/guzzle/guzzle/issues/1256
112
- * Feature: Middleware now uses an exception factory, including more error
113
- context. https://github.com/guzzle/guzzle/pull/1282
114
- * Feature: better support for disabled functions.
115
- https://github.com/guzzle/guzzle/pull/1287
116
- * Bug fix: fixed regression where MockHandler was not using `sink`.
117
- https://github.com/guzzle/guzzle/pull/1292
118
-
119
- ## 6.1.0 - 2015-09-08
120
-
121
- * Feature: Added the `on_stats` request option to provide access to transfer
122
- statistics for requests. https://github.com/guzzle/guzzle/pull/1202
123
- * Feature: Added the ability to persist session cookies in CookieJars.
124
- https://github.com/guzzle/guzzle/pull/1195
125
- * Feature: Some compatibility updates for Google APP Engine
126
- https://github.com/guzzle/guzzle/pull/1216
127
- * Feature: Added support for NO_PROXY to prevent the use of a proxy based on
128
- a simple set of rules. https://github.com/guzzle/guzzle/pull/1197
129
- * Feature: Cookies can now contain square brackets.
130
- https://github.com/guzzle/guzzle/pull/1237
131
- * Bug fix: Now correctly parsing `=` inside of quotes in Cookies.
132
- https://github.com/guzzle/guzzle/pull/1232
133
- * Bug fix: Cusotm cURL options now correctly override curl options of the
134
- same name. https://github.com/guzzle/guzzle/pull/1221
135
- * Bug fix: Content-Type header is now added when using an explicitly provided
136
- multipart body. https://github.com/guzzle/guzzle/pull/1218
137
- * Bug fix: Now ignoring Set-Cookie headers that have no name.
138
- * Bug fix: Reason phrase is no longer cast to an int in some cases in the
139
- cURL handler. https://github.com/guzzle/guzzle/pull/1187
140
- * Bug fix: Remove the Authorization header when redirecting if the Host
141
- header changes. https://github.com/guzzle/guzzle/pull/1207
142
- * Bug fix: Cookie path matching fixes
143
- https://github.com/guzzle/guzzle/issues/1129
144
- * Bug fix: Fixing the cURL `body_as_string` setting
145
- https://github.com/guzzle/guzzle/pull/1201
146
- * Bug fix: quotes are no longer stripped when parsing cookies.
147
- https://github.com/guzzle/guzzle/issues/1172
148
- * Bug fix: `form_params` and `query` now always uses the `&` separator.
149
- https://github.com/guzzle/guzzle/pull/1163
150
- * Bug fix: Adding a Content-Length to PHP stream wrapper requests if not set.
151
- https://github.com/guzzle/guzzle/pull/1189
152
-
153
- ## 6.0.2 - 2015-07-04
154
-
155
- * Fixed a memory leak in the curl handlers in which references to callbacks
156
- were not being removed by `curl_reset`.
157
- * Cookies are now extracted properly before redirects.
158
- * Cookies now allow more character ranges.
159
- * Decoded Content-Encoding responses are now modified to correctly reflect
160
- their state if the encoding was automatically removed by a handler. This
161
- means that the `Content-Encoding` header may be removed an the
162
- `Content-Length` modified to reflect the message size after removing the
163
- encoding.
164
- * Added a more explicit error message when trying to use `form_params` and
165
- `multipart` in the same request.
166
- * Several fixes for HHVM support.
167
- * Functions are now conditionally required using an additional level of
168
- indirection to help with global Composer installations.
169
-
170
- ## 6.0.1 - 2015-05-27
171
-
172
- * Fixed a bug with serializing the `query` request option where the `&`
173
- separator was missing.
174
- * Added a better error message for when `body` is provided as an array. Please
175
- use `form_params` or `multipart` instead.
176
- * Various doc fixes.
177
-
178
- ## 6.0.0 - 2015-05-26
179
-
180
- * See the UPGRADING.md document for more information.
181
- * Added `multipart` and `form_params` request options.
182
- * Added `synchronous` request option.
183
- * Added the `on_headers` request option.
184
- * Fixed `expect` handling.
185
- * No longer adding default middlewares in the client ctor. These need to be
186
- present on the provided handler in order to work.
187
- * Requests are no longer initiated when sending async requests with the
188
- CurlMultiHandler. This prevents unexpected recursion from requests completing
189
- while ticking the cURL loop.
190
- * Removed the semantics of setting `default` to `true`. This is no longer
191
- required now that the cURL loop is not ticked for async requests.
192
- * Added request and response logging middleware.
193
- * No longer allowing self signed certificates when using the StreamHandler.
194
- * Ensuring that `sink` is valid if saving to a file.
195
- * Request exceptions now include a "handler context" which provides handler
196
- specific contextual information.
197
- * Added `GuzzleHttp\RequestOptions` to allow request options to be applied
198
- using constants.
199
- * `$maxHandles` has been removed from CurlMultiHandler.
200
- * `MultipartPostBody` is now part of the `guzzlehttp/psr7` package.
201
-
202
- ## 5.3.0 - 2015-05-19
203
-
204
- * Mock now supports `save_to`
205
- * Marked `AbstractRequestEvent::getTransaction()` as public.
206
- * Fixed a bug in which multiple headers using different casing would overwrite
207
- previous headers in the associative array.
208
- * Added `Utils::getDefaultHandler()`
209
- * Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated.
210
- * URL scheme is now always lowercased.
211
-
212
- ## 6.0.0-beta.1
213
-
214
- * Requires PHP >= 5.5
215
- * Updated to use PSR-7
216
- * Requires immutable messages, which basically means an event based system
217
- owned by a request instance is no longer possible.
218
- * Utilizing the [Guzzle PSR-7 package](https://github.com/guzzle/psr7).
219
- * Removed the dependency on `guzzlehttp/streams`. These stream abstractions
220
- are available in the `guzzlehttp/psr7` package under the `GuzzleHttp\Psr7`
221
- namespace.
222
- * Added middleware and handler system
223
- * Replaced the Guzzle event and subscriber system with a middleware system.
224
- * No longer depends on RingPHP, but rather places the HTTP handlers directly
225
- in Guzzle, operating on PSR-7 messages.
226
- * Retry logic is now encapsulated in `GuzzleHttp\Middleware::retry`, which
227
- means the `guzzlehttp/retry-subscriber` is now obsolete.
228
- * Mocking responses is now handled using `GuzzleHttp\Handler\MockHandler`.
229
- * Asynchronous responses
230
- * No longer supports the `future` request option to send an async request.
231
- Instead, use one of the `*Async` methods of a client (e.g., `requestAsync`,
232
- `getAsync`, etc.).
233
- * Utilizing `GuzzleHttp\Promise` instead of React's promise library to avoid
234
- recursion required by chaining and forwarding react promises. See
235
- https://github.com/guzzle/promises
236
- * Added `requestAsync` and `sendAsync` to send request asynchronously.
237
- * Added magic methods for `getAsync()`, `postAsync()`, etc. to send requests
238
- asynchronously.
239
- * Request options
240
- * POST and form updates
241
- * Added the `form_fields` and `form_files` request options.
242
- * Removed the `GuzzleHttp\Post` namespace.
243
- * The `body` request option no longer accepts an array for POST requests.
244
- * The `exceptions` request option has been deprecated in favor of the
245
- `http_errors` request options.
246
- * The `save_to` request option has been deprecated in favor of `sink` request
247
- option.
248
- * Clients no longer accept an array of URI template string and variables for
249
- URI variables. You will need to expand URI templates before passing them
250
- into a client constructor or request method.
251
- * Client methods `get()`, `post()`, `put()`, `patch()`, `options()`, etc. are
252
- now magic methods that will send synchronous requests.
253
- * Replaced `Utils.php` with plain functions in `functions.php`.
254
- * Removed `GuzzleHttp\Collection`.
255
- * Removed `GuzzleHttp\BatchResults`. Batched pool results are now returned as
256
- an array.
257
- * Removed `GuzzleHttp\Query`. Query string handling is now handled using an
258
- associative array passed into the `query` request option. The query string
259
- is serialized using PHP's `http_build_query`. If you need more control, you
260
- can pass the query string in as a string.
261
- * `GuzzleHttp\QueryParser` has been replaced with the
262
- `GuzzleHttp\Psr7\parse_query`.
263
-
264
- ## 5.2.0 - 2015-01-27
265
-
266
- * Added `AppliesHeadersInterface` to make applying headers to a request based
267
- on the body more generic and not specific to `PostBodyInterface`.
268
- * Reduced the number of stack frames needed to send requests.
269
- * Nested futures are now resolved in the client rather than the RequestFsm
270
- * Finishing state transitions is now handled in the RequestFsm rather than the
271
- RingBridge.
272
- * Added a guard in the Pool class to not use recursion for request retries.
273
-
274
- ## 5.1.0 - 2014-12-19
275
-
276
- * Pool class no longer uses recursion when a request is intercepted.
277
- * The size of a Pool can now be dynamically adjusted using a callback.
278
- See https://github.com/guzzle/guzzle/pull/943.
279
- * Setting a request option to `null` when creating a request with a client will
280
- ensure that the option is not set. This allows you to overwrite default
281
- request options on a per-request basis.
282
- See https://github.com/guzzle/guzzle/pull/937.
283
- * Added the ability to limit which protocols are allowed for redirects by
284
- specifying a `protocols` array in the `allow_redirects` request option.
285
- * Nested futures due to retries are now resolved when waiting for synchronous
286
- responses. See https://github.com/guzzle/guzzle/pull/947.
287
- * `"0"` is now an allowed URI path. See
288
- https://github.com/guzzle/guzzle/pull/935.
289
- * `Query` no longer typehints on the `$query` argument in the constructor,
290
- allowing for strings and arrays.
291
- * Exceptions thrown in the `end` event are now correctly wrapped with Guzzle
292
- specific exceptions if necessary.
293
-
294
- ## 5.0.3 - 2014-11-03
295
-
296
- This change updates query strings so that they are treated as un-encoded values
297
- by default where the value represents an un-encoded value to send over the
298
- wire. A Query object then encodes the value before sending over the wire. This
299
- means that even value query string values (e.g., ":") are url encoded. This
300
- makes the Query class match PHP's http_build_query function. However, if you
301
- want to send requests over the wire using valid query string characters that do
302
- not need to be encoded, then you can provide a string to Url::setQuery() and
303
- pass true as the second argument to specify that the query string is a raw
304
- string that should not be parsed or encoded (unless a call to getQuery() is
305
- subsequently made, forcing the query-string to be converted into a Query
306
- object).
307
-
308
- ## 5.0.2 - 2014-10-30
309
-
310
- * Added a trailing `\r\n` to multipart/form-data payloads. See
311
- https://github.com/guzzle/guzzle/pull/871
312
- * Added a `GuzzleHttp\Pool::send()` convenience method to match the docs.
313
- * Status codes are now returned as integers. See
314
- https://github.com/guzzle/guzzle/issues/881
315
- * No longer overwriting an existing `application/x-www-form-urlencoded` header
316
- when sending POST requests, allowing for customized headers. See
317
- https://github.com/guzzle/guzzle/issues/877
318
- * Improved path URL serialization.
319
-
320
- * No longer double percent-encoding characters in the path or query string if
321
- they are already encoded.
322
- * Now properly encoding the supplied path to a URL object, instead of only
323
- encoding ' ' and '?'.
324
- * Note: This has been changed in 5.0.3 to now encode query string values by
325
- default unless the `rawString` argument is provided when setting the query
326
- string on a URL: Now allowing many more characters to be present in the
327
- query string without being percent encoded. See http://tools.ietf.org/html/rfc3986#appendix-A
328
-
329
- ## 5.0.1 - 2014-10-16
330
-
331
- Bugfix release.
332
-
333
- * Fixed an issue where connection errors still returned response object in
334
- error and end events event though the response is unusable. This has been
335
- corrected so that a response is not returned in the `getResponse` method of
336
- these events if the response did not complete. https://github.com/guzzle/guzzle/issues/867
337
- * Fixed an issue where transfer statistics were not being populated in the
338
- RingBridge. https://github.com/guzzle/guzzle/issues/866
339
-
340
- ## 5.0.0 - 2014-10-12
341
-
342
- Adding support for non-blocking responses and some minor API cleanup.
343
-
344
- ### New Features
345
-
346
- * Added support for non-blocking responses based on `guzzlehttp/guzzle-ring`.
347
- * Added a public API for creating a default HTTP adapter.
348
- * Updated the redirect plugin to be non-blocking so that redirects are sent
349
- concurrently. Other plugins like this can now be updated to be non-blocking.
350
- * Added a "progress" event so that you can get upload and download progress
351
- events.
352
- * Added `GuzzleHttp\Pool` which implements FutureInterface and transfers
353
- requests concurrently using a capped pool size as efficiently as possible.
354
- * Added `hasListeners()` to EmitterInterface.
355
- * Removed `GuzzleHttp\ClientInterface::sendAll` and marked
356
- `GuzzleHttp\Client::sendAll` as deprecated (it's still there, just not the
357
- recommended way).
358
-
359
- ### Breaking changes
360
-
361
- The breaking changes in this release are relatively minor. The biggest thing to
362
- look out for is that request and response objects no longer implement fluent
363
- interfaces.
364
-
365
- * Removed the fluent interfaces (i.e., `return $this`) from requests,
366
- responses, `GuzzleHttp\Collection`, `GuzzleHttp\Url`,
367
- `GuzzleHttp\Query`, `GuzzleHttp\Post\PostBody`, and
368
- `GuzzleHttp\Cookie\SetCookie`. This blog post provides a good outline of
369
- why I did this: http://ocramius.github.io/blog/fluent-interfaces-are-evil/.
370
- This also makes the Guzzle message interfaces compatible with the current
371
- PSR-7 message proposal.
372
- * Removed "functions.php", so that Guzzle is truly PSR-4 compliant. Except
373
- for the HTTP request functions from function.php, these functions are now
374
- implemented in `GuzzleHttp\Utils` using camelCase. `GuzzleHttp\json_decode`
375
- moved to `GuzzleHttp\Utils::jsonDecode`. `GuzzleHttp\get_path` moved to
376
- `GuzzleHttp\Utils::getPath`. `GuzzleHttp\set_path` moved to
377
- `GuzzleHttp\Utils::setPath`. `GuzzleHttp\batch` should now be
378
- `GuzzleHttp\Pool::batch`, which returns an `objectStorage`. Using functions.php
379
- caused problems for many users: they aren't PSR-4 compliant, require an
380
- explicit include, and needed an if-guard to ensure that the functions are not
381
- declared multiple times.
382
- * Rewrote adapter layer.
383
- * Removing all classes from `GuzzleHttp\Adapter`, these are now
384
- implemented as callables that are stored in `GuzzleHttp\Ring\Client`.
385
- * Removed the concept of "parallel adapters". Sending requests serially or
386
- concurrently is now handled using a single adapter.
387
- * Moved `GuzzleHttp\Adapter\Transaction` to `GuzzleHttp\Transaction`. The
388
- Transaction object now exposes the request, response, and client as public
389
- properties. The getters and setters have been removed.
390
- * Removed the "headers" event. This event was only useful for changing the
391
- body a response once the headers of the response were known. You can implement
392
- a similar behavior in a number of ways. One example might be to use a
393
- FnStream that has access to the transaction being sent. For example, when the
394
- first byte is written, you could check if the response headers match your
395
- expectations, and if so, change the actual stream body that is being
396
- written to.
397
- * Removed the `asArray` parameter from
398
- `GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header
399
- value as an array, then use the newly added `getHeaderAsArray()` method of
400
- `MessageInterface`. This change makes the Guzzle interfaces compatible with
401
- the PSR-7 interfaces.
402
- * `GuzzleHttp\Message\MessageFactory` no longer allows subclasses to add
403
- custom request options using double-dispatch (this was an implementation
404
- detail). Instead, you should now provide an associative array to the
405
- constructor which is a mapping of the request option name mapping to a
406
- function that applies the option value to a request.
407
- * Removed the concept of "throwImmediately" from exceptions and error events.
408
- This control mechanism was used to stop a transfer of concurrent requests
409
- from completing. This can now be handled by throwing the exception or by
410
- cancelling a pool of requests or each outstanding future request individually.
411
- * Updated to "GuzzleHttp\Streams" 3.0.
412
- * `GuzzleHttp\Stream\StreamInterface::getContents()` no longer accepts a
413
- `maxLen` parameter. This update makes the Guzzle streams project
414
- compatible with the current PSR-7 proposal.
415
- * `GuzzleHttp\Stream\Stream::__construct`,
416
- `GuzzleHttp\Stream\Stream::factory`, and
417
- `GuzzleHttp\Stream\Utils::create` no longer accept a size in the second
418
- argument. They now accept an associative array of options, including the
419
- "size" key and "metadata" key which can be used to provide custom metadata.
420
-
421
- ## 4.2.2 - 2014-09-08
422
-
423
- * Fixed a memory leak in the CurlAdapter when reusing cURL handles.
424
- * No longer using `request_fulluri` in stream adapter proxies.
425
- * Relative redirects are now based on the last response, not the first response.
426
-
427
- ## 4.2.1 - 2014-08-19
428
-
429
- * Ensuring that the StreamAdapter does not always add a Content-Type header
430
- * Adding automated github releases with a phar and zip
431
-
432
- ## 4.2.0 - 2014-08-17
433
-
434
- * Now merging in default options using a case-insensitive comparison.
435
- Closes https://github.com/guzzle/guzzle/issues/767
436
- * Added the ability to automatically decode `Content-Encoding` response bodies
437
- using the `decode_content` request option. This is set to `true` by default
438
- to decode the response body if it comes over the wire with a
439
- `Content-Encoding`. Set this value to `false` to disable decoding the
440
- response content, and pass a string to provide a request `Accept-Encoding`
441
- header and turn on automatic response decoding. This feature now allows you
442
- to pass an `Accept-Encoding` header in the headers of a request but still
443
- disable automatic response decoding.
444
- Closes https://github.com/guzzle/guzzle/issues/764
445
- * Added the ability to throw an exception immediately when transferring
446
- requests in parallel. Closes https://github.com/guzzle/guzzle/issues/760
447
- * Updating guzzlehttp/streams dependency to ~2.1
448
- * No longer utilizing the now deprecated namespaced methods from the stream
449
- package.
450
-
451
- ## 4.1.8 - 2014-08-14
452
-
453
- * Fixed an issue in the CurlFactory that caused setting the `stream=false`
454
- request option to throw an exception.
455
- See: https://github.com/guzzle/guzzle/issues/769
456
- * TransactionIterator now calls rewind on the inner iterator.
457
- See: https://github.com/guzzle/guzzle/pull/765
458
- * You can now set the `Content-Type` header to `multipart/form-data`
459
- when creating POST requests to force multipart bodies.
460
- See https://github.com/guzzle/guzzle/issues/768
461
-
462
- ## 4.1.7 - 2014-08-07
463
-
464
- * Fixed an error in the HistoryPlugin that caused the same request and response
465
- to be logged multiple times when an HTTP protocol error occurs.
466
- * Ensuring that cURL does not add a default Content-Type when no Content-Type
467
- has been supplied by the user. This prevents the adapter layer from modifying
468
- the request that is sent over the wire after any listeners may have already
469
- put the request in a desired state (e.g., signed the request).
470
- * Throwing an exception when you attempt to send requests that have the
471
- "stream" set to true in parallel using the MultiAdapter.
472
- * Only calling curl_multi_select when there are active cURL handles. This was
473
- previously changed and caused performance problems on some systems due to PHP
474
- always selecting until the maximum select timeout.
475
- * Fixed a bug where multipart/form-data POST fields were not correctly
476
- aggregated (e.g., values with "&").
477
-
478
- ## 4.1.6 - 2014-08-03
479
-
480
- * Added helper methods to make it easier to represent messages as strings,
481
- including getting the start line and getting headers as a string.
482
-
483
- ## 4.1.5 - 2014-08-02
484
-
485
- * Automatically retrying cURL "Connection died, retrying a fresh connect"
486
- errors when possible.
487
- * cURL implementation cleanup
488
- * Allowing multiple event subscriber listeners to be registered per event by
489
- passing an array of arrays of listener configuration.
490
-
491
- ## 4.1.4 - 2014-07-22
492
-
493
- * Fixed a bug that caused multi-part POST requests with more than one field to
494
- serialize incorrectly.
495
- * Paths can now be set to "0"
496
- * `ResponseInterface::xml` now accepts a `libxml_options` option and added a
497
- missing default argument that was required when parsing XML response bodies.
498
- * A `save_to` stream is now created lazily, which means that files are not
499
- created on disk unless a request succeeds.
500
-
501
- ## 4.1.3 - 2014-07-15
502
-
503
- * Various fixes to multipart/form-data POST uploads
504
- * Wrapping function.php in an if-statement to ensure Guzzle can be used
505
- globally and in a Composer install
506
- * Fixed an issue with generating and merging in events to an event array
507
- * POST headers are only applied before sending a request to allow you to change
508
- the query aggregator used before uploading
509
- * Added much more robust query string parsing
510
- * Fixed various parsing and normalization issues with URLs
511
- * Fixing an issue where multi-valued headers were not being utilized correctly
512
- in the StreamAdapter
513
-
514
- ## 4.1.2 - 2014-06-18
515
-
516
- * Added support for sending payloads with GET requests
517
-
518
- ## 4.1.1 - 2014-06-08
519
-
520
- * Fixed an issue related to using custom message factory options in subclasses
521
- * Fixed an issue with nested form fields in a multi-part POST
522
- * Fixed an issue with using the `json` request option for POST requests
523
- * Added `ToArrayInterface` to `GuzzleHttp\Cookie\CookieJar`
524
-
525
- ## 4.1.0 - 2014-05-27
526
-
527
- * Added a `json` request option to easily serialize JSON payloads.
528
- * Added a `GuzzleHttp\json_decode()` wrapper to safely parse JSON.
529
- * Added `setPort()` and `getPort()` to `GuzzleHttp\Message\RequestInterface`.
530
- * Added the ability to provide an emitter to a client in the client constructor.
531
- * Added the ability to persist a cookie session using $_SESSION.
532
- * Added a trait that can be used to add event listeners to an iterator.
533
- * Removed request method constants from RequestInterface.
534
- * Fixed warning when invalid request start-lines are received.
535
- * Updated MessageFactory to work with custom request option methods.
536
- * Updated cacert bundle to latest build.
537
-
538
- 4.0.2 (2014-04-16)
539
- ------------------
540
-
541
- * Proxy requests using the StreamAdapter now properly use request_fulluri (#632)
542
- * Added the ability to set scalars as POST fields (#628)
543
-
544
- ## 4.0.1 - 2014-04-04
545
-
546
- * The HTTP status code of a response is now set as the exception code of
547
- RequestException objects.
548
- * 303 redirects will now correctly switch from POST to GET requests.
549
- * The default parallel adapter of a client now correctly uses the MultiAdapter.
550
- * HasDataTrait now initializes the internal data array as an empty array so
551
- that the toArray() method always returns an array.
552
-
553
- ## 4.0.0 - 2014-03-29
554
-
555
- * For more information on the 4.0 transition, see:
556
- http://mtdowling.com/blog/2014/03/15/guzzle-4-rc/
557
- * For information on changes and upgrading, see:
558
- https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40
559
- * Added `GuzzleHttp\batch()` as a convenience function for sending requests in
560
- parallel without needing to write asynchronous code.
561
- * Restructured how events are added to `GuzzleHttp\ClientInterface::sendAll()`.
562
- You can now pass a callable or an array of associative arrays where each
563
- associative array contains the "fn", "priority", and "once" keys.
564
-
565
- ## 4.0.0.rc-2 - 2014-03-25
566
-
567
- * Removed `getConfig()` and `setConfig()` from clients to avoid confusion
568
- around whether things like base_url, message_factory, etc. should be able to
569
- be retrieved or modified.
570
- * Added `getDefaultOption()` and `setDefaultOption()` to ClientInterface
571
- * functions.php functions were renamed using snake_case to match PHP idioms
572
- * Added support for `HTTP_PROXY`, `HTTPS_PROXY`, and
573
- `GUZZLE_CURL_SELECT_TIMEOUT` environment variables
574
- * Added the ability to specify custom `sendAll()` event priorities
575
- * Added the ability to specify custom stream context options to the stream
576
- adapter.
577
- * Added a functions.php function for `get_path()` and `set_path()`
578
- * CurlAdapter and MultiAdapter now use a callable to generate curl resources
579
- * MockAdapter now properly reads a body and emits a `headers` event
580
- * Updated Url class to check if a scheme and host are set before adding ":"
581
- and "//". This allows empty Url (e.g., "") to be serialized as "".
582
- * Parsing invalid XML no longer emits warnings
583
- * Curl classes now properly throw AdapterExceptions
584
- * Various performance optimizations
585
- * Streams are created with the faster `Stream\create()` function
586
- * Marked deprecation_proxy() as internal
587
- * Test server is now a collection of static methods on a class
588
-
589
- ## 4.0.0-rc.1 - 2014-03-15
590
-
591
- * See https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40
592
-
593
- ## 3.8.1 - 2014-01-28
594
-
595
- * Bug: Always using GET requests when redirecting from a 303 response
596
- * Bug: CURLOPT_SSL_VERIFYHOST is now correctly set to false when setting `$certificateAuthority` to false in
597
- `Guzzle\Http\ClientInterface::setSslVerification()`
598
- * Bug: RedirectPlugin now uses strict RFC 3986 compliance when combining a base URL with a relative URL
599
- * Bug: The body of a request can now be set to `"0"`
600
- * Sending PHP stream requests no longer forces `HTTP/1.0`
601
- * Adding more information to ExceptionCollection exceptions so that users have more context, including a stack trace of
602
- each sub-exception
603
- * Updated the `$ref` attribute in service descriptions to merge over any existing parameters of a schema (rather than
604
- clobbering everything).
605
- * Merging URLs will now use the query string object from the relative URL (thus allowing custom query aggregators)
606
- * Query strings are now parsed in a way that they do no convert empty keys with no value to have a dangling `=`.
607
- For example `foo&bar=baz` is now correctly parsed and recognized as `foo&bar=baz` rather than `foo=&bar=baz`.
608
- * Now properly escaping the regular expression delimiter when matching Cookie domains.
609
- * Network access is now disabled when loading XML documents
610
-
611
- ## 3.8.0 - 2013-12-05
612
-
613
- * Added the ability to define a POST name for a file
614
- * JSON response parsing now properly walks additionalProperties
615
- * cURL error code 18 is now retried automatically in the BackoffPlugin
616
- * Fixed a cURL error when URLs contain fragments
617
- * Fixed an issue in the BackoffPlugin retry event where it was trying to access all exceptions as if they were
618
- CurlExceptions
619
- * CURLOPT_PROGRESS function fix for PHP 5.5 (69fcc1e)
620
- * Added the ability for Guzzle to work with older versions of cURL that do not support `CURLOPT_TIMEOUT_MS`
621
- * Fixed a bug that was encountered when parsing empty header parameters
622
- * UriTemplate now has a `setRegex()` method to match the docs
623
- * The `debug` request parameter now checks if it is truthy rather than if it exists
624
- * Setting the `debug` request parameter to true shows verbose cURL output instead of using the LogPlugin
625
- * Added the ability to combine URLs using strict RFC 3986 compliance
626
- * Command objects can now return the validation errors encountered by the command
627
- * Various fixes to cache revalidation (#437 and 29797e5)
628
- * Various fixes to the AsyncPlugin
629
- * Cleaned up build scripts
630
-
631
- ## 3.7.4 - 2013-10-02
632
-
633
- * Bug fix: 0 is now an allowed value in a description parameter that has a default value (#430)
634
- * Bug fix: SchemaFormatter now returns an integer when formatting to a Unix timestamp
635
- (see https://github.com/aws/aws-sdk-php/issues/147)
636
- * Bug fix: Cleaned up and fixed URL dot segment removal to properly resolve internal dots
637
- * Minimum PHP version is now properly specified as 5.3.3 (up from 5.3.2) (#420)
638
- * Updated the bundled cacert.pem (#419)
639
- * OauthPlugin now supports adding authentication to headers or query string (#425)
640
-
641
- ## 3.7.3 - 2013-09-08
642
-
643
- * Added the ability to get the exception associated with a request/command when using `MultiTransferException` and
644
- `CommandTransferException`.
645
- * Setting `additionalParameters` of a response to false is now honored when parsing responses with a service description
646
- * Schemas are only injected into response models when explicitly configured.
647
- * No longer guessing Content-Type based on the path of a request. Content-Type is now only guessed based on the path of
648
- an EntityBody.
649
- * Bug fix: ChunkedIterator can now properly chunk a \Traversable as well as an \Iterator.
650
- * Bug fix: FilterIterator now relies on `\Iterator` instead of `\Traversable`.
651
- * Bug fix: Gracefully handling malformed responses in RequestMediator::writeResponseBody()
652
- * Bug fix: Replaced call to canCache with canCacheRequest in the CallbackCanCacheStrategy of the CachePlugin
653
- * Bug fix: Visiting XML attributes first before visiting XML children when serializing requests
654
- * Bug fix: Properly parsing headers that contain commas contained in quotes
655
- * Bug fix: mimetype guessing based on a filename is now case-insensitive
656
-
657
- ## 3.7.2 - 2013-08-02
658
-
659
- * Bug fix: Properly URL encoding paths when using the PHP-only version of the UriTemplate expander
660
- See https://github.com/guzzle/guzzle/issues/371
661
- * Bug fix: Cookie domains are now matched correctly according to RFC 6265
662
- See https://github.com/guzzle/guzzle/issues/377
663
- * Bug fix: GET parameters are now used when calculating an OAuth signature
664
- * Bug fix: Fixed an issue with cache revalidation where the If-None-Match header was being double quoted
665
- * `Guzzle\Common\AbstractHasDispatcher::dispatch()` now returns the event that was dispatched
666
- * `Guzzle\Http\QueryString::factory()` now guesses the most appropriate query aggregator to used based on the input.
667
- See https://github.com/guzzle/guzzle/issues/379
668
- * Added a way to add custom domain objects to service description parsing using the `operation.parse_class` event. See
669
- https://github.com/guzzle/guzzle/pull/380
670
- * cURL multi cleanup and optimizations
671
-
672
- ## 3.7.1 - 2013-07-05
673
-
674
- * Bug fix: Setting default options on a client now works
675
- * Bug fix: Setting options on HEAD requests now works. See #352
676
- * Bug fix: Moving stream factory before send event to before building the stream. See #353
677
- * Bug fix: Cookies no longer match on IP addresses per RFC 6265
678
- * Bug fix: Correctly parsing header parameters that are in `<>` and quotes
679
- * Added `cert` and `ssl_key` as request options
680
- * `Host` header can now diverge from the host part of a URL if the header is set manually
681
- * `Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor` was rewritten to change from using SimpleXML to XMLWriter
682
- * OAuth parameters are only added via the plugin if they aren't already set
683
- * Exceptions are now thrown when a URL cannot be parsed
684
- * Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails
685
- * Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin
686
-
687
- ## 3.7.0 - 2013-06-10
688
-
689
- * See UPGRADING.md for more information on how to upgrade.
690
- * Requests now support the ability to specify an array of $options when creating a request to more easily modify a
691
- request. You can pass a 'request.options' configuration setting to a client to apply default request options to
692
- every request created by a client (e.g. default query string variables, headers, curl options, etc.).
693
- * Added a static facade class that allows you to use Guzzle with static methods and mount the class to `\Guzzle`.
694
- See `Guzzle\Http\StaticClient::mount`.
695
- * Added `command.request_options` to `Guzzle\Service\Command\AbstractCommand` to pass request options to requests
696
- created by a command (e.g. custom headers, query string variables, timeout settings, etc.).
697
- * Stream size in `Guzzle\Stream\PhpStreamRequestFactory` will now be set if Content-Length is returned in the
698
- headers of a response
699
- * Added `Guzzle\Common\Collection::setPath($path, $value)` to set a value into an array using a nested key
700
- (e.g. `$collection->setPath('foo/baz/bar', 'test'); echo $collection['foo']['bar']['bar'];`)
701
- * ServiceBuilders now support storing and retrieving arbitrary data
702
- * CachePlugin can now purge all resources for a given URI
703
- * CachePlugin can automatically purge matching cached items when a non-idempotent request is sent to a resource
704
- * CachePlugin now uses the Vary header to determine if a resource is a cache hit
705
- * `Guzzle\Http\Message\Response` now implements `\Serializable`
706
- * Added `Guzzle\Cache\CacheAdapterFactory::fromCache()` to more easily create cache adapters
707
- * `Guzzle\Service\ClientInterface::execute()` now accepts an array, single command, or Traversable
708
- * Fixed a bug in `Guzzle\Http\Message\Header\Link::addLink()`
709
- * Better handling of calculating the size of a stream in `Guzzle\Stream\Stream` using fstat() and caching the size
710
- * `Guzzle\Common\Exception\ExceptionCollection` now creates a more readable exception message
711
- * Fixing BC break: Added back the MonologLogAdapter implementation rather than extending from PsrLog so that older
712
- Symfony users can still use the old version of Monolog.
713
- * Fixing BC break: Added the implementation back in for `Guzzle\Http\Message\AbstractMessage::getTokenizedHeader()`.
714
- Now triggering an E_USER_DEPRECATED warning when used. Use `$message->getHeader()->parseParams()`.
715
- * Several performance improvements to `Guzzle\Common\Collection`
716
- * Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`:
717
- createRequest, head, delete, put, patch, post, options, prepareRequest
718
- * Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()`
719
- * Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface`
720
- * Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to
721
- `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a
722
- resource, string, or EntityBody into the $options parameter to specify the download location of the response.
723
- * Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a
724
- default `array()`
725
- * Added `Guzzle\Stream\StreamInterface::isRepeatable`
726
- * Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use
727
- $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or
728
- $client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))`.
729
- * Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use $client->getConfig()->getPath('request.options/headers')`.
730
- * Removed `Guzzle\Http\ClientInterface::expandTemplate()`
731
- * Removed `Guzzle\Http\ClientInterface::setRequestFactory()`
732
- * Removed `Guzzle\Http\ClientInterface::getCurlMulti()`
733
- * Removed `Guzzle\Http\Message\RequestInterface::canCache`
734
- * Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect`
735
- * Removed `Guzzle\Http\Message\RequestInterface::isRedirect`
736
- * Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods.
737
- * You can now enable E_USER_DEPRECATED warnings to see if you are using a deprecated method by setting
738
- `Guzzle\Common\Version::$emitWarnings` to true.
739
- * Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use
740
- `$request->getResponseBody()->isRepeatable()` instead.
741
- * Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use
742
- `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
743
- * Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use
744
- `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
745
- * Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead.
746
- * Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead.
747
- * Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated
748
- * Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand.
749
- These will work through Guzzle 4.0
750
- * Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use [request.options][params].
751
- * Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client.
752
- * Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use $client->getConfig()->getPath('request.options/headers')`.
753
- * Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`.
754
- * Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8.
755
- * Marked `Guzzle\Common\Collection::inject()` as deprecated.
756
- * Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');`
757
- * CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a
758
- CacheStorageInterface. These two objects and interface will be removed in a future version.
759
- * Always setting X-cache headers on cached responses
760
- * Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin
761
- * `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface
762
- $request, Response $response);`
763
- * `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);`
764
- * `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);`
765
- * Added `CacheStorageInterface::purge($url)`
766
- * `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin
767
- $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache,
768
- CanCacheStrategyInterface $canCache = null)`
769
- * Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)`
770
-
771
- ## 3.6.0 - 2013-05-29
772
-
773
- * ServiceDescription now implements ToArrayInterface
774
- * Added command.hidden_params to blacklist certain headers from being treated as additionalParameters
775
- * Guzzle can now correctly parse incomplete URLs
776
- * Mixed casing of headers are now forced to be a single consistent casing across all values for that header.
777
- * Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution
778
- * Removed the whole changedHeader() function system of messages because all header changes now go through addHeader().
779
- * Specific header implementations can be created for complex headers. When a message creates a header, it uses a
780
- HeaderFactory which can map specific headers to specific header classes. There is now a Link header and
781
- CacheControl header implementation.
782
- * Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate
783
- * Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti()
784
- * Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in
785
- Guzzle\Http\Curl\RequestMediator
786
- * Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string.
787
- * Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface
788
- * Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders()
789
- * Removed Guzzle\Parser\ParserRegister::get(). Use getParser()
790
- * Removed Guzzle\Parser\ParserRegister::set(). Use registerParser().
791
- * All response header helper functions return a string rather than mixing Header objects and strings inconsistently
792
- * Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle
793
- directly via interfaces
794
- * Removed the injecting of a request object onto a response object. The methods to get and set a request still exist
795
- but are a no-op until removed.
796
- * Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a
797
- `Guzzle\Service\Command\ArrayCommandInterface`.
798
- * Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response
799
- on a request while the request is still being transferred
800
- * The ability to case-insensitively search for header values
801
- * Guzzle\Http\Message\Header::hasExactHeader
802
- * Guzzle\Http\Message\Header::raw. Use getAll()
803
- * Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object
804
- instead.
805
- * `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess
806
- * Added the ability to cast Model objects to a string to view debug information.
807
-
808
- ## 3.5.0 - 2013-05-13
809
-
810
- * Bug: Fixed a regression so that request responses are parsed only once per oncomplete event rather than multiple times
811
- * Bug: Better cleanup of one-time events across the board (when an event is meant to fire once, it will now remove
812
- itself from the EventDispatcher)
813
- * Bug: `Guzzle\Log\MessageFormatter` now properly writes "total_time" and "connect_time" values
814
- * Bug: Cloning an EntityEnclosingRequest now clones the EntityBody too
815
- * Bug: Fixed an undefined index error when parsing nested JSON responses with a sentAs parameter that reference a
816
- non-existent key
817
- * Bug: All __call() method arguments are now required (helps with mocking frameworks)
818
- * Deprecating Response::getRequest() and now using a shallow clone of a request object to remove a circular reference
819
- to help with refcount based garbage collection of resources created by sending a request
820
- * Deprecating ZF1 cache and log adapters. These will be removed in the next major version.
821
- * Deprecating `Response::getPreviousResponse()` (method signature still exists, but it's deprecated). Use the
822
- HistoryPlugin for a history.
823
- * Added a `responseBody` alias for the `response_body` location
824
- * Refactored internals to no longer rely on Response::getRequest()
825
- * HistoryPlugin can now be cast to a string
826
- * HistoryPlugin now logs transactions rather than requests and responses to more accurately keep track of the requests
827
- and responses that are sent over the wire
828
- * Added `getEffectiveUrl()` and `getRedirectCount()` to Response objects
829
-
830
- ## 3.4.3 - 2013-04-30
831
-
832
- * Bug fix: Fixing bug introduced in 3.4.2 where redirect responses are duplicated on the final redirected response
833
- * Added a check to re-extract the temp cacert bundle from the phar before sending each request
834
-
835
- ## 3.4.2 - 2013-04-29
836
-
837
- * Bug fix: Stream objects now work correctly with "a" and "a+" modes
838
- * Bug fix: Removing `Transfer-Encoding: chunked` header when a Content-Length is present
839
- * Bug fix: AsyncPlugin no longer forces HEAD requests
840
- * Bug fix: DateTime timezones are now properly handled when using the service description schema formatter
841
- * Bug fix: CachePlugin now properly handles stale-if-error directives when a request to the origin server fails
842
- * Setting a response on a request will write to the custom request body from the response body if one is specified
843
- * LogPlugin now writes to php://output when STDERR is undefined
844
- * Added the ability to set multiple POST files for the same key in a single call
845
- * application/x-www-form-urlencoded POSTs now use the utf-8 charset by default
846
- * Added the ability to queue CurlExceptions to the MockPlugin
847
- * Cleaned up how manual responses are queued on requests (removed "queued_response" and now using request.before_send)
848
- * Configuration loading now allows remote files
849
-
850
- ## 3.4.1 - 2013-04-16
851
-
852
- * Large refactoring to how CurlMulti handles work. There is now a proxy that sits in front of a pool of CurlMulti
853
- handles. This greatly simplifies the implementation, fixes a couple bugs, and provides a small performance boost.
854
- * Exceptions are now properly grouped when sending requests in parallel
855
- * Redirects are now properly aggregated when a multi transaction fails
856
- * Redirects now set the response on the original object even in the event of a failure
857
- * Bug fix: Model names are now properly set even when using $refs
858
- * Added support for PHP 5.5's CurlFile to prevent warnings with the deprecated @ syntax
859
- * Added support for oauth_callback in OAuth signatures
860
- * Added support for oauth_verifier in OAuth signatures
861
- * Added support to attempt to retrieve a command first literally, then ucfirst, the with inflection
862
-
863
- ## 3.4.0 - 2013-04-11
864
-
865
- * Bug fix: URLs are now resolved correctly based on http://tools.ietf.org/html/rfc3986#section-5.2. #289
866
- * Bug fix: Absolute URLs with a path in a service description will now properly override the base URL. #289
867
- * Bug fix: Parsing a query string with a single PHP array value will now result in an array. #263
868
- * Bug fix: Better normalization of the User-Agent header to prevent duplicate headers. #264.
869
- * Bug fix: Added `number` type to service descriptions.
870
- * Bug fix: empty parameters are removed from an OAuth signature
871
- * Bug fix: Revalidating a cache entry prefers the Last-Modified over the Date header
872
- * Bug fix: Fixed "array to string" error when validating a union of types in a service description
873
- * Bug fix: Removed code that attempted to determine the size of a stream when data is written to the stream
874
- * Bug fix: Not including an `oauth_token` if the value is null in the OauthPlugin.
875
- * Bug fix: Now correctly aggregating successful requests and failed requests in CurlMulti when a redirect occurs.
876
- * The new default CURLOPT_TIMEOUT setting has been increased to 150 seconds so that Guzzle works on poor connections.
877
- * Added a feature to EntityEnclosingRequest::setBody() that will automatically set the Content-Type of the request if
878
- the Content-Type can be determined based on the entity body or the path of the request.
879
- * Added the ability to overwrite configuration settings in a client when grabbing a throwaway client from a builder.
880
- * Added support for a PSR-3 LogAdapter.
881
- * Added a `command.after_prepare` event
882
- * Added `oauth_callback` parameter to the OauthPlugin
883
- * Added the ability to create a custom stream class when using a stream factory
884
- * Added a CachingEntityBody decorator
885
- * Added support for `additionalParameters` in service descriptions to define how custom parameters are serialized.
886
- * The bundled SSL certificate is now provided in the phar file and extracted when running Guzzle from a phar.
887
- * You can now send any EntityEnclosingRequest with POST fields or POST files and cURL will handle creating bodies
888
- * POST requests using a custom entity body are now treated exactly like PUT requests but with a custom cURL method. This
889
- means that the redirect behavior of POST requests with custom bodies will not be the same as POST requests that use
890
- POST fields or files (the latter is only used when emulating a form POST in the browser).
891
- * Lots of cleanup to CurlHandle::factory and RequestFactory::createRequest
892
-
893
- ## 3.3.1 - 2013-03-10
894
-
895
- * Added the ability to create PHP streaming responses from HTTP requests
896
- * Bug fix: Running any filters when parsing response headers with service descriptions
897
- * Bug fix: OauthPlugin fixes to allow for multi-dimensional array signing, and sorting parameters before signing
898
- * Bug fix: Removed the adding of default empty arrays and false Booleans to responses in order to be consistent across
899
- response location visitors.
900
- * Bug fix: Removed the possibility of creating configuration files with circular dependencies
901
- * RequestFactory::create() now uses the key of a POST file when setting the POST file name
902
- * Added xmlAllowEmpty to serialize an XML body even if no XML specific parameters are set
903
-
904
- ## 3.3.0 - 2013-03-03
905
-
906
- * A large number of performance optimizations have been made
907
- * Bug fix: Added 'wb' as a valid write mode for streams
908
- * Bug fix: `Guzzle\Http\Message\Response::json()` now allows scalar values to be returned
909
- * Bug fix: Fixed bug in `Guzzle\Http\Message\Response` where wrapping quotes were stripped from `getEtag()`
910
- * BC: Removed `Guzzle\Http\Utils` class
911
- * BC: Setting a service description on a client will no longer modify the client's command factories.
912
- * BC: Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using
913
- the 'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io'
914
- * BC: `Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getSteamType()` are no longer converted to
915
- lowercase
916
- * Operation parameter objects are now lazy loaded internally
917
- * Added ErrorResponsePlugin that can throw errors for responses defined in service description operations' errorResponses
918
- * Added support for instantiating responseType=class responseClass classes. Classes must implement
919
- `Guzzle\Service\Command\ResponseClassInterface`
920
- * Added support for additionalProperties for top-level parameters in responseType=model responseClasses. These
921
- additional properties also support locations and can be used to parse JSON responses where the outermost part of the
922
- JSON is an array
923
- * Added support for nested renaming of JSON models (rename sentAs to name)
924
- * CachePlugin
925
- * Added support for stale-if-error so that the CachePlugin can now serve stale content from the cache on error
926
- * Debug headers can now added to cached response in the CachePlugin
927
-
928
- ## 3.2.0 - 2013-02-14
929
-
930
- * CurlMulti is no longer reused globally. A new multi object is created per-client. This helps to isolate clients.
931
- * URLs with no path no longer contain a "/" by default
932
- * Guzzle\Http\QueryString does no longer manages the leading "?". This is now handled in Guzzle\Http\Url.
933
- * BadResponseException no longer includes the full request and response message
934
- * Adding setData() to Guzzle\Service\Description\ServiceDescriptionInterface
935
- * Adding getResponseBody() to Guzzle\Http\Message\RequestInterface
936
- * Various updates to classes to use ServiceDescriptionInterface type hints rather than ServiceDescription
937
- * Header values can now be normalized into distinct values when multiple headers are combined with a comma separated list
938
- * xmlEncoding can now be customized for the XML declaration of a XML service description operation
939
- * Guzzle\Http\QueryString now uses Guzzle\Http\QueryAggregator\QueryAggregatorInterface objects to add custom value
940
- aggregation and no longer uses callbacks
941
- * The URL encoding implementation of Guzzle\Http\QueryString can now be customized
942
- * Bug fix: Filters were not always invoked for array service description parameters
943
- * Bug fix: Redirects now use a target response body rather than a temporary response body
944
- * Bug fix: The default exponential backoff BackoffPlugin was not giving when the request threshold was exceeded
945
- * Bug fix: Guzzle now takes the first found value when grabbing Cache-Control directives
946
-
947
- ## 3.1.2 - 2013-01-27
948
-
949
- * Refactored how operation responses are parsed. Visitors now include a before() method responsible for parsing the
950
- response body. For example, the XmlVisitor now parses the XML response into an array in the before() method.
951
- * Fixed an issue where cURL would not automatically decompress responses when the Accept-Encoding header was sent
952
- * CURLOPT_SSL_VERIFYHOST is never set to 1 because it is deprecated (see 5e0ff2ef20f839e19d1eeb298f90ba3598784444)
953
- * Fixed a bug where redirect responses were not chained correctly using getPreviousResponse()
954
- * Setting default headers on a client after setting the user-agent will not erase the user-agent setting
955
-
956
- ## 3.1.1 - 2013-01-20
957
-
958
- * Adding wildcard support to Guzzle\Common\Collection::getPath()
959
- * Adding alias support to ServiceBuilder configs
960
- * Adding Guzzle\Service\Resource\CompositeResourceIteratorFactory and cleaning up factory interface
961
-
962
- ## 3.1.0 - 2013-01-12
963
-
964
- * BC: CurlException now extends from RequestException rather than BadResponseException
965
- * BC: Renamed Guzzle\Plugin\Cache\CanCacheStrategyInterface::canCache() to canCacheRequest() and added CanCacheResponse()
966
- * Added getData to ServiceDescriptionInterface
967
- * Added context array to RequestInterface::setState()
968
- * Bug: Removing hard dependency on the BackoffPlugin from Guzzle\Http
969
- * Bug: Adding required content-type when JSON request visitor adds JSON to a command
970
- * Bug: Fixing the serialization of a service description with custom data
971
- * Made it easier to deal with exceptions thrown when transferring commands or requests in parallel by providing
972
- an array of successful and failed responses
973
- * Moved getPath from Guzzle\Service\Resource\Model to Guzzle\Common\Collection
974
- * Added Guzzle\Http\IoEmittingEntityBody
975
- * Moved command filtration from validators to location visitors
976
- * Added `extends` attributes to service description parameters
977
- * Added getModels to ServiceDescriptionInterface
978
-
979
- ## 3.0.7 - 2012-12-19
980
-
981
- * Fixing phar detection when forcing a cacert to system if null or true
982
- * Allowing filename to be passed to `Guzzle\Http\Message\Request::setResponseBody()`
983
- * Cleaning up `Guzzle\Common\Collection::inject` method
984
- * Adding a response_body location to service descriptions
985
-
986
- ## 3.0.6 - 2012-12-09
987
-
988
- * CurlMulti performance improvements
989
- * Adding setErrorResponses() to Operation
990
- * composer.json tweaks
991
-
992
- ## 3.0.5 - 2012-11-18
993
-
994
- * Bug: Fixing an infinite recursion bug caused from revalidating with the CachePlugin
995
- * Bug: Response body can now be a string containing "0"
996
- * Bug: Using Guzzle inside of a phar uses system by default but now allows for a custom cacert
997
- * Bug: QueryString::fromString now properly parses query string parameters that contain equal signs
998
- * Added support for XML attributes in service description responses
999
- * DefaultRequestSerializer now supports array URI parameter values for URI template expansion
1000
- * Added better mimetype guessing to requests and post files
1001
-
1002
- ## 3.0.4 - 2012-11-11
1003
-
1004
- * Bug: Fixed a bug when adding multiple cookies to a request to use the correct glue value
1005
- * Bug: Cookies can now be added that have a name, domain, or value set to "0"
1006
- * Bug: Using the system cacert bundle when using the Phar
1007
- * Added json and xml methods to Response to make it easier to parse JSON and XML response data into data structures
1008
- * Enhanced cookie jar de-duplication
1009
- * Added the ability to enable strict cookie jars that throw exceptions when invalid cookies are added
1010
- * Added setStream to StreamInterface to actually make it possible to implement custom rewind behavior for entity bodies
1011
- * Added the ability to create any sort of hash for a stream rather than just an MD5 hash
1012
-
1013
- ## 3.0.3 - 2012-11-04
1014
-
1015
- * Implementing redirects in PHP rather than cURL
1016
- * Added PECL URI template extension and using as default parser if available
1017
- * Bug: Fixed Content-Length parsing of Response factory
1018
- * Adding rewind() method to entity bodies and streams. Allows for custom rewinding of non-repeatable streams.
1019
- * Adding ToArrayInterface throughout library
1020
- * Fixing OauthPlugin to create unique nonce values per request
1021
-
1022
- ## 3.0.2 - 2012-10-25
1023
-
1024
- * Magic methods are enabled by default on clients
1025
- * Magic methods return the result of a command
1026
- * Service clients no longer require a base_url option in the factory
1027
- * Bug: Fixed an issue with URI templates where null template variables were being expanded
1028
-
1029
- ## 3.0.1 - 2012-10-22
1030
-
1031
- * Models can now be used like regular collection objects by calling filter, map, etc.
1032
- * Models no longer require a Parameter structure or initial data in the constructor
1033
- * Added a custom AppendIterator to get around a PHP bug with the `\AppendIterator`
1034
-
1035
- ## 3.0.0 - 2012-10-15
1036
-
1037
- * Rewrote service description format to be based on Swagger
1038
- * Now based on JSON schema
1039
- * Added nested input structures and nested response models
1040
- * Support for JSON and XML input and output models
1041
- * Renamed `commands` to `operations`
1042
- * Removed dot class notation
1043
- * Removed custom types
1044
- * Broke the project into smaller top-level namespaces to be more component friendly
1045
- * Removed support for XML configs and descriptions. Use arrays or JSON files.
1046
- * Removed the Validation component and Inspector
1047
- * Moved all cookie code to Guzzle\Plugin\Cookie
1048
- * Magic methods on a Guzzle\Service\Client now return the command un-executed.
1049
- * Calling getResult() or getResponse() on a command will lazily execute the command if needed.
1050
- * Now shipping with cURL's CA certs and using it by default
1051
- * Added previousResponse() method to response objects
1052
- * No longer sending Accept and Accept-Encoding headers on every request
1053
- * Only sending an Expect header by default when a payload is greater than 1MB
1054
- * Added/moved client options:
1055
- * curl.blacklist to curl.option.blacklist
1056
- * Added ssl.certificate_authority
1057
- * Added a Guzzle\Iterator component
1058
- * Moved plugins from Guzzle\Http\Plugin to Guzzle\Plugin
1059
- * Added a more robust backoff retry strategy (replaced the ExponentialBackoffPlugin)
1060
- * Added a more robust caching plugin
1061
- * Added setBody to response objects
1062
- * Updating LogPlugin to use a more flexible MessageFormatter
1063
- * Added a completely revamped build process
1064
- * Cleaning up Collection class and removing default values from the get method
1065
- * Fixed ZF2 cache adapters
1066
-
1067
- ## 2.8.8 - 2012-10-15
1068
-
1069
- * Bug: Fixed a cookie issue that caused dot prefixed domains to not match where popular browsers did
1070
-
1071
- ## 2.8.7 - 2012-09-30
1072
-
1073
- * Bug: Fixed config file aliases for JSON includes
1074
- * Bug: Fixed cookie bug on a request object by using CookieParser to parse cookies on requests
1075
- * Bug: Removing the path to a file when sending a Content-Disposition header on a POST upload
1076
- * Bug: Hardening request and response parsing to account for missing parts
1077
- * Bug: Fixed PEAR packaging
1078
- * Bug: Fixed Request::getInfo
1079
- * Bug: Fixed cases where CURLM_CALL_MULTI_PERFORM return codes were causing curl transactions to fail
1080
- * Adding the ability for the namespace Iterator factory to look in multiple directories
1081
- * Added more getters/setters/removers from service descriptions
1082
- * Added the ability to remove POST fields from OAuth signatures
1083
- * OAuth plugin now supports 2-legged OAuth
1084
-
1085
- ## 2.8.6 - 2012-09-05
1086
-
1087
- * Added the ability to modify and build service descriptions
1088
- * Added the use of visitors to apply parameters to locations in service descriptions using the dynamic command
1089
- * Added a `json` parameter location
1090
- * Now allowing dot notation for classes in the CacheAdapterFactory
1091
- * Using the union of two arrays rather than an array_merge when extending service builder services and service params
1092
- * Ensuring that a service is a string before doing strpos() checks on it when substituting services for references
1093
- in service builder config files.
1094
- * Services defined in two different config files that include one another will by default replace the previously
1095
- defined service, but you can now create services that extend themselves and merge their settings over the previous
1096
- * The JsonLoader now supports aliasing filenames with different filenames. This allows you to alias something like
1097
- '_default' with a default JSON configuration file.
1098
-
1099
- ## 2.8.5 - 2012-08-29
1100
-
1101
- * Bug: Suppressed empty arrays from URI templates
1102
- * Bug: Added the missing $options argument from ServiceDescription::factory to enable caching
1103
- * Added support for HTTP responses that do not contain a reason phrase in the start-line
1104
- * AbstractCommand commands are now invokable
1105
- * Added a way to get the data used when signing an Oauth request before a request is sent
1106
-
1107
- ## 2.8.4 - 2012-08-15
1108
-
1109
- * Bug: Custom delay time calculations are no longer ignored in the ExponentialBackoffPlugin
1110
- * Added the ability to transfer entity bodies as a string rather than streamed. This gets around curl error 65. Set `body_as_string` in a request's curl options to enable.
1111
- * Added a StreamInterface, EntityBodyInterface, and added ftell() to Guzzle\Common\Stream
1112
- * Added an AbstractEntityBodyDecorator and a ReadLimitEntityBody decorator to transfer only a subset of a decorated stream
1113
- * Stream and EntityBody objects will now return the file position to the previous position after a read required operation (e.g. getContentMd5())
1114
- * Added additional response status codes
1115
- * Removed SSL information from the default User-Agent header
1116
- * DELETE requests can now send an entity body
1117
- * Added an EventDispatcher to the ExponentialBackoffPlugin and added an ExponentialBackoffLogger to log backoff retries
1118
- * Added the ability of the MockPlugin to consume mocked request bodies
1119
- * LogPlugin now exposes request and response objects in the extras array
1120
-
1121
- ## 2.8.3 - 2012-07-30
1122
-
1123
- * Bug: Fixed a case where empty POST requests were sent as GET requests
1124
- * Bug: Fixed a bug in ExponentialBackoffPlugin that caused fatal errors when retrying an EntityEnclosingRequest that does not have a body
1125
- * Bug: Setting the response body of a request to null after completing a request, not when setting the state of a request to new
1126
- * Added multiple inheritance to service description commands
1127
- * Added an ApiCommandInterface and added `getParamNames()` and `hasParam()`
1128
- * Removed the default 2mb size cutoff from the Md5ValidatorPlugin so that it now defaults to validating everything
1129
- * Changed CurlMulti::perform to pass a smaller timeout to CurlMulti::executeHandles
1130
-
1131
- ## 2.8.2 - 2012-07-24
1132
-
1133
- * Bug: Query string values set to 0 are no longer dropped from the query string
1134
- * Bug: A Collection object is no longer created each time a call is made to `Guzzle\Service\Command\AbstractCommand::getRequestHeaders()`
1135
- * Bug: `+` is now treated as an encoded space when parsing query strings
1136
- * QueryString and Collection performance improvements
1137
- * Allowing dot notation for class paths in filters attribute of a service descriptions
1138
-
1139
- ## 2.8.1 - 2012-07-16
1140
-
1141
- * Loosening Event Dispatcher dependency
1142
- * POST redirects can now be customized using CURLOPT_POSTREDIR
1143
-
1144
- ## 2.8.0 - 2012-07-15
1145
-
1146
- * BC: Guzzle\Http\Query
1147
- * Query strings with empty variables will always show an equal sign unless the variable is set to QueryString::BLANK (e.g. ?acl= vs ?acl)
1148
- * Changed isEncodingValues() and isEncodingFields() to isUrlEncoding()
1149
- * Changed setEncodeValues(bool) and setEncodeFields(bool) to useUrlEncoding(bool)
1150
- * Changed the aggregation functions of QueryString to be static methods
1151
- * Can now use fromString() with querystrings that have a leading ?
1152
- * cURL configuration values can be specified in service descriptions using `curl.` prefixed parameters
1153
- * Content-Length is set to 0 before emitting the request.before_send event when sending an empty request body
1154
- * Cookies are no longer URL decoded by default
1155
- * Bug: URI template variables set to null are no longer expanded
1156
-
1157
- ## 2.7.2 - 2012-07-02
1158
-
1159
- * BC: Moving things to get ready for subtree splits. Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser.
1160
- * BC: Removing Guzzle\Common\Batch\Batch::count() and replacing it with isEmpty()
1161
- * CachePlugin now allows for a custom request parameter function to check if a request can be cached
1162
- * Bug fix: CachePlugin now only caches GET and HEAD requests by default
1163
- * Bug fix: Using header glue when transferring headers over the wire
1164
- * Allowing deeply nested arrays for composite variables in URI templates
1165
- * Batch divisors can now return iterators or arrays
1166
-
1167
- ## 2.7.1 - 2012-06-26
1168
-
1169
- * Minor patch to update version number in UA string
1170
- * Updating build process
1171
-
1172
- ## 2.7.0 - 2012-06-25
1173
-
1174
- * BC: Inflection classes moved to Guzzle\Inflection. No longer static methods. Can now inject custom inflectors into classes.
1175
- * BC: Removed magic setX methods from commands
1176
- * BC: Magic methods mapped to service description commands are now inflected in the command factory rather than the client __call() method
1177
- * Verbose cURL options are no longer enabled by default. Set curl.debug to true on a client to enable.
1178
- * Bug: Now allowing colons in a response start-line (e.g. HTTP/1.1 503 Service Unavailable: Back-end server is at capacity)
1179
- * Guzzle\Service\Resource\ResourceIteratorApplyBatched now internally uses the Guzzle\Common\Batch namespace
1180
- * Added Guzzle\Service\Plugin namespace and a PluginCollectionPlugin
1181
- * Added the ability to set POST fields and files in a service description
1182
- * Guzzle\Http\EntityBody::factory() now accepts objects with a __toString() method
1183
- * Adding a command.before_prepare event to clients
1184
- * Added BatchClosureTransfer and BatchClosureDivisor
1185
- * BatchTransferException now includes references to the batch divisor and transfer strategies
1186
- * Fixed some tests so that they pass more reliably
1187
- * Added Guzzle\Common\Log\ArrayLogAdapter
1188
-
1189
- ## 2.6.6 - 2012-06-10
1190
-
1191
- * BC: Removing Guzzle\Http\Plugin\BatchQueuePlugin
1192
- * BC: Removing Guzzle\Service\Command\CommandSet
1193
- * Adding generic batching system (replaces the batch queue plugin and command set)
1194
- * Updating ZF cache and log adapters and now using ZF's composer repository
1195
- * Bug: Setting the name of each ApiParam when creating through an ApiCommand
1196
- * Adding result_type, result_doc, deprecated, and doc_url to service descriptions
1197
- * Bug: Changed the default cookie header casing back to 'Cookie'
1198
-
1199
- ## 2.6.5 - 2012-06-03
1200
-
1201
- * BC: Renaming Guzzle\Http\Message\RequestInterface::getResourceUri() to getResource()
1202
- * BC: Removing unused AUTH_BASIC and AUTH_DIGEST constants from
1203
- * BC: Guzzle\Http\Cookie is now used to manage Set-Cookie data, not Cookie data
1204
- * BC: Renaming methods in the CookieJarInterface
1205
- * Moving almost all cookie logic out of the CookiePlugin and into the Cookie or CookieJar implementations
1206
- * Making the default glue for HTTP headers ';' instead of ','
1207
- * Adding a removeValue to Guzzle\Http\Message\Header
1208
- * Adding getCookies() to request interface.
1209
- * Making it easier to add event subscribers to HasDispatcherInterface classes. Can now directly call addSubscriber()
1210
-
1211
- ## 2.6.4 - 2012-05-30
1212
-
1213
- * BC: Cleaning up how POST files are stored in EntityEnclosingRequest objects. Adding PostFile class.
1214
- * BC: Moving ApiCommand specific functionality from the Inspector and on to the ApiCommand
1215
- * Bug: Fixing magic method command calls on clients
1216
- * Bug: Email constraint only validates strings
1217
- * Bug: Aggregate POST fields when POST files are present in curl handle
1218
- * Bug: Fixing default User-Agent header
1219
- * Bug: Only appending or prepending parameters in commands if they are specified
1220
- * Bug: Not requiring response reason phrases or status codes to match a predefined list of codes
1221
- * Allowing the use of dot notation for class namespaces when using instance_of constraint
1222
- * Added any_match validation constraint
1223
- * Added an AsyncPlugin
1224
- * Passing request object to the calculateWait method of the ExponentialBackoffPlugin
1225
- * Allowing the result of a command object to be changed
1226
- * Parsing location and type sub values when instantiating a service description rather than over and over at runtime
1227
-
1228
- ## 2.6.3 - 2012-05-23
1229
-
1230
- * [BC] Guzzle\Common\FromConfigInterface no longer requires any config options.
1231
- * [BC] Refactoring how POST files are stored on an EntityEnclosingRequest. They are now separate from POST fields.
1232
- * You can now use an array of data when creating PUT request bodies in the request factory.
1233
- * Removing the requirement that HTTPS requests needed a Cache-Control: public directive to be cacheable.
1234
- * [Http] Adding support for Content-Type in multipart POST uploads per upload
1235
- * [Http] Added support for uploading multiple files using the same name (foo[0], foo[1])
1236
- * Adding more POST data operations for easier manipulation of POST data.
1237
- * You can now set empty POST fields.
1238
- * The body of a request is only shown on EntityEnclosingRequest objects that do not use POST files.
1239
- * Split the Guzzle\Service\Inspector::validateConfig method into two methods. One to initialize when a command is created, and one to validate.
1240
- * CS updates
1241
-
1242
- ## 2.6.2 - 2012-05-19
1243
-
1244
- * [Http] Better handling of nested scope requests in CurlMulti. Requests are now always prepares in the send() method rather than the addRequest() method.
1245
-
1246
- ## 2.6.1 - 2012-05-19
1247
-
1248
- * [BC] Removing 'path' support in service descriptions. Use 'uri'.
1249
- * [BC] Guzzle\Service\Inspector::parseDocBlock is now protected. Adding getApiParamsForClass() with cache.
1250
- * [BC] Removing Guzzle\Common\NullObject. Use https://github.com/mtdowling/NullObject if you need it.
1251
- * [BC] Removing Guzzle\Common\XmlElement.
1252
- * All commands, both dynamic and concrete, have ApiCommand objects.
1253
- * Adding a fix for CurlMulti so that if all of the connections encounter some sort of curl error, then the loop exits.
1254
- * Adding checks to EntityEnclosingRequest so that empty POST files and fields are ignored.
1255
- * Making the method signature of Guzzle\Service\Builder\ServiceBuilder::factory more flexible.
1256
-
1257
- ## 2.6.0 - 2012-05-15
1258
-
1259
- * [BC] Moving Guzzle\Service\Builder to Guzzle\Service\Builder\ServiceBuilder
1260
- * [BC] Executing a Command returns the result of the command rather than the command
1261
- * [BC] Moving all HTTP parsing logic to Guzzle\Http\Parsers. Allows for faster C implementations if needed.
1262
- * [BC] Changing the Guzzle\Http\Message\Response::setProtocol() method to accept a protocol and version in separate args.
1263
- * [BC] Moving ResourceIterator* to Guzzle\Service\Resource
1264
- * [BC] Completely refactored ResourceIterators to iterate over a cloned command object
1265
- * [BC] Moved Guzzle\Http\UriTemplate to Guzzle\Http\Parser\UriTemplate\UriTemplate
1266
- * [BC] Guzzle\Guzzle is now deprecated
1267
- * Moving Guzzle\Common\Guzzle::inject to Guzzle\Common\Collection::inject
1268
- * Adding Guzzle\Version class to give version information about Guzzle
1269
- * Adding Guzzle\Http\Utils class to provide getDefaultUserAgent() and getHttpDate()
1270
- * Adding Guzzle\Curl\CurlVersion to manage caching curl_version() data
1271
- * ServiceDescription and ServiceBuilder are now cacheable using similar configs
1272
- * Changing the format of XML and JSON service builder configs. Backwards compatible.
1273
- * Cleaned up Cookie parsing
1274
- * Trimming the default Guzzle User-Agent header
1275
- * Adding a setOnComplete() method to Commands that is called when a command completes
1276
- * Keeping track of requests that were mocked in the MockPlugin
1277
- * Fixed a caching bug in the CacheAdapterFactory
1278
- * Inspector objects can be injected into a Command object
1279
- * Refactoring a lot of code and tests to be case insensitive when dealing with headers
1280
- * Adding Guzzle\Http\Message\HeaderComparison for easy comparison of HTTP headers using a DSL
1281
- * Adding the ability to set global option overrides to service builder configs
1282
- * Adding the ability to include other service builder config files from within XML and JSON files
1283
- * Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method.
1284
-
1285
- ## 2.5.0 - 2012-05-08
1286
-
1287
- * Major performance improvements
1288
- * [BC] Simplifying Guzzle\Common\Collection. Please check to see if you are using features that are now deprecated.
1289
- * [BC] Using a custom validation system that allows a flyweight implementation for much faster validation. No longer using Symfony2 Validation component.
1290
- * [BC] No longer supporting "{{ }}" for injecting into command or UriTemplates. Use "{}"
1291
- * Added the ability to passed parameters to all requests created by a client
1292
- * Added callback functionality to the ExponentialBackoffPlugin
1293
- * Using microtime in ExponentialBackoffPlugin to allow more granular backoff strategies.
1294
- * Rewinding request stream bodies when retrying requests
1295
- * Exception is thrown when JSON response body cannot be decoded
1296
- * Added configurable magic method calls to clients and commands. This is off by default.
1297
- * Fixed a defect that added a hash to every parsed URL part
1298
- * Fixed duplicate none generation for OauthPlugin.
1299
- * Emitting an event each time a client is generated by a ServiceBuilder
1300
- * Using an ApiParams object instead of a Collection for parameters of an ApiCommand
1301
- * cache.* request parameters should be renamed to params.cache.*
1302
- * Added the ability to set arbitrary curl options on requests (disable_wire, progress, etc.). See CurlHandle.
1303
- * Added the ability to disable type validation of service descriptions
1304
- * ServiceDescriptions and ServiceBuilders are now Serializable
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/guzzle/Dockerfile DELETED
@@ -1,18 +0,0 @@
1
- FROM composer:latest as setup
2
-
3
- RUN mkdir /guzzle
4
-
5
- WORKDIR /guzzle
6
-
7
- RUN set -xe \
8
- && composer init --name=guzzlehttp/test --description="Simple project for testing Guzzle scripts" --author="Márk Sági-Kazár <mark.sagikazar@gmail.com>" --no-interaction \
9
- && composer require guzzlehttp/guzzle
10
-
11
-
12
- FROM php:7.3
13
-
14
- RUN mkdir /guzzle
15
-
16
- WORKDIR /guzzle
17
-
18
- COPY --from=setup /guzzle /guzzle
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/guzzle/README.md DELETED
@@ -1,90 +0,0 @@
1
- Guzzle, PHP HTTP client
2
- =======================
3
-
4
- [![Latest Version](https://img.shields.io/github/release/guzzle/guzzle.svg?style=flat-square)](https://github.com/guzzle/guzzle/releases)
5
- [![Build Status](https://img.shields.io/travis/guzzle/guzzle.svg?style=flat-square)](https://travis-ci.org/guzzle/guzzle)
6
- [![Total Downloads](https://img.shields.io/packagist/dt/guzzlehttp/guzzle.svg?style=flat-square)](https://packagist.org/packages/guzzlehttp/guzzle)
7
-
8
- Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and
9
- trivial to integrate with web services.
10
-
11
- - Simple interface for building query strings, POST requests, streaming large
12
- uploads, streaming large downloads, using HTTP cookies, uploading JSON data,
13
- etc...
14
- - Can send both synchronous and asynchronous requests using the same interface.
15
- - Uses PSR-7 interfaces for requests, responses, and streams. This allows you
16
- to utilize other PSR-7 compatible libraries with Guzzle.
17
- - Abstracts away the underlying HTTP transport, allowing you to write
18
- environment and transport agnostic code; i.e., no hard dependency on cURL,
19
- PHP streams, sockets, or non-blocking event loops.
20
- - Middleware system allows you to augment and compose client behavior.
21
-
22
- ```php
23
- $client = new \GuzzleHttp\Client();
24
- $response = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle');
25
-
26
- echo $response->getStatusCode(); # 200
27
- echo $response->getHeaderLine('content-type'); # 'application/json; charset=utf8'
28
- echo $response->getBody(); # '{"id": 1420053, "name": "guzzle", ...}'
29
-
30
- # Send an asynchronous request.
31
- $request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
32
- $promise = $client->sendAsync($request)->then(function ($response) {
33
- echo 'I completed! ' . $response->getBody();
34
- });
35
-
36
- $promise->wait();
37
- ```
38
-
39
- ## Help and docs
40
-
41
- - [Documentation](http://guzzlephp.org/)
42
- - [Stack Overflow](http://stackoverflow.com/questions/tagged/guzzle)
43
- - [Gitter](https://gitter.im/guzzle/guzzle)
44
-
45
-
46
- ## Installing Guzzle
47
-
48
- The recommended way to install Guzzle is through
49
- [Composer](http://getcomposer.org).
50
-
51
- ```bash
52
- # Install Composer
53
- curl -sS https://getcomposer.org/installer | php
54
- ```
55
-
56
- Next, run the Composer command to install the latest stable version of Guzzle:
57
-
58
- ```bash
59
- composer require guzzlehttp/guzzle
60
- ```
61
-
62
- After installing, you need to require Composer's autoloader:
63
-
64
- ```php
65
- require 'vendor/autoload.php';
66
- ```
67
-
68
- You can then later update Guzzle using composer:
69
-
70
- ```bash
71
- composer update
72
- ```
73
-
74
-
75
- ## Version Guidance
76
-
77
- | Version | Status | Packagist | Namespace | Repo | Docs | PSR-7 | PHP Version |
78
- |---------|------------|---------------------|--------------|---------------------|---------------------|-------|-------------|
79
- | 3.x | EOL | `guzzle/guzzle` | `Guzzle` | [v3][guzzle-3-repo] | [v3][guzzle-3-docs] | No | >= 5.3.3 |
80
- | 4.x | EOL | `guzzlehttp/guzzle` | `GuzzleHttp` | [v4][guzzle-4-repo] | N/A | No | >= 5.4 |
81
- | 5.x | EOL | `guzzlehttp/guzzle` | `GuzzleHttp` | [v5][guzzle-5-repo] | [v5][guzzle-5-docs] | No | >= 5.4 |
82
- | 6.x | Latest | `guzzlehttp/guzzle` | `GuzzleHttp` | [v6][guzzle-6-repo] | [v6][guzzle-6-docs] | Yes | >= 5.5 |
83
-
84
- [guzzle-3-repo]: https://github.com/guzzle/guzzle3
85
- [guzzle-4-repo]: https://github.com/guzzle/guzzle/tree/4.x
86
- [guzzle-5-repo]: https://github.com/guzzle/guzzle/tree/5.3
87
- [guzzle-6-repo]: https://github.com/guzzle/guzzle
88
- [guzzle-3-docs]: http://guzzle3.readthedocs.org
89
- [guzzle-5-docs]: http://guzzle.readthedocs.org/en/5.3/
90
- [guzzle-6-docs]: http://guzzle.readthedocs.org/en/latest/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/guzzle/composer.json DELETED
@@ -1,58 +0,0 @@
1
- {
2
- "name": "guzzlehttp/guzzle",
3
- "type": "library",
4
- "description": "Guzzle is a PHP HTTP client library",
5
- "keywords": [
6
- "framework",
7
- "http",
8
- "rest",
9
- "web service",
10
- "curl",
11
- "client",
12
- "HTTP client"
13
- ],
14
- "homepage": "http://guzzlephp.org/",
15
- "license": "MIT",
16
- "authors": [
17
- {
18
- "name": "Michael Dowling",
19
- "email": "mtdowling@gmail.com",
20
- "homepage": "https://github.com/mtdowling"
21
- }
22
- ],
23
- "require": {
24
- "php": ">=5.5",
25
- "ext-json": "*",
26
- "guzzlehttp/promises": "^1.0",
27
- "guzzlehttp/psr7": "^1.6.1"
28
- },
29
- "require-dev": {
30
- "ext-curl": "*",
31
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
32
- "psr/log": "^1.1"
33
- },
34
- "suggest": {
35
- "psr/log": "Required for using the Log middleware"
36
- },
37
- "config": {
38
- "sort-packages": true
39
- },
40
- "extra": {
41
- "branch-alias": {
42
- "dev-master": "6.5-dev"
43
- }
44
- },
45
- "autoload": {
46
- "psr-4": {
47
- "GuzzleHttp\\": "src/"
48
- },
49
- "files": [
50
- "src/functions_include.php"
51
- ]
52
- },
53
- "autoload-dev": {
54
- "psr-4": {
55
- "GuzzleHttp\\Tests\\": "tests/"
56
- }
57
- }
58
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/promises/CHANGELOG.md DELETED
@@ -1,65 +0,0 @@
1
- # CHANGELOG
2
-
3
-
4
- ## 1.3.1 - 2016-12-20
5
-
6
- ### Fixed
7
-
8
- - `wait()` foreign promise compatibility
9
-
10
-
11
- ## 1.3.0 - 2016-11-18
12
-
13
- ### Added
14
-
15
- - Adds support for custom task queues.
16
-
17
- ### Fixed
18
-
19
- - Fixed coroutine promise memory leak.
20
-
21
-
22
- ## 1.2.0 - 2016-05-18
23
-
24
- ### Changed
25
-
26
- - Update to now catch `\Throwable` on PHP 7+
27
-
28
-
29
- ## 1.1.0 - 2016-03-07
30
-
31
- ### Changed
32
-
33
- - Update EachPromise to prevent recurring on a iterator when advancing, as this
34
- could trigger fatal generator errors.
35
- - Update Promise to allow recursive waiting without unwrapping exceptions.
36
-
37
-
38
- ## 1.0.3 - 2015-10-15
39
-
40
- ### Changed
41
-
42
- - Update EachPromise to immediately resolve when the underlying promise iterator
43
- is empty. Previously, such a promise would throw an exception when its `wait`
44
- function was called.
45
-
46
-
47
- ## 1.0.2 - 2015-05-15
48
-
49
- ### Changed
50
-
51
- - Conditionally require functions.php.
52
-
53
-
54
- ## 1.0.1 - 2015-06-24
55
-
56
- ### Changed
57
-
58
- - Updating EachPromise to call next on the underlying promise iterator as late
59
- as possible to ensure that generators that generate new requests based on
60
- callbacks are not iterated until after callbacks are invoked.
61
-
62
-
63
- ## 1.0.0 - 2015-05-12
64
-
65
- - Initial release
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/promises/Makefile DELETED
@@ -1,13 +0,0 @@
1
- all: clean test
2
-
3
- test:
4
- vendor/bin/phpunit
5
-
6
- coverage:
7
- vendor/bin/phpunit --coverage-html=artifacts/coverage
8
-
9
- view-coverage:
10
- open artifacts/coverage/index.html
11
-
12
- clean:
13
- rm -rf artifacts/*
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/promises/README.md DELETED
@@ -1,504 +0,0 @@
1
- # Guzzle Promises
2
-
3
- [Promises/A+](https://promisesaplus.com/) implementation that handles promise
4
- chaining and resolution iteratively, allowing for "infinite" promise chaining
5
- while keeping the stack size constant. Read [this blog post](https://blog.domenic.me/youre-missing-the-point-of-promises/)
6
- for a general introduction to promises.
7
-
8
- - [Features](#features)
9
- - [Quick start](#quick-start)
10
- - [Synchronous wait](#synchronous-wait)
11
- - [Cancellation](#cancellation)
12
- - [API](#api)
13
- - [Promise](#promise)
14
- - [FulfilledPromise](#fulfilledpromise)
15
- - [RejectedPromise](#rejectedpromise)
16
- - [Promise interop](#promise-interop)
17
- - [Implementation notes](#implementation-notes)
18
-
19
-
20
- # Features
21
-
22
- - [Promises/A+](https://promisesaplus.com/) implementation.
23
- - Promise resolution and chaining is handled iteratively, allowing for
24
- "infinite" promise chaining.
25
- - Promises have a synchronous `wait` method.
26
- - Promises can be cancelled.
27
- - Works with any object that has a `then` function.
28
- - C# style async/await coroutine promises using
29
- `GuzzleHttp\Promise\coroutine()`.
30
-
31
-
32
- # Quick start
33
-
34
- A *promise* represents the eventual result of an asynchronous operation. The
35
- primary way of interacting with a promise is through its `then` method, which
36
- registers callbacks to receive either a promise's eventual value or the reason
37
- why the promise cannot be fulfilled.
38
-
39
-
40
- ## Callbacks
41
-
42
- Callbacks are registered with the `then` method by providing an optional
43
- `$onFulfilled` followed by an optional `$onRejected` function.
44
-
45
-
46
- ```php
47
- use GuzzleHttp\Promise\Promise;
48
-
49
- $promise = new Promise();
50
- $promise->then(
51
- // $onFulfilled
52
- function ($value) {
53
- echo 'The promise was fulfilled.';
54
- },
55
- // $onRejected
56
- function ($reason) {
57
- echo 'The promise was rejected.';
58
- }
59
- );
60
- ```
61
-
62
- *Resolving* a promise means that you either fulfill a promise with a *value* or
63
- reject a promise with a *reason*. Resolving a promises triggers callbacks
64
- registered with the promises's `then` method. These callbacks are triggered
65
- only once and in the order in which they were added.
66
-
67
-
68
- ## Resolving a promise
69
-
70
- Promises are fulfilled using the `resolve($value)` method. Resolving a promise
71
- with any value other than a `GuzzleHttp\Promise\RejectedPromise` will trigger
72
- all of the onFulfilled callbacks (resolving a promise with a rejected promise
73
- will reject the promise and trigger the `$onRejected` callbacks).
74
-
75
- ```php
76
- use GuzzleHttp\Promise\Promise;
77
-
78
- $promise = new Promise();
79
- $promise
80
- ->then(function ($value) {
81
- // Return a value and don't break the chain
82
- return "Hello, " . $value;
83
- })
84
- // This then is executed after the first then and receives the value
85
- // returned from the first then.
86
- ->then(function ($value) {
87
- echo $value;
88
- });
89
-
90
- // Resolving the promise triggers the $onFulfilled callbacks and outputs
91
- // "Hello, reader."
92
- $promise->resolve('reader.');
93
- ```
94
-
95
-
96
- ## Promise forwarding
97
-
98
- Promises can be chained one after the other. Each then in the chain is a new
99
- promise. The return value of a promise is what's forwarded to the next
100
- promise in the chain. Returning a promise in a `then` callback will cause the
101
- subsequent promises in the chain to only be fulfilled when the returned promise
102
- has been fulfilled. The next promise in the chain will be invoked with the
103
- resolved value of the promise.
104
-
105
- ```php
106
- use GuzzleHttp\Promise\Promise;
107
-
108
- $promise = new Promise();
109
- $nextPromise = new Promise();
110
-
111
- $promise
112
- ->then(function ($value) use ($nextPromise) {
113
- echo $value;
114
- return $nextPromise;
115
- })
116
- ->then(function ($value) {
117
- echo $value;
118
- });
119
-
120
- // Triggers the first callback and outputs "A"
121
- $promise->resolve('A');
122
- // Triggers the second callback and outputs "B"
123
- $nextPromise->resolve('B');
124
- ```
125
-
126
- ## Promise rejection
127
-
128
- When a promise is rejected, the `$onRejected` callbacks are invoked with the
129
- rejection reason.
130
-
131
- ```php
132
- use GuzzleHttp\Promise\Promise;
133
-
134
- $promise = new Promise();
135
- $promise->then(null, function ($reason) {
136
- echo $reason;
137
- });
138
-
139
- $promise->reject('Error!');
140
- // Outputs "Error!"
141
- ```
142
-
143
- ## Rejection forwarding
144
-
145
- If an exception is thrown in an `$onRejected` callback, subsequent
146
- `$onRejected` callbacks are invoked with the thrown exception as the reason.
147
-
148
- ```php
149
- use GuzzleHttp\Promise\Promise;
150
-
151
- $promise = new Promise();
152
- $promise->then(null, function ($reason) {
153
- throw new \Exception($reason);
154
- })->then(null, function ($reason) {
155
- assert($reason->getMessage() === 'Error!');
156
- });
157
-
158
- $promise->reject('Error!');
159
- ```
160
-
161
- You can also forward a rejection down the promise chain by returning a
162
- `GuzzleHttp\Promise\RejectedPromise` in either an `$onFulfilled` or
163
- `$onRejected` callback.
164
-
165
- ```php
166
- use GuzzleHttp\Promise\Promise;
167
- use GuzzleHttp\Promise\RejectedPromise;
168
-
169
- $promise = new Promise();
170
- $promise->then(null, function ($reason) {
171
- return new RejectedPromise($reason);
172
- })->then(null, function ($reason) {
173
- assert($reason === 'Error!');
174
- });
175
-
176
- $promise->reject('Error!');
177
- ```
178
-
179
- If an exception is not thrown in a `$onRejected` callback and the callback
180
- does not return a rejected promise, downstream `$onFulfilled` callbacks are
181
- invoked using the value returned from the `$onRejected` callback.
182
-
183
- ```php
184
- use GuzzleHttp\Promise\Promise;
185
- use GuzzleHttp\Promise\RejectedPromise;
186
-
187
- $promise = new Promise();
188
- $promise
189
- ->then(null, function ($reason) {
190
- return "It's ok";
191
- })
192
- ->then(function ($value) {
193
- assert($value === "It's ok");
194
- });
195
-
196
- $promise->reject('Error!');
197
- ```
198
-
199
- # Synchronous wait
200
-
201
- You can synchronously force promises to complete using a promise's `wait`
202
- method. When creating a promise, you can provide a wait function that is used
203
- to synchronously force a promise to complete. When a wait function is invoked
204
- it is expected to deliver a value to the promise or reject the promise. If the
205
- wait function does not deliver a value, then an exception is thrown. The wait
206
- function provided to a promise constructor is invoked when the `wait` function
207
- of the promise is called.
208
-
209
- ```php
210
- $promise = new Promise(function () use (&$promise) {
211
- $promise->resolve('foo');
212
- });
213
-
214
- // Calling wait will return the value of the promise.
215
- echo $promise->wait(); // outputs "foo"
216
- ```
217
-
218
- If an exception is encountered while invoking the wait function of a promise,
219
- the promise is rejected with the exception and the exception is thrown.
220
-
221
- ```php
222
- $promise = new Promise(function () use (&$promise) {
223
- throw new \Exception('foo');
224
- });
225
-
226
- $promise->wait(); // throws the exception.
227
- ```
228
-
229
- Calling `wait` on a promise that has been fulfilled will not trigger the wait
230
- function. It will simply return the previously resolved value.
231
-
232
- ```php
233
- $promise = new Promise(function () { die('this is not called!'); });
234
- $promise->resolve('foo');
235
- echo $promise->wait(); // outputs "foo"
236
- ```
237
-
238
- Calling `wait` on a promise that has been rejected will throw an exception. If
239
- the rejection reason is an instance of `\Exception` the reason is thrown.
240
- Otherwise, a `GuzzleHttp\Promise\RejectionException` is thrown and the reason
241
- can be obtained by calling the `getReason` method of the exception.
242
-
243
- ```php
244
- $promise = new Promise();
245
- $promise->reject('foo');
246
- $promise->wait();
247
- ```
248
-
249
- > PHP Fatal error: Uncaught exception 'GuzzleHttp\Promise\RejectionException' with message 'The promise was rejected with value: foo'
250
-
251
-
252
- ## Unwrapping a promise
253
-
254
- When synchronously waiting on a promise, you are joining the state of the
255
- promise into the current state of execution (i.e., return the value of the
256
- promise if it was fulfilled or throw an exception if it was rejected). This is
257
- called "unwrapping" the promise. Waiting on a promise will by default unwrap
258
- the promise state.
259
-
260
- You can force a promise to resolve and *not* unwrap the state of the promise
261
- by passing `false` to the first argument of the `wait` function:
262
-
263
- ```php
264
- $promise = new Promise();
265
- $promise->reject('foo');
266
- // This will not throw an exception. It simply ensures the promise has
267
- // been resolved.
268
- $promise->wait(false);
269
- ```
270
-
271
- When unwrapping a promise, the resolved value of the promise will be waited
272
- upon until the unwrapped value is not a promise. This means that if you resolve
273
- promise A with a promise B and unwrap promise A, the value returned by the
274
- wait function will be the value delivered to promise B.
275
-
276
- **Note**: when you do not unwrap the promise, no value is returned.
277
-
278
-
279
- # Cancellation
280
-
281
- You can cancel a promise that has not yet been fulfilled using the `cancel()`
282
- method of a promise. When creating a promise you can provide an optional
283
- cancel function that when invoked cancels the action of computing a resolution
284
- of the promise.
285
-
286
-
287
- # API
288
-
289
-
290
- ## Promise
291
-
292
- When creating a promise object, you can provide an optional `$waitFn` and
293
- `$cancelFn`. `$waitFn` is a function that is invoked with no arguments and is
294
- expected to resolve the promise. `$cancelFn` is a function with no arguments
295
- that is expected to cancel the computation of a promise. It is invoked when the
296
- `cancel()` method of a promise is called.
297
-
298
- ```php
299
- use GuzzleHttp\Promise\Promise;
300
-
301
- $promise = new Promise(
302
- function () use (&$promise) {
303
- $promise->resolve('waited');
304
- },
305
- function () {
306
- // do something that will cancel the promise computation (e.g., close
307
- // a socket, cancel a database query, etc...)
308
- }
309
- );
310
-
311
- assert('waited' === $promise->wait());
312
- ```
313
-
314
- A promise has the following methods:
315
-
316
- - `then(callable $onFulfilled, callable $onRejected) : PromiseInterface`
317
-
318
- Appends fulfillment and rejection handlers to the promise, and returns a new promise resolving to the return value of the called handler.
319
-
320
- - `otherwise(callable $onRejected) : PromiseInterface`
321
-
322
- Appends a rejection handler callback to the promise, and returns a new promise resolving to the return value of the callback if it is called, or to its original fulfillment value if the promise is instead fulfilled.
323
-
324
- - `wait($unwrap = true) : mixed`
325
-
326
- Synchronously waits on the promise to complete.
327
-
328
- `$unwrap` controls whether or not the value of the promise is returned for a
329
- fulfilled promise or if an exception is thrown if the promise is rejected.
330
- This is set to `true` by default.
331
-
332
- - `cancel()`
333
-
334
- Attempts to cancel the promise if possible. The promise being cancelled and
335
- the parent most ancestor that has not yet been resolved will also be
336
- cancelled. Any promises waiting on the cancelled promise to resolve will also
337
- be cancelled.
338
-
339
- - `getState() : string`
340
-
341
- Returns the state of the promise. One of `pending`, `fulfilled`, or
342
- `rejected`.
343
-
344
- - `resolve($value)`
345
-
346
- Fulfills the promise with the given `$value`.
347
-
348
- - `reject($reason)`
349
-
350
- Rejects the promise with the given `$reason`.
351
-
352
-
353
- ## FulfilledPromise
354
-
355
- A fulfilled promise can be created to represent a promise that has been
356
- fulfilled.
357
-
358
- ```php
359
- use GuzzleHttp\Promise\FulfilledPromise;
360
-
361
- $promise = new FulfilledPromise('value');
362
-
363
- // Fulfilled callbacks are immediately invoked.
364
- $promise->then(function ($value) {
365
- echo $value;
366
- });
367
- ```
368
-
369
-
370
- ## RejectedPromise
371
-
372
- A rejected promise can be created to represent a promise that has been
373
- rejected.
374
-
375
- ```php
376
- use GuzzleHttp\Promise\RejectedPromise;
377
-
378
- $promise = new RejectedPromise('Error');
379
-
380
- // Rejected callbacks are immediately invoked.
381
- $promise->then(null, function ($reason) {
382
- echo $reason;
383
- });
384
- ```
385
-
386
-
387
- # Promise interop
388
-
389
- This library works with foreign promises that have a `then` method. This means
390
- you can use Guzzle promises with [React promises](https://github.com/reactphp/promise)
391
- for example. When a foreign promise is returned inside of a then method
392
- callback, promise resolution will occur recursively.
393
-
394
- ```php
395
- // Create a React promise
396
- $deferred = new React\Promise\Deferred();
397
- $reactPromise = $deferred->promise();
398
-
399
- // Create a Guzzle promise that is fulfilled with a React promise.
400
- $guzzlePromise = new \GuzzleHttp\Promise\Promise();
401
- $guzzlePromise->then(function ($value) use ($reactPromise) {
402
- // Do something something with the value...
403
- // Return the React promise
404
- return $reactPromise;
405
- });
406
- ```
407
-
408
- Please note that wait and cancel chaining is no longer possible when forwarding
409
- a foreign promise. You will need to wrap a third-party promise with a Guzzle
410
- promise in order to utilize wait and cancel functions with foreign promises.
411
-
412
-
413
- ## Event Loop Integration
414
-
415
- In order to keep the stack size constant, Guzzle promises are resolved
416
- asynchronously using a task queue. When waiting on promises synchronously, the
417
- task queue will be automatically run to ensure that the blocking promise and
418
- any forwarded promises are resolved. When using promises asynchronously in an
419
- event loop, you will need to run the task queue on each tick of the loop. If
420
- you do not run the task queue, then promises will not be resolved.
421
-
422
- You can run the task queue using the `run()` method of the global task queue
423
- instance.
424
-
425
- ```php
426
- // Get the global task queue
427
- $queue = \GuzzleHttp\Promise\queue();
428
- $queue->run();
429
- ```
430
-
431
- For example, you could use Guzzle promises with React using a periodic timer:
432
-
433
- ```php
434
- $loop = React\EventLoop\Factory::create();
435
- $loop->addPeriodicTimer(0, [$queue, 'run']);
436
- ```
437
-
438
- *TODO*: Perhaps adding a `futureTick()` on each tick would be faster?
439
-
440
-
441
- # Implementation notes
442
-
443
-
444
- ## Promise resolution and chaining is handled iteratively
445
-
446
- By shuffling pending handlers from one owner to another, promises are
447
- resolved iteratively, allowing for "infinite" then chaining.
448
-
449
- ```php
450
- <?php
451
- require 'vendor/autoload.php';
452
-
453
- use GuzzleHttp\Promise\Promise;
454
-
455
- $parent = new Promise();
456
- $p = $parent;
457
-
458
- for ($i = 0; $i < 1000; $i++) {
459
- $p = $p->then(function ($v) {
460
- // The stack size remains constant (a good thing)
461
- echo xdebug_get_stack_depth() . ', ';
462
- return $v + 1;
463
- });
464
- }
465
-
466
- $parent->resolve(0);
467
- var_dump($p->wait()); // int(1000)
468
-
469
- ```
470
-
471
- When a promise is fulfilled or rejected with a non-promise value, the promise
472
- then takes ownership of the handlers of each child promise and delivers values
473
- down the chain without using recursion.
474
-
475
- When a promise is resolved with another promise, the original promise transfers
476
- all of its pending handlers to the new promise. When the new promise is
477
- eventually resolved, all of the pending handlers are delivered the forwarded
478
- value.
479
-
480
-
481
- ## A promise is the deferred.
482
-
483
- Some promise libraries implement promises using a deferred object to represent
484
- a computation and a promise object to represent the delivery of the result of
485
- the computation. This is a nice separation of computation and delivery because
486
- consumers of the promise cannot modify the value that will be eventually
487
- delivered.
488
-
489
- One side effect of being able to implement promise resolution and chaining
490
- iteratively is that you need to be able for one promise to reach into the state
491
- of another promise to shuffle around ownership of handlers. In order to achieve
492
- this without making the handlers of a promise publicly mutable, a promise is
493
- also the deferred value, allowing promises of the same parent class to reach
494
- into and modify the private properties of promises of the same type. While this
495
- does allow consumers of the value to modify the resolution or rejection of the
496
- deferred, it is a small price to pay for keeping the stack size constant.
497
-
498
- ```php
499
- $promise = new Promise();
500
- $promise->then(function ($value) { echo $value; });
501
- // The promise is the deferred value, so you can deliver a value to it.
502
- $promise->resolve('foo');
503
- // prints "foo"
504
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/promises/composer.json DELETED
@@ -1,39 +0,0 @@
1
- {
2
- "name": "guzzlehttp/promises",
3
- "description": "Guzzle promises library",
4
- "keywords": ["promise"],
5
- "license": "MIT",
6
- "authors": [
7
- {
8
- "name": "Michael Dowling",
9
- "email": "mtdowling@gmail.com",
10
- "homepage": "https://github.com/mtdowling"
11
- }
12
- ],
13
- "require": {
14
- "php": ">=5.6"
15
- },
16
- "require-dev": {
17
- "phpunit/phpunit": "^5.7.27 || ^7.5"
18
- },
19
- "autoload": {
20
- "psr-4": {
21
- "GuzzleHttp\\Promise\\": "src/"
22
- },
23
- "files": ["src/functions_include.php"]
24
- },
25
- "autoload-dev": {
26
- "psr-4": {
27
- "GuzzleHttp\\Promise\\Tests\\": "tests/"
28
- }
29
- },
30
- "scripts": {
31
- "test": "vendor/bin/phpunit",
32
- "test-ci": "vendor/bin/phpunit --coverage-text"
33
- },
34
- "extra": {
35
- "branch-alias": {
36
- "dev-master": "1.4-dev"
37
- }
38
- }
39
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/psr7/CHANGELOG.md DELETED
@@ -1,246 +0,0 @@
1
- # Change Log
2
-
3
-
4
- All notable changes to this project will be documented in this file.
5
-
6
- The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
7
- and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
8
-
9
-
10
- ## [Unreleased]
11
-
12
-
13
- ## [1.6.0]
14
-
15
- ### Added
16
-
17
- - Allowed version `^3.0` of `ralouphie/getallheaders` dependency (#244)
18
- - Added MIME type for WEBP image format (#246)
19
- - Added more validation of values according to PSR-7 and RFC standards, e.g. status code range (#250, #272)
20
-
21
- ### Changed
22
-
23
- - Tests don't pass with HHVM 4.0, so HHVM support got dropped. Other libraries like composer have done the same. (#262)
24
- - Accept port number 0 to be valid (#270)
25
-
26
- ### Fixed
27
-
28
- - Fixed subsequent reads from `php://input` in ServerRequest (#247)
29
- - Fixed readable/writable detection for certain stream modes (#248)
30
- - Fixed encoding of special characters in the `userInfo` component of an URI (#253)
31
-
32
-
33
- ## [1.5.2] - 2018-12-04
34
-
35
- ### Fixed
36
-
37
- - Check body size when getting the message summary
38
-
39
-
40
- ## [1.5.1] - 2018-12-04
41
-
42
- ### Fixed
43
-
44
- - Get the summary of a body only if it is readable
45
-
46
-
47
- ## [1.5.0] - 2018-12-03
48
-
49
- ### Added
50
-
51
- - Response first-line to response string exception (fixes #145)
52
- - A test for #129 behavior
53
- - `get_message_body_summary` function in order to get the message summary
54
- - `3gp` and `mkv` mime types
55
-
56
- ### Changed
57
-
58
- - Clarify exception message when stream is detached
59
-
60
- ### Deprecated
61
-
62
- - Deprecated parsing folded header lines as per RFC 7230
63
-
64
- ### Fixed
65
-
66
- - Fix `AppendStream::detach` to not close streams
67
- - `InflateStream` preserves `isSeekable` attribute of the underlying stream
68
- - `ServerRequest::getUriFromGlobals` to support URLs in query parameters
69
-
70
-
71
- Several other fixes and improvements.
72
-
73
-
74
- ## [1.4.2] - 2017-03-20
75
-
76
- ### Fixed
77
-
78
- - Reverted BC break to `Uri::resolve` and `Uri::removeDotSegments` by removing
79
- calls to `trigger_error` when deprecated methods are invoked.
80
-
81
-
82
- ## [1.4.1] - 2017-02-27
83
-
84
- ### Added
85
-
86
- - Rriggering of silenced deprecation warnings.
87
-
88
- ### Fixed
89
-
90
- - Reverted BC break by reintroducing behavior to automagically fix a URI with a
91
- relative path and an authority by adding a leading slash to the path. It's only
92
- deprecated now.
93
-
94
-
95
- ## [1.4.0] - 2017-02-21
96
-
97
- ### Added
98
-
99
- - Added common URI utility methods based on RFC 3986 (see documentation in the readme):
100
- - `Uri::isDefaultPort`
101
- - `Uri::isAbsolute`
102
- - `Uri::isNetworkPathReference`
103
- - `Uri::isAbsolutePathReference`
104
- - `Uri::isRelativePathReference`
105
- - `Uri::isSameDocumentReference`
106
- - `Uri::composeComponents`
107
- - `UriNormalizer::normalize`
108
- - `UriNormalizer::isEquivalent`
109
- - `UriResolver::relativize`
110
-
111
- ### Changed
112
-
113
- - Ensure `ServerRequest::getUriFromGlobals` returns a URI in absolute form.
114
- - Allow `parse_response` to parse a response without delimiting space and reason.
115
- - Ensure each URI modification results in a valid URI according to PSR-7 discussions.
116
- Invalid modifications will throw an exception instead of returning a wrong URI or
117
- doing some magic.
118
- - `(new Uri)->withPath('foo')->withHost('example.com')` will throw an exception
119
- because the path of a URI with an authority must start with a slash "/" or be empty
120
- - `(new Uri())->withScheme('http')` will return `'http://localhost'`
121
-
122
- ### Deprecated
123
-
124
- - `Uri::resolve` in favor of `UriResolver::resolve`
125
- - `Uri::removeDotSegments` in favor of `UriResolver::removeDotSegments`
126
-
127
- ### Fixed
128
-
129
- - `Stream::read` when length parameter <= 0.
130
- - `copy_to_stream` reads bytes in chunks instead of `maxLen` into memory.
131
- - `ServerRequest::getUriFromGlobals` when `Host` header contains port.
132
- - Compatibility of URIs with `file` scheme and empty host.
133
-
134
-
135
- ## [1.3.1] - 2016-06-25
136
-
137
- ### Fixed
138
-
139
- - `Uri::__toString` for network path references, e.g. `//example.org`.
140
- - Missing lowercase normalization for host.
141
- - Handling of URI components in case they are `'0'` in a lot of places,
142
- e.g. as a user info password.
143
- - `Uri::withAddedHeader` to correctly merge headers with different case.
144
- - Trimming of header values in `Uri::withAddedHeader`. Header values may
145
- be surrounded by whitespace which should be ignored according to RFC 7230
146
- Section 3.2.4. This does not apply to header names.
147
- - `Uri::withAddedHeader` with an array of header values.
148
- - `Uri::resolve` when base path has no slash and handling of fragment.
149
- - Handling of encoding in `Uri::with(out)QueryValue` so one can pass the
150
- key/value both in encoded as well as decoded form to those methods. This is
151
- consistent with withPath, withQuery etc.
152
- - `ServerRequest::withoutAttribute` when attribute value is null.
153
-
154
-
155
- ## [1.3.0] - 2016-04-13
156
-
157
- ### Added
158
-
159
- - Remaining interfaces needed for full PSR7 compatibility
160
- (ServerRequestInterface, UploadedFileInterface, etc.).
161
- - Support for stream_for from scalars.
162
-
163
- ### Changed
164
-
165
- - Can now extend Uri.
166
-
167
- ### Fixed
168
- - A bug in validating request methods by making it more permissive.
169
-
170
-
171
- ## [1.2.3] - 2016-02-18
172
-
173
- ### Fixed
174
-
175
- - Support in `GuzzleHttp\Psr7\CachingStream` for seeking forward on remote
176
- streams, which can sometimes return fewer bytes than requested with `fread`.
177
- - Handling of gzipped responses with FNAME headers.
178
-
179
-
180
- ## [1.2.2] - 2016-01-22
181
-
182
- ### Added
183
-
184
- - Support for URIs without any authority.
185
- - Support for HTTP 451 'Unavailable For Legal Reasons.'
186
- - Support for using '0' as a filename.
187
- - Support for including non-standard ports in Host headers.
188
-
189
-
190
- ## [1.2.1] - 2015-11-02
191
-
192
- ### Changes
193
-
194
- - Now supporting negative offsets when seeking to SEEK_END.
195
-
196
-
197
- ## [1.2.0] - 2015-08-15
198
-
199
- ### Changed
200
-
201
- - Body as `"0"` is now properly added to a response.
202
- - Now allowing forward seeking in CachingStream.
203
- - Now properly parsing HTTP requests that contain proxy targets in
204
- `parse_request`.
205
- - functions.php is now conditionally required.
206
- - user-info is no longer dropped when resolving URIs.
207
-
208
-
209
- ## [1.1.0] - 2015-06-24
210
-
211
- ### Changed
212
-
213
- - URIs can now be relative.
214
- - `multipart/form-data` headers are now overridden case-insensitively.
215
- - URI paths no longer encode the following characters because they are allowed
216
- in URIs: "(", ")", "*", "!", "'"
217
- - A port is no longer added to a URI when the scheme is missing and no port is
218
- present.
219
-
220
-
221
- ## 1.0.0 - 2015-05-19
222
-
223
- Initial release.
224
-
225
- Currently unsupported:
226
-
227
- - `Psr\Http\Message\ServerRequestInterface`
228
- - `Psr\Http\Message\UploadedFileInterface`
229
-
230
-
231
-
232
- [Unreleased]: https://github.com/guzzle/psr7/compare/1.6.0...HEAD
233
- [1.6.0]: https://github.com/guzzle/psr7/compare/1.5.2...1.6.0
234
- [1.5.2]: https://github.com/guzzle/psr7/compare/1.5.1...1.5.2
235
- [1.5.1]: https://github.com/guzzle/psr7/compare/1.5.0...1.5.1
236
- [1.5.0]: https://github.com/guzzle/psr7/compare/1.4.2...1.5.0
237
- [1.4.2]: https://github.com/guzzle/psr7/compare/1.4.1...1.4.2
238
- [1.4.1]: https://github.com/guzzle/psr7/compare/1.4.0...1.4.1
239
- [1.4.0]: https://github.com/guzzle/psr7/compare/1.3.1...1.4.0
240
- [1.3.1]: https://github.com/guzzle/psr7/compare/1.3.0...1.3.1
241
- [1.3.0]: https://github.com/guzzle/psr7/compare/1.2.3...1.3.0
242
- [1.2.3]: https://github.com/guzzle/psr7/compare/1.2.2...1.2.3
243
- [1.2.2]: https://github.com/guzzle/psr7/compare/1.2.1...1.2.2
244
- [1.2.1]: https://github.com/guzzle/psr7/compare/1.2.0...1.2.1
245
- [1.2.0]: https://github.com/guzzle/psr7/compare/1.1.0...1.2.0
246
- [1.1.0]: https://github.com/guzzle/psr7/compare/1.0.0...1.1.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/psr7/README.md DELETED
@@ -1,745 +0,0 @@
1
- # PSR-7 Message Implementation
2
-
3
- This repository contains a full [PSR-7](http://www.php-fig.org/psr/psr-7/)
4
- message implementation, several stream decorators, and some helpful
5
- functionality like query string parsing.
6
-
7
-
8
- [![Build Status](https://travis-ci.org/guzzle/psr7.svg?branch=master)](https://travis-ci.org/guzzle/psr7)
9
-
10
-
11
- # Stream implementation
12
-
13
- This package comes with a number of stream implementations and stream
14
- decorators.
15
-
16
-
17
- ## AppendStream
18
-
19
- `GuzzleHttp\Psr7\AppendStream`
20
-
21
- Reads from multiple streams, one after the other.
22
-
23
- ```php
24
- use GuzzleHttp\Psr7;
25
-
26
- $a = Psr7\stream_for('abc, ');
27
- $b = Psr7\stream_for('123.');
28
- $composed = new Psr7\AppendStream([$a, $b]);
29
-
30
- $composed->addStream(Psr7\stream_for(' Above all listen to me'));
31
-
32
- echo $composed; // abc, 123. Above all listen to me.
33
- ```
34
-
35
-
36
- ## BufferStream
37
-
38
- `GuzzleHttp\Psr7\BufferStream`
39
-
40
- Provides a buffer stream that can be written to fill a buffer, and read
41
- from to remove bytes from the buffer.
42
-
43
- This stream returns a "hwm" metadata value that tells upstream consumers
44
- what the configured high water mark of the stream is, or the maximum
45
- preferred size of the buffer.
46
-
47
- ```php
48
- use GuzzleHttp\Psr7;
49
-
50
- // When more than 1024 bytes are in the buffer, it will begin returning
51
- // false to writes. This is an indication that writers should slow down.
52
- $buffer = new Psr7\BufferStream(1024);
53
- ```
54
-
55
-
56
- ## CachingStream
57
-
58
- The CachingStream is used to allow seeking over previously read bytes on
59
- non-seekable streams. This can be useful when transferring a non-seekable
60
- entity body fails due to needing to rewind the stream (for example, resulting
61
- from a redirect). Data that is read from the remote stream will be buffered in
62
- a PHP temp stream so that previously read bytes are cached first in memory,
63
- then on disk.
64
-
65
- ```php
66
- use GuzzleHttp\Psr7;
67
-
68
- $original = Psr7\stream_for(fopen('http://www.google.com', 'r'));
69
- $stream = new Psr7\CachingStream($original);
70
-
71
- $stream->read(1024);
72
- echo $stream->tell();
73
- // 1024
74
-
75
- $stream->seek(0);
76
- echo $stream->tell();
77
- // 0
78
- ```
79
-
80
-
81
- ## DroppingStream
82
-
83
- `GuzzleHttp\Psr7\DroppingStream`
84
-
85
- Stream decorator that begins dropping data once the size of the underlying
86
- stream becomes too full.
87
-
88
- ```php
89
- use GuzzleHttp\Psr7;
90
-
91
- // Create an empty stream
92
- $stream = Psr7\stream_for();
93
-
94
- // Start dropping data when the stream has more than 10 bytes
95
- $dropping = new Psr7\DroppingStream($stream, 10);
96
-
97
- $dropping->write('01234567890123456789');
98
- echo $stream; // 0123456789
99
- ```
100
-
101
-
102
- ## FnStream
103
-
104
- `GuzzleHttp\Psr7\FnStream`
105
-
106
- Compose stream implementations based on a hash of functions.
107
-
108
- Allows for easy testing and extension of a provided stream without needing
109
- to create a concrete class for a simple extension point.
110
-
111
- ```php
112
-
113
- use GuzzleHttp\Psr7;
114
-
115
- $stream = Psr7\stream_for('hi');
116
- $fnStream = Psr7\FnStream::decorate($stream, [
117
- 'rewind' => function () use ($stream) {
118
- echo 'About to rewind - ';
119
- $stream->rewind();
120
- echo 'rewound!';
121
- }
122
- ]);
123
-
124
- $fnStream->rewind();
125
- // Outputs: About to rewind - rewound!
126
- ```
127
-
128
-
129
- ## InflateStream
130
-
131
- `GuzzleHttp\Psr7\InflateStream`
132
-
133
- Uses PHP's zlib.inflate filter to inflate deflate or gzipped content.
134
-
135
- This stream decorator skips the first 10 bytes of the given stream to remove
136
- the gzip header, converts the provided stream to a PHP stream resource,
137
- then appends the zlib.inflate filter. The stream is then converted back
138
- to a Guzzle stream resource to be used as a Guzzle stream.
139
-
140
-
141
- ## LazyOpenStream
142
-
143
- `GuzzleHttp\Psr7\LazyOpenStream`
144
-
145
- Lazily reads or writes to a file that is opened only after an IO operation
146
- take place on the stream.
147
-
148
- ```php
149
- use GuzzleHttp\Psr7;
150
-
151
- $stream = new Psr7\LazyOpenStream('/path/to/file', 'r');
152
- // The file has not yet been opened...
153
-
154
- echo $stream->read(10);
155
- // The file is opened and read from only when needed.
156
- ```
157
-
158
-
159
- ## LimitStream
160
-
161
- `GuzzleHttp\Psr7\LimitStream`
162
-
163
- LimitStream can be used to read a subset or slice of an existing stream object.
164
- This can be useful for breaking a large file into smaller pieces to be sent in
165
- chunks (e.g. Amazon S3's multipart upload API).
166
-
167
- ```php
168
- use GuzzleHttp\Psr7;
169
-
170
- $original = Psr7\stream_for(fopen('/tmp/test.txt', 'r+'));
171
- echo $original->getSize();
172
- // >>> 1048576
173
-
174
- // Limit the size of the body to 1024 bytes and start reading from byte 2048
175
- $stream = new Psr7\LimitStream($original, 1024, 2048);
176
- echo $stream->getSize();
177
- // >>> 1024
178
- echo $stream->tell();
179
- // >>> 0
180
- ```
181
-
182
-
183
- ## MultipartStream
184
-
185
- `GuzzleHttp\Psr7\MultipartStream`
186
-
187
- Stream that when read returns bytes for a streaming multipart or
188
- multipart/form-data stream.
189
-
190
-
191
- ## NoSeekStream
192
-
193
- `GuzzleHttp\Psr7\NoSeekStream`
194
-
195
- NoSeekStream wraps a stream and does not allow seeking.
196
-
197
- ```php
198
- use GuzzleHttp\Psr7;
199
-
200
- $original = Psr7\stream_for('foo');
201
- $noSeek = new Psr7\NoSeekStream($original);
202
-
203
- echo $noSeek->read(3);
204
- // foo
205
- var_export($noSeek->isSeekable());
206
- // false
207
- $noSeek->seek(0);
208
- var_export($noSeek->read(3));
209
- // NULL
210
- ```
211
-
212
-
213
- ## PumpStream
214
-
215
- `GuzzleHttp\Psr7\PumpStream`
216
-
217
- Provides a read only stream that pumps data from a PHP callable.
218
-
219
- When invoking the provided callable, the PumpStream will pass the amount of
220
- data requested to read to the callable. The callable can choose to ignore
221
- this value and return fewer or more bytes than requested. Any extra data
222
- returned by the provided callable is buffered internally until drained using
223
- the read() function of the PumpStream. The provided callable MUST return
224
- false when there is no more data to read.
225
-
226
-
227
- ## Implementing stream decorators
228
-
229
- Creating a stream decorator is very easy thanks to the
230
- `GuzzleHttp\Psr7\StreamDecoratorTrait`. This trait provides methods that
231
- implement `Psr\Http\Message\StreamInterface` by proxying to an underlying
232
- stream. Just `use` the `StreamDecoratorTrait` and implement your custom
233
- methods.
234
-
235
- For example, let's say we wanted to call a specific function each time the last
236
- byte is read from a stream. This could be implemented by overriding the
237
- `read()` method.
238
-
239
- ```php
240
- use Psr\Http\Message\StreamInterface;
241
- use GuzzleHttp\Psr7\StreamDecoratorTrait;
242
-
243
- class EofCallbackStream implements StreamInterface
244
- {
245
- use StreamDecoratorTrait;
246
-
247
- private $callback;
248
-
249
- public function __construct(StreamInterface $stream, callable $cb)
250
- {
251
- $this->stream = $stream;
252
- $this->callback = $cb;
253
- }
254
-
255
- public function read($length)
256
- {
257
- $result = $this->stream->read($length);
258
-
259
- // Invoke the callback when EOF is hit.
260
- if ($this->eof()) {
261
- call_user_func($this->callback);
262
- }
263
-
264
- return $result;
265
- }
266
- }
267
- ```
268
-
269
- This decorator could be added to any existing stream and used like so:
270
-
271
- ```php
272
- use GuzzleHttp\Psr7;
273
-
274
- $original = Psr7\stream_for('foo');
275
-
276
- $eofStream = new EofCallbackStream($original, function () {
277
- echo 'EOF!';
278
- });
279
-
280
- $eofStream->read(2);
281
- $eofStream->read(1);
282
- // echoes "EOF!"
283
- $eofStream->seek(0);
284
- $eofStream->read(3);
285
- // echoes "EOF!"
286
- ```
287
-
288
-
289
- ## PHP StreamWrapper
290
-
291
- You can use the `GuzzleHttp\Psr7\StreamWrapper` class if you need to use a
292
- PSR-7 stream as a PHP stream resource.
293
-
294
- Use the `GuzzleHttp\Psr7\StreamWrapper::getResource()` method to create a PHP
295
- stream from a PSR-7 stream.
296
-
297
- ```php
298
- use GuzzleHttp\Psr7\StreamWrapper;
299
-
300
- $stream = GuzzleHttp\Psr7\stream_for('hello!');
301
- $resource = StreamWrapper::getResource($stream);
302
- echo fread($resource, 6); // outputs hello!
303
- ```
304
-
305
-
306
- # Function API
307
-
308
- There are various functions available under the `GuzzleHttp\Psr7` namespace.
309
-
310
-
311
- ## `function str`
312
-
313
- `function str(MessageInterface $message)`
314
-
315
- Returns the string representation of an HTTP message.
316
-
317
- ```php
318
- $request = new GuzzleHttp\Psr7\Request('GET', 'http://example.com');
319
- echo GuzzleHttp\Psr7\str($request);
320
- ```
321
-
322
-
323
- ## `function uri_for`
324
-
325
- `function uri_for($uri)`
326
-
327
- This function accepts a string or `Psr\Http\Message\UriInterface` and returns a
328
- UriInterface for the given value. If the value is already a `UriInterface`, it
329
- is returned as-is.
330
-
331
- ```php
332
- $uri = GuzzleHttp\Psr7\uri_for('http://example.com');
333
- assert($uri === GuzzleHttp\Psr7\uri_for($uri));
334
- ```
335
-
336
-
337
- ## `function stream_for`
338
-
339
- `function stream_for($resource = '', array $options = [])`
340
-
341
- Create a new stream based on the input type.
342
-
343
- Options is an associative array that can contain the following keys:
344
-
345
- * - metadata: Array of custom metadata.
346
- * - size: Size of the stream.
347
-
348
- This method accepts the following `$resource` types:
349
-
350
- - `Psr\Http\Message\StreamInterface`: Returns the value as-is.
351
- - `string`: Creates a stream object that uses the given string as the contents.
352
- - `resource`: Creates a stream object that wraps the given PHP stream resource.
353
- - `Iterator`: If the provided value implements `Iterator`, then a read-only
354
- stream object will be created that wraps the given iterable. Each time the
355
- stream is read from, data from the iterator will fill a buffer and will be
356
- continuously called until the buffer is equal to the requested read size.
357
- Subsequent read calls will first read from the buffer and then call `next`
358
- on the underlying iterator until it is exhausted.
359
- - `object` with `__toString()`: If the object has the `__toString()` method,
360
- the object will be cast to a string and then a stream will be returned that
361
- uses the string value.
362
- - `NULL`: When `null` is passed, an empty stream object is returned.
363
- - `callable` When a callable is passed, a read-only stream object will be
364
- created that invokes the given callable. The callable is invoked with the
365
- number of suggested bytes to read. The callable can return any number of
366
- bytes, but MUST return `false` when there is no more data to return. The
367
- stream object that wraps the callable will invoke the callable until the
368
- number of requested bytes are available. Any additional bytes will be
369
- buffered and used in subsequent reads.
370
-
371
- ```php
372
- $stream = GuzzleHttp\Psr7\stream_for('foo');
373
- $stream = GuzzleHttp\Psr7\stream_for(fopen('/path/to/file', 'r'));
374
-
375
- $generator = function ($bytes) {
376
- for ($i = 0; $i < $bytes; $i++) {
377
- yield ' ';
378
- }
379
- }
380
-
381
- $stream = GuzzleHttp\Psr7\stream_for($generator(100));
382
- ```
383
-
384
-
385
- ## `function parse_header`
386
-
387
- `function parse_header($header)`
388
-
389
- Parse an array of header values containing ";" separated data into an array of
390
- associative arrays representing the header key value pair data of the header.
391
- When a parameter does not contain a value, but just contains a key, this
392
- function will inject a key with a '' string value.
393
-
394
-
395
- ## `function normalize_header`
396
-
397
- `function normalize_header($header)`
398
-
399
- Converts an array of header values that may contain comma separated headers
400
- into an array of headers with no comma separated values.
401
-
402
-
403
- ## `function modify_request`
404
-
405
- `function modify_request(RequestInterface $request, array $changes)`
406
-
407
- Clone and modify a request with the given changes. This method is useful for
408
- reducing the number of clones needed to mutate a message.
409
-
410
- The changes can be one of:
411
-
412
- - method: (string) Changes the HTTP method.
413
- - set_headers: (array) Sets the given headers.
414
- - remove_headers: (array) Remove the given headers.
415
- - body: (mixed) Sets the given body.
416
- - uri: (UriInterface) Set the URI.
417
- - query: (string) Set the query string value of the URI.
418
- - version: (string) Set the protocol version.
419
-
420
-
421
- ## `function rewind_body`
422
-
423
- `function rewind_body(MessageInterface $message)`
424
-
425
- Attempts to rewind a message body and throws an exception on failure. The body
426
- of the message will only be rewound if a call to `tell()` returns a value other
427
- than `0`.
428
-
429
-
430
- ## `function try_fopen`
431
-
432
- `function try_fopen($filename, $mode)`
433
-
434
- Safely opens a PHP stream resource using a filename.
435
-
436
- When fopen fails, PHP normally raises a warning. This function adds an error
437
- handler that checks for errors and throws an exception instead.
438
-
439
-
440
- ## `function copy_to_string`
441
-
442
- `function copy_to_string(StreamInterface $stream, $maxLen = -1)`
443
-
444
- Copy the contents of a stream into a string until the given number of bytes
445
- have been read.
446
-
447
-
448
- ## `function copy_to_stream`
449
-
450
- `function copy_to_stream(StreamInterface $source, StreamInterface $dest, $maxLen = -1)`
451
-
452
- Copy the contents of a stream into another stream until the given number of
453
- bytes have been read.
454
-
455
-
456
- ## `function hash`
457
-
458
- `function hash(StreamInterface $stream, $algo, $rawOutput = false)`
459
-
460
- Calculate a hash of a Stream. This method reads the entire stream to calculate
461
- a rolling hash (based on PHP's hash_init functions).
462
-
463
-
464
- ## `function readline`
465
-
466
- `function readline(StreamInterface $stream, $maxLength = null)`
467
-
468
- Read a line from the stream up to the maximum allowed buffer length.
469
-
470
-
471
- ## `function parse_request`
472
-
473
- `function parse_request($message)`
474
-
475
- Parses a request message string into a request object.
476
-
477
-
478
- ## `function parse_response`
479
-
480
- `function parse_response($message)`
481
-
482
- Parses a response message string into a response object.
483
-
484
-
485
- ## `function parse_query`
486
-
487
- `function parse_query($str, $urlEncoding = true)`
488
-
489
- Parse a query string into an associative array.
490
-
491
- If multiple values are found for the same key, the value of that key value pair
492
- will become an array. This function does not parse nested PHP style arrays into
493
- an associative array (e.g., `foo[a]=1&foo[b]=2` will be parsed into
494
- `['foo[a]' => '1', 'foo[b]' => '2']`).
495
-
496
-
497
- ## `function build_query`
498
-
499
- `function build_query(array $params, $encoding = PHP_QUERY_RFC3986)`
500
-
501
- Build a query string from an array of key value pairs.
502
-
503
- This function can use the return value of parse_query() to build a query string.
504
- This function does not modify the provided keys when an array is encountered
505
- (like http_build_query would).
506
-
507
-
508
- ## `function mimetype_from_filename`
509
-
510
- `function mimetype_from_filename($filename)`
511
-
512
- Determines the mimetype of a file by looking at its extension.
513
-
514
-
515
- ## `function mimetype_from_extension`
516
-
517
- `function mimetype_from_extension($extension)`
518
-
519
- Maps a file extensions to a mimetype.
520
-
521
-
522
- # Additional URI Methods
523
-
524
- Aside from the standard `Psr\Http\Message\UriInterface` implementation in form of the `GuzzleHttp\Psr7\Uri` class,
525
- this library also provides additional functionality when working with URIs as static methods.
526
-
527
- ## URI Types
528
-
529
- An instance of `Psr\Http\Message\UriInterface` can either be an absolute URI or a relative reference.
530
- An absolute URI has a scheme. A relative reference is used to express a URI relative to another URI,
531
- the base URI. Relative references can be divided into several forms according to
532
- [RFC 3986 Section 4.2](https://tools.ietf.org/html/rfc3986#section-4.2):
533
-
534
- - network-path references, e.g. `//example.com/path`
535
- - absolute-path references, e.g. `/path`
536
- - relative-path references, e.g. `subpath`
537
-
538
- The following methods can be used to identify the type of the URI.
539
-
540
- ### `GuzzleHttp\Psr7\Uri::isAbsolute`
541
-
542
- `public static function isAbsolute(UriInterface $uri): bool`
543
-
544
- Whether the URI is absolute, i.e. it has a scheme.
545
-
546
- ### `GuzzleHttp\Psr7\Uri::isNetworkPathReference`
547
-
548
- `public static function isNetworkPathReference(UriInterface $uri): bool`
549
-
550
- Whether the URI is a network-path reference. A relative reference that begins with two slash characters is
551
- termed an network-path reference.
552
-
553
- ### `GuzzleHttp\Psr7\Uri::isAbsolutePathReference`
554
-
555
- `public static function isAbsolutePathReference(UriInterface $uri): bool`
556
-
557
- Whether the URI is a absolute-path reference. A relative reference that begins with a single slash character is
558
- termed an absolute-path reference.
559
-
560
- ### `GuzzleHttp\Psr7\Uri::isRelativePathReference`
561
-
562
- `public static function isRelativePathReference(UriInterface $uri): bool`
563
-
564
- Whether the URI is a relative-path reference. A relative reference that does not begin with a slash character is
565
- termed a relative-path reference.
566
-
567
- ### `GuzzleHttp\Psr7\Uri::isSameDocumentReference`
568
-
569
- `public static function isSameDocumentReference(UriInterface $uri, UriInterface $base = null): bool`
570
-
571
- Whether the URI is a same-document reference. A same-document reference refers to a URI that is, aside from its
572
- fragment component, identical to the base URI. When no base URI is given, only an empty URI reference
573
- (apart from its fragment) is considered a same-document reference.
574
-
575
- ## URI Components
576
-
577
- Additional methods to work with URI components.
578
-
579
- ### `GuzzleHttp\Psr7\Uri::isDefaultPort`
580
-
581
- `public static function isDefaultPort(UriInterface $uri): bool`
582
-
583
- Whether the URI has the default port of the current scheme. `Psr\Http\Message\UriInterface::getPort` may return null
584
- or the standard port. This method can be used independently of the implementation.
585
-
586
- ### `GuzzleHttp\Psr7\Uri::composeComponents`
587
-
588
- `public static function composeComponents($scheme, $authority, $path, $query, $fragment): string`
589
-
590
- Composes a URI reference string from its various components according to
591
- [RFC 3986 Section 5.3](https://tools.ietf.org/html/rfc3986#section-5.3). Usually this method does not need to be called
592
- manually but instead is used indirectly via `Psr\Http\Message\UriInterface::__toString`.
593
-
594
- ### `GuzzleHttp\Psr7\Uri::fromParts`
595
-
596
- `public static function fromParts(array $parts): UriInterface`
597
-
598
- Creates a URI from a hash of [`parse_url`](http://php.net/manual/en/function.parse-url.php) components.
599
-
600
-
601
- ### `GuzzleHttp\Psr7\Uri::withQueryValue`
602
-
603
- `public static function withQueryValue(UriInterface $uri, $key, $value): UriInterface`
604
-
605
- Creates a new URI with a specific query string value. Any existing query string values that exactly match the
606
- provided key are removed and replaced with the given key value pair. A value of null will set the query string
607
- key without a value, e.g. "key" instead of "key=value".
608
-
609
- ### `GuzzleHttp\Psr7\Uri::withQueryValues`
610
-
611
- `public static function withQueryValues(UriInterface $uri, array $keyValueArray): UriInterface`
612
-
613
- Creates a new URI with multiple query string values. It has the same behavior as `withQueryValue()` but for an
614
- associative array of key => value.
615
-
616
- ### `GuzzleHttp\Psr7\Uri::withoutQueryValue`
617
-
618
- `public static function withoutQueryValue(UriInterface $uri, $key): UriInterface`
619
-
620
- Creates a new URI with a specific query string value removed. Any existing query string values that exactly match the
621
- provided key are removed.
622
-
623
- ## Reference Resolution
624
-
625
- `GuzzleHttp\Psr7\UriResolver` provides methods to resolve a URI reference in the context of a base URI according
626
- to [RFC 3986 Section 5](https://tools.ietf.org/html/rfc3986#section-5). This is for example also what web browsers
627
- do when resolving a link in a website based on the current request URI.
628
-
629
- ### `GuzzleHttp\Psr7\UriResolver::resolve`
630
-
631
- `public static function resolve(UriInterface $base, UriInterface $rel): UriInterface`
632
-
633
- Converts the relative URI into a new URI that is resolved against the base URI.
634
-
635
- ### `GuzzleHttp\Psr7\UriResolver::removeDotSegments`
636
-
637
- `public static function removeDotSegments(string $path): string`
638
-
639
- Removes dot segments from a path and returns the new path according to
640
- [RFC 3986 Section 5.2.4](https://tools.ietf.org/html/rfc3986#section-5.2.4).
641
-
642
- ### `GuzzleHttp\Psr7\UriResolver::relativize`
643
-
644
- `public static function relativize(UriInterface $base, UriInterface $target): UriInterface`
645
-
646
- Returns the target URI as a relative reference from the base URI. This method is the counterpart to resolve():
647
-
648
- ```php
649
- (string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target))
650
- ```
651
-
652
- One use-case is to use the current request URI as base URI and then generate relative links in your documents
653
- to reduce the document size or offer self-contained downloadable document archives.
654
-
655
- ```php
656
- $base = new Uri('http://example.com/a/b/');
657
- echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'.
658
- echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'.
659
- echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'.
660
- echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'.
661
- ```
662
-
663
- ## Normalization and Comparison
664
-
665
- `GuzzleHttp\Psr7\UriNormalizer` provides methods to normalize and compare URIs according to
666
- [RFC 3986 Section 6](https://tools.ietf.org/html/rfc3986#section-6).
667
-
668
- ### `GuzzleHttp\Psr7\UriNormalizer::normalize`
669
-
670
- `public static function normalize(UriInterface $uri, $flags = self::PRESERVING_NORMALIZATIONS): UriInterface`
671
-
672
- Returns a normalized URI. The scheme and host component are already normalized to lowercase per PSR-7 UriInterface.
673
- This methods adds additional normalizations that can be configured with the `$flags` parameter which is a bitmask
674
- of normalizations to apply. The following normalizations are available:
675
-
676
- - `UriNormalizer::PRESERVING_NORMALIZATIONS`
677
-
678
- Default normalizations which only include the ones that preserve semantics.
679
-
680
- - `UriNormalizer::CAPITALIZE_PERCENT_ENCODING`
681
-
682
- All letters within a percent-encoding triplet (e.g., "%3A") are case-insensitive, and should be capitalized.
683
-
684
- Example: `http://example.org/a%c2%b1b` → `http://example.org/a%C2%B1b`
685
-
686
- - `UriNormalizer::DECODE_UNRESERVED_CHARACTERS`
687
-
688
- Decodes percent-encoded octets of unreserved characters. For consistency, percent-encoded octets in the ranges of
689
- ALPHA (%41–%5A and %61–%7A), DIGIT (%30–%39), hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should
690
- not be created by URI producers and, when found in a URI, should be decoded to their corresponding unreserved
691
- characters by URI normalizers.
692
-
693
- Example: `http://example.org/%7Eusern%61me/` → `http://example.org/~username/`
694
-
695
- - `UriNormalizer::CONVERT_EMPTY_PATH`
696
-
697
- Converts the empty path to "/" for http and https URIs.
698
-
699
- Example: `http://example.org` → `http://example.org/`
700
-
701
- - `UriNormalizer::REMOVE_DEFAULT_HOST`
702
-
703
- Removes the default host of the given URI scheme from the URI. Only the "file" scheme defines the default host
704
- "localhost". All of `file:/myfile`, `file:///myfile`, and `file://localhost/myfile` are equivalent according to
705
- RFC 3986.
706
-
707
- Example: `file://localhost/myfile` → `file:///myfile`
708
-
709
- - `UriNormalizer::REMOVE_DEFAULT_PORT`
710
-
711
- Removes the default port of the given URI scheme from the URI.
712
-
713
- Example: `http://example.org:80/` → `http://example.org/`
714
-
715
- - `UriNormalizer::REMOVE_DOT_SEGMENTS`
716
-
717
- Removes unnecessary dot-segments. Dot-segments in relative-path references are not removed as it would
718
- change the semantics of the URI reference.
719
-
720
- Example: `http://example.org/../a/b/../c/./d.html` → `http://example.org/a/c/d.html`
721
-
722
- - `UriNormalizer::REMOVE_DUPLICATE_SLASHES`
723
-
724
- Paths which include two or more adjacent slashes are converted to one. Webservers usually ignore duplicate slashes
725
- and treat those URIs equivalent. But in theory those URIs do not need to be equivalent. So this normalization
726
- may change the semantics. Encoded slashes (%2F) are not removed.
727
-
728
- Example: `http://example.org//foo///bar.html` → `http://example.org/foo/bar.html`
729
-
730
- - `UriNormalizer::SORT_QUERY_PARAMETERS`
731
-
732
- Sort query parameters with their values in alphabetical order. However, the order of parameters in a URI may be
733
- significant (this is not defined by the standard). So this normalization is not safe and may change the semantics
734
- of the URI.
735
-
736
- Example: `?lang=en&article=fred` → `?article=fred&lang=en`
737
-
738
- ### `GuzzleHttp\Psr7\UriNormalizer::isEquivalent`
739
-
740
- `public static function isEquivalent(UriInterface $uri1, UriInterface $uri2, $normalizations = self::PRESERVING_NORMALIZATIONS): bool`
741
-
742
- Whether two URIs can be considered equivalent. Both URIs are normalized automatically before comparison with the given
743
- `$normalizations` bitmask. The method also accepts relative URI references and returns true when they are equivalent.
744
- This of course assumes they will be resolved against the same base URI. If this is not the case, determination of
745
- equivalence or difference of relative references does not mean anything.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/psr7/composer.json DELETED
@@ -1,49 +0,0 @@
1
- {
2
- "name": "guzzlehttp/psr7",
3
- "type": "library",
4
- "description": "PSR-7 message implementation that also provides common utility methods",
5
- "keywords": ["request", "response", "message", "stream", "http", "uri", "url", "psr-7"],
6
- "license": "MIT",
7
- "authors": [
8
- {
9
- "name": "Michael Dowling",
10
- "email": "mtdowling@gmail.com",
11
- "homepage": "https://github.com/mtdowling"
12
- },
13
- {
14
- "name": "Tobias Schultze",
15
- "homepage": "https://github.com/Tobion"
16
- }
17
- ],
18
- "require": {
19
- "php": ">=5.4.0",
20
- "psr/http-message": "~1.0",
21
- "ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
22
- },
23
- "require-dev": {
24
- "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8",
25
- "ext-zlib": "*"
26
- },
27
- "provide": {
28
- "psr/http-message-implementation": "1.0"
29
- },
30
- "suggest": {
31
- "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
32
- },
33
- "autoload": {
34
- "psr-4": {
35
- "GuzzleHttp\\Psr7\\": "src/"
36
- },
37
- "files": ["src/functions_include.php"]
38
- },
39
- "autoload-dev": {
40
- "psr-4": {
41
- "GuzzleHttp\\Tests\\Psr7\\": "tests/"
42
- }
43
- },
44
- "extra": {
45
- "branch-alias": {
46
- "dev-master": "1.6-dev"
47
- }
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/mollie/mollie-api-php/README.md DELETED
@@ -1,201 +0,0 @@
1
- <p align="center">
2
- <img src="https://info.mollie.com/hubfs/github/php/logo.png" width="128" height="128"/>
3
- </p>
4
- <h1 align="center">Mollie API client for PHP</h1>
5
-
6
- <img src="https://info.mollie.com/hubfs/github/php/editor.png" />
7
-
8
- Accepting [iDEAL](https://www.mollie.com/payments/ideal/), [Apple Pay](https://www.mollie.com/payments/apple-pay), [Bancontact](https://www.mollie.com/payments/bancontact/), [SOFORT Banking](https://www.mollie.com/payments/sofort/), [Creditcard](https://www.mollie.com/payments/credit-card/), [SEPA Bank transfer](https://www.mollie.com/payments/bank-transfer/), [SEPA Direct debit](https://www.mollie.com/payments/direct-debit/), [PayPal](https://www.mollie.com/payments/paypal/), [Belfius Direct Net](https://www.mollie.com/payments/belfius/), [KBC/CBC](https://www.mollie.com/payments/kbc-cbc/), [paysafecard](https://www.mollie.com/payments/paysafecard/), [ING Home'Pay](https://www.mollie.com/payments/ing-homepay/), [Giftcards](https://www.mollie.com/payments/gift-cards/), [Giropay](https://www.mollie.com/payments/giropay/), [EPS](https://www.mollie.com/payments/eps/) and [Przelewy24](https://www.mollie.com/payments/przelewy24/) online payments without fixed monthly costs or any punishing registration procedures. Just use the Mollie API to receive payments directly on your website or easily refund transactions to your customers.
9
-
10
- [![Build Status](https://travis-ci.org/mollie/mollie-api-php.png)](https://travis-ci.org/mollie/mollie-api-php)
11
- [![Latest Stable Version](https://poser.pugx.org/mollie/mollie-api-php/v/stable)](https://packagist.org/packages/mollie/mollie-api-php)
12
- [![Total Downloads](https://poser.pugx.org/mollie/mollie-api-php/downloads)](https://packagist.org/packages/mollie/mollie-api-php)
13
-
14
- ## Requirements ##
15
- To use the Mollie API client, the following things are required:
16
-
17
- + Get yourself a free [Mollie account](https://www.mollie.com/signup). No sign up costs.
18
- + Now you're ready to use the Mollie API client in test mode.
19
- + Follow [a few steps](https://www.mollie.com/dashboard/?modal=onboarding) to enable payment methods in live mode, and let us handle the rest.
20
- + PHP >= 5.6
21
- + Up-to-date OpenSSL (or other SSL/TLS toolkit)
22
-
23
- For leveraging [Mollie Connect](https://docs.mollie.com/oauth/overview) (advanced use cases only), we recommend also installing our [OAuth2 client](https://github.com/mollie/oauth2-mollie-php).
24
-
25
- ## Composer Installation ##
26
-
27
- By far the easiest way to install the Mollie API client is to require it with [Composer](http://getcomposer.org/doc/00-intro.md).
28
-
29
- $ composer require mollie/mollie-api-php:^2.0
30
-
31
- {
32
- "require": {
33
- "mollie/mollie-api-php": "^2.0"
34
- }
35
- }
36
-
37
- The version of the API client corresponds to the version of the API it implements. Check the [notes on migration](https://docs.mollie.com/migrating-v1-to-v2) to see what changes you need to make if you want to start using a newer API version.
38
-
39
-
40
- ## Manual Installation ##
41
- If you're not familiar with using composer we've added a ZIP file to the releases containing the API client and all the packages normally installed by composer.
42
- Download the ``mollie-api-php.zip`` from the [releases page](https://github.com/mollie/mollie-api-php/releases).
43
-
44
- Include the ``vendor/autoload.php`` as shown in [Initialize example](https://github.com/mollie/mollie-api-php/blob/master/examples/initialize.php).
45
-
46
- ## How to receive payments ##
47
-
48
- To successfully receive a payment, these steps should be implemented:
49
-
50
- 1. Use the Mollie API client to create a payment with the requested amount, currency, description and optionally, a payment method. It is important to specify a unique redirect URL where the customer is supposed to return to after the payment is completed.
51
-
52
- 2. Immediately after the payment is completed, our platform will send an asynchronous request to the configured webhook to allow the payment details to be retrieved, so you know when exactly to start processing the customer's order.
53
-
54
- 3. The customer returns, and should be satisfied to see that the order was paid and is now being processed.
55
-
56
- Find our full documentation online on [docs.mollie.com](https://docs.mollie.com).
57
-
58
- ## Getting started ##
59
-
60
- Initializing the Mollie API client, and setting your API key.
61
-
62
- ```php
63
- $mollie = new \Mollie\Api\MollieApiClient();
64
- $mollie->setApiKey("test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM");
65
- ```
66
-
67
- Creating a new payment.
68
-
69
- ```php
70
- $payment = $mollie->payments->create([
71
- "amount" => [
72
- "currency" => "EUR",
73
- "value" => "10.00"
74
- ],
75
- "description" => "My first API payment",
76
- "redirectUrl" => "https://webshop.example.org/order/12345/",
77
- "webhookUrl" => "https://webshop.example.org/mollie-webhook/",
78
- ]);
79
- ```
80
- _After creation, the payment id is available in the `$payment->id` property. You should store this id with your order._
81
-
82
- After storing the payment id you can send the customer to the checkout using the `$payment->getCheckoutUrl()`.
83
-
84
- ```php
85
- header("Location: " . $payment->getCheckoutUrl(), true, 303);
86
- ```
87
- _This header location should always be a GET, thus we enforce 303 http response code_
88
-
89
- For a payment create example, see [Example - New Payment](https://github.com/mollie/mollie-api-php/blob/master/examples/payments/create-payment.php).
90
-
91
- ## Retrieving payments ##
92
- We can use the `$payment->id` to retrieve a payment and check if the payment `isPaid`.
93
-
94
- ```php
95
- $payment = $mollie->payments->get($payment->id);
96
-
97
- if ($payment->isPaid())
98
- {
99
- echo "Payment received.";
100
- }
101
- ```
102
-
103
- Or retrieve a collection of payments.
104
-
105
- ```php
106
- $payments = $mollie->payments->page();
107
- ```
108
-
109
- For an extensive example of listing payments with the details and status, see [Example - List Payments](https://github.com/mollie/mollie-api-php/blob/master/examples/payments/list-payments.php).
110
-
111
- ## Payment webhook ##
112
-
113
- When the status of a payment changes the `webhookUrl` we specified in the creation of the payment will be called.
114
- There we can use the `id` from our POST parameters to check te status and act upon that, see [Example - Webhook](https://github.com/mollie/mollie-api-php/blob/master/examples/payments/webhook.php).
115
-
116
-
117
- ## Multicurrency ##
118
- Since 2.0 it is now possible to create non-EUR payments for your customers.
119
- A full list of available currencies can be found [in our documentation](https://docs.mollie.com/guides/multicurrency).
120
-
121
- ```php
122
- $payment = $mollie->payments->create([
123
- "amount" => [
124
- "currency" => "USD",
125
- "value" => "10.00"
126
- ],
127
- "description" => "Order #12345",
128
- "redirectUrl" => "https://webshop.example.org/order/12345/",
129
- "webhookUrl" => "https://webshop.example.org/mollie-webhook/",
130
- ]);
131
- ```
132
- _After creation, the `settlementAmount` will contain the EUR amount that will be settled on your account._
133
-
134
-
135
- ### Fully integrated iDEAL payments ###
136
-
137
- If you want to fully integrate iDEAL payments in your web site, some additional steps are required. First, you need to
138
- retrieve the list of issuers (banks) that support iDEAL and have your customer pick the issuer he/she wants to use for
139
- the payment.
140
-
141
- Retrieve the iDEAL method and include the issuers
142
-
143
- ```php
144
- $method = $mollie->methods->get(\Mollie\Api\Types\PaymentMethod::IDEAL, ["include" => "issuers"]);
145
- ```
146
-
147
- _`$method->issuers` will be a list of objects. Use the property `$id` of this object in the
148
- API call, and the property `$name` for displaying the issuer to your customer. For a more in-depth example, see [Example - iDEAL payment](https://github.com/mollie/mollie-api-php/blob/master/examples/payments/create-ideal-payment.php)._
149
-
150
- Create a payment with the selected issuer:
151
-
152
- ```php
153
- $payment = $mollie->payments->create([
154
- "amount" => [
155
- "currency" => "EUR",
156
- "value" => "10.00"
157
- ],
158
- "description" => "My first API payment",
159
- "redirectUrl" => "https://webshop.example.org/order/12345/",
160
- "webhookUrl" => "https://webshop.example.org/mollie-webhook/",
161
- "method" => \Mollie\Api\Types\PaymentMethod::IDEAL,
162
- "issuer" => $selectedIssuerId, // e.g. "ideal_INGBNL2A"
163
- ]);
164
- ```
165
-
166
- _The `_links` property of the `$payment` object will contain an object `checkout` with a `href` property, which is a URL that points directly to the online banking environment of the selected issuer.
167
- A short way of retrieving this URL can be achieved by using the `$payment->getCheckoutUrl()`._
168
-
169
- ### Refunding payments ###
170
-
171
- The API also supports refunding payments. Note that there is no confirmation and that all refunds are immediate and
172
- definitive. Refunds are only supported for iDEAL, credit card, Bancontact, SOFORT Banking, PayPal, Belfius Direct Net, KBC/CBC,
173
- ING Home'Pay and bank transfer payments. Other types of payments cannot be refunded through our API at the moment.
174
-
175
- ```php
176
- $payment = $mollie->payments->get($payment->id);
177
-
178
- // Refund € 2 of this payment
179
- $refund = $payment->refund([
180
- "amount" => [
181
- "currency" => "EUR",
182
- "value" => "2.00"
183
- ]
184
- ]);
185
- ```
186
-
187
- For a working example, see [Example - Refund payment](https://github.com/mollie/mollie-api-php/blob/master/examples/payments/refund-payment.php).
188
-
189
- ## API documentation ##
190
- If you wish to learn more about our API, please visit the [Mollie Developer Portal](https://www.mollie.com/developers). API Documentation is available in English.
191
-
192
- ## Want to help us make our API client even better? ##
193
-
194
- Want to help us make our API client even better? We take [pull requests](https://github.com/mollie/mollie-api-php/pulls?utf8=%E2%9C%93&q=is%3Apr), sure. But how would you like to contribute to a technology oriented organization? Mollie is hiring developers and system engineers. [Check out our vacancies](https://jobs.mollie.com/) or [get in touch](mailto:personeel@mollie.com).
195
-
196
- ## License ##
197
- [BSD (Berkeley Software Distribution) License](https://opensource.org/licenses/bsd-license.php).
198
- Copyright (c) 2013-2018, Mollie B.V.
199
-
200
- ## Support ##
201
- Contact: [www.mollie.com](https://www.mollie.com) — info@mollie.com — +31 20 820 20 70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/mollie/mollie-api-php/composer.json DELETED
@@ -1,80 +0,0 @@
1
- {
2
- "name": "mollie/mollie-api-php",
3
- "description": "Mollie API client library for PHP. Mollie is a European Payment Service provider and offers international payment methods such as Mastercard, VISA, American Express and PayPal, and local payment methods such as iDEAL, Bancontact, SOFORT Banking, SEPA direct debit, Belfius Direct Net, KBC Payment Button and various gift cards such as Podiumcadeaukaart and fashioncheque.",
4
- "keywords": [
5
- "mollie",
6
- "payment",
7
- "service",
8
- "ideal",
9
- "creditcard",
10
- "apple pay",
11
- "mistercash",
12
- "bancontact",
13
- "sofort",
14
- "sofortbanking",
15
- "sepa",
16
- "paypal",
17
- "paysafecard",
18
- "podiumcadeaukaart",
19
- "przelewy24",
20
- "banktransfer",
21
- "direct debit",
22
- "belfius",
23
- "belfius direct net",
24
- "refunds",
25
- "api",
26
- "payments",
27
- "gateway",
28
- "subscriptions",
29
- "recurring",
30
- "charges",
31
- "kbc",
32
- "cbc",
33
- "gift cards",
34
- "intersolve",
35
- "fashioncheque",
36
- "inghomepay",
37
- "klarna",
38
- "paylater",
39
- "sliceit"
40
- ],
41
- "homepage": "https://www.mollie.com/en/developers",
42
- "license": "BSD-2-Clause",
43
- "authors": [
44
- {
45
- "name": "Mollie B.V.",
46
- "email": "info@mollie.com"
47
- }
48
- ],
49
- "require": {
50
- "php": ">=5.6",
51
- "ext-curl": "*",
52
- "ext-json": "*",
53
- "ext-openssl": "*",
54
- "composer/ca-bundle": "^1.1",
55
- "guzzlehttp/guzzle": "^6.3"
56
- },
57
- "require-dev": {
58
- "eloquent/liberator": "^2.0",
59
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.1"
60
- },
61
- "suggest": {
62
- "mollie/oauth2-mollie-php": "Use OAuth to authenticate with the Mollie API. This is needed for some endpoints. Visit https://docs.mollie.com/ for more information."
63
- },
64
- "config": {
65
- "sort-packages": true
66
- },
67
- "autoload": {
68
- "psr-4": {
69
- "Mollie\\Api\\": "src/"
70
- }
71
- },
72
- "autoload-dev": {
73
- "psr-4": {
74
- "Tests\\": "tests"
75
- }
76
- },
77
- "scripts": {
78
- "test": "./vendor/bin/phpunit tests"
79
- }
80
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/mollie/mollie-api-php/examples/database/.gitignore DELETED
@@ -1 +0,0 @@
1
- *.txt
 
vendor/mollie/mollie-api-php/src/Endpoints/MethodEndpoint.php CHANGED
@@ -63,8 +63,8 @@ class MethodEndpoint extends CollectionEndpointAbstract
63
 
64
  return ResourceFactory::createBaseResourceCollection(
65
  $this->client,
66
- $result->_embedded->methods,
67
  Method::class,
 
68
  $result->_links
69
  );
70
  }
63
 
64
  return ResourceFactory::createBaseResourceCollection(
65
  $this->client,
 
66
  Method::class,
67
+ $result->_embedded->methods,
68
  $result->_links
69
  );
70
  }
vendor/mollie/mollie-api-php/src/MollieApiClient.php CHANGED
@@ -40,7 +40,7 @@ class MollieApiClient
40
  /**
41
  * Version of our client.
42
  */
43
- const CLIENT_VERSION = "2.12.0";
44
 
45
  /**
46
  * Endpoint of the remote API.
40
  /**
41
  * Version of our client.
42
  */
43
+ const CLIENT_VERSION = "2.12.1";
44
 
45
  /**
46
  * Endpoint of the remote API.
vendor/mollie/mollie-api-php/src/Resources/Method.php CHANGED
@@ -71,8 +71,8 @@ class Method extends BaseResource
71
  {
72
  return ResourceFactory::createBaseResourceCollection(
73
  $this->client,
74
- $this->issuers,
75
- Issuer::class
76
  );
77
  }
78
 
@@ -85,8 +85,8 @@ class Method extends BaseResource
85
  {
86
  return ResourceFactory::createBaseResourceCollection(
87
  $this->client,
88
- $this->pricing,
89
- MethodPrice::class
90
  );
91
  }
92
  }
71
  {
72
  return ResourceFactory::createBaseResourceCollection(
73
  $this->client,
74
+ Issuer::class,
75
+ $this->issuers
76
  );
77
  }
78
 
85
  {
86
  return ResourceFactory::createBaseResourceCollection(
87
  $this->client,
88
+ MethodPrice::class,
89
+ $this->pricing
90
  );
91
  }
92
  }
vendor/mollie/mollie-api-php/src/Resources/Order.php CHANGED
@@ -300,7 +300,11 @@ class Order extends BaseResource
300
  */
301
  public function lines()
302
  {
303
- return ResourceFactory::createBaseResourceCollection($this->client, $this->lines, OrderLine::class);
 
 
 
 
304
  }
305
 
306
  /**
300
  */
301
  public function lines()
302
  {
303
+ return ResourceFactory::createBaseResourceCollection(
304
+ $this->client,
305
+ OrderLine::class,
306
+ $this->lines
307
+ );
308
  }
309
 
310
  /**
vendor/mollie/mollie-api-php/src/Resources/ResourceFactory.php CHANGED
@@ -25,29 +25,28 @@ class ResourceFactory
25
 
26
  /**
27
  * @param MollieApiClient $client
28
- * @param array $input
29
  * @param string $resourceClass
 
30
  * @param null $_links
31
  * @param null $resourceCollectionClass
32
  * @return mixed
33
  */
34
  public static function createBaseResourceCollection(
35
  MollieApiClient $client,
36
- array $input,
37
  $resourceClass,
 
38
  $_links = null,
39
  $resourceCollectionClass = null
40
  ) {
41
- if (null === $resourceCollectionClass) {
42
- $resourceCollectionClass = $resourceClass.'Collection';
43
- }
44
 
45
- $data = new $resourceCollectionClass(count($input), $_links);
46
- foreach ($input as $item) {
47
- $data[] = static::createFromApiResult($item, new $resourceClass($client));
48
  }
49
 
50
- return $data;
51
  }
52
 
53
  /**
25
 
26
  /**
27
  * @param MollieApiClient $client
 
28
  * @param string $resourceClass
29
+ * @param array $data
30
  * @param null $_links
31
  * @param null $resourceCollectionClass
32
  * @return mixed
33
  */
34
  public static function createBaseResourceCollection(
35
  MollieApiClient $client,
 
36
  $resourceClass,
37
+ $data,
38
  $_links = null,
39
  $resourceCollectionClass = null
40
  ) {
41
+ $resourceCollectionClass = $resourceCollectionClass ?: $resourceClass . 'Collection';
42
+ $data = $data ?: [];
 
43
 
44
+ $result = new $resourceCollectionClass(count($data), $_links);
45
+ foreach ($data as $item) {
46
+ $result[] = static::createFromApiResult($item, new $resourceClass($client));
47
  }
48
 
49
+ return $result;
50
  }
51
 
52
  /**
vendor/mollie/mollie-api-php/src/Resources/Shipment.php CHANGED
@@ -94,7 +94,11 @@ class Shipment extends BaseResource
94
  */
95
  public function lines()
96
  {
97
- return ResourceFactory::createBaseResourceCollection($this->client, $this->lines, OrderLine::class);
 
 
 
 
98
  }
99
 
100
  /**
94
  */
95
  public function lines()
96
  {
97
+ return ResourceFactory::createBaseResourceCollection(
98
+ $this->client,
99
+ OrderLine::class,
100
+ $this->lines
101
+ );
102
  }
103
 
104
  /**
vendor/psr/http-message/CHANGELOG.md DELETED
@@ -1,36 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file, in reverse chronological order by release.
4
-
5
- ## 1.0.1 - 2016-08-06
6
-
7
- ### Added
8
-
9
- - Nothing.
10
-
11
- ### Deprecated
12
-
13
- - Nothing.
14
-
15
- ### Removed
16
-
17
- - Nothing.
18
-
19
- ### Fixed
20
-
21
- - Updated all `@return self` annotation references in interfaces to use
22
- `@return static`, which more closelly follows the semantics of the
23
- specification.
24
- - Updated the `MessageInterface::getHeaders()` return annotation to use the
25
- value `string[][]`, indicating the format is a nested array of strings.
26
- - Updated the `@link` annotation for `RequestInterface::withRequestTarget()`
27
- to point to the correct section of RFC 7230.
28
- - Updated the `ServerRequestInterface::withUploadedFiles()` parameter annotation
29
- to add the parameter name (`$uploadedFiles`).
30
- - Updated a `@throws` annotation for the `UploadedFileInterface::moveTo()`
31
- method to correctly reference the method parameter (it was referencing an
32
- incorrect parameter name previously).
33
-
34
- ## 1.0.0 - 2016-05-18
35
-
36
- Initial stable release; reflects accepted PSR-7 specification.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/psr/http-message/README.md DELETED
@@ -1,16 +0,0 @@
1
- PSR Http Message
2
- ================
3
-
4
- This repository holds all interfaces/classes/traits related to
5
- [PSR-7](http://www.php-fig.org/psr/psr-7/).
6
-
7
- Note that this is not a HTTP message implementation of its own. It is merely an
8
- interface that describes a HTTP message. See the specification for more details.
9
-
10
- Usage
11
- -----
12
-
13
- Before reading the usage guide we recommend reading the PSR-7 interfaces method list:
14
-
15
- * [`PSR-7 Interfaces Method List`](docs/PSR7-Interfaces.md)
16
- * [`PSR-7 Usage Guide`](docs/PSR7-Usage.md)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/psr/http-message/composer.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "name": "psr/http-message",
3
- "description": "Common interface for HTTP messages",
4
- "keywords": ["psr", "psr-7", "http", "http-message", "request", "response"],
5
- "homepage": "https://github.com/php-fig/http-message",
6
- "license": "MIT",
7
- "authors": [
8
- {
9
- "name": "PHP-FIG",
10
- "homepage": "http://www.php-fig.org/"
11
- }
12
- ],
13
- "require": {
14
- "php": ">=5.3.0"
15
- },
16
- "autoload": {
17
- "psr-4": {
18
- "Psr\\Http\\Message\\": "src/"
19
- }
20
- },
21
- "extra": {
22
- "branch-alias": {
23
- "dev-master": "1.0.x-dev"
24
- }
25
- }
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/ralouphie/getallheaders/README.md DELETED
@@ -1,27 +0,0 @@
1
- getallheaders
2
- =============
3
-
4
- PHP `getallheaders()` polyfill. Compatible with PHP >= 5.3.
5
-
6
- [![Build Status](https://travis-ci.org/ralouphie/getallheaders.svg?branch=master)](https://travis-ci.org/ralouphie/getallheaders)
7
- [![Coverage Status](https://coveralls.io/repos/ralouphie/getallheaders/badge.png?branch=master)](https://coveralls.io/r/ralouphie/getallheaders?branch=master)
8
- [![Latest Stable Version](https://poser.pugx.org/ralouphie/getallheaders/v/stable.png)](https://packagist.org/packages/ralouphie/getallheaders)
9
- [![Latest Unstable Version](https://poser.pugx.org/ralouphie/getallheaders/v/unstable.png)](https://packagist.org/packages/ralouphie/getallheaders)
10
- [![License](https://poser.pugx.org/ralouphie/getallheaders/license.png)](https://packagist.org/packages/ralouphie/getallheaders)
11
-
12
-
13
- This is a simple polyfill for [`getallheaders()`](http://www.php.net/manual/en/function.getallheaders.php).
14
-
15
- ## Install
16
-
17
- For PHP version **`>= 5.6`**:
18
-
19
- ```
20
- composer require ralouphie/getallheaders
21
- ```
22
-
23
- For PHP version **`< 5.6`**:
24
-
25
- ```
26
- composer require ralouphie/getallheaders "^2"
27
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/ralouphie/getallheaders/composer.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "name": "ralouphie/getallheaders",
3
- "description": "A polyfill for getallheaders.",
4
- "license": "MIT",
5
- "authors": [
6
- {
7
- "name": "Ralph Khattar",
8
- "email": "ralph.khattar@gmail.com"
9
- }
10
- ],
11
- "require": {
12
- "php": ">=5.6"
13
- },
14
- "require-dev": {
15
- "phpunit/phpunit": "^5 || ^6.5",
16
- "php-coveralls/php-coveralls": "^2.1"
17
- },
18
- "autoload": {
19
- "files": ["src/getallheaders.php"]
20
- },
21
- "autoload-dev": {
22
- "psr-4": {
23
- "getallheaders\\Tests\\": "tests/"
24
- }
25
- }
26
- }