easy 24.1.1 → 24.1.2
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/.aiignore +12 -0
- package/.swcrc +4 -3
- package/example.js +672 -2711
- package/lib/bounds.js +50 -116
- package/lib/constants.js +23 -23
- package/lib/document.js +48 -97
- package/lib/element/body.js +7 -131
- package/lib/element/button.js +5 -129
- package/lib/element/checkbox.js +13 -160
- package/lib/element/input.js +7 -131
- package/lib/element/link.js +10 -156
- package/lib/element/select.js +6 -130
- package/lib/element/textarea.js +7 -131
- package/lib/element.js +245 -481
- package/lib/eventTypes.js +60 -60
- package/lib/example/preamble.js +2 -2
- package/lib/example/view/div.js +20 -169
- package/lib/example/view.js +9 -152
- package/lib/example.js +4 -4
- package/lib/index.js +22 -22
- package/lib/mixins/click.js +10 -10
- package/lib/mixins/customEvent.js +41 -84
- package/lib/mixins/element.js +28 -34
- package/lib/mixins/event.js +45 -50
- package/lib/mixins/focus.js +13 -13
- package/lib/mixins/fullScreen.js +11 -11
- package/lib/mixins/input.js +12 -12
- package/lib/mixins/jsx.js +42 -48
- package/lib/mixins/key.js +8 -8
- package/lib/mixins/mouse.js +14 -14
- package/lib/mixins/resize.js +6 -6
- package/lib/mixins/scroll.js +13 -13
- package/lib/mixins/selection.js +15 -15
- package/lib/mixins/state.js +6 -6
- package/lib/mixins/touch.js +10 -10
- package/lib/mouseButtons.js +8 -8
- package/lib/offset.js +14 -47
- package/lib/react.js +17 -31
- package/lib/textElement.js +61 -129
- package/lib/utilities/array.js +8 -38
- package/lib/utilities/async.js +5 -5
- package/lib/utilities/dom.js +17 -19
- package/lib/utilities/element.js +22 -44
- package/lib/utilities/elements.js +7 -11
- package/lib/utilities/name.js +2 -2
- package/lib/utilities/object.js +17 -47
- package/lib/utilities/string.js +3 -3
- package/lib/window.js +55 -152
- package/package.json +1 -1
package/lib/window.js
CHANGED
|
@@ -9,163 +9,66 @@ Object.defineProperty(exports, "default" ///
|
|
|
9
9
|
return _default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
function _array_like_to_array(arr, len) {
|
|
21
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
22
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
23
|
-
return arr2;
|
|
24
|
-
}
|
|
25
|
-
function _array_without_holes(arr) {
|
|
26
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
27
|
-
}
|
|
28
|
-
function _class_call_check(instance, Constructor) {
|
|
29
|
-
if (!(instance instanceof Constructor)) {
|
|
30
|
-
throw new TypeError("Cannot call a class as a function");
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function _defineProperties(target, props) {
|
|
34
|
-
for(var i = 0; i < props.length; i++){
|
|
35
|
-
var descriptor = props[i];
|
|
36
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
37
|
-
descriptor.configurable = true;
|
|
38
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
39
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
43
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
44
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
45
|
-
return Constructor;
|
|
46
|
-
}
|
|
12
|
+
const _key = /*#__PURE__*/ _interop_require_default(require("./mixins/key"));
|
|
13
|
+
const _event = /*#__PURE__*/ _interop_require_default(require("./mixins/event"));
|
|
14
|
+
const _mouse = /*#__PURE__*/ _interop_require_default(require("./mixins/mouse"));
|
|
15
|
+
const _click = /*#__PURE__*/ _interop_require_default(require("./mixins/click"));
|
|
16
|
+
const _focus = /*#__PURE__*/ _interop_require_default(require("./mixins/focus"));
|
|
17
|
+
const _constants = require("./constants");
|
|
18
|
+
const _eventTypes = require("./eventTypes");
|
|
19
|
+
const _scroll = require("./mixins/scroll");
|
|
47
20
|
function _interop_require_default(obj) {
|
|
48
21
|
return obj && obj.__esModule ? obj : {
|
|
49
22
|
default: obj
|
|
50
23
|
};
|
|
51
24
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
function _non_iterable_spread() {
|
|
56
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
57
|
-
}
|
|
58
|
-
function _to_consumable_array(arr) {
|
|
59
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
60
|
-
}
|
|
61
|
-
function _type_of(obj) {
|
|
62
|
-
"@swc/helpers - typeof";
|
|
63
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
64
|
-
}
|
|
65
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
66
|
-
if (!o) return;
|
|
67
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
68
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
69
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
70
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
71
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
72
|
-
}
|
|
73
|
-
var Window = /*#__PURE__*/ function() {
|
|
74
|
-
function Window() {
|
|
75
|
-
_class_call_check(this, Window);
|
|
25
|
+
class Window {
|
|
26
|
+
constructor(){
|
|
76
27
|
this.domElement = window; ///
|
|
77
28
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
key: "getScrollLeft",
|
|
124
|
-
value: function getScrollLeft() {
|
|
125
|
-
return this.domElement.pageXOffset;
|
|
126
|
-
} ///
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
key: "getSelection",
|
|
130
|
-
value: function getSelection() {
|
|
131
|
-
return this.domElement.getSelection();
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
key: "getScreenWidth",
|
|
136
|
-
value: function getScreenWidth() {
|
|
137
|
-
return this.domElement.screen.width;
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
key: "getScreenHeight",
|
|
142
|
-
value: function getScreenHeight() {
|
|
143
|
-
return this.domElement.screen.height;
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
key: "scrollTo",
|
|
148
|
-
value: function scrollTo(scrollTop, scrollLeft) {
|
|
149
|
-
this.domElement.scrollTo(scrollLeft, scrollTop);
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
key: "onResize",
|
|
154
|
-
value: function onResize(resizeHandler, element) {
|
|
155
|
-
var eventType = _eventTypes.RESIZE_EVENT_TYPE, eventListener = this.addEventListener(eventType, resizeHandler, element);
|
|
156
|
-
this.domElement.addEventListener(eventType, eventListener);
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
key: "offResize",
|
|
161
|
-
value: function offResize(resizeHandler, element) {
|
|
162
|
-
var eventType = _eventTypes.RESIZE_EVENT_TYPE, eventListener = this.removeEventListener(eventType, resizeHandler, element);
|
|
163
|
-
this.domElement.removeEventListener(eventType, eventListener);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
]);
|
|
167
|
-
return Window;
|
|
168
|
-
}();
|
|
29
|
+
getDOMElement() {
|
|
30
|
+
return this.domElement;
|
|
31
|
+
}
|
|
32
|
+
assign(...sources) {
|
|
33
|
+
const target = this.domElement; ///
|
|
34
|
+
Object.assign(target, ...sources);
|
|
35
|
+
}
|
|
36
|
+
reload() {
|
|
37
|
+
window.location.reload(); ///
|
|
38
|
+
}
|
|
39
|
+
getWidth() {
|
|
40
|
+
return this.domElement.innerWidth;
|
|
41
|
+
}
|
|
42
|
+
getHeight() {
|
|
43
|
+
return this.domElement.innerHeight;
|
|
44
|
+
}
|
|
45
|
+
getScrollTop() {
|
|
46
|
+
return this.domElement.pageYOffset;
|
|
47
|
+
}
|
|
48
|
+
getScrollLeft() {
|
|
49
|
+
return this.domElement.pageXOffset;
|
|
50
|
+
}
|
|
51
|
+
getSelection() {
|
|
52
|
+
return this.domElement.getSelection();
|
|
53
|
+
}
|
|
54
|
+
getScreenWidth() {
|
|
55
|
+
return this.domElement.screen.width;
|
|
56
|
+
}
|
|
57
|
+
getScreenHeight() {
|
|
58
|
+
return this.domElement.screen.height;
|
|
59
|
+
}
|
|
60
|
+
scrollTo(scrollTop, scrollLeft) {
|
|
61
|
+
this.domElement.scrollTo(scrollLeft, scrollTop);
|
|
62
|
+
}
|
|
63
|
+
onResize(resizeHandler, element) {
|
|
64
|
+
const eventType = _eventTypes.RESIZE_EVENT_TYPE, eventListener = this.addEventListener(eventType, resizeHandler, element);
|
|
65
|
+
this.domElement.addEventListener(eventType, eventListener);
|
|
66
|
+
}
|
|
67
|
+
offResize(resizeHandler, element) {
|
|
68
|
+
const eventType = _eventTypes.RESIZE_EVENT_TYPE, eventListener = this.removeEventListener(eventType, resizeHandler, element);
|
|
69
|
+
this.domElement.removeEventListener(eventType, eventListener);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
169
72
|
Object.assign(Window.prototype, _key.default);
|
|
170
73
|
Object.assign(Window.prototype, _event.default);
|
|
171
74
|
Object.assign(Window.prototype, _mouse.default);
|
|
@@ -175,6 +78,6 @@ Object.assign(Window.prototype, {
|
|
|
175
78
|
onScroll: _scroll.onScroll,
|
|
176
79
|
offScroll: _scroll.offScroll
|
|
177
80
|
});
|
|
178
|
-
|
|
81
|
+
const _default = typeof window === _constants.UNDEFINED ? undefined : new Window();
|
|
179
82
|
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93aW5kb3cuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBrZXlNaXhpbnMgZnJvbSBcIi4vbWl4aW5zL2tleVwiO1xuaW1wb3J0IGV2ZW50TWl4aW5zIGZyb20gXCIuL21peGlucy9ldmVudFwiO1xuaW1wb3J0IG1vdXNlTWl4aW5zIGZyb20gXCIuL21peGlucy9tb3VzZVwiO1xuaW1wb3J0IGNsaWNrTWl4aW5zIGZyb20gXCIuL21peGlucy9jbGlja1wiO1xuaW1wb3J0IGZvY3VzTWl4aW5zIGZyb20gXCIuL21peGlucy9mb2N1c1wiO1xuXG5pbXBvcnQgeyBVTkRFRklORUQgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJFU0laRV9FVkVOVF9UWVBFIH0gZnJvbSBcIi4vZXZlbnRUeXBlc1wiO1xuaW1wb3J0IHsgb25TY3JvbGwsIG9mZlNjcm9sbCB9IGZyb20gXCIuL21peGlucy9zY3JvbGxcIjtcblxuY2xhc3MgV2luZG93IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kb21FbGVtZW50ID0gd2luZG93OyAvLy9cbiAgfVxuXG4gIGdldERPTUVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZG9tRWxlbWVudDtcbiAgfVxuXG4gIGFzc2lnbiguLi5zb3VyY2VzKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5kb21FbGVtZW50OyAvLy9cblxuICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCAuLi5zb3VyY2VzKTtcbiAgfVxuXG4gIHJlbG9hZCgpIHtcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7IC8vL1xuICB9XG5cbiAgZ2V0V2lkdGgoKSB7IHJldHVybiB0aGlzLmRvbUVsZW1lbnQuaW5uZXJXaWR0aDsgfSAvLy9cbiAgXG4gIGdldEhlaWdodCgpIHsgcmV0dXJuIHRoaXMuZG9tRWxlbWVudC5pbm5lckhlaWdodDsgfSAvLy9cblxuICBnZXRTY3JvbGxUb3AoKSB7IHJldHVybiB0aGlzLmRvbUVsZW1lbnQucGFnZVlPZmZzZXQ7IH0gIC8vL1xuXG4gIGdldFNjcm9sbExlZnQoKSB7IHJldHVybiB0aGlzLmRvbUVsZW1lbnQucGFnZVhPZmZzZXQ7IH0gLy8vXG5cbiAgZ2V0U2VsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5kb21FbGVtZW50LmdldFNlbGVjdGlvbigpOyB9XG5cbiAgZ2V0U2NyZWVuV2lkdGgoKSB7IHJldHVybiB0aGlzLmRvbUVsZW1lbnQuc2NyZWVuLndpZHRoOyB9XG5cbiAgZ2V0U2NyZWVuSGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5kb21FbGVtZW50LnNjcmVlbi5oZWlnaHQ7IH1cblxuICBzY3JvbGxUbyhzY3JvbGxUb3AsIHNjcm9sbExlZnQpIHsgdGhpcy5kb21FbGVtZW50LnNjcm9sbFRvKHNjcm9sbExlZnQsIHNjcm9sbFRvcCk7IH1cblxuICBvblJlc2l6ZShyZXNpemVIYW5kbGVyLCBlbGVtZW50KSB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gUkVTSVpFX0VWRU5UX1RZUEUsXG4gICAgICAgICAgZXZlbnRMaXN0ZW5lciA9IHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIHJlc2l6ZUhhbmRsZXIsIGVsZW1lbnQpO1xuXG4gICAgdGhpcy5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBldmVudExpc3RlbmVyKTtcbiAgfVxuXG4gIG9mZlJlc2l6ZShyZXNpemVIYW5kbGVyLCBlbGVtZW50KSB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gUkVTSVpFX0VWRU5UX1RZUEUsXG4gICAgICAgICAgZXZlbnRMaXN0ZW5lciA9IHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIHJlc2l6ZUhhbmRsZXIsIGVsZW1lbnQpO1xuXG4gICAgdGhpcy5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBldmVudExpc3RlbmVyKTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKFdpbmRvdy5wcm90b3R5cGUsIGtleU1peGlucyk7XG5PYmplY3QuYXNzaWduKFdpbmRvdy5wcm90b3R5cGUsIGV2ZW50TWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oV2luZG93LnByb3RvdHlwZSwgbW91c2VNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihXaW5kb3cucHJvdG90eXBlLCBjbGlja01peGlucyk7XG5PYmplY3QuYXNzaWduKFdpbmRvdy5wcm90b3R5cGUsIGZvY3VzTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oV2luZG93LnByb3RvdHlwZSwge1xuICBvblNjcm9sbCxcbiAgb2ZmU2Nyb2xsXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgKHR5cGVvZiB3aW5kb3cgPT09IFVOREVGSU5FRCkgPyB1bmRlZmluZWQgOiBuZXcgV2luZG93KCk7ICAvLy9cbiJdLCJuYW1lcyI6WyJXaW5kb3ciLCJkb21FbGVtZW50Iiwid2luZG93IiwiZ2V0RE9NRWxlbWVudCIsImFzc2lnbiIsInNvdXJjZXMiLCJ0YXJnZXQiLCJPYmplY3QiLCJyZWxvYWQiLCJsb2NhdGlvbiIsImdldFdpZHRoIiwiaW5uZXJXaWR0aCIsImdldEhlaWdodCIsImlubmVySGVpZ2h0IiwiZ2V0U2Nyb2xsVG9wIiwicGFnZVlPZmZzZXQiLCJnZXRTY3JvbGxMZWZ0IiwicGFnZVhPZmZzZXQiLCJnZXRTZWxlY3Rpb24iLCJnZXRTY3JlZW5XaWR0aCIsInNjcmVlbiIsIndpZHRoIiwiZ2V0U2NyZWVuSGVpZ2h0IiwiaGVpZ2h0Iiwic2Nyb2xsVG8iLCJzY3JvbGxUb3AiLCJzY3JvbGxMZWZ0Iiwib25SZXNpemUiLCJyZXNpemVIYW5kbGVyIiwiZWxlbWVudCIsImV2ZW50VHlwZSIsIlJFU0laRV9FVkVOVF9UWVBFIiwiZXZlbnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJvZmZSZXNpemUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicHJvdG90eXBlIiwia2V5TWl4aW5zIiwiZXZlbnRNaXhpbnMiLCJtb3VzZU1peGlucyIsImNsaWNrTWl4aW5zIiwiZm9jdXNNaXhpbnMiLCJvblNjcm9sbCIsIm9mZlNjcm9sbCIsIlVOREVGSU5FRCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd0VBLFVBQTBFLEdBQUc7Ozs7ZUFBN0U7Ozs0REF0RXNCOzhEQUNFOzhEQUNBOzhEQUNBOzhEQUNBOzJCQUVFOzRCQUNRO3dCQUNFOzs7Ozs7QUFFcEMsTUFBTUE7SUFDSixhQUFjO1FBQ1osSUFBSSxDQUFDQyxVQUFVLEdBQUdDLFFBQVEsR0FBRztJQUMvQjtJQUVBQyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0YsVUFBVTtJQUN4QjtJQUVBRyxPQUFPLEdBQUdDLE9BQU8sRUFBRTtRQUNqQixNQUFNQyxTQUFTLElBQUksQ0FBQ0wsVUFBVSxFQUFFLEdBQUc7UUFFbkNNLE9BQU9ILE1BQU0sQ0FBQ0UsV0FBV0Q7SUFDM0I7SUFFQUcsU0FBUztRQUNQTixPQUFPTyxRQUFRLENBQUNELE1BQU0sSUFBSSxHQUFHO0lBQy9CO0lBRUFFLFdBQVc7UUFBRSxPQUFPLElBQUksQ0FBQ1QsVUFBVSxDQUFDVSxVQUFVO0lBQUU7SUFFaERDLFlBQVk7UUFBRSxPQUFPLElBQUksQ0FBQ1gsVUFBVSxDQUFDWSxXQUFXO0lBQUU7SUFFbERDLGVBQWU7UUFBRSxPQUFPLElBQUksQ0FBQ2IsVUFBVSxDQUFDYyxXQUFXO0lBQUU7SUFFckRDLGdCQUFnQjtRQUFFLE9BQU8sSUFBSSxDQUFDZixVQUFVLENBQUNnQixXQUFXO0lBQUU7SUFFdERDLGVBQWU7UUFBRSxPQUFPLElBQUksQ0FBQ2pCLFVBQVUsQ0FBQ2lCLFlBQVk7SUFBSTtJQUV4REMsaUJBQWlCO1FBQUUsT0FBTyxJQUFJLENBQUNsQixVQUFVLENBQUNtQixNQUFNLENBQUNDLEtBQUs7SUFBRTtJQUV4REMsa0JBQWtCO1FBQUUsT0FBTyxJQUFJLENBQUNyQixVQUFVLENBQUNtQixNQUFNLENBQUNHLE1BQU07SUFBRTtJQUUxREMsU0FBU0MsU0FBUyxFQUFFQyxVQUFVLEVBQUU7UUFBRSxJQUFJLENBQUN6QixVQUFVLENBQUN1QixRQUFRLENBQUNFLFlBQVlEO0lBQVk7SUFFbkZFLFNBQVNDLGFBQWEsRUFBRUMsT0FBTyxFQUFFO1FBQy9CLE1BQU1DLFlBQVlDLDZCQUFpQixFQUM3QkMsZ0JBQWdCLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUNILFdBQVdGLGVBQWVDO1FBRXRFLElBQUksQ0FBQzVCLFVBQVUsQ0FBQ2dDLGdCQUFnQixDQUFDSCxXQUFXRTtJQUM5QztJQUVBRSxVQUFVTixhQUFhLEVBQUVDLE9BQU8sRUFBRTtRQUNoQyxNQUFNQyxZQUFZQyw2QkFBaUIsRUFDN0JDLGdCQUFnQixJQUFJLENBQUNHLG1CQUFtQixDQUFDTCxXQUFXRixlQUFlQztRQUV6RSxJQUFJLENBQUM1QixVQUFVLENBQUNrQyxtQkFBbUIsQ0FBQ0wsV0FBV0U7SUFDakQ7QUFDRjtBQUVBekIsT0FBT0gsTUFBTSxDQUFDSixPQUFPb0MsU0FBUyxFQUFFQyxZQUFTO0FBQ3pDOUIsT0FBT0gsTUFBTSxDQUFDSixPQUFPb0MsU0FBUyxFQUFFRSxjQUFXO0FBQzNDL0IsT0FBT0gsTUFBTSxDQUFDSixPQUFPb0MsU0FBUyxFQUFFRyxjQUFXO0FBQzNDaEMsT0FBT0gsTUFBTSxDQUFDSixPQUFPb0MsU0FBUyxFQUFFSSxjQUFXO0FBQzNDakMsT0FBT0gsTUFBTSxDQUFDSixPQUFPb0MsU0FBUyxFQUFFSyxjQUFXO0FBQzNDbEMsT0FBT0gsTUFBTSxDQUFDSixPQUFPb0MsU0FBUyxFQUFFO0lBQzlCTSxVQUFBQSxnQkFBUTtJQUNSQyxXQUFBQSxpQkFBUztBQUNYO01BRUEsV0FBZSxBQUFDLE9BQU96QyxXQUFXMEMsb0JBQVMsR0FBSUMsWUFBWSxJQUFJN0MifQ==
|