@rebilly/framepay-react 13.148.1 → 13.148.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/build/index.js +4 -4
- package/build/lib/components/elements/applepay-element.js +13 -34
- package/build/lib/components/elements/bank-element.js +21 -42
- package/build/lib/components/elements/base-element.js +25 -58
- package/build/lib/components/elements/card-element.js +21 -42
- package/build/lib/components/elements/googlepay-element.js +13 -34
- package/build/lib/components/elements/iban-element.js +26 -48
- package/build/lib/components/elements/paypal-element.js +13 -34
- package/build/lib/components/elements/samsungpay-element.js +13 -34
- package/build/lib/components/injector.js +147 -255
- package/build/lib/components/provider.js +68 -129
- package/build/lib/constants.js +2 -2
- package/build/lib/context.js +9 -9
- package/build/lib/dom-util.js +11 -58
- package/build/lib/framepay-error.js +21 -26
- package/build/lib/get-framepay-api.js +2 -2
- package/package.json +4 -3
- package/tsconfig.json +5 -4
- package/build/index.spec.d.ts +0 -1
- package/build/index.spec.js +0 -54
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
3
|
if (k2 === undefined) k2 = k;
|
|
19
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -51,78 +36,71 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
51
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
52
37
|
};
|
|
53
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
IBANElement.prototype.setupElement = function () {
|
|
63
|
-
var _this = this;
|
|
64
|
-
var _a = this.props, onReady = _a.onReady, onChange = _a.onChange, onFocus = _a.onFocus, onBlur = _a.onBlur, elementType = _a.elementType;
|
|
65
|
-
var makeElement = function () {
|
|
39
|
+
const React = __importStar(require("react"));
|
|
40
|
+
const framepay_error_1 = __importDefault(require("../../framepay-error"));
|
|
41
|
+
const base_element_1 = __importDefault(require("./base-element"));
|
|
42
|
+
class IBANElement extends base_element_1.default {
|
|
43
|
+
setupElement() {
|
|
44
|
+
const { onReady, onChange, onFocus, onBlur, elementType } = this.props;
|
|
45
|
+
const makeElement = () => {
|
|
66
46
|
// elementNode already checked in BaseElement.handleSetupElement
|
|
67
47
|
// just ts checks fix
|
|
68
|
-
if (!
|
|
48
|
+
if (!this.elementNode) {
|
|
69
49
|
throw (0, framepay_error_1.default)({
|
|
70
50
|
code: framepay_error_1.default.codes.elementMountError,
|
|
71
|
-
details:
|
|
51
|
+
details: `IBANElement invalid elementNode, elementType: ${elementType || 'default'}`,
|
|
72
52
|
});
|
|
73
53
|
}
|
|
74
54
|
try {
|
|
75
|
-
return
|
|
55
|
+
return this.props.Framepay.iban.mount(this.elementNode);
|
|
76
56
|
}
|
|
77
57
|
catch (e) {
|
|
78
58
|
throw (0, framepay_error_1.default)({
|
|
79
59
|
code: framepay_error_1.default.codes.elementMountError,
|
|
80
|
-
details:
|
|
60
|
+
details: `IBANElement error in remote api call, elementType: ${elementType || 'default'}`,
|
|
81
61
|
trace: e,
|
|
82
62
|
});
|
|
83
63
|
}
|
|
84
64
|
};
|
|
85
|
-
|
|
65
|
+
const element = makeElement();
|
|
86
66
|
try {
|
|
87
|
-
element.on('ready',
|
|
88
|
-
|
|
67
|
+
element.on('ready', () => {
|
|
68
|
+
this.setState({ ready: true }, () => {
|
|
89
69
|
if (onReady) {
|
|
90
70
|
onReady();
|
|
91
71
|
}
|
|
92
72
|
});
|
|
93
73
|
});
|
|
94
|
-
element.on('change',
|
|
74
|
+
element.on('change', (data) => {
|
|
95
75
|
if (onChange) {
|
|
96
76
|
onChange(data);
|
|
97
77
|
}
|
|
98
78
|
});
|
|
99
|
-
element.on('focus',
|
|
79
|
+
element.on('focus', () => {
|
|
100
80
|
if (onFocus) {
|
|
101
81
|
onFocus();
|
|
102
82
|
}
|
|
103
83
|
});
|
|
104
|
-
element.on('blur',
|
|
84
|
+
element.on('blur', () => {
|
|
105
85
|
if (onBlur) {
|
|
106
86
|
onBlur();
|
|
107
87
|
}
|
|
108
88
|
});
|
|
109
|
-
this.setState({ element
|
|
89
|
+
this.setState({ element });
|
|
110
90
|
}
|
|
111
91
|
catch (e) {
|
|
112
92
|
throw (0, framepay_error_1.default)({
|
|
113
93
|
code: framepay_error_1.default.codes.elementMountError,
|
|
114
|
-
details:
|
|
94
|
+
details: `IBANElement events binding error, elementType: ${elementType || 'default'}`,
|
|
115
95
|
trace: e,
|
|
116
96
|
});
|
|
117
97
|
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
_this.elementNode = node;
|
|
98
|
+
}
|
|
99
|
+
render() {
|
|
100
|
+
return (React.createElement("div", { ref: (node) => {
|
|
101
|
+
this.elementNode = node;
|
|
123
102
|
} }));
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
}(base_element_1.default));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
127
105
|
exports.default = IBANElement;
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWJhbi1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL2liYW4tZWxlbWVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFDL0IsMEVBQWlEO0FBQ2pELGtFQUF5QztBQUl6QyxNQUFxQixXQUFZLFNBQVEsc0JBQWlDO0lBQ3RFLFlBQVk7UUFDUixNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFdkUsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ3JCLGdFQUFnRTtZQUNoRSxxQkFBcUI7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxJQUFBLHdCQUFhLEVBQUM7b0JBQ2hCLElBQUksRUFBRSx3QkFBYSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7b0JBQzNDLE9BQU8sRUFBRSxpREFDTCxXQUFXLElBQUksU0FDbkIsRUFBRTtpQkFDTCxDQUFDLENBQUM7WUFDUCxDQUFDO1lBRUQsSUFBSSxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxJQUFBLHdCQUFhLEVBQUM7b0JBQ2hCLElBQUksRUFBRSx3QkFBYSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7b0JBQzNDLE9BQU8sRUFBRSxzREFDTCxXQUFXLElBQUksU0FDbkIsRUFBRTtvQkFDRixLQUFLLEVBQUUsQ0FBQztpQkFDWCxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDO1lBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRTtvQkFDaEMsSUFBSSxPQUFPLEVBQUUsQ0FBQzt3QkFDVixPQUFPLEVBQUUsQ0FBQztvQkFDZCxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQXdDLEVBQUUsRUFBRTtnQkFDOUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDWCxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25CLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDckIsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDVixPQUFPLEVBQUUsQ0FBQztnQkFDZCxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ3BCLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1QsTUFBTSxFQUFFLENBQUM7Z0JBQ2IsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUEsd0JBQWEsRUFBQztnQkFDaEIsSUFBSSxFQUFFLHdCQUFhLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtnQkFDM0MsT0FBTyxFQUFFLGtEQUNMLFdBQVcsSUFBSSxTQUNuQixFQUFFO2dCQUNGLEtBQUssRUFBRSxDQUFDO2FBQ1gsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTyxDQUNILDZCQUNJLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNWLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzVCLENBQUMsR0FDSCxDQUNMLENBQUM7SUFDTixDQUFDO0NBQ0o7QUEvRUQsOEJBK0VDIn0=
|
|
@@ -1,44 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
4
|
};
|
|
20
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
PaypalElement.prototype.setupElement = function () {
|
|
29
|
-
var _this = this;
|
|
30
|
-
var Framepay = this.props.Framepay;
|
|
31
|
-
var makeElement = function () {
|
|
6
|
+
const framepay_error_1 = __importDefault(require("../../framepay-error"));
|
|
7
|
+
const base_element_1 = __importDefault(require("./base-element"));
|
|
8
|
+
class PaypalElement extends base_element_1.default {
|
|
9
|
+
setupElement() {
|
|
10
|
+
const { Framepay } = this.props;
|
|
11
|
+
const makeElement = () => {
|
|
32
12
|
// elementNode already checked in BaseElement.handleSetupElement
|
|
33
13
|
// just ts checks fix
|
|
34
|
-
if (!
|
|
14
|
+
if (!this.elementNode) {
|
|
35
15
|
throw (0, framepay_error_1.default)({
|
|
36
16
|
code: framepay_error_1.default.codes.elementMountError,
|
|
37
17
|
details: 'PaypalElement invalid elementNode',
|
|
38
18
|
});
|
|
39
19
|
}
|
|
40
20
|
try {
|
|
41
|
-
return Framepay.paypal.mount(
|
|
21
|
+
return Framepay.paypal.mount(this.elementNode);
|
|
42
22
|
}
|
|
43
23
|
catch (e) {
|
|
44
24
|
throw (0, framepay_error_1.default)({
|
|
@@ -48,10 +28,9 @@ var PaypalElement = /** @class */ (function (_super) {
|
|
|
48
28
|
});
|
|
49
29
|
}
|
|
50
30
|
};
|
|
51
|
-
|
|
52
|
-
this.setState({ element
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
}(base_element_1.default));
|
|
31
|
+
const element = makeElement();
|
|
32
|
+
this.setState({ element });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
56
35
|
exports.default = PaypalElement;
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5cGFsLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWxlbWVudHMvcGF5cGFsLWVsZW1lbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsMEVBQWlEO0FBQ2pELGtFQUF5QztBQUd6QyxNQUFxQixhQUFjLFNBQVEsc0JBRzFDO0lBQ0csWUFBWTtRQUNSLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRWhDLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRTtZQUNyQixnRUFBZ0U7WUFDaEUscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sSUFBQSx3QkFBYSxFQUFDO29CQUNoQixJQUFJLEVBQUUsd0JBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCO29CQUMzQyxPQUFPLEVBQUUsbUNBQW1DO2lCQUMvQyxDQUFDLENBQUM7WUFDUCxDQUFDO1lBRUQsSUFBSSxDQUFDO2dCQUNELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBQSx3QkFBYSxFQUFDO29CQUNoQixJQUFJLEVBQUUsd0JBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCO29CQUMzQyxPQUFPLEVBQUUsd0NBQXdDO29CQUNqRCxLQUFLLEVBQUUsQ0FBQztpQkFDWCxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBL0JELGdDQStCQyJ9
|
|
@@ -1,44 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
4
|
};
|
|
20
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
SamsungPayElement.prototype.setupElement = function () {
|
|
29
|
-
var _this = this;
|
|
30
|
-
var Framepay = this.props.Framepay;
|
|
31
|
-
var makeElement = function () {
|
|
6
|
+
const framepay_error_1 = __importDefault(require("../../framepay-error"));
|
|
7
|
+
const base_element_1 = __importDefault(require("./base-element"));
|
|
8
|
+
class SamsungPayElement extends base_element_1.default {
|
|
9
|
+
setupElement() {
|
|
10
|
+
const { Framepay } = this.props;
|
|
11
|
+
const makeElement = () => {
|
|
32
12
|
// elementNode already checked in BaseElement.handleSetupElement
|
|
33
13
|
// just ts checks fix
|
|
34
|
-
if (!
|
|
14
|
+
if (!this.elementNode) {
|
|
35
15
|
throw (0, framepay_error_1.default)({
|
|
36
16
|
code: framepay_error_1.default.codes.elementMountError,
|
|
37
17
|
details: 'SamsungPayElement invalid elementNode',
|
|
38
18
|
});
|
|
39
19
|
}
|
|
40
20
|
try {
|
|
41
|
-
return Framepay.samsungPay.mount(
|
|
21
|
+
return Framepay.samsungPay.mount(this.elementNode);
|
|
42
22
|
}
|
|
43
23
|
catch (e) {
|
|
44
24
|
throw (0, framepay_error_1.default)({
|
|
@@ -48,10 +28,9 @@ var SamsungPayElement = /** @class */ (function (_super) {
|
|
|
48
28
|
});
|
|
49
29
|
}
|
|
50
30
|
};
|
|
51
|
-
|
|
52
|
-
this.setState({ element
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
}(base_element_1.default));
|
|
31
|
+
const element = makeElement();
|
|
32
|
+
this.setState({ element });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
56
35
|
exports.default = SamsungPayElement;
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Ftc3VuZ3BheS1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL3NhbXN1bmdwYXktZWxlbWVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwwRUFBaUQ7QUFDakQsa0VBQXlDO0FBTXpDLE1BQXFCLGlCQUFrQixTQUFRLHNCQUc5QztJQUNHLFlBQVk7UUFDUixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUVoQyxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUU7WUFDckIsZ0VBQWdFO1lBQ2hFLHFCQUFxQjtZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNwQixNQUFNLElBQUEsd0JBQWEsRUFBQztvQkFDaEIsSUFBSSxFQUFFLHdCQUFhLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtvQkFDM0MsT0FBTyxFQUFFLHVDQUF1QztpQkFDbkQsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztZQUVELElBQUksQ0FBQztnQkFDRCxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxNQUFNLElBQUEsd0JBQWEsRUFBQztvQkFDaEIsSUFBSSxFQUFFLHdCQUFhLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtvQkFDM0MsT0FBTyxFQUFFLDRDQUE0QztvQkFDckQsS0FBSyxFQUFFLENBQUM7aUJBQ1gsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDSjtBQS9CRCxvQ0ErQkMifQ==
|