@syncfusion/ej2-base 20.3.50 → 20.4.38

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.
Files changed (71) hide show
  1. package/.eslintrc.json +16 -1
  2. package/CHANGELOG.md +1 -17
  3. package/README.md +4 -5
  4. package/bin/syncfusion-license.js +1 -1
  5. package/dist/ej2-base.min.js +2 -2
  6. package/dist/ej2-base.umd.min.js +2 -2
  7. package/dist/ej2-base.umd.min.js.map +1 -1
  8. package/dist/es6/ej2-base.es2015.js +497 -281
  9. package/dist/es6/ej2-base.es2015.js.map +1 -1
  10. package/dist/es6/ej2-base.es5.js +285 -210
  11. package/dist/es6/ej2-base.es5.js.map +1 -1
  12. package/dist/global/ej2-base.min.js +2 -2
  13. package/dist/global/ej2-base.min.js.map +1 -1
  14. package/dist/global/index.d.ts +1 -1
  15. package/e2e/modified-protractor/protractor.config.js +316 -0
  16. package/e2e/protractor.config.js +56 -24
  17. package/package.json +44 -8
  18. package/src/animation.d.ts +4 -0
  19. package/src/animation.js +7 -1
  20. package/src/base.js +12 -12
  21. package/src/browser.js +7 -7
  22. package/src/child-property.js +10 -10
  23. package/src/component-model.d.ts +1 -1
  24. package/src/component.js +29 -8
  25. package/src/dom.js +10 -10
  26. package/src/draggable-model.d.ts +21 -8
  27. package/src/draggable.d.ts +24 -6
  28. package/src/draggable.js +25 -12
  29. package/src/event-handler.js +6 -6
  30. package/src/hijri-parser.js +1 -1
  31. package/src/intl/date-parser.js +4 -4
  32. package/src/intl/intl-base.js +4 -4
  33. package/src/intl/number-formatter.js +3 -3
  34. package/src/intl/parser-base.js +2 -2
  35. package/src/keyboard.js +4 -4
  36. package/src/l10n.js +5 -5
  37. package/src/module-loader.js +2 -2
  38. package/src/notify-property-change.js +28 -28
  39. package/src/observer.js +9 -9
  40. package/src/sanitize-helper.js +2 -2
  41. package/src/template-engine.js +14 -14
  42. package/src/template.js +2 -1
  43. package/src/util.js +30 -28
  44. package/src/validate-lic.d.ts +3 -0
  45. package/src/validate-lic.js +69 -37
  46. package/styles/bootstrap-dark.css +34 -4
  47. package/styles/bootstrap.css +34 -4
  48. package/styles/bootstrap4.css +34 -4
  49. package/styles/bootstrap5-dark.css +34 -4
  50. package/styles/bootstrap5.css +34 -4
  51. package/styles/definition/_bootstrap5-dark.scss +9 -0
  52. package/styles/definition/_bootstrap5.scss +9 -0
  53. package/styles/definition/_fluent-dark.scss +9 -0
  54. package/styles/definition/_fluent.scss +9 -0
  55. package/styles/definition/_material.scss +3 -0
  56. package/styles/definition/_tailwind-dark.scss +9 -0
  57. package/styles/definition/_tailwind.scss +9 -0
  58. package/styles/fabric-dark.css +38 -5
  59. package/styles/fabric.css +38 -5
  60. package/styles/fluent-dark.css +35 -5
  61. package/styles/fluent.css +35 -5
  62. package/styles/highcontrast-light.css +41 -5
  63. package/styles/highcontrast.css +41 -5
  64. package/styles/material-dark.css +34 -4
  65. package/styles/material.css +34 -4
  66. package/styles/offline-theme/material-dark.css +34 -4
  67. package/styles/offline-theme/material.css +34 -4
  68. package/styles/offline-theme/tailwind-dark.css +34 -4
  69. package/styles/offline-theme/tailwind.css +34 -4
  70. package/styles/tailwind-dark.css +34 -4
  71. package/styles/tailwind.css +34 -4
@@ -66,7 +66,7 @@ function getValue(nameSpace, obj) {
66
66
  var value = obj;
67
67
  var splits = nameSpace.replace(/\[/g, '.').replace(/\]/g, '').split('.');
68
68
  for (var i = 0; i < splits.length && !isUndefined(value); i++) {
69
- value = value[splits[i]];
69
+ value = value[splits[parseInt(i.toString(), 10)]];
70
70
  }
71
71
  return value;
72
72
  }
@@ -90,14 +90,14 @@ function setValue(nameSpace, value, obj) {
90
90
  var length = keys.length;
91
91
  var key;
92
92
  for (i = 0; i < length; i++) {
93
- key = keys[i];
93
+ key = keys[parseInt(i.toString(), 10)];
94
94
  if (i + 1 === length) {
95
- fromObj[key] = value === undefined ? {} : value;
95
+ fromObj["" + key] = value === undefined ? {} : value;
96
96
  }
97
- else if (isNullOrUndefined(fromObj[key])) {
98
- fromObj[key] = {};
97
+ else if (isNullOrUndefined(fromObj["" + key])) {
98
+ fromObj["" + key] = {};
99
99
  }
100
- fromObj = fromObj[key];
100
+ fromObj = fromObj["" + key];
101
101
  }
102
102
  return start;
103
103
  }
@@ -111,12 +111,13 @@ function setValue(nameSpace, value, obj) {
111
111
  */
112
112
  // eslint-disable-next-line
113
113
  function deleteObject(obj, key) {
114
- delete obj[key];
114
+ delete obj["" + key];
115
115
  }
116
116
  /**
117
117
  *@private
118
118
  */
119
- var containerObject = typeof window !== "undefined" ? window : {};
119
+ // eslint-disable-next-line
120
+ var containerObject = typeof window !== 'undefined' ? window : {};
120
121
  /**
121
122
  * Check weather the given argument is only object.
122
123
  *
@@ -158,12 +159,12 @@ function merge(source, destination) {
158
159
  var deepmerge = 'deepMerge';
159
160
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
160
161
  var key = keys_1[_i];
161
- if (!isNullOrUndefined(temrObj[deepmerge]) && (temrObj[deepmerge].indexOf(key) !== -1) &&
162
- (isObject(tempProp[key]) || Array.isArray(tempProp[key]))) {
163
- extend(temrObj[key], temrObj[key], tempProp[key], true);
162
+ if (!isNullOrUndefined(temrObj["" + deepmerge]) && (temrObj["" + deepmerge].indexOf(key) !== -1) &&
163
+ (isObject(tempProp["" + key]) || Array.isArray(tempProp["" + key]))) {
164
+ extend(temrObj["" + key], temrObj["" + key], tempProp["" + key], true);
164
165
  }
165
166
  else {
166
- temrObj[key] = tempProp[key];
167
+ temrObj["" + key] = tempProp["" + key];
167
168
  }
168
169
  }
169
170
  }
@@ -192,8 +193,8 @@ function extend(copied, first, second, deep) {
192
193
  // eslint-disable-next-line
193
194
  var obj1 = arguments_1[i];
194
195
  Object.keys(obj1).forEach(function (key) {
195
- var src = result[key];
196
- var copy = obj1[key];
196
+ var src = result["" + key];
197
+ var copy = obj1["" + key];
197
198
  var clone;
198
199
  var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length);
199
200
  // eslint-disable-next-line
@@ -206,17 +207,18 @@ function extend(copied, first, second, deep) {
206
207
  extend(clone, {}, copy, deep);
207
208
  }
208
209
  else {
209
- result[key] = extend(clone, {}, copy, deep);
210
+ result["" + key] = extend(clone, {}, copy, deep);
210
211
  }
211
212
  }
212
213
  else {
213
214
  /* istanbul ignore next */
214
215
  clone = isBlazor() ? src && Object.keys(copy).length : src ? src : [];
215
- result[key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length));
216
+ // eslint-disable-next-line
217
+ result["" + key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length));
216
218
  }
217
219
  }
218
220
  else {
219
- result[key] = copy;
221
+ result["" + key] = copy;
220
222
  }
221
223
  });
222
224
  };
@@ -292,7 +294,7 @@ function queryParams(data) {
292
294
  var keys = Object.keys(data);
293
295
  for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {
294
296
  var key = keys_2[_i];
295
- array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data[key]));
297
+ array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data["" + key]));
296
298
  }
297
299
  return array.join('&');
298
300
  }
@@ -362,7 +364,7 @@ function print(element, printWindow) {
362
364
  var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style'));
363
365
  if (blinks.length) {
364
366
  for (var l = 0, len = blinks.length; l < len; l++) {
365
- links.push(blinks[l]);
367
+ links.push(blinks[parseInt(l.toString(), 10)]);
366
368
  }
367
369
  }
368
370
  var reference = '';
@@ -371,7 +373,7 @@ function print(element, printWindow) {
371
373
  }
372
374
  div.appendChild(element.cloneNode(true));
373
375
  for (var i = 0, len = links.length; i < len; i++) {
374
- reference += links[i].outerHTML;
376
+ reference += links[parseInt(i.toString(), 10)].outerHTML;
375
377
  }
376
378
  printWindow.document.write('<!DOCTYPE html> <html><head>' + reference + '</head><body>' + div.innerHTML +
377
379
  '<script> (function() { window.ready = true; })(); </script>' + '</body></html>');
@@ -428,8 +430,8 @@ function isBlazor() {
428
430
  */
429
431
  function getElement(element) {
430
432
  var xPath = 'xPath';
431
- if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[xPath])) {
432
- return document.evaluate(element[xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
433
+ if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element["" + xPath])) {
434
+ return document.evaluate(element["" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
433
435
  }
434
436
  return element;
435
437
  }
@@ -445,8 +447,8 @@ function getElement(element) {
445
447
  function getInstance(element, component) {
446
448
  // eslint-disable-next-line
447
449
  var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;
448
- if (elem[instances]) {
449
- for (var _i = 0, _a = elem[instances]; _i < _a.length; _i++) {
450
+ if (elem["" + instances]) {
451
+ for (var _i = 0, _a = elem["" + instances]; _i < _a.length; _i++) {
450
452
  var inst = _a[_i];
451
453
  if (inst instanceof component) {
452
454
  return inst;
@@ -466,11 +468,11 @@ function getInstance(element, component) {
466
468
  function addInstance(element, instance) {
467
469
  // eslint-disable-next-line
468
470
  var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;
469
- if (elem[instances]) {
470
- elem[instances].push(instance);
471
+ if (elem["" + instances]) {
472
+ elem["" + instances].push(instance);
471
473
  }
472
474
  else {
473
- elem[instances] = [instance];
475
+ elem["" + instances] = [instance];
474
476
  }
475
477
  }
476
478
  /**
@@ -497,7 +499,7 @@ function uniqueID() {
497
499
  function combineArray(num) {
498
500
  var ret = '';
499
501
  for (var i = 0; i < 5; i++) {
500
- ret += (i ? ',' : '') + num[i];
502
+ ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)];
501
503
  }
502
504
  return ret;
503
505
  }
@@ -608,10 +610,10 @@ var ParserBase = /** @__PURE__ @class */ (function () {
608
610
  var ret = '';
609
611
  for (var i = 0; i < len; i++) {
610
612
  if (i !== len - 1) {
611
- ret += val[i] + '|';
613
+ ret += val[parseInt(i.toString(), 10)] + '|';
612
614
  }
613
615
  else {
614
- ret += val[i];
616
+ ret += val[parseInt(i.toString(), 10)];
615
617
  }
616
618
  }
617
619
  return ret;
@@ -1023,7 +1025,7 @@ var HijriParser;
1023
1025
  var tempDay = z - Math.floor(29.5001 * im - 29);
1024
1026
  var i = 0;
1025
1027
  for (; i < dateCorrection.length; i++) {
1026
- if (dateCorrection[i] > modifiedJulianDate) {
1028
+ if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {
1027
1029
  break;
1028
1030
  }
1029
1031
  }
@@ -1386,7 +1388,7 @@ var errorText = {
1386
1388
  'ms': 'minimumSignificantDigits',
1387
1389
  'ls': 'maximumSignificantDigits',
1388
1390
  'mf': 'minimumFractionDigits',
1389
- 'lf': 'maximumFractionDigits',
1391
+ 'lf': 'maximumFractionDigits'
1390
1392
  };
1391
1393
  var percentSign = 'percentSign';
1392
1394
  var minusSign = 'minusSign';
@@ -1420,9 +1422,9 @@ var NumberFormat = /** @__PURE__ @class */ (function () {
1420
1422
  dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : IntlBase.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol);
1421
1423
  /* eslint-disable @typescript-eslint/no-explicit-any */
1422
1424
  dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :
1423
- dOptions.numberMapper.numberSymbols[percentSign];
1425
+ dOptions.numberMapper.numberSymbols["" + percentSign];
1424
1426
  dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :
1425
- dOptions.numberMapper.numberSymbols[minusSign];
1427
+ dOptions.numberMapper.numberSymbols["" + minusSign];
1426
1428
  var symbols = dOptions.numberMapper.numberSymbols;
1427
1429
  if ((option.format) && !(IntlBase.formatRegex.test(option.format))) {
1428
1430
  cOptions = IntlBase.customFormat(option.format, dOptions, dependable.numericObject);
@@ -1774,7 +1776,7 @@ var DateParser = /** @__PURE__ @class */ (function () {
1774
1776
  var numMapper = isBlazor() ? dependable.parserObject.numbers :
1775
1777
  ParserBase.getNumberMapper(dependable.parserObject, ParserBase.getNumberingSystem(cldr));
1776
1778
  for (var i = 0; i < length_1; i++) {
1777
- var str = patternMatch[i];
1779
+ var str = patternMatch[parseInt(i.toString(), 10)];
1778
1780
  var len = str.length;
1779
1781
  var char = (str[0] === 'K') ? 'h' : str[0];
1780
1782
  var isNumber = void 0;
@@ -1904,7 +1906,7 @@ var DateParser = /** @__PURE__ @class */ (function () {
1904
1906
  break;
1905
1907
  }
1906
1908
  if (canUpdate) {
1907
- parseOptions.evalposition[charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };
1909
+ parseOptions.evalposition["" + charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };
1908
1910
  }
1909
1911
  if (i === length_1 - 1 && !isNullOrUndefined(regexString)) {
1910
1912
  parseOptions.parserRegex = new RegExp('^' + regexString + '$', 'i');
@@ -2028,7 +2030,7 @@ var DateParser = /** @__PURE__ @class */ (function () {
2028
2030
  var props = Object.keys(parseOptions.evalposition);
2029
2031
  for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {
2030
2032
  var prop = props_1[_i];
2031
- var curObject = parseOptions.evalposition[prop];
2033
+ var curObject = parseOptions.evalposition["" + prop];
2032
2034
  var matchString = matches[curObject.pos];
2033
2035
  if (curObject.isNumber) {
2034
2036
  // eslint-disable-next-line
@@ -2048,7 +2050,7 @@ var DateParser = /** @__PURE__ @class */ (function () {
2048
2050
  val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num);
2049
2051
  }
2050
2052
  if (!isNullOrUndefined(val)) {
2051
- retOptions[prop] = val;
2053
+ retOptions["" + prop] = val;
2052
2054
  }
2053
2055
  }
2054
2056
  else {
@@ -2287,17 +2289,17 @@ var Observer = /** @__PURE__ @class */ (function () {
2287
2289
  }
2288
2290
  var cntxt = context || this.context;
2289
2291
  if (this.notExist(property)) {
2290
- this.boundedEvents[property] = [{ handler: handler, context: cntxt }];
2292
+ this.boundedEvents["" + property] = [{ handler: handler, context: cntxt }];
2291
2293
  return;
2292
2294
  }
2293
2295
  if (!isNullOrUndefined(id)) {
2294
2296
  if (this.ranArray.indexOf(id) === -1) {
2295
2297
  this.ranArray.push(id);
2296
- this.boundedEvents[property].push({ handler: handler, context: cntxt, id: id });
2298
+ this.boundedEvents["" + property].push({ handler: handler, context: cntxt, id: id });
2297
2299
  }
2298
2300
  }
2299
- else if (!this.isHandlerPresent(this.boundedEvents[property], handler)) {
2300
- this.boundedEvents[property].push({ handler: handler, context: cntxt });
2301
+ else if (!this.isHandlerPresent(this.boundedEvents["" + property], handler)) {
2302
+ this.boundedEvents["" + property].push({ handler: handler, context: cntxt });
2301
2303
  }
2302
2304
  };
2303
2305
  /**
@@ -2316,7 +2318,7 @@ var Observer = /** @__PURE__ @class */ (function () {
2316
2318
  if (handler) {
2317
2319
  for (var i = 0; i < curObject.length; i++) {
2318
2320
  if (id) {
2319
- if (curObject[i].id === id) {
2321
+ if (curObject[parseInt(i.toString(), 10)].id === id) {
2320
2322
  curObject.splice(i, 1);
2321
2323
  var indexLocation = this.ranArray.indexOf(id);
2322
2324
  if (indexLocation !== -1) {
@@ -2325,14 +2327,14 @@ var Observer = /** @__PURE__ @class */ (function () {
2325
2327
  break;
2326
2328
  }
2327
2329
  }
2328
- else if (handler === curObject[i].handler) {
2330
+ else if (handler === curObject[parseInt(i.toString(), 10)].handler) {
2329
2331
  curObject.splice(i, 1);
2330
2332
  break;
2331
2333
  }
2332
2334
  }
2333
2335
  }
2334
2336
  else {
2335
- delete this.boundedEvents[property];
2337
+ delete this.boundedEvents["" + property];
2336
2338
  }
2337
2339
  };
2338
2340
  /**
@@ -2356,7 +2358,7 @@ var Observer = /** @__PURE__ @class */ (function () {
2356
2358
  }
2357
2359
  var blazor = 'Blazor';
2358
2360
  var curObject = getValue(property, this.boundedEvents).slice(0);
2359
- if (window[blazor]) {
2361
+ if (window["" + blazor]) {
2360
2362
  return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);
2361
2363
  }
2362
2364
  else {
@@ -2373,7 +2375,7 @@ var Observer = /** @__PURE__ @class */ (function () {
2373
2375
  var _this = this;
2374
2376
  var isTrigger = index === objs.length - 1;
2375
2377
  if (index < objs.length) {
2376
- var obj_1 = objs[index];
2378
+ var obj_1 = objs[parseInt(index.toString(), 10)];
2377
2379
  var promise = obj_1.handler.call(obj_1.context, argument);
2378
2380
  if (promise && typeof promise.then === 'function') {
2379
2381
  if (!successHandler) {
@@ -3679,7 +3681,7 @@ var IntlBase;
3679
3681
  function isCurrencyPercent(parts, actual, symbol) {
3680
3682
  var options = { nlead: parts[0], nend: parts[1] };
3681
3683
  for (var i = 0; i < 2; i++) {
3682
- var part = parts[i];
3684
+ var part = parts[parseInt(i.toString(), 10)];
3683
3685
  var loc = part.indexOf(actual);
3684
3686
  if ((loc !== -1) && ((loc < part.indexOf('\'')) || (loc > part.lastIndexOf('\'')))) {
3685
3687
  // eslint-disable-next-line
@@ -3898,7 +3900,7 @@ var IntlBase;
3898
3900
  integer = hash + integer;
3899
3901
  pattern = '';
3900
3902
  for (var x = integer.length - 1; x > 0; x = x - 3) {
3901
- pattern = ',' + integer[x - 2] + integer[x - 1] + integer[x] + pattern;
3903
+ pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern;
3902
3904
  }
3903
3905
  pattern = pattern.slice(1);
3904
3906
  return temp[1] ? (pattern + '.' + temp[1]) : pattern;
@@ -3919,9 +3921,9 @@ var IntlBase;
3919
3921
  }
3920
3922
  iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);
3921
3923
  if (mapper) {
3922
- firstDay = mapper[iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;
3924
+ firstDay = mapper["" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;
3923
3925
  }
3924
- return firstDayMapper[firstDay];
3926
+ return firstDayMapper["" + firstDay];
3925
3927
  }
3926
3928
  IntlBase.getWeekData = getWeekData;
3927
3929
  /**
@@ -4174,7 +4176,7 @@ var Browser = /** @__PURE__ @class */ (function () {
4174
4176
  var clientInfo = [];
4175
4177
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
4176
4178
  var key = keys_1[_i];
4177
- clientInfo = Browser.userAgent.match(REGX_BROWSER[key]);
4179
+ clientInfo = Browser.userAgent.match(REGX_BROWSER["" + key]);
4178
4180
  if (clientInfo) {
4179
4181
  browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());
4180
4182
  browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);
@@ -4216,9 +4218,9 @@ var Browser = /** @__PURE__ @class */ (function () {
4216
4218
  isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'
4217
4219
  }
4218
4220
  };
4219
- return (Browser.isPointer ? events[event].isPointer :
4220
- (Browser.isTouch ? events[event].isTouch + (!Browser.isDevice ? ' ' + events[event].isDevice : '')
4221
- : events[event].isDevice));
4221
+ return (Browser.isPointer ? events["" + event].isPointer :
4222
+ (Browser.isTouch ? events["" + event].isTouch + (!Browser.isDevice ? ' ' + events["" + event].isDevice : '')
4223
+ : events["" + event].isDevice));
4222
4224
  };
4223
4225
  /**
4224
4226
  * To get the Touch start event from browser
@@ -4267,10 +4269,10 @@ var Browser = /** @__PURE__ @class */ (function () {
4267
4269
  browserDetails['isTouch'] = true;
4268
4270
  browserDetails['isPointer'] = true;
4269
4271
  }
4270
- if ('undefined' === typeof browserDetails[key]) {
4271
- return browserDetails[key] = regX.test(Browser.userAgent);
4272
+ if ('undefined' === typeof browserDetails["" + key]) {
4273
+ return browserDetails["" + key] = regX.test(Browser.userAgent);
4272
4274
  }
4273
- return browserDetails[key];
4275
+ return browserDetails["" + key];
4274
4276
  };
4275
4277
  Object.defineProperty(Browser, "userAgent", {
4276
4278
  get: function () {
@@ -4566,15 +4568,15 @@ var EventHandler = /** @__PURE__ @class */ (function () {
4566
4568
  var event = eventName.split(' ');
4567
4569
  for (var i = 0; i < event.length; i++) {
4568
4570
  eventData.push({
4569
- name: event[i],
4571
+ name: event[parseInt(i.toString(), 10)],
4570
4572
  listener: listener,
4571
4573
  debounce: debounceListener
4572
4574
  });
4573
4575
  if (Browser.isIE) {
4574
- element.addEventListener(event[i], debounceListener);
4576
+ element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener);
4575
4577
  }
4576
4578
  else {
4577
- element.addEventListener(event[i], debounceListener, { passive: false });
4579
+ element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false });
4578
4580
  }
4579
4581
  }
4580
4582
  return debounceListener;
@@ -4595,7 +4597,7 @@ var EventHandler = /** @__PURE__ @class */ (function () {
4595
4597
  var debounceListener;
4596
4598
  if (eventData && eventData.length !== 0) {
4597
4599
  eventData.some(function (x, i) {
4598
- return x.name === event[j] && x.listener === listener ?
4600
+ return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ?
4599
4601
  (index = i, debounceListener = x.debounce, true) : false;
4600
4602
  });
4601
4603
  }
@@ -4603,7 +4605,7 @@ var EventHandler = /** @__PURE__ @class */ (function () {
4603
4605
  eventData.splice(index, 1);
4604
4606
  }
4605
4607
  if (debounceListener) {
4606
- element.removeEventListener(event[j], debounceListener);
4608
+ element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener);
4607
4609
  }
4608
4610
  };
4609
4611
  for (var j = 0; j < event.length; j++) {
@@ -4624,7 +4626,7 @@ var EventHandler = /** @__PURE__ @class */ (function () {
4624
4626
  // eslint-disable-next-line
4625
4627
  copyData = extend([], copyData, eventData);
4626
4628
  for (var i = 0; i < copyData.length; i++) {
4627
- element.removeEventListener(copyData[i].name, copyData[i].debounce);
4629
+ element.removeEventListener(copyData[parseInt(i.toString(), 10)].name, copyData[parseInt(i.toString(), 10)].debounce);
4628
4630
  eventData.shift();
4629
4631
  }
4630
4632
  };
@@ -4882,10 +4884,10 @@ function attributes(element, attributes) {
4882
4884
  if (key === 'tabindex') {
4883
4885
  iKey = 'tabIndex';
4884
4886
  }
4885
- ele.attributes[iKey] = attributes[key];
4887
+ ele.attributes["" + iKey] = attributes["" + key];
4886
4888
  }
4887
4889
  else {
4888
- ele.setAttribute(key, attributes[key]);
4890
+ ele.setAttribute(key, attributes["" + key]);
4889
4891
  }
4890
4892
  }
4891
4893
  return ele;
@@ -4933,20 +4935,20 @@ function querySelectId(selector) {
4933
4935
  if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {
4934
4936
  var idList = selector.split(',');
4935
4937
  for (var i = 0; i < idList.length; i++) {
4936
- var list = idList[i].split(' ');
4938
+ var list = idList[parseInt(i.toString(), 10)].split(' ');
4937
4939
  for (var j = 0; j < list.length; j++) {
4938
- if (list[j].indexOf('#') > -1) {
4939
- if (!list[j].match(/\[.*\]/)) {
4940
- var splitId = list[j].split('#');
4940
+ if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) {
4941
+ if (!list[parseInt(j.toString(), 10)].match(/\[.*\]/)) {
4942
+ var splitId = list[parseInt(j.toString(), 10)].split('#');
4941
4943
  if (splitId[1].match(/^\d/) || splitId[1].match(charRegex)) {
4942
- var setId = list[j].split('.');
4944
+ var setId = list[parseInt(j.toString(), 10)].split('.');
4943
4945
  setId[0] = setId[0].replace(/#/, '[id=\'') + '\']';
4944
- list[j] = setId.join('.');
4946
+ list[parseInt(j.toString(), 10)] = setId.join('.');
4945
4947
  }
4946
4948
  }
4947
4949
  }
4948
4950
  }
4949
- idList[i] = list.join(' ');
4951
+ idList[parseInt(i.toString(), 10)] = list.join(' ');
4950
4952
  }
4951
4953
  return idList.join(',');
4952
4954
  }
@@ -5014,7 +5016,7 @@ function getAttributeOrDefault(element, property, value) {
5014
5016
  element.setAttribute(property, value.toString());
5015
5017
  }
5016
5018
  else {
5017
- element.attributes[property] = value;
5019
+ element.attributes["" + property] = value;
5018
5020
  }
5019
5021
  attrVal = value;
5020
5022
  }
@@ -5200,8 +5202,8 @@ var Base = /** @__PURE__ @class */ (function () {
5200
5202
  var keys = Object.keys(obj);
5201
5203
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
5202
5204
  var key = keys_1[_i];
5203
- if (parent[key] instanceof Array) {
5204
- for (var _a = 0, _b = parent[key]; _a < _b.length; _a++) {
5205
+ if (parent["" + key] instanceof Array) {
5206
+ for (var _a = 0, _b = parent["" + key]; _a < _b.length; _a++) {
5205
5207
  var obj_1 = _b[_a];
5206
5208
  if (obj_1.dataBind !== undefined) {
5207
5209
  obj_1.dataBind();
@@ -5209,7 +5211,7 @@ var Base = /** @__PURE__ @class */ (function () {
5209
5211
  }
5210
5212
  }
5211
5213
  else {
5212
- parent[key].dataBind();
5214
+ parent["" + key].dataBind();
5213
5215
  }
5214
5216
  }
5215
5217
  };
@@ -5244,8 +5246,8 @@ var Base = /** @__PURE__ @class */ (function () {
5244
5246
  newChanges = newChanges ? newChanges : {};
5245
5247
  extend(this.bulkChanges, {}, newChanges, true);
5246
5248
  var sfBlazor = 'sfBlazor';
5247
- if (this.allowServerDataBinding && window[sfBlazor].updateModel) {
5248
- window[sfBlazor].updateModel(this);
5249
+ if (this.allowServerDataBinding && window["" + sfBlazor].updateModel) {
5250
+ window["" + sfBlazor].updateModel(this);
5249
5251
  this.bulkChanges = {};
5250
5252
  }
5251
5253
  };
@@ -5254,14 +5256,14 @@ var Base = /** @__PURE__ @class */ (function () {
5254
5256
  if (isBlazor()) {
5255
5257
  // tslint:disable-next-line:no-any
5256
5258
  var newChanges = {};
5257
- newChanges[key] = newValue;
5259
+ newChanges["" + key] = newValue;
5258
5260
  this.serverDataBind(newChanges);
5259
5261
  }
5260
5262
  if (this.isProtectedOnChange) {
5261
5263
  return;
5262
5264
  }
5263
- this.oldProperties[key] = oldValue;
5264
- this.changedProperties[key] = newValue;
5265
+ this.oldProperties["" + key] = oldValue;
5266
+ this.changedProperties["" + key] = newValue;
5265
5267
  this.finalUpdate();
5266
5268
  this.finalUpdate = setImmediate(this.dataBind.bind(this));
5267
5269
  };
@@ -5307,7 +5309,7 @@ var Base = /** @__PURE__ @class */ (function () {
5307
5309
  var handler = getValue(eventName, this);
5308
5310
  if (handler) {
5309
5311
  var blazor = 'Blazor';
5310
- if (window[blazor]) {
5312
+ if (window["" + blazor]) {
5311
5313
  var promise = handler.call(this, eventProp);
5312
5314
  if (promise && typeof promise.then === 'function') {
5313
5315
  if (!successHandler) {
@@ -5397,7 +5399,7 @@ function getComponent(elem, comp) {
5397
5399
  var i;
5398
5400
  var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;
5399
5401
  for (i = 0; i < ele.ej2_instances.length; i++) {
5400
- instance = ele.ej2_instances[i];
5402
+ instance = ele.ej2_instances[parseInt(i.toString(), 10)];
5401
5403
  if (typeof comp === 'string') {
5402
5404
  var compName = instance.getModuleName();
5403
5405
  if (comp === compName) {
@@ -5425,9 +5427,9 @@ function removeChildInstance(element) {
5425
5427
  // tslint:disable-next-line:no-any
5426
5428
  var childEle = [].slice.call(element.getElementsByClassName('e-control'));
5427
5429
  for (var i = 0; i < childEle.length; i++) {
5428
- var compName = childEle[i].classList[1].split('e-')[1];
5430
+ var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];
5429
5431
  // tslint:disable-next-line:no-any
5430
- var compInstance = getComponent(childEle[i], compName);
5432
+ var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);
5431
5433
  if (!isUndefined(compInstance)) {
5432
5434
  compInstance.destroy();
5433
5435
  }
@@ -5447,9 +5449,9 @@ function removeChildInstance(element) {
5447
5449
  function getObject(instance, curKey, defaultValue, type) {
5448
5450
  // eslint-disable-next-line
5449
5451
  if (!instance.properties.hasOwnProperty(curKey) || !(instance.properties[curKey] instanceof type)) {
5450
- instance.properties[curKey] = createInstance(type, [instance, curKey, defaultValue]);
5452
+ instance.properties["" + curKey] = createInstance(type, [instance, curKey, defaultValue]);
5451
5453
  }
5452
- return instance.properties[curKey];
5454
+ return instance.properties["" + curKey];
5453
5455
  }
5454
5456
  /**
5455
5457
  * Returns object array
@@ -5469,15 +5471,15 @@ function getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactor
5469
5471
  for (var i = 0; i < len; i++) {
5470
5472
  var curType = type;
5471
5473
  if (isFactory) {
5472
- curType = type(defaultValue[i], instance);
5474
+ curType = type(defaultValue[parseInt(i.toString(), 10)], instance);
5473
5475
  }
5474
5476
  if (isSetter) {
5475
5477
  var inst = createInstance(curType, [instance, curKey, {}, true]);
5476
- inst.setProperties(defaultValue[i], true);
5478
+ inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true);
5477
5479
  result.push(inst);
5478
5480
  }
5479
5481
  else {
5480
- result.push(createInstance(curType, [instance, curKey, defaultValue[i], false]));
5482
+ result.push(createInstance(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false]));
5481
5483
  }
5482
5484
  }
5483
5485
  return result;
@@ -5493,9 +5495,9 @@ function propertyGetter(defaultValue, curKey) {
5493
5495
  return function () {
5494
5496
  // eslint-disable-next-line
5495
5497
  if (!this.properties.hasOwnProperty(curKey)) {
5496
- this.properties[curKey] = defaultValue;
5498
+ this.properties["" + curKey] = defaultValue;
5497
5499
  }
5498
- return this.properties[curKey];
5500
+ return this.properties["" + curKey];
5499
5501
  };
5500
5502
  }
5501
5503
  /**
@@ -5507,11 +5509,11 @@ function propertyGetter(defaultValue, curKey) {
5507
5509
  */
5508
5510
  function propertySetter(defaultValue, curKey) {
5509
5511
  return function (newValue) {
5510
- if (this.properties[curKey] !== newValue) {
5512
+ if (this.properties["" + curKey] !== newValue) {
5511
5513
  // eslint-disable-next-line
5512
5514
  var oldVal = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;
5513
5515
  this.saveChanges(curKey, newValue, oldVal);
5514
- this.properties[curKey] = newValue;
5516
+ this.properties["" + curKey] = newValue;
5515
5517
  }
5516
5518
  };
5517
5519
  }
@@ -5555,7 +5557,7 @@ function complexFactoryGetter(defaultValue, curKey, type) {
5555
5557
  var curType = type({});
5556
5558
  // eslint-disable-next-line
5557
5559
  if (this.properties.hasOwnProperty(curKey)) {
5558
- return this.properties[curKey];
5560
+ return this.properties["" + curKey];
5559
5561
  }
5560
5562
  else {
5561
5563
  return getObject(this, curKey, defaultValue, curType);
@@ -5588,7 +5590,7 @@ function complexArrayGetter(defaultValue, curKey, type) {
5588
5590
  // eslint-disable-next-line
5589
5591
  if (!this.properties.hasOwnProperty(curKey)) {
5590
5592
  var defCollection = getObjectArray(this, curKey, defaultValue, type, false);
5591
- this.properties[curKey] = defCollection;
5593
+ this.properties["" + curKey] = defCollection;
5592
5594
  }
5593
5595
  var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)
5594
5596
  || this.ignoreCollectionWatch);
@@ -5596,17 +5598,17 @@ function complexArrayGetter(defaultValue, curKey, type) {
5596
5598
  if (!this.properties[curKey].hasOwnProperty('push') && !ignore) {
5597
5599
  ['push', 'pop'].forEach(function (extendFunc) {
5598
5600
  var descriptor = {
5599
- value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[curKey]).bind(_this),
5601
+ value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties["" + curKey]).bind(_this),
5600
5602
  configurable: true
5601
5603
  };
5602
- Object.defineProperty(_this.properties[curKey], extendFunc, descriptor);
5604
+ Object.defineProperty(_this.properties["" + curKey], extendFunc, descriptor);
5603
5605
  });
5604
5606
  }
5605
5607
  // eslint-disable-next-line
5606
5608
  if (!this.properties[curKey].hasOwnProperty('isComplexArray')) {
5607
- Object.defineProperty(this.properties[curKey], 'isComplexArray', { value: true });
5609
+ Object.defineProperty(this.properties["" + curKey], 'isComplexArray', { value: true });
5608
5610
  }
5609
- return this.properties[curKey];
5611
+ return this.properties["" + curKey];
5610
5612
  };
5611
5613
  }
5612
5614
  /**
@@ -5623,7 +5625,7 @@ function complexArraySetter(defaultValue, curKey, type) {
5623
5625
  var newValCollection = getObjectArray(this, curKey, newValue, type, true);
5624
5626
  this.isComplexArraySetter = false;
5625
5627
  this.saveChanges(curKey, newValCollection, oldValueCollection);
5626
- this.properties[curKey] = newValCollection;
5628
+ this.properties["" + curKey] = newValCollection;
5627
5629
  };
5628
5630
  }
5629
5631
  /**
@@ -5639,7 +5641,7 @@ function complexArrayFactorySetter(defaultValue, curKey, type) {
5639
5641
  var oldValueCollection = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;
5640
5642
  var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);
5641
5643
  this.saveChanges(curKey, newValCollection, oldValueCollection);
5642
- this.properties[curKey] = newValCollection;
5644
+ this.properties["" + curKey] = newValCollection;
5643
5645
  };
5644
5646
  }
5645
5647
  /**
@@ -5655,9 +5657,9 @@ function complexArrayFactoryGetter(defaultValue, curKey, type) {
5655
5657
  // eslint-disable-next-line
5656
5658
  if (!this.properties.hasOwnProperty(curKey)) {
5657
5659
  var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);
5658
- this.properties[curKey] = defCollection;
5660
+ this.properties["" + curKey] = defCollection;
5659
5661
  }
5660
- return this.properties[curKey];
5662
+ return this.properties["" + curKey];
5661
5663
  };
5662
5664
  }
5663
5665
  /**
@@ -5679,13 +5681,13 @@ function complexArrayDefinedCallback(dFunc, curKey, type, prop) {
5679
5681
  switch (dFunc) {
5680
5682
  case 'push':
5681
5683
  for (var i = 0; i < newValue.length; i++) {
5682
- Array.prototype[dFunc].apply(prop, [newValue[i]]);
5683
- var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[i], !this.controlParent, dFunc);
5684
- this.serverDataBind(model_1, newValue[i], false, dFunc);
5684
+ Array.prototype["" + dFunc].apply(prop, [newValue[parseInt(i.toString(), 10)]]);
5685
+ var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[parseInt(i.toString(), 10)], !this.controlParent, dFunc);
5686
+ this.serverDataBind(model_1, newValue[parseInt(i.toString(), 10)], false, dFunc);
5685
5687
  }
5686
5688
  break;
5687
5689
  case 'pop':
5688
- Array.prototype[dFunc].apply(prop);
5690
+ Array.prototype["" + dFunc].apply(prop);
5689
5691
  // eslint-disable-next-line
5690
5692
  var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);
5691
5693
  this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);
@@ -5706,10 +5708,10 @@ function getArrayModel(keyString, value, isControlParent, arrayFunction) {
5706
5708
  var modelObject = keyString;
5707
5709
  if (isControlParent) {
5708
5710
  modelObject = {};
5709
- modelObject[keyString] = value;
5711
+ modelObject["" + keyString] = value;
5710
5712
  if (value && typeof value === 'object') {
5711
5713
  var action = 'ejsAction';
5712
- modelObject[keyString][action] = arrayFunction;
5714
+ modelObject["" + keyString]["" + action] = arrayFunction;
5713
5715
  }
5714
5716
  }
5715
5717
  return modelObject;
@@ -5850,14 +5852,14 @@ function Event$1() {
5850
5852
  return function (target, key) {
5851
5853
  var eventDescriptor = {
5852
5854
  set: function (newValue) {
5853
- var oldValue = this.properties[key];
5855
+ var oldValue = this.properties["" + key];
5854
5856
  if (oldValue !== newValue) {
5855
5857
  var finalContext = getParentContext(this, key);
5856
5858
  if (isUndefined(oldValue) === false) {
5857
5859
  finalContext.context.removeEventListener(finalContext.prefix, oldValue);
5858
5860
  }
5859
5861
  finalContext.context.addEventListener(finalContext.prefix, newValue);
5860
- this.properties[key] = newValue;
5862
+ this.properties["" + key] = newValue;
5861
5863
  }
5862
5864
  },
5863
5865
  get: propertyGetter(undefined, key),
@@ -5973,7 +5975,7 @@ function getBuilderProperties(component) {
5973
5975
  };
5974
5976
  }
5975
5977
  };
5976
- for (var _b = 0, _c = component.prototype.propList[key]; _b < _c.length; _b++) {
5978
+ for (var _b = 0, _c = component.prototype.propList["" + key]; _b < _c.length; _b++) {
5977
5979
  var prop = _c[_b];
5978
5980
  _loop_1(prop);
5979
5981
  }
@@ -6306,7 +6308,9 @@ var Animation = /** @__PURE__ @class */ (function (_super) {
6306
6308
  function rippleEffect(element, rippleOptions, done) {
6307
6309
  var rippleModel = getRippleModel(rippleOptions);
6308
6310
  if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {
6309
- return (function () { });
6311
+ return (function () {
6312
+ // do nothing.
6313
+ });
6310
6314
  }
6311
6315
  element.setAttribute('data-ripple', 'true');
6312
6316
  EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });
@@ -6450,11 +6454,15 @@ function enableRipple(isRipple) {
6450
6454
  }
6451
6455
  /**
6452
6456
  * Defines the Modes of Global animation.
6457
+ *
6453
6458
  * @private
6454
6459
  */
6455
6460
  var animationMode = '';
6456
6461
  /**
6457
6462
  * Method for set the Global animation modes for Syncfusion Blazor components.
6463
+ *
6464
+ * @param {string} value - Specifies the animation mode.
6465
+ * @returns {void}
6458
6466
  */
6459
6467
  function setGlobalAnimation(value) {
6460
6468
  animationMode = value;
@@ -6486,11 +6494,11 @@ var ModuleLoader = /** @__PURE__ @class */ (function () {
6486
6494
  this.clearUnusedModule(requiredModules);
6487
6495
  }
6488
6496
  for (var i = 0; i < reqLength; i++) {
6489
- var modl = requiredModules[i];
6497
+ var modl = requiredModules[parseInt(i.toString(), 10)];
6490
6498
  for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {
6491
6499
  var module = moduleList_1[_i];
6492
6500
  var modName = modl.member;
6493
- if (module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {
6501
+ if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {
6494
6502
  var moduleObject = createInstance(module, modl.args);
6495
6503
  var memberName = this.getMemberName(modName);
6496
6504
  if (modl.isProperty) {
@@ -6598,10 +6606,10 @@ var ChildProperty = /** @__PURE__ @class */ (function () {
6598
6606
  */
6599
6607
  ChildProperty.prototype.updateChange = function (val, propName) {
6600
6608
  if (val === true) {
6601
- this.parentObj.childChangedProperties[propName] = val;
6609
+ this.parentObj.childChangedProperties["" + propName] = val;
6602
6610
  }
6603
6611
  else {
6604
- delete this.parentObj.childChangedProperties[propName];
6612
+ delete this.parentObj.childChangedProperties["" + propName];
6605
6613
  }
6606
6614
  if (this.parentObj.updateChange) {
6607
6615
  this.parentObj.updateChange(val, this.parentObj.propName);
@@ -6689,8 +6697,8 @@ var ChildProperty = /** @__PURE__ @class */ (function () {
6689
6697
  if (!restrictServerDataBind) {
6690
6698
  this.serverDataBind(key, newValue, true);
6691
6699
  }
6692
- this.oldProperties[key] = oldValue;
6693
- this.changedProperties[key] = newValue;
6700
+ this.oldProperties["" + key] = oldValue;
6701
+ this.changedProperties["" + key] = newValue;
6694
6702
  this.updateChange(true, this.propName);
6695
6703
  this.finalUpdate();
6696
6704
  this.updateTimeOut();
@@ -6706,19 +6714,19 @@ var ChildProperty = /** @__PURE__ @class */ (function () {
6706
6714
  parent_1 = newChanges;
6707
6715
  for (var i = 0; i < complexKeys.length; i++) {
6708
6716
  var isFinal = i === complexKeys.length - 1;
6709
- parent_1[complexKeys[i]] = isFinal ? value : {};
6710
- parent_1 = isFinal ? parent_1 : parent_1[complexKeys[i]];
6717
+ parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {};
6718
+ parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]];
6711
6719
  }
6712
6720
  }
6713
6721
  else {
6714
- newChanges[parentKey] = {};
6715
- parent_1 = newChanges[parentKey];
6716
- newChanges[parentKey][key] = value;
6722
+ newChanges["" + parentKey] = {};
6723
+ parent_1 = newChanges["" + parentKey];
6724
+ newChanges["" + parentKey]["" + key] = value;
6717
6725
  }
6718
6726
  /* istanbul ignore next */
6719
6727
  if (this.isParentArray) {
6720
6728
  var actionProperty = 'ejsAction';
6721
- parent_1[actionProperty] = action ? action : 'none';
6729
+ parent_1["" + actionProperty] = action ? action : 'none';
6722
6730
  }
6723
6731
  this.controlParent.serverDataBind(newChanges);
6724
6732
  }
@@ -6743,43 +6751,48 @@ var ChildProperty = /** @__PURE__ @class */ (function () {
6743
6751
  return ChildProperty;
6744
6752
  }());
6745
6753
 
6754
+ var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];
6746
6755
  var bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,
6747
6756
  111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,
6748
6757
  105, 100, 97, 116, 101, 100];
6758
+ var accountURL;
6749
6759
  /**
6750
6760
  * License validation module
6761
+ *
6751
6762
  * @private
6752
6763
  */
6753
6764
  var LicenseValidator = /** @__PURE__ @class */ (function () {
6754
6765
  function LicenseValidator(key) {
6755
6766
  this.isValidated = false;
6756
- this.version = '20.3';
6767
+ this.isLicensed = true;
6768
+ this.version = '20.4';
6757
6769
  this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats/i;
6758
6770
  this.errors = {
6759
- noLicense: 'This application was built using a trial version of Syncfusion Essential Studio.' +
6760
- ' Please include a valid license to permanently remove this license validation message.' +
6761
- ' You can also obtain a free 30 day evaluation license to temporarily remove this message ' +
6762
- 'during the evaluation period. Please refer to this <a class="e-license"' +
6763
- 'href="https://help.syncfusion.com/common/essential-studio/licensing">help topic</a> for more information.',
6764
- trailExpired: 'Your Syncfusion trial license has expired. Please refer to this ' +
6765
- '<a class="e-license"' +
6766
- 'href="https://help.syncfusion.com/common/essential-studio/licensing/licensing-errors#trial-expired">help topic</a> for more information.',
6767
- versionMismatched: 'The included Syncfusion license (v##LicenseVersion) is invalid for version ' +
6768
- '##Requireversion. Please refer to this <a class="e-license" ' +
6769
- 'href="https://help.syncfusion.com/es/licensing/version-mismatch/">help topic</a> for more information.',
6770
- platformMismatched: 'The included Syncfusion license is invalid (Platform mismatch). Please refer' +
6771
- ' to this <a class="e-license" ' +
6772
- 'href="https://help.syncfusion.com/common/essential-studio/licensing/licensing-errors#platform-mismatch">help topic</a> for more information.',
6773
- invalidKey: 'The included Syncfusion license is invalid. Please refer to this ' +
6774
- '<a class="e-license" ' +
6775
- 'href="https://help.syncfusion.com/common/essential-studio/licensing/licensing-errors#invalid-key">help topic</a> for more information.'
6771
+ noLicense: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +
6772
+ ' You should include the valid license key to remove the license validation message permanently.</span>',
6773
+ trailExpired: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +
6774
+ ' You should include the valid license key to remove the license validation message permanently.</span>',
6775
+ versionMismatched: '<span>The included Syncfusion license key is invalid.</span>',
6776
+ platformMismatched: '<span>The included Syncfusion license key is invalid.</span>',
6777
+ invalidKey: '<span>The included Syncfusion license key is invalid.</span>'
6776
6778
  };
6777
6779
  /**
6778
6780
  * To manage licensing operation.
6779
6781
  */
6780
6782
  this.manager = (function () {
6781
6783
  var licKey = null;
6784
+ /**
6785
+ * Sets the license key.
6786
+ *
6787
+ * @param {string} key - Specifies the license key.
6788
+ * @returns {void}
6789
+ */
6782
6790
  function set(key) { licKey = key; }
6791
+ /**
6792
+ * Gets the license key.
6793
+ *
6794
+ * @returns {string} -Gets the license key.
6795
+ */
6783
6796
  function get() { return licKey; }
6784
6797
  return {
6785
6798
  setKey: set,
@@ -6791,6 +6804,11 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6791
6804
  */
6792
6805
  this.npxManager = (function () {
6793
6806
  var npxLicKey = 'npxKeyReplace';
6807
+ /**
6808
+ * Gets the license key.
6809
+ *
6810
+ * @returns {string} - Gets the license key.
6811
+ */
6794
6812
  function get() { return npxLicKey; }
6795
6813
  return {
6796
6814
  getKey: get
@@ -6802,8 +6820,13 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6802
6820
  * To validate the provided license key.
6803
6821
  */
6804
6822
  LicenseValidator.prototype.validate = function () {
6823
+ var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,
6824
+ 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];
6825
+ var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,
6826
+ 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];
6805
6827
  if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {
6806
6828
  var validateMsg = void 0;
6829
+ var validateURL = void 0;
6807
6830
  if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {
6808
6831
  var result = this.getInfoFromKey();
6809
6832
  if (result && result.length) {
@@ -6834,30 +6857,28 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6834
6857
  }
6835
6858
  }
6836
6859
  else {
6837
- validateMsg = this.errors.noLicense;
6860
+ var licenseContent = getValue(convertToChar(contentKey), containerObject);
6861
+ validateURL = getValue(convertToChar(URLKey), containerObject);
6862
+ if (licenseContent && licenseContent !== '') {
6863
+ validateMsg = licenseContent;
6864
+ }
6865
+ else {
6866
+ validateMsg = this.errors.noLicense;
6867
+ }
6838
6868
  }
6839
6869
  if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {
6870
+ accountURL = (validateURL && validateURL !== '') ? validateURL : "https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjAuNA==";
6840
6871
  var errorDiv = createElement('div', {
6841
- innerHTML: validateMsg +
6842
- '<span id="license-banner-event" class="e-license-banner" >' +
6843
- '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20">' +
6844
- '<line x1="5" y1="5" x2="15" y2="15" stroke="yellow" stroke-width="2.5" ' +
6845
- 'stroke-miterlimit="10" stroke-linecap="round"></line><line x1="15" y1="5" ' +
6846
- 'x2="5" y2="15" stroke="yellow" stroke-width="2.5" stroke-linecap="round" ' +
6847
- 'stroke-miterlimit="10"></line></svg></span>',
6848
- styles: 'position:fixed;top:0;left:0;right:0;font-family:"Segoe UI";font-size:16px;' +
6849
- 'background:repeating-linear-gradient(45deg,#d70f0f,#d70f0f 10px,#e12121 10px,#e12121 17px);' +
6850
- 'color:#ffffff;z-index:999999999;text-align:center;padding:10px 50px 10px 25px;'
6872
+ innerHTML: "<img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE5OV80KSI+CjxwYXRoIGQ9Ik0xMiAyMUMxNi45NzA2IDIxIDIxIDE2Ljk3MDYgMjEgMTJDMjEgNy4wMjk0NCAxNi45NzA2IDMgMTIgM0M3LjAyOTQ0IDMgMyA3LjAyOTQ0IDMgMTJDMyAxNi45NzA2IDcuMDI5NDQgMjEgMTIgMjFaIiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBmaWxsPSIjNjE2MDYzIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS44MTI1IDlDMTIuNDMzOCA5IDEyLjkzNzUgOC40OTYzMiAxMi45Mzc1IDcuODc1QzEyLjkzNzUgNy4yNTM2OCAxMi40MzM4IDYuNzUgMTEuODEyNSA2Ljc1QzExLjE5MTIgNi43NSAxMC42ODc1IDcuMjUzNjggMTAuNjg3NSA3Ljg3NUMxMC42ODc1IDguNDk2MzIgMTEuMTkxMiA5IDExLjgxMjUgOVoiIGZpbGw9IiM3MzczNzMiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTlfNCI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K' style=\"top: 6px;\n position: absolute;\n left: 16px;\n width: 24px;\n height: 24px;\"/>" + validateMsg + ' ' + '<a style="text-decoration: none;color: #0D6EFD;font-weight: 500;" href=' + accountURL + '>Claim your free account</a>'
6851
6873
  });
6852
- errorDiv.setAttribute('id', 'js-licensing');
6874
+ errorDiv.setAttribute('style', "position: fixed;\n top: 10px;\n left: 10px;\n right: 10px;\n font-size: 14px;\n background: #EEF2FF;\n color: #222222;\n z-index: 999999999;\n text-align: left;\n border: 1px solid #EEEEEE;\n padding: 10px 11px 10px 50px;\n border-radius: 8px;\n font-family: Helvetica Neue, Helvetica, Arial;");
6853
6875
  document.body.appendChild(errorDiv);
6854
- document.getElementById('license-banner-event').addEventListener('click', function () {
6855
- document.getElementById('js-licensing').remove();
6856
- });
6876
+ this.isLicensed = false;
6857
6877
  }
6858
6878
  this.isValidated = true;
6859
6879
  setValue(convertToChar(bypassKey), this.isValidated, containerObject);
6860
6880
  }
6881
+ return this.isLicensed;
6861
6882
  };
6862
6883
  LicenseValidator.prototype.getDecryptedData = function (key) {
6863
6884
  try {
@@ -6869,6 +6890,8 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6869
6890
  };
6870
6891
  /**
6871
6892
  * Get license information from key.
6893
+ *
6894
+ * @returns {IValidator} - Get license information from key.
6872
6895
  */
6873
6896
  LicenseValidator.prototype.getInfoFromKey = function () {
6874
6897
  try {
@@ -6902,17 +6925,17 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6902
6925
  k = 0;
6903
6926
  }
6904
6927
  var c = decodeStr.charCodeAt(i);
6905
- buffr += String.fromCharCode(c ^ (pkey[k] >> 16));
6928
+ buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));
6906
6929
  }
6907
6930
  }
6908
6931
  else {
6909
6932
  var charKey = decodeStr[decodeStr.length - 1];
6910
6933
  var decryptedKey = [];
6911
6934
  for (var i = 0; i < decodeStr.length; i++) {
6912
- decryptedKey[i] = decodeStr[i].charCodeAt(0) - charKey.charCodeAt(0);
6935
+ decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0) - charKey.charCodeAt(0);
6913
6936
  }
6914
6937
  for (var i = 0; i < decryptedKey.length; i++) {
6915
- buffr += String.fromCharCode(decryptedKey[i]);
6938
+ buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);
6916
6939
  }
6917
6940
  }
6918
6941
  if (this.platform.test(buffr)) {
@@ -6943,6 +6966,12 @@ var LicenseValidator = /** @__PURE__ @class */ (function () {
6943
6966
  return LicenseValidator;
6944
6967
  }());
6945
6968
  var licenseValidator = new LicenseValidator();
6969
+ /**
6970
+ * Converts the given number to characters.
6971
+ *
6972
+ * @param {number} cArr - Specifies the license key as number.
6973
+ * @returns {string}
6974
+ */
6946
6975
  function convertToChar(cArr) {
6947
6976
  var ret = '';
6948
6977
  for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) {
@@ -6955,6 +6984,7 @@ function convertToChar(cArr) {
6955
6984
  * To set license key.
6956
6985
  *
6957
6986
  * @param {string} key - license key
6987
+ * @returns {void}
6958
6988
  */
6959
6989
  function registerLicense(key) {
6960
6990
  licenseValidator = new LicenseValidator(key);
@@ -6963,11 +6993,21 @@ var validateLicense = function (key) {
6963
6993
  if (key) {
6964
6994
  registerLicense(key);
6965
6995
  }
6966
- licenseValidator.validate();
6996
+ return licenseValidator.validate();
6967
6997
  };
6968
6998
  var getVersion = function () {
6969
6999
  return licenseValidator.version;
6970
7000
  };
7001
+ // Method for create overlay over the sample
7002
+ var createLicenseOverlay = function () {
7003
+ var bannerTemplate = "\n <div style=\"\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 99999;\n \">\n <div style=\"\n background: #FFFFFF;\n height: 455px;\n width: 840px;\n font-family: Helvetica Neue, Helvetica, Arial;\n color: #000000;\n box-shadow: 0px 4.8px 14.4px rgb(0 0 0 / 18%), 0px 25.6px 57.6px rgb(0 0 0 / 22%);\n display: block;\n margin: 8% auto;\n border-radius: 20px;\n \">\n <div style=\"\n position: absolute;\nwidth: 838px;\nheight: 62px;\nbackground-color: #F9F9F9;\nborder: 1px solid #EEEEEE;\nborder-top-left-radius: 20px;\nborder-top-right-radius: 20px;\n\">\n <img src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ2IiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMTQ2IDMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNDAuNTk2NSAxNS4wMDc4SDMyLjQyNUMzMS41NTU3IDE1LjAwNzggMzAuOTAzNyAxNS4xODEyIDMwLjUxMjUgMTUuNDg0NkMzMC4xMjEzIDE1LjgzMTQgMjkuOTA0IDE2LjMwODIgMjkuOTA0IDE3LjA0NTFDMjkuOTA0IDE3LjYwODYgMzAuMDc3OCAxOC4wNDIxIDMwLjQyNTYgMTguMzAyMkMzMC43NzMzIDE4LjYwNTYgMzEuMjk0OSAxOC43MzU2IDMxLjk5MDMgMTguNzM1NkgzNi4zMzY5QzM4LjExODkgMTguNzM1NiAzOS40MjI5IDE5LjA4MjQgNDAuMTYxOCAxOS43MzI2QzQwLjk0NDIgMjAuNDI2MiA0MS4yOTE5IDIxLjU1MzIgNDEuMjkxOSAyMy4xMTM3QzQxLjI5MTkgMjQuNzE3NiA0MC44NTcyIDI1Ljg4OCAzOS45ODc5IDI2LjY2ODJDMzkuMTE4NiAyNy40MDUxIDM3LjcyNzcgMjcuNzk1MyAzNS44NTg3IDI3Ljc5NTNIMjcuMDc4N1YyNS4wMjFIMzUuMzM3MkMzNi4yOTM0IDI1LjAyMSAzNi45NDU0IDI0Ljg5MSAzNy4zMzY2IDI0LjYzMDlDMzcuNzI3NyAyNC4zNzA4IDM3LjkwMTYgMjMuODk0IDM3LjkwMTYgMjMuMjg3MUMzNy45MDE2IDIyLjYzNjkgMzcuNzI3NyAyMi4xNjAxIDM3LjM4IDIxLjlDMzcuMDMyMyAyMS42Mzk5IDM2LjQyMzggMjEuNDY2NSAzNS41NTQ1IDIxLjQ2NjVIMzEuNjQyNkMyOS44NjA1IDIxLjQ2NjUgMjguNTEzMSAyMS4xMTk4IDI3LjY4NzMgMjAuMzgyOEMyNi44NjE0IDE5LjY0NTkgMjYuNDI2OCAxOC41MTg5IDI2LjQyNjggMTcuMDAxN0MyNi40MjY4IDE1LjM1NDUgMjYuODYxNCAxNC4xNDA4IDI3LjczMDcgMTMuMzYwNkMyOC42IDEyLjU4MDMgMjkuOTkwOSAxMi4yMzM1IDMxLjkwMzQgMTIuMjMzNUg0MC41OTY1VjE1LjAwNzhaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik00OC4wNzI3IDI1LjI4MTFINTAuNTA2OFYxNi4zOTQ5SDUzLjU0OTNWMjcuNTM1MkM1My41NDkzIDI5LjA1MjQgNTMuMjAxNiAzMC4xNzk0IDUyLjUwNjIgMzAuOTE2M0M1MS44MTA3IDMxLjY1MzIgNTAuNzI0MSAzMiA0OS4yNDYzIDMySDQzLjMzNVYyOS42NTkySDQ4LjcyNDdDNDkuMjg5NyAyOS42NTkyIDQ5Ljc2NzkgMjkuNTI5MiA1MC4wNzIxIDI5LjIyNThDNTAuMzc2NCAyOC45NjU3IDUwLjU1MDIgMjguNTMyMiA1MC41NTAyIDI4LjAxMlYyNy44Mzg2SDQ3Ljg5ODlDNDYuMjAzNyAyNy44Mzg2IDQ0Ljk0MzIgMjcuNDkxOSA0NC4yNDc4IDI2Ljg0MTZDNDMuNTA4OSAyNi4xNDgxIDQzLjE2MTEgMjUuMDY0NCA0My4xNjExIDIzLjQ2MDVWMTYuMzk0OUg0Ni4xNjAyVjIzLjIwMDVDNDYuMTYwMiAyNC4wNjc0IDQ2LjI5MDYgMjQuNjMwOSA0Ni41NTE0IDI0Ljg5MUM0Ni43MjUzIDI1LjE1MTEgNDcuMjQ2OSAyNS4yODExIDQ4LjA3MjcgMjUuMjgxMVoiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTU1Ljg5NjUgMTYuMzk0OUg2MS41OTA0QzYzLjMyOTEgMTYuMzk0OSA2NC41NDYxIDE2LjY5ODMgNjUuMjg1IDE3LjM0ODVDNjYuMDIzOSAxNy45OTg4IDY2LjM3MTYgMTkuMDgyNCA2Ni4zNzE2IDIwLjU1NjNWMjcuNzk1M0g2My4zMjkxVjIwLjk0NjRDNjMuMzI5MSAyMC4wNzk0IDYzLjE5ODcgMTkuNTE1OSA2Mi45Mzc5IDE5LjI5OTJDNjIuNjc3MSAxOS4wMzkxIDYyLjE1NTUgMTguOTA5MSA2MS4zMjk3IDE4LjkwOTFINTguODk1NlYyNy44Mzg2SDU1Ljg1M1YxNi4zOTQ5SDU1Ljg5NjVaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03NC45MzQyIDI1LjM2NzhINzguMTUwNlYyNy43OTUySDc0LjAyMTRDNzIuOTc4MiAyNy43OTUyIDcyLjEwODkgMjcuNjY1MiA3MS40NTcgMjcuNDkxOEM3MC44MDUgMjcuMjc1IDcwLjE5NjUgMjYuOTI4MyA2OS43MTgzIDI2LjQ1MTRDNjkuMTk2OCAyNS45MzEzIDY4Ljc2MjEgMjUuMjgxMSA2OC40NTc4IDI0LjU0NDJDNjguMTUzNiAyMy44MDcyIDY4LjAyMzIgMjIuOTgzNiA2OC4wMjMyIDIyLjE2QzY4LjAyMzIgMjEuMjkzMSA2OC4xNTM2IDIwLjQ2OTUgNjguNDU3OCAxOS42ODkyQzY4Ljc2MjEgMTguOTA5IDY5LjE1MzMgMTguMzAyMSA2OS43MTgzIDE3Ljc4MTlDNzAuMjM5OSAxNy4zMDUxIDcwLjgwNSAxNi45NTgzIDcxLjUwMDQgMTYuNzQxNkM3Mi4xOTU5IDE2LjUyNDkgNzMuMDIxNyAxNi40MzgyIDc0LjA2NDkgMTYuNDM4Mkg3OC4xOTQxVjE4LjkwOUg3NC45MzQyQzczLjQ5OTggMTguOTA5IDcyLjU0MzYgMTkuMTY5MSA3MS45Nzg1IDE5LjY0NTlDNzEuNDU2OSAyMC4xMjI3IDcxLjE1MjcgMjAuOTg5NyA3MS4xNTI3IDIyLjIwMzRDNzEuMTUyNyAyMi44OTY5IDcxLjI4MzEgMjMuNDYwNSA3MS41MDA0IDIzLjkzNzNDNzEuNzE3NyAyNC40MTQxIDcyLjA2NTUgMjQuNzYwOSA3Mi41MDAxIDI1LjA2NDNDNzIuNzE3NCAyNS4xOTQ0IDcyLjk3ODIgMjUuMjgxMSA3My4yODI1IDI1LjM2NzhDNzMuNjMwMiAyNS4zMjQ0IDc0LjE1MTggMjUuMzY3OCA3NC45MzQyIDI1LjM2NzhaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik04MC44NDU2IDE4LjY0ODlINzguNjcyNFYxNi4zNTE1SDgwLjg0NTZWMTUuMTgxMUM4MC44NDU2IDE0LjAxMDggODEuMDYzIDEzLjIzMDUgODEuNDk3NiAxMi44NDA0QzgxLjkzMjMgMTIuNDUwMyA4Mi43NTgxIDEyLjIzMzUgODMuOTc1MSAxMi4yMzM1SDg2Ljg0MzhWMTQuNDAwOUg4NS40MDk1Qzg0Ljg4NzkgMTQuNDAwOSA4NC41NDAyIDE0LjQ4NzYgODQuMzIyOSAxNC42NjFDODQuMTA1NSAxNC44MzQ0IDgzLjk3NTEgMTUuMDk0NSA4My45NzUxIDE1LjQ0MTJWMTYuMzUxNUg4Ni44NDM4VjE4LjY0ODlIODMuOTc1MVYyNy43OTUzSDgwLjg0NTZWMTguNjQ4OVoiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTk4LjQwNTYgMjcuNzk1M0g5Mi43MTE2QzkxLjAxNjUgMjcuNzk1MyA4OS44NDI5IDI3LjQ0ODUgODkuMDYwNSAyNi43OTgzQzg4LjMyMTYgMjYuMTQ4MSA4Ny45MzA0IDI1LjA2NDQgODcuOTMwNCAyMy41OTA2VjE2LjM5NDlIOTAuOTI5NVYyMy40MTcyQzkwLjkyOTUgMjQuMTk3NCA5MS4wNTk5IDI0LjY3NDMgOTEuMzIwNyAyNC45MzQ0QzkxLjU4MTUgMjUuMTk0NCA5Mi4xMDMxIDI1LjMyNDUgOTIuOTI4OSAyNS4zMjQ1SDk1LjM2M1YxNi4zOTQ5SDk4LjQwNTZWMjcuNzk1M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTEwMC42MjIgMjUuNDExMkgxMDcuMDExQzEwNy41NzcgMjUuNDExMiAxMDguMDExIDI1LjMyNDUgMTA4LjI3MiAyNS4xNTExQzEwOC41MzMgMjQuOTc3NyAxMDguNjYzIDI0LjY3NDMgMTA4LjY2MyAyNC4zMjc1QzEwOC42NjMgMjMuOTM3NCAxMDguNTMzIDIzLjY3NzMgMTA4LjI3MiAyMy40NjA1QzEwOC4wMTEgMjMuMjg3MSAxMDcuNTc3IDIzLjIwMDUgMTA3LjA1NSAyMy4yMDA1SDEwNC40NDdDMTAyLjg4MiAyMy4yMDA1IDEwMS44MzkgMjIuOTgzNyAxMDEuMzE4IDIyLjUwNjlDMTAwLjc1MiAyMi4wMzAxIDEwMC40OTIgMjEuMjA2NSAxMDAuNDkyIDE5Ljk5MjdDMTAwLjQ5MiAxOC43NzkgMTAwLjgzOSAxNy44Njg3IDEwMS40OTEgMTcuMjYxOEMxMDIuMTQzIDE2LjY5ODMgMTAzLjE4NyAxNi4zOTQ5IDEwNC41MzQgMTYuMzk0OUgxMTEuMDU0VjE4Ljc3OUgxMDUuNzA4QzEwNC44MzggMTguNzc5IDEwNC4yNzMgMTguODY1NyAxMDQuMDEyIDE4Ljk5NTdDMTAzLjc1MiAxOS4xNjkxIDEwMy42MjEgMTkuNDI5MiAxMDMuNjIxIDE5LjgxOTRDMTAzLjYyMSAyMC4xNjYxIDEwMy43NTIgMjAuNDI2MiAxMDMuOTY5IDIwLjU5OTZDMTA0LjE4NiAyMC43NzMgMTA0LjU3NyAyMC44NTk3IDEwNS4wNTYgMjAuODU5N0gxMDcuNzk0QzEwOS4wNTQgMjAuODU5NyAxMTAuMDExIDIxLjE2MzEgMTEwLjY2MyAyMS43MjY2QzExMS4zMTUgMjIuMjkwMiAxMTEuNjYyIDIzLjE1NzEgMTExLjY2MiAyNC4yNDA4QzExMS42NjIgMjUuMjgxMSAxMTEuMzU4IDI2LjE0ODEgMTEwLjc5MyAyNi43OTgzQzExMC4yMjggMjcuNDQ4NSAxMDkuNDQ2IDI3Ljc5NTMgMTA4LjUzMyAyNy43OTUzSDEwMC43MDlWMjUuNDExMkgxMDAuNjIyWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTE2LjU3NCAxNS4wOTQ0SDExMy40MDFWMTIuMjc2OUgxMTYuNTc0VjE1LjA5NDRaTTExNi41NzQgMjcuNzk1M0gxMTMuNDAxVjE2LjM5NDlIMTE2LjU3NFYyNy43OTUzWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTMwLjMwOSAyMi4xMTY3QzEzMC4zMDkgMjMuODkzOSAxMjkuNzQ0IDI1LjMyNDQgMTI4LjY1NyAyNi40MDgxQzEyNy41NzEgMjcuNDkxOCAxMjYuMDkzIDI4LjAxMiAxMjQuMjI0IDI4LjAxMkMxMjIuMzU1IDI4LjAxMiAxMjAuODc3IDI3LjQ5MTggMTE5Ljc5IDI2LjQwODFDMTE4LjcwNCAyNS4zMjQ0IDExOC4xMzkgMjMuODkzOSAxMTguMTM5IDIyLjExNjdDMTE4LjEzOSAyMC4zMzk0IDExOC43MDQgMTguOTA5IDExOS43OSAxNy44MjUzQzEyMC44NzcgMTYuNzQxNiAxMjIuMzk4IDE2LjIyMTQgMTI0LjIyNCAxNi4yMjE0QzEyNi4wNDkgMTYuMjIxNCAxMjcuNTI3IDE2Ljc0MTYgMTI4LjY1NyAxNy44MjUzQzEyOS43NDQgMTguODY1NiAxMzAuMzA5IDIwLjI5NjEgMTMwLjMwOSAyMi4xMTY3Wk0xMjEuMjY4IDIyLjExNjdDMTIxLjI2OCAyMy4yMDA0IDEyMS41MjkgMjQuMDY3MyAxMjIuMDUxIDI0LjY3NDJDMTIyLjU3MiAyNS4yODExIDEyMy4yNjggMjUuNTg0NSAxMjQuMTggMjUuNTg0NUMxMjUuMDkzIDI1LjU4NDUgMTI1Ljc4OSAyNS4yODExIDEyNi4zMSAyNC42NzQyQzEyNi44MzIgMjQuMDY3MyAxMjcuMDkzIDIzLjIwMDQgMTI3LjA5MyAyMi4xMTY3QzEyNy4wOTMgMjEuMDMzIDEyNi44MzIgMjAuMTY2MSAxMjYuMzEgMTkuNjAyNUMxMjUuNzg5IDE4Ljk5NTcgMTI1LjA5MyAxOC42OTIyIDEyNC4xMzcgMTguNjkyMkMxMjMuMjI0IDE4LjY5MjIgMTIyLjUyOSAxOC45OTU3IDEyMi4wMDcgMTkuNjAyNUMxMjEuNTI5IDIwLjE2NjEgMTIxLjI2OCAyMS4wMzMgMTIxLjI2OCAyMi4xMTY3WiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTMxLjc4NyAxNi4zOTQ5SDEzNy40ODFDMTM5LjIxOSAxNi4zOTQ5IDE0MC40MzYgMTYuNjk4MyAxNDEuMTc1IDE3LjM0ODVDMTQxLjkxNCAxNy45OTg4IDE0Mi4yNjIgMTkuMDgyNCAxNDIuMjYyIDIwLjU1NjNWMjcuNzk1M0gxMzkuMjE5VjIwLjk0NjRDMTM5LjIxOSAyMC4wNzk0IDEzOS4wODkgMTkuNTE1OSAxMzguODI4IDE5LjI5OTJDMTM4LjU2NyAxOS4wMzkxIDEzOC4wNDYgMTguOTA5MSAxMzcuMjIgMTguOTA5MUgxMzQuNzg2VjI3LjgzODZIMTMxLjc0M1YxNi4zOTQ5SDEzMS43ODdaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03LjEyODMxIDMuNzM3NDNIMFYxMC44NDY0SDcuMTI4MzFWMy43Mzc0M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTIzLjI1MTMgLTIuMTU3MjVlLTA1TDE4LjU1MTMgNS41MTY4NUwyNC4wODMxIDEwLjIwNDFMMjguNzgzMSA0LjY4NzI1TDIzLjI1MTMgLTIuMTU3MjVlLTA1WiIgZmlsbD0iI0ZGODYwMCIvPgo8cGF0aCBkPSJNMTUuNjA0MSAzLjczNzQzSDguNDc1ODNWMTAuODQ2NEgxNS42MDQxVjMuNzM3NDNaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03LjEyODMxIDEyLjE5MDJIMFYxOS4yOTkySDcuMTI4MzFWMTIuMTkwMloiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTE1LjYwNDEgMTIuMTkwMkg4LjQ3NTgzVjE5LjI5OTJIMTUuNjA0MVYxMi4xOTAyWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMjQuMDc5NyAxMi4xOTAySDE2Ljk1MTRWMTkuMjk5MkgyNC4wNzk3VjEyLjE5MDJaIiBmaWxsPSIjRkY4NjAwIi8+CjxwYXRoIGQ9Ik03LjEyODMxIDIwLjY4NjNIMFYyNy43OTUzSDcuMTI4MzFWMjAuNjg2M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTE1LjYwNDEgMjAuNjg2M0g4LjQ3NTgzVjI3Ljc5NTNIMTUuNjA0MVYyMC42ODYzWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMjQuMTIzMiAyMC42ODYzSDE2Ljk5NDlWMjcuNzk1M0gyNC4xMjMyVjIwLjY4NjNaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik0xNDYgMTUuODMxM0MxNDYgMTYuODcxNyAxNDUuMTc0IDE3LjY5NTMgMTQ0LjEzMSAxNy42OTUzQzE0My4wODggMTcuNjk1MyAxNDIuMjYyIDE2Ljg3MTcgMTQyLjI2MiAxNS44MzEzQzE0Mi4yNjIgMTQuNzkxIDE0My4wODggMTQuMDEwNyAxNDQuMTMxIDE0LjAxMDdDMTQ1LjEzMSAxMy45Njc0IDE0NiAxNC43OTEgMTQ2IDE1LjgzMTNaTTE0Mi45NTcgMTQuNzkxQzE0Mi42OTcgMTUuMDUxMSAxNDIuNTY2IDE1LjQ0MTIgMTQyLjU2NiAxNS44MzEzQzE0Mi41NjYgMTYuNjk4MyAxNDMuMjYyIDE3LjM5MTggMTQ0LjEzMSAxNy4zOTE4QzE0NSAxNy4zOTE4IDE0NS42OTYgMTYuNjk4MyAxNDUuNjk2IDE1LjgzMTNDMTQ1LjY5NiAxNS4wMDc3IDE0NSAxNC4yNzA4IDE0NC4xNzQgMTQuMjcwOEMxNDMuNjUzIDE0LjI3MDggMTQzLjI2MiAxNC40NDQyIDE0Mi45NTcgMTQuNzkxWk0xNDQuODcgMTYuOTE1SDE0NC40NzlMMTQzLjkxNCAxNi4wOTE0VjE2LjkxNUgxNDMuNjA5VjE0Ljc0NzZIMTQzLjk1N0MxNDQuNDM1IDE0Ljc0NzYgMTQ0LjY1MyAxNC45NjQ0IDE0NC42NTMgMTUuMzU0NUMxNDQuNjUzIDE1LjY1NzkgMTQ0LjQ3OSAxNS44NzQ3IDE0NC4xNzQgMTUuOTYxNEwxNDQuODcgMTYuOTE1Wk0xNDQuMDQ0IDE1LjY1NzlDMTQ0LjI2MSAxNS42NTc5IDE0NC4zOTIgMTUuNTI3OSAxNDQuMzkyIDE1LjM1NDVDMTQ0LjM5MiAxNS4xMzc4IDE0NC4yNjEgMTUuMDUxMSAxNDQuMDAxIDE1LjA1MTFIMTQzLjkxNFYxNS42NTc5SDE0NC4wNDRaIiBmaWxsPSIjMzU0M0E4Ii8+Cjwvc3ZnPgo=\" style=\"\n text-align: left;\n width: 146px;\n position: absolute;\n top: 14px;\n left: 31px;\n\">\n </div>\n <div style=\"\n position: relative;\n top: 80px;\n left: 32px;\n font-size: 20px;\n text-align: left;\n font-weight: 700;\n letter-spacing: 0.02em;\n font-style: normal;\n line-height: 125%;\n \">Claim your FREE account and get a key in less than a minute</div>\n <ul style=\"\n font-size: 15px;\n font-weight: 400;\n color: #333333;\n letter-spacing: 0.01em;\n position: relative;\n left: 32px;\n top: 88px;\n line-height: 180%;\n \">\n <li><span>Access to a 30-day free trial of any of our products.</span></li>\n <li><span>Access to 24x5 support by developers via the <a href=\"https://support.syncfusion.com/create\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">support tickets</a>, <a href=\"https://www.syncfusion.com/forums\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">forum</a>, <a href=\"https://www.syncfusion.com/feedback\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">feature &amp; feedback page</a> and chat.</span></li>\n <li><span>200+ <a href=\"https://www.syncfusion.com/succinctly-free-ebooks\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">ebooks </a>on the latest technologies, industry trends, and research topics.</span>\n </li>\n <li><span>Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion <a href=\"https://www.syncfusion.com/succinctly-free-ebooks\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">Metro Studio.</a></span></li>\n <li><span>Free and unlimited access to Syncfusion technical <a href=\"https://www.syncfusion.com/blogs/\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">blogs</a> and <a href=\"https://www.syncfusion.com/resources/techportal/whitepapers\" style=\"text-decoration: none;\n color: #0D6EFD;\n font-weight: 500;\">whitepapers.</a></span></li>\n </ul>\n <div style=\"\n font-size: 18px;\n font-weight: 700;\n position: relative;\n line-height: 125%;\n letter-spacing: 0.02em;\n top: 90px;\n left: 32px;\n \">Syncfusion is trusted by 29,000+ businesses worldwide</div>\n <img src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODIwIiBoZWlnaHQ9IjU2IiB2aWV3Qm94PSIwIDAgODIwIDU2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MjcuNjE3IDIyLjU2NTlWMjQuNzIyNkM0MjYuNTU4IDI0LjM2MzggNDI1LjM5OCAyNC4xNTQ0IDQyNC40NzQgMjQuMTU0NEM0MjMuMzMzIDI0LjE1NDQgNDIyLjY5OCAyNC40OTEyIDQyMi42OTggMjUuMDk2M0M0MjIuNjk4IDI1LjQ4MjQgNDIyLjk3NiAyNS43MzgzIDQyMy43NzMgMjYuMDg1NEw0MjUuOTE3IDI3LjAxNzRDNDI3LjYzMyAyNy43NjM5IDQyOC40OTcgMjguODUzIDQyOC40OTcgMzAuMjY4MUM0MjguNDk3IDMyLjQ1MjIgNDI2LjU0NiAzMy44MyA0MjMuNDUyIDMzLjgzQzQyMi4zMjQgMzMuODMgNDIxLjAxOCAzMy42NzM2IDQxOS42MzYgMzMuMzcwOVYzMS4xNDE2QzQyMS4wMDYgMzEuNTAyOCA0MjIuMjYyIDMxLjY5NTcgNDIzLjIzOSAzMS42OTU3QzQyNC41MTggMzEuNjk1NyA0MjUuMjAzIDMxLjM1MDYgNDI1LjIwMyAzMC43MDc0QzQyNS4yMDMgMzAuMzIwOCA0MjQuOTM1IDMwLjAzNjcgNDI0LjMyMiAyOS43NzE3TDQyMS45NzUgMjguNzU5M0M0MjAuMjM2IDI4LjAwNzggNDE5LjQzMyAyNi45OTU0IDQxOS40MzMgMjUuNTUyMUM0MTkuNDMzIDIzLjQ4MzcgNDIxLjMxNCAyMi4xNjQ5IDQyNC4yNjUgMjIuMTY0OUM0MjUuMjk4IDIyLjE2NDkgNDI2LjU3IDIyLjMxNzEgNDI3LjYxNyAyMi41NjU5VjIyLjU2NTlaTTQzMC4xNjcgMjIuMzkwOUg0MzMuNjM1VjMzLjYwMzlINDMwLjE2N1YyMi4zOTA5Wk00NDQuOTExIDIyLjM5MDlWMjQuNDQ1MUg0MzkuNjc1VjI2Ljk3NDJINDQ0LjI0OVYyOC44MzIzSDQzOS42NzVWMzEuNDU0M0g0NDQuOTc4VjMzLjYwMzlINDM2LjMwNVYyMi4zOTA5SDQ0NC45MTFaTTQ2MS4yOTQgMjIuMzkwOVYzMy42MDM5SDQ1Ny45MzlWMjYuMjIzNkw0NTQuNjUyIDMzLjY5MTVINDUyLjUzMUw0NDkuMjY2IDI2LjIyMzZWMzMuNjAzOUg0NDYuOTQ5VjIyLjM5MDlINDUxLjE4NEw0NTQuMTc4IDI5LjIxMTRMNDU3LjE1NiAyMi4zOTA5SDQ2MS4yOTRWMjIuMzkwOVpNNDcyLjU3OSAyMi4zOTA5VjI0LjQ0NTFINDY3LjMzNVYyNi45NzQySDQ3MS45MDhWMjguODMyM0g0NjcuMzM1VjMxLjQ1NDNINDcyLjYzOFYzMy42MDM5SDQ2My45NTdWMjIuMzkwOUg0NzIuNTc5Wk00ODQuNzk0IDIyLjM5MDlWMzMuNjAzOUg0ODEuMDkzTDQ3Ni45MjYgMjYuNDEyM1YzMy42MDM5SDQ3NC42MDhWMjIuMzkwOUg0NzguNDA3TDQ4Mi40ODQgMjkuNDg3NlYyMi4zOTA5SDQ4NC43OTRaTTQ5NC44NTggMjIuNTY1OVYyNC43MjI2QzQ5My44MDcgMjQuMzY2MyA0OTIuNjQgMjQuMTU0NCA0OTEuNzMyIDI0LjE1NDRDNDkwLjU3MyAyNC4xNTQ0IDQ4OS45MzkgMjQuNDg1OCA0ODkuOTM5IDI1LjA5M0M0ODkuOTM5IDI1LjQ4ODYgNDkwLjE5OCAyNS43MjUgNDkxLjAyMyAyNi4wODU5TDQ5My4xNTcgMjcuMDE3OEM0OTQuODg1IDI3Ljc3MjIgNDk1LjczOSAyOC44NTE4IDQ5NS43MzkgMzAuMjgzNUM0OTUuNzM5IDMyLjQ1NTkgNDkzLjc4NiAzMy44MzA4IDQ5MC42OTkgMzMuODMwOEM0ODkuNTY5IDMzLjgzMDggNDg4LjI1OSAzMy42NzM2IDQ4Ni44NzggMzMuMzcxN1YzMS4xNDI0QzQ4OC4yNDcgMzEuNTAyOCA0ODkuNDk5IDMxLjY5NjUgNDkwLjQ3IDMxLjY5NjVDNDkxLjc0IDMxLjY5NjUgNDkyLjQ0NCAzMS4zNTE1IDQ5Mi40NDQgMzAuNzI4NUM0OTIuNDQ0IDMwLjMxNjMgNDkyLjE5NyAzMC4wNTA0IDQ5MS41NTUgMjkuNzcyNUw0ODkuMjE4IDI4Ljc2MDFDNDg3LjQ2NyAyOC4wMDI4IDQ4Ni42NzQgMjcuMDAyIDQ4Ni42NzQgMjUuNTUzM0M0ODYuNjc0IDIzLjQ4NjIgNDg4LjU1NiAyMi4xNjY1IDQ5MS41IDIyLjE2NjVDNDkyLjUzNiAyMi4xNjUzIDQ5My44MTMgMjIuMzE3MSA0OTQuODU4IDIyLjU2NTlWMjIuNTY1OVoiIGZpbGw9IiMwMEEwQjAiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzUyLjQxMyAyNi44MTlDMzUwLjk5MiAyNS4yNzU5IDM0OS42MzggMjMuODMxNSAzNDguMzQ5IDIyLjE1NzRMMzQ3LjkyIDIxLjU5OTVDMzQ5LjQwNiAyMS4zNjkzIDM1MC42OTUgMjAuMzg0OCAzNTAuNjk1IDE4Ljc0MzNDMzUwLjY5NSAxNy4yMzMxIDM0OS41MzkgMTYuMjQ4MiAzNDcuODIxIDE2LjI0ODJDMzQ2LjU5OCAxNi4yNDgyIDM0NS43MDYgMTYuMzEzNyAzNDUuMjQzIDE2LjMxMzdDMzQ0LjcxNSAxNi4zMTM3IDM0NC4yODUgMTYuMzEzNyAzNDMuNzkgMTYuMjgwOEMzNDMuODU2IDE4LjE1MjEgMzQzLjg4OSAxOC4yODM0IDM0My44ODkgMTkuNDMyMlYyMy42MzQzQzM0My44ODkgMjQuNDU1MyAzNDMuODU2IDI1LjI3NTkgMzQzLjc5IDI2LjgxODZDMzQ0LjE1MyAyNi43MjAyIDM0NC41MTcgMjYuNzIwMiAzNDQuNzgxIDI2LjcyMDJDMzQ1LjA0NSAyNi43MjAyIDM0NS40MDkgMjYuNzUzMSAzNDUuNzA2IDI2LjgxODZDMzQ1LjY0IDI1Ljc2NzkgMzQ1LjYwNyAyNC4wMjgzIDM0NS42MDcgMjMuNjM0M1YyMS4yMDUxQzM0Ny4xNiAyMy4yMDc3IDM0OS4yMDkgMjUuNjY5NSAzNTAuMDAxIDI2LjgxODZDMzUwLjM5OCAyNi43MjAyIDM1MC43MjggMjYuNzIwMiAzNTEuMTI0IDI2LjcyMDJDMzUxLjQ1NSAyNi43MjA2IDM1MS45MTggMjYuNzIwNiAzNTIuNDEzIDI2LjgxOVYyNi44MTlaTTM0OC44NzggMTkuMDA2QzM0OC44NzggMjAuMDIzNCAzNDguMzE3IDIxLjIwNTQgMzQ2Ljc5NyAyMS4yMDU0QzM0Ni40IDIxLjIwNTQgMzQ2LjAwMyAyMS4yMDU0IDM0NS42MDcgMjEuMTcyNVYxNy4wNjg4QzM0Ni4wMDMgMTYuOTcwNCAzNDYuNDk5IDE2LjkwNDYgMzQ2Ljc2MyAxNi45MDQ2QzM0OC4wODUgMTYuOTA0OSAzNDguODc4IDE3LjY2IDM0OC44NzggMTkuMDA2VjE5LjAwNlpNMzgyLjM4IDI2Ljg4NDVDMzgxLjgxOSAyNi4yOTM2IDM4MC45NiAyNS4zNDE3IDM4MC4xMzQgMjQuNDIyM0MzODAuODI4IDIzLjY2NzIgMzgxLjU1NSAyMi41NTEgMzgxLjk4NCAyMS41OTkxQzM4MS43MTkgMjEuNDY3OCAzODEuMzU2IDIxLjIwNTEgMzgxLjA5MiAyMC45NzUzQzM4MC45OTMgMjEuNzk1OSAzODAuNDMyIDIyLjg3OTIgMzc5LjYzOSAyMy44MzE1QzM3OC41MTUgMjIuNTE4NSAzNzguMjE4IDIyLjE1NzQgMzc3LjE5MyAyMC43Nzg1QzM3OC41ODEgMTkuODkyMSAzNzkuMjQyIDE4Ljg3NDMgMzc5LjI0MiAxOC4wNTM3QzM3OS4yNDIgMTcuMTAxNyAzNzguNTgxIDE2LjExNjkgMzc2Ljk2MiAxNi4xMTY5QzM3NS4yMTEgMTYuMTE2OSAzNzQuMzUyIDE3LjIwMDIgMzc0LjM1MiAxOC40ODAzQzM3NC4zNTIgMTkuMjM1NCAzNzQuNTUgMTkuODkxNyAzNzUuMzc2IDIwLjk3NTNDMzc0LjA1NCAyMS42OTc1IDM3Mi43NjYgMjIuNzQ3OSAzNzIuNzY2IDI0LjQyMjNDMzcyLjc2NiAyNi4wNjM5IDM3NC4wODcgMjYuOTE3NCAzNzUuNzA3IDI2LjkxNzRDMzc3LjE5MyAyNi45MTc0IDM3OC4xNTEgMjYuMzI2NiAzNzguOTEyIDI1LjYzNjlMMzc5LjkwMiAyNi44MTlDMzgwLjIgMjYuNzg2MSAzODAuNTMxIDI2LjcyMDYgMzgwLjg2MSAyNi43MjA2QzM4MS4zMjQgMjYuNzIwNiAzODEuODUyIDI2Ljc4NjEgMzgyLjM4IDI2Ljg4NDVWMjYuODg0NVpNMzgzLjM3MiA0MC4wMTU4QzM4MS45MTggMzguNDczIDM4MC41OTcgMzcuMDYxMiAzNzkuMzA4IDM1LjM4NzFMMzc4Ljg3OCAzNC44Mjg4QzM4MC4zMzIgMzQuNTk5MSAzODEuNjU0IDMzLjYxNSAzODEuNjU0IDMxLjk0MDFDMzgxLjY1NCAzMC40NjMyIDM4MC40OTggMjkuNDQ1NCAzNzguNzc5IDI5LjQ0NTRDMzc3LjU1NyAyOS40NDU0IDM3Ni42MzIgMjkuNTQzNSAzNzYuMTY5IDI5LjU0MzVDMzc1LjY3MyAyOS41NDM1IDM3NS4yNDQgMjkuNTQzNSAzNzQuNzQ4IDI5LjQ3NzZDMzc0LjgxNCAzMS4zODIyIDM3NC44NDggMzEuNDgwMiAzNzQuODQ4IDMyLjYyOTRWMzYuODMxMUMzNzQuODQ4IDM3LjY1MjQgMzc0LjgxNCAzOC41MDUyIDM3NC43NDggNDAuMDE1NEMzNzUuMTEyIDM5Ljk0OTYgMzc1LjQ3NSAzOS45NDk2IDM3NS43MDcgMzkuOTQ5NkMzNzYuMDA0IDM5Ljk0OTYgMzc2LjM2OCAzOS45NDk2IDM3Ni42MzIgNDAuMDE1NEMzNzYuNTY1IDM4Ljk5OCAzNzYuNTMzIDM3LjI1ODEgMzc2LjUzMyAzNi44MzExVjM0LjQzNDhDMzc4LjExOSAzNi40MDQyIDM4MC4xNjcgMzguODk5NiAzODAuOTYgNDAuMDE1NEMzODEuMzU2IDM5Ljk0OTYgMzgxLjY4NyAzOS45NDk2IDM4Mi4wODMgMzkuOTQ5NkMzODIuMzggMzkuOTUgMzgyLjg3NiAzOS45NSAzODMuMzcyIDQwLjAxNThaTTM2Mi4xNiAyNi44MTlDMzYwLjk3MSAyNS41NzE1IDM1OC44ODkgMjIuOTc4IDM1OC4wNjMgMjEuOTkzNUwzNTcuMjM3IDIwLjk3NTdDMzU4LjA5NiAxOS45NTgzIDM1OC42OSAxOS4zMzQxIDM1OS4zMTkgMTguNTc5QzM2MC4wNDUgMTcuNzkxIDM2MC43MDYgMTYuOTcwNCAzNjEuNDk5IDE2LjI0ODJDMzYxLjEzNiAxNi4zMTM3IDM2MC45MzcgMTYuMzEzNyAzNjAuNzM5IDE2LjMxMzdDMzYwLjU0MSAxNi4zMTM3IDM2MC4zNDMgMTYuMzEzNyAzNjAuMTQ0IDE2LjI0ODJDMzU5LjkxMyAxNi42MDkzIDM1OS41NSAxNy4wNjg4IDM1OS4xNTMgMTcuNTI4N0MzNTguNzU2IDE3Ljk1NTYgMzU4LjM2IDE4LjM4MjIgMzU4LjA2MyAxOC43NDMzQzM1Ny4yMzYgMTkuNjk1MiAzNTYuNzc0IDIwLjE1NDcgMzU1LjU4NSAyMS4yNzA5VjE5LjQ2NTVDMzU1LjU4NSAxOC40MTUxIDM1NS41ODUgMTcuNzI1NSAzNTUuNjUxIDE2LjI0ODJDMzU1LjMyMSAxNi4zMTM3IDM1NC45NTcgMTYuMzEzNyAzNTQuNzI2IDE2LjMxMzdDMzU0LjQ2MSAxNi4zMTM3IDM1NC4wMzIgMTYuMzEzNyAzNTMuNzY4IDE2LjI0ODJDMzUzLjgzMyAxNy44MjM5IDM1My44NjcgMTguMjgzNCAzNTMuODY3IDE5LjQzMjVWMjMuNjM0N0MzNTMuODY3IDI0LjY4NSAzNTMuODMzIDI1LjMwODggMzUzLjc2OCAyNi44MTlDMzU0LjE2NCAyNi43MjA2IDM1NC40OTUgMjYuNzIwNiAzNTQuNzI2IDI2LjcyMDZDMzU0Ljk1NyAyNi43MjA2IDM1NS4zNTMgMjYuNzUzNSAzNTUuNjUxIDI2LjgxOUMzNTUuNTg1IDI1LjE0NDkgMzU1LjU4NSAyNC4xNTk3IDM1NS41ODUgMjMuNjM0N1YyMS40MzUyQzM1Ni44MDcgMjIuODc5NiAzNTguNjkgMjUuMjQzMyAzNTkuNzQ4IDI2LjgxOUMzNjAuMTMgMjYuNzU2MyAzNjAuNTE3IDI2LjcyMzQgMzYwLjkwNSAyNi43MjA2QzM2MS4yMDIgMjYuNzIwNiAzNjEuNjY1IDI2LjcyMDYgMzYyLjE2IDI2LjgxOVYyNi44MTlaTTM3Mi42MDEgNDAuMDE1OEMzNzIuNTY4IDM5Ljg1MTkgMzcyLjUzNSAzOS43MjA2IDM3Mi41MzUgMzkuNTIzNEMzNzIuNTM1IDM5LjM5MjggMzcyLjU2OCAzOS4yMjgxIDM3Mi42MDEgMzkuMDk2NEMzNzEuMjggMzkuMTI5NyAzNjguOTAxIDM5LjE5NTIgMzY4LjM3MiAzOS4xOTUyVjM0LjY2NDlDMzY5LjY5NCAzNC42NjQ5IDM3MC45ODIgMzQuNjY0OSAzNzIuMjcgMzQuNzk2M0MzNzIuMjM4IDM0LjYzMjQgMzcyLjIwNCAzNC40Njc3IDM3Mi4yMDQgMzQuMzM2NEMzNzIuMjA0IDM0LjIwNTggMzcyLjIwNCAzNC4wNDE5IDM3Mi4yNyAzMy44NDQ3QzM3MS4zNDYgMzMuOTQyOCAzNjkuMTk4IDMzLjk3NiAzNjguMzcyIDMzLjk3NlYzMC4yNjZDMzY5LjgyNiAzMC4yNjYgMzcwLjY4NSAzMC4yNjYgMzcxLjE4IDMwLjI5OTNMMzcyLjUwMiAzMC4zNjUxQzM3Mi40MzYgMzAuMTY3OSAzNzIuNDM2IDMwLjA2OTIgMzcyLjQzNiAyOS45MDUzQzM3Mi40MzYgMjkuNzQxNCAzNzIuNDM2IDI5LjcwODEgMzcyLjUwMiAyOS40NDU4QzM3MS40MTEgMjkuNDc4MyAzNjkuOTI1IDI5LjU0MzggMzY5LjI2NCAyOS41NDM4QzM2OC44MDIgMjkuNTQzOCAzNjcuMzQ4IDI5LjUxMTMgMzY2LjU4NyAyOS40NDU4QzM2Ni42NTQgMzAuMjY2NCAzNjYuNjg2IDMxLjYxMjMgMzY2LjY4NiAzMi41NjQyVjM2Ljg2NTFDMzY2LjY4NiAzNy40ODg1IDM2Ni42MiAzOC43MzU3IDM2Ni41ODcgNDAuMDE2MkMzNjcuNTEzIDM5Ljk1MDMgMzY4LjgwMiAzOS45NTAzIDM2OS4yNjQgMzkuOTUwM0MzNzAuMDI0IDM5Ljk1IDM3MS42NDMgMzkuOTUgMzcyLjYwMSA0MC4wMTU4Wk0zNjQuNjA1IDM5LjEyOTRDMzY0LjQ0IDM4LjgwMDggMzY0LjM0MSAzOC4zMDg4IDM2NC4yNzUgMzguMDQ2MUMzNjIuOTIgMzkuMTYxOSAzNjEuOTk1IDM5LjM5MjQgMzYwLjkzOCAzOS4zOTI0QzM1OC41OTIgMzkuMzkyNCAzNTcuMzM3IDM3LjI5MTMgMzU3LjMzNyAzNC42NjQ5QzM1Ny4zMzcgMzEuNzQzNiAzNTguNzU3IDMwLjAzNjIgMzYxLjE2OSAzMC4wMzYyQzM2Mi40MjUgMzAuMDM2MiAzNjMuNjE0IDMwLjU5NDUgMzY0LjE3NiAzMS4xNTI4QzM2NC4yMDggMzAuODg5OCAzNjQuMzA4IDMwLjM2NDggMzY0LjQ3MyAzMC4wNjg4QzM2My4zMTYgMjkuNTExMyAzNjIuMjU5IDI5LjM0NjYgMzYxLjEwMiAyOS4zNDY2QzM1Ny4yMzcgMjkuMzQ2NiAzNTUuNDUzIDMxLjc0MzYgMzU1LjQ1MyAzNC44Mjg4QzM1NS40NTMgMzguMzA5MSAzNTcuNzk4IDQwLjE0NzEgMzYwLjczOSA0MC4xNDcxQzM2Mi40MjUgNDAuMTQ3MSAzNjMuODEyIDM5LjYyMjIgMzY0LjYwNSAzOS4xMjk0VjM5LjEyOTRaTTM0Mi4zMDMgMjYuODE5QzM0MC41MTkgMjMuNDA0OSAzMzguOCAxOS4xMzczIDMzNy41NzggMTYuMTE2OUgzMzcuMzhDMzM2LjU4NyAxOC4wMjA3IDMzNS4xMzMgMjEuMjcwOSAzMzQuNzM3IDIyLjE4OTlDMzM0LjI3NCAyMy4zMDYxIDMzMy4yNSAyNS41MDU2IDMzMi41ODkgMjYuODE4NkMzMzIuODAzIDI2Ljc1MzggMzMzLjAyNiAyNi43MjA2IDMzMy4yNSAyNi43MjAyQzMzMy40NDggMjYuNzIwMiAzMzMuNjEzIDI2Ljc1MzEgMzMzLjg0NSAyNi44MTg2QzMzNC4xNzUgMjUuOTMyMiAzMzQuNjM4IDI0LjgxNiAzMzUuMTMzIDIzLjYzNDNDMzM1Ljc5NCAyMy42MDE0IDMzNi4zODkgMjMuNTY4OCAzMzYuOTg0IDIzLjU2ODhDMzM3LjYxMiAyMy41Njg4IDMzOC4yNzIgMjMuNjAxNCAzMzguOTMzIDIzLjYzNDNMMzM5LjU5NCAyNS4yMUwzNDAuMjU1IDI2LjgxODZDMzQwLjcxNyAyNi43MjAyIDM0MS4wOCAyNi43MjAyIDM0MS4zMTIgMjYuNzIwMkMzNDEuNjA5IDI2LjcyMDYgMzQxLjg3MyAyNi43MjA2IDM0Mi4zMDMgMjYuODE5VjI2LjgxOVpNMzUzLjYzNiAyOS40NDU0QzM1My40MzggMjkuNTExMyAzNTMuMjczIDI5LjU0MzUgMzUzLjEwNyAyOS41NDM1QzM1Mi45MDkgMjkuNTQzNSAzNTIuNzQ0IDI5LjUxMDkgMzUyLjU0NiAyOS40NDU0QzM1Mi42NDQgMzAuNzU4NCAzNTIuNjc4IDMyLjA3MTQgMzUyLjY3OCAzMy4zNTE5VjM2LjczMzRDMzUyLjE0OSAzNi4yNzM2IDM1MC44NiAzNS4wOTE5IDM0OS4zNzQgMzMuNzEzQzM0Ny44NiAzMi4zMDc0IDM0Ni4zOTQgMzAuODUxMSAzNDQuOTc5IDI5LjM0NjZIMzQ0Ljc0OEMzNDQuNzgxIDMwLjgyNDMgMzQ0LjgxNCAzMi40IDM0NC44MTQgMzMuODExNFYzNS44Nzk5QzM0NC44MTQgMzcuNjUyOCAzNDQuODE0IDM4LjYwNDcgMzQ0LjcxNSA0MC4wMTYyQzM0NC45OCAzOS45NTAzIDM0NS4xMTIgMzkuOTUwMyAzNDUuMzEgMzkuOTUwM0MzNDUuNDQyIDM5Ljk1MDMgMzQ1LjU3NSAzOS45NTAzIDM0NS44MDYgNDAuMDE2MkMzNDUuNzQgMzguNjcwNiAzNDUuNzA3IDM2LjQ3MDggMzQ1LjcwNyAzNS44Nzk5VjMyLjU5NjhDMzQ4LjE4NSAzNC44NjI1IDM1MS4yMjQgMzcuODgyNiAzNTMuNDcxIDQwLjE0NzVIMzUzLjYwM0MzNTMuNjAzIDM4LjkzMjkgMzUzLjUzNyAzNy43MTc5IDM1My41MzcgMzYuNTA0VjM0LjYzMjdDMzUzLjUzNiAzMi40MzI1IDM1My41MzYgMzEuMzQ5MyAzNTMuNjM2IDI5LjQ0NTRaTTM0Mi41NjcgNDAuMDE1OEMzNDIuNTM0IDM5Ljg1MTkgMzQyLjUwMSAzOS43MjA2IDM0Mi41MDEgMzkuNTIzNEMzNDIuNTAxIDM5LjM5MjggMzQyLjUzNCAzOS4yMjgxIDM0Mi41NjcgMzkuMDk2NEMzNDEuMjQ2IDM5LjEyOTcgMzM4Ljg2NyAzOS4xOTUyIDMzOC4zNzEgMzkuMTk1MlYzNC42NjQ5QzMzOS42NiAzNC42NjQ5IDM0MC45NDggMzQuNjY0OSAzNDIuMjM3IDM0Ljc5NjNDMzQyLjIwNCAzNC42MzI0IDM0Mi4xNzEgMzQuNDY3NyAzNDIuMTcxIDM0LjMzNjRDMzQyLjE3MSAzNC4yMDU4IDM0Mi4xNzEgMzQuMDQxOSAzNDIuMjM3IDMzLjg0NDdDMzQxLjMxMiAzMy45NDI4IDMzOS4xOTcgMzMuOTc2IDMzOC4zNzEgMzMuOTc2VjMwLjI2NkMzMzkuNzkyIDMwLjI2NiAzNDAuNjUxIDMwLjI2NiAzNDEuMTc5IDMwLjI5OTNMMzQyLjQ2OCAzMC4zNjUxQzM0Mi40MzUgMzAuMTY3OSAzNDIuNDM1IDMwLjA2OTIgMzQyLjQzNSAyOS45MDUzQzM0Mi40MzUgMjkuNzQxNCAzNDIuNDM1IDI5LjY3NTUgMzQyLjQ2OCAyOS40NDU4QzM0MS4zNzggMjkuNDc4MyAzMzkuODkxIDI5LjU0MzggMzM5LjIzIDI5LjU0MzhDMzM4Ljc2NyAyOS41NDM4IDMzNy4zMTQgMjkuNTExMyAzMzYuNTU0IDI5LjQ0NThDMzM2LjYyIDMwLjI2NjQgMzM2LjY1MyAzMS42MTIzIDMzNi42NTMgMzIuNTY0MlYzNi44NjUxQzMzNi42NTMgMzcuNDg4NSAzMzYuNTg3IDM4LjczNTcgMzM2LjU1NCA0MC4wMTYyQzMzNy41MTIgMzkuOTUwMyAzMzguNzY3IDM5Ljk1MDMgMzM5LjIzIDM5Ljk1MDNDMzM5Ljk5IDM5Ljk1IDM0MS42NDIgMzkuOTUgMzQyLjU2NyA0MC4wMTU4VjQwLjAxNThaTTMzMS4yMDEgMjYuODE5QzMzMC42NzMgMjMuMjQwNiAzMzAuMjEgMTkuNDk4NCAzMjkuODQ3IDE2LjExNjlDMzI5Ljc0OCAxNi4xNDk4IDMyOS43MTQgMTYuMTQ5OCAzMjkuNjQ5IDE2LjExNjlDMzI4Ljk1NSAxNy4zMzE1IDMyOC4xNjIgMTguNjQ0NSAzMjcuNTY3IDE5LjU2MzlDMzI3LjAwNiAyMC40NTAzIDMyNi4zNDUgMjEuNTAwNyAzMjUuNTg1IDIyLjYxNjlDMzIzLjk5OSAyMC41ODE3IDMyMi4zNDcgMTguMDIxMSAzMjEuMjU2IDE2LjExNjlDMzIxLjE5IDE2LjE0OTggMzIxLjE1NyAxNi4xMTY5IDMyMS4wOTEgMTYuMTE2OUMzMjAuNzI4IDE5LjQ5OCAzMjAuMjMyIDIzLjI3MzIgMzE5LjczNiAyNi44MTlDMzIwLjAwMSAyNi43MjA2IDMyMC4xNjYgMjYuNzIwNiAzMjAuMjk4IDI2LjcyMDZDMzIwLjQ5NiAyNi43MjA2IDMyMC42MjggMjYuNzUzNSAzMjAuODU5IDI2LjgxOUMzMjAuOTkyIDI0LjQ1NTMgMzIxLjI1NiAyMi4xMjQ0IDMyMS41NTMgMTkuNjYyM0MzMjIuODQyIDIxLjUzMzYgMzIzLjk2NSAyMy4xNDIyIDMyNS4yMjEgMjQuODQ5M0MzMjYuMjc4IDIzLjIwNzcgMzI3LjM2OCAyMS40MzQ4IDMyOC41NTggMTkuNjI5NEMzMjguODg4IDIyLjE1NyAzMjkuMTg2IDI0LjQ1NTMgMzI5LjM1MSAyNi44MTlDMzI5Ljc4IDI2LjcyMDYgMzMwLjA3OCAyNi43MjA2IDMzMC4yNzYgMjYuNzIwNkMzMzAuNTQgMjYuNzIwNiAzMzAuODA1IDI2LjcyMDYgMzMxLjIwMSAyNi44MTlWMjYuODE5Wk0zMzQuOTY4IDMyLjIwMjhDMzM0Ljk2OCAzMC4yOTg5IDMzMy40NDggMjkuNDQ1NCAzMzEuNTk4IDI5LjQ0NTRDMzMwLjc3MiAyOS40NDU0IDMyOS44OCAyOS41NDM1IDMyOS4yNTIgMjkuNTQzNUMzMjkuMDIxIDI5LjU0MzUgMzI4LjUyNSAyOS41NDM1IDMyNy45OTcgMjkuNDc3NkMzMjguMDMgMzAuNTI4MyAzMjguMDk2IDMxLjQxNDggMzI4LjA5NiAzMi40MzIyVjM2LjkyOTVDMzI4LjA5NiAzNy45MTQ4IDMyOC4wMyAzOC45OTggMzI3Ljk5NyA0MC4wMTU0QzMyOC40MjYgMzkuOTQ5NiAzMjguNzI0IDM5Ljk0OTYgMzI4LjkyMiAzOS45NDk2QzMyOS4xNTMgMzkuOTQ5NiAzMjkuNDg0IDM5Ljk0OTYgMzI5Ljg4IDQwLjAxNTRDMzI5LjgxNSAzOS4wMzE5IDMyOS43ODIgMzguMDQ2NSAzMjkuNzgxIDM3LjA2MDlWMzUuNDJDMzMwLjE0NSAzNS40NTI2IDMzMC41MDggMzUuNDUyNiAzMzAuOTA1IDM1LjQ1MjZDMzMyLjgyIDM1LjQ1MjYgMzM0Ljk2OCAzNC43MzA0IDMzNC45NjggMzIuMjAyOFYzMi4yMDI4Wk0zMjYuMDE0IDM2Ljg5NzNDMzI2LjAxNCAzNS4yNTU4IDMyNC45MjQgMzQuNTMzNiAzMjMuMDQgMzMuNzQ1NkMzMjEuNjg2IDMzLjE4OCAzMjAuOTkyIDMyLjY5NTYgMzIwLjk5MiAzMS42NDQ1QzMyMC45OTIgMzAuNjYgMzIxLjc1MiAzMC4wMzYyIDMyMy4wMDggMzAuMDM2MkMzMjMuODM0IDMwLjAzNjIgMzI0LjU2MSAzMC4zMzE1IDMyNS4yMjIgMzAuODU2OEMzMjUuMjg3IDMwLjQ5NTcgMzI1LjQ1MyAzMC4xMzQ3IDMyNS42NTEgMjkuODM5NEMzMjQuODU4IDI5LjQ3ODMgMzIzLjk5OSAyOS4zNDcgMzIzLjA3NCAyOS4zNDdDMzIwLjM2NSAyOS4zNDcgMzE5LjUwNSAzMC44OTA1IDMxOS41MDUgMzIuMjAzNUMzMTkuNTA1IDMzLjgxMTggMzIwLjI5OSAzNC41NjcyIDMyMi4zNDcgMzUuMzU1M0MzMjMuNjM2IDM1Ljg0NyAzMjQuMjk2IDM2LjQ3MTEgMzI0LjI5NiAzNy41NTQ0QzMyNC4yOTYgMzguNzAzNSAzMjMuNDM3IDM5LjQyNTcgMzIyLjI0OCAzOS40MjU3QzMyMS41NTQgMzkuNDI1NyAzMjAuMzY1IDM5LjA2NDYgMzE5LjUzOSAzOC4zMDk5QzMxOS41MDUgMzguNzM2MSAzMTkuNTA1IDM5LjEzMDQgMzE5LjM3MyAzOS40OTE1QzMxOS45MDIgMzkuNzU0NiAzMjEuMTI1IDQwLjE0NzkgMzIyLjIxNSA0MC4xNDc5QzMyNC45OSA0MC4xNDcxIDMyNi4wMTQgMzguNDM5NyAzMjYuMDE0IDM2Ljg5NzNWMzYuODk3M1pNMzc4LjE1MiAxNy45ODgyQzM3OC4xNTIgMTguOTczIDM3Ny40NTggMTkuNjYyMyAzNzYuNzY0IDIwLjIyMDJDMzc2LjMwMSAxOS41NjM5IDM3NS43NCAxOC42NzcxIDM3NS43NCAxNy45ODgyQzM3NS43NCAxNy4yMzMxIDM3Ni4yNjggMTYuODA2MSAzNzYuOTk1IDE2LjgwNjFDMzc3Ljk4NyAxNi44MDY1IDM3OC4xNTIgMTcuNjkyNiAzNzguMTUyIDE3Ljk4ODJWMTcuOTg4MlpNMzc4LjQ4MiAyNS4wMTMyQzM3OC4xMTkgMjUuMzQxNyAzNzcuMjYgMjUuOTY1NSAzNzYuNTMzIDI1Ljk2NTVDMzc1LjU3NCAyNS45NjU1IDM3NC40MTggMjUuMjc1OSAzNzQuNDE4IDIzLjc5ODZDMzc0LjQxOCAyMi40ODU1IDM3NS4yNzcgMjEuODk0NyAzNzUuODA2IDIxLjU2NjVDMzc3LjAyOCAyMy4yNDA2IDM3Ny4wOTUgMjMuMzM5MSAzNzguNDgyIDI1LjAxMzJaTTM3OS44MDQgMzIuMjAyOEMzNzkuODA0IDMzLjI1MzUgMzc5LjI3NSAzNC40MDI2IDM3Ny43NTUgMzQuNDAyNkMzNzcuMzI2IDM0LjQwMjYgMzc2LjkyOSAzNC40MDI2IDM3Ni41MzMgMzQuMzY5M1YzMC4yNjU2QzM3Ni45MjkgMzAuMTY3NiAzNzcuNDI1IDMwLjEzNDMgMzc3LjcyMiAzMC4xMzQzQzM3OS4wMTEgMzAuMTM0MyAzNzkuODA0IDMwLjg4OTggMzc5LjgwNCAzMi4yMDI4Wk0zMzguNjAyIDIyLjgxNDFDMzM3LjkwOSAyMi44NDY2IDMzNy41NDUgMjIuODQ2NiAzMzcuMDgyIDIyLjg0NjZDMzM2LjUyMSAyMi44NDY2IDMzNi4xOSAyMi44NDY2IDMzNS40NjMgMjIuODE0MUwzMzcuMDgyIDE5LjAwNkwzMzguNjAyIDIyLjgxNDFaTTMzMy4xNTEgMzIuMzAwOEMzMzMuMTUxIDMzLjgxMTEgMzMyLjI1OCAzNC43OTU5IDMzMC44MDUgMzQuNzk1OUMzMzAuNTA3IDM0Ljc5NTkgMzMwLjE3NyAzNC43OTU5IDMyOS43OCAzNC43MzAxVjMwLjIzMjdDMzMwLjI0MyAzMC4xNjY5IDMzMC42MzkgMzAuMTMzOSAzMzEuMDM2IDMwLjEzMzlDMzMyLjQyNCAzMC4xMzQzIDMzMy4xNTEgMzEuMDIxMSAzMzMuMTUxIDMyLjMwMDhaTTM2OS41MjggMjMuNjY3NkMzNjkuNTI4IDIyLjAyNiAzNjguNDM4IDIxLjMwMzkgMzY2LjU1NSAyMC41MTYyQzM2NS4yIDE5Ljk1ODMgMzY0LjUwNiAxOS40OTg4IDM2NC41MDYgMTguNDE1MUMzNjQuNTA2IDE3LjQ2MzIgMzY1LjI2NiAxNi44MDY1IDM2Ni41MjEgMTYuODA2NUMzNjcuMzQ4IDE2LjgwNjUgMzY4LjA3NSAxNy4xMDE3IDM2OC43MzUgMTcuNjI3NUMzNjguODAyIDE3LjI2NjQgMzY4Ljk2NyAxNi45MDQ5IDM2OS4xMzEgMTYuNjQyMkMzNjguMzcyIDE2LjI4MTEgMzY3LjQ3OSAxNi4xMTcyIDM2Ni41ODcgMTYuMTE3MkMzNjMuOTQ0IDE2LjExNzIgMzYyLjk4NiAxNy42NiAzNjIuOTg2IDE5LjAwNkMzNjIuOTg2IDIwLjU4MTcgMzYzLjgxMiAyMS4zMzY4IDM2NS44NjEgMjIuMTI0NEMzNjcuMTQ5IDIyLjYxNjkgMzY3LjgxIDIzLjI0MDYgMzY3LjgxIDI0LjM1NjhDMzY3LjgxIDI1LjQ3MyAzNjYuOTUxIDI2LjE5NTIgMzY1Ljc2MiAyNi4xOTUyQzM2NS4wMzUgMjYuMTk1MiAzNjMuODc5IDI1LjgzNDEgMzYzLjA1MiAyNS4xMTE5QzM2My4wMiAyNS41Mzg5IDM2Mi45ODYgMjUuOSAzNjIuODg3IDI2LjI2MTFDMzYzLjM4MyAyNi41MjM4IDM2NC42MDYgMjYuOTE3NCAzNjUuNzI5IDI2LjkxNzRDMzY4LjUwNCAyNi45MTc0IDM2OS41MjggMjUuMjQzMyAzNjkuNTI4IDIzLjY2NzZWMjMuNjY3NloiIGZpbGw9IiMwMzY1NTUiLz4NCjxwYXRoIGQ9Ik02NDAuNDE2IDIwLjU1NzNDNjM4LjY3MSAxOS44MzU0IDYzNy42MzEgMTkuNTU1MSA2MzYuNTk4IDE5LjU1NTFDNjM1LjUxNCAxOS41NTUxIDYzNC44MTkgMTkuOTE3IDYzNC44MTkgMjAuNDc2NUM2MzQuODE5IDIyLjE2NDUgNjQwLjk2MiAyMS42ODkzIDY0MC45NjIgMjUuNTkzNkM2NDAuOTYyIDI3Ljc0NjQgNjM5LjAyNCAyOC45OTc0IDYzNi4zMzIgMjguOTk3NEM2MzQuMjIgMjguOTk3NCA2MzMuMTggMjguNDg4IDYzMS45ODMgMjcuOTExNlYyNS40OTYyQzYzMy43MSAyNi41NjM1IDYzNC43NjggMjYuOTQwMSA2MzYuMTAxIDI2Ljk0MDFDNjM3LjI1NiAyNi45NDAxIDYzNy44NzkgMjYuNTYzNSA2MzcuODc5IDI1LjkwNjNDNjM3Ljg3OSAyNC4wNjg1IDYzMS43MzcgMjQuNzQxNSA2MzEuNzM3IDIwLjcyMTNDNjMxLjczNyAxOC43ODI3IDYzMy41MzQgMTcuNDk5IDYzNi4zMzIgMTcuNDk5QzYzNy42ODIgMTcuNDk5IDYzOC45MDEgMTcuNzYzNSA2NDAuNDE2IDE4LjM3MDdWMjAuNTU3M1pNNjQ5LjAxNiAyOC40ODQxQzY0Ny45OTIgMjguODMwNiA2NDcuMTI2IDI4Ljk5NTQgNjQ2LjI2MiAyOC45OTU0QzY0My40MDIgMjguOTk1NCA2NDEuNTUyIDI3LjQ0MjIgNjQxLjU1MiAyNS4wNzkyQzY0MS41NTIgMjIuNzU5NCA2NDMuNDczIDIxLjEyMDIgNjQ2LjE1NiAyMS4xMjAyQzY0Ni45ODUgMjEuMTIwMiA2NDguMDQ0IDIxLjMxODIgNjQ4Ljg5MSAyMS42MTIzVjIzLjM4ODFDNjQ4LjIyMSAyMy4wNTYyIDY0Ny40NDQgMjIuODc0MSA2NDYuODA5IDIyLjg3NDFDNjQ1LjI3MyAyMi44NzQxIDY0NC4yODYgMjMuNzM0MyA2NDQuMjg2IDI1LjA2MTlDNjQ0LjI4NiAyNi40MDggNjQ1LjI1NiAyNy4yOTQgNjQ2LjcyIDI3LjI5NEM2NDcuMzM3IDI3LjI5NCA2NDcuODg2IDI3LjE2MjMgNjQ5LjAxNiAyNi43NjhMNjQ5LjAxNiAyOC40ODQxWk02NzEuMzIgMjQuMjA5QzY3MS40MjUgMjMuMTU0OCA2NzIuMDgxIDIyLjU0NTcgNjczLjA4NyAyMi41NDU3QzY3NC4wNzYgMjIuNTQ1NyA2NzQuNzQ2IDIzLjE3MjEgNjc0Ljg1MiAyNC4yMDlINjcxLjMyWk02NzIuOTEgMjEuMTIyOUM2NzAuNCAyMS4xMjI5IDY2OC42MTQgMjIuNzc1NSA2NjguNjE0IDI1LjEwMTJDNjY4LjYxNCAyNy40NDQxIDY3MC40NzEgMjguOTk1NCA2NzMuMzM1IDI4Ljk5NTRDNjczLjk3IDI4Ljk5NTQgNjc1LjUwNCAyOC45OTU0IDY3Ni45NjYgMjcuOTg3VjI2LjUwNDJDNjc1Ljc2OSAyNy4yOTkzIDY3NC45NzcgMjcuNTczMSA2NzMuOTU1IDI3LjU3MzFDNjcyLjM0MSAyNy41NzMxIDY3MS4zNTQgMjYuNzk0OSA2NzEuMjY1IDI1LjQ2NjZINjc3LjExQzY3Ny4yMzIgMjIuNjkzOSA2NzUuMjc5IDIxLjEyMjkgNjcyLjkxIDIxLjEyMjlWMjEuMTIyOVpNNjc4LjA5OSAyOC44NTcySDY4MC42NTRWMjEuMjYyN0g2NzguMDk5VjI4Ljg1NzJaTTY4Ny43NjcgMjYuNzgxNUM2ODcuMjM0IDI3LjIyODEgNjg2Ljc5MiAyNy40MDcyIDY4Ni4yNDYgMjcuNDA3MkM2ODUuMDQzIDI3LjQwNzIgNjg0LjI4MSAyNi40ODM4IDY4NC4yODEgMjUuMTAwNEM2ODQuMjgxIDIzLjU4NDEgNjg1LjA0MyAyMi43MTAxIDY4Ni4zMzEgMjIuNzEwMUM2ODYuNzkyIDIyLjcxMDEgNjg3LjM5NCAyMi45MDggNjg3Ljc2NyAyMy4xNTU5VjI2Ljc4MTVaTTY4Ny43NjcgMTcuNjM5MVYyMS41OTU4QzY4Ny4wNzYgMjEuMjg0NyA2ODYuMzg4IDIxLjEyMDIgNjg1LjY0NCAyMS4xMjAyQzY4My4zMTMgMjEuMTIwMiA2ODEuNyAyMi43MjY2IDY4MS43IDI1LjA1MDdDNjgxLjcgMjcuMzI0OCA2ODMuMzEzIDI4Ljk5NzQgNjg1LjUgMjguOTk3NEM2ODYuMzY3IDI4Ljk5NzQgNjg3LjAzNyAyOC43ODU2IDY4Ny43NjcgMjguMjQzNVYyOC44NTQ5SDY5MC4zMjJWMTcuNjM5MUg2ODcuNzY3Wk02OTQuMTA1IDI0LjIwOUM2OTQuMjExIDIzLjE1NDggNjk0Ljg2NCAyMi41NDU3IDY5NS44NjggMjIuNTQ1N0M2OTYuODU4IDIyLjU0NTcgNjk3LjUzNSAyMy4xNzIxIDY5Ny42NDEgMjQuMjA5SDY5NC4xMDVaTTY5NS42OTQgMjEuMTIyOUM2OTMuMTg0IDIxLjEyMjkgNjkxLjQgMjIuNzc1NSA2OTEuNCAyNS4xMDEyQzY5MS40IDI3LjQ0NDEgNjkzLjI1OSAyOC45OTU0IDY5Ni4xMTkgMjguOTk1NEM2OTYuNzUzIDI4Ljk5NTQgNjk4LjI5IDI4Ljk5NTQgNjk5Ljc1NSAyNy45ODdWMjYuNTA0MkM2OTguNTU3IDI3LjI5OTMgNjk3Ljc2MyAyNy41NzMxIDY5Ni43MzYgMjcuNTczMUM2OTUuMTMxIDI3LjU3MzEgNjk0LjE0IDI2Ljc5NDkgNjk0LjA1MSAyNS40NjY2SDY5OS44OTRDNzAwLjAxNSAyMi42OTM5IDY5OC4wNjEgMjEuMTIyOSA2OTUuNjk0IDIxLjEyMjkiIGZpbGw9IiMwMDlFNEQiLz4NCjxwYXRoIGQ9Ik03MDMuNzIxIDIzLjQzNjhINzAzLjc1OEM3MDQuNTE3IDIxLjg1NjIgNzA1LjM2NiAyMS4xMTUgNzA2LjM1MiAyMS4xMTVDNzA2Ljg2MiAyMS4xMTUgNzA3LjMwMyAyMS4yOTY0IDcwOC4wNDQgMjEuODA3Nkw3MDcuMzQxIDIzLjkxMzNDNzA2LjY3IDIzLjUxODYgNzA2LjIyOSAyMy4zNTM1IDcwNS44MjMgMjMuMzUzNUM3MDQuODg2IDIzLjM1MzUgNzA0LjI4NiAyNC4xNzc1IDcwMy43MjEgMjUuNTcwNFYyOC44NDY2SDcwMS4xNjJWMjEuMjU0MUg3MDMuNzIxVjIzLjQzNjhaTTY4MC43NzUgMTguMDY3NEM2ODEuMDE1IDE4LjY1NzUgNjgwLjU4MyAxOS40ODA1IDY3OS44MTQgMTkuOTA0QzY3OS4wNDEgMjAuMzI3MSA2NzguMjI0IDIwLjE5MjggNjc3Ljk4NiAxOS42MDI3QzY3Ny43NDMgMTkuMDExNyA2NzguMTczIDE4LjE4NzcgNjc4Ljk0NSAxNy43NjY2QzY3OS43MTYgMTcuMzQxMSA2ODAuNTMzIDE3LjQ3NTkgNjgwLjc3NSAxOC4wNjc0WiIgZmlsbD0iIzAwOUU0RCIvPg0KPHBhdGggZD0iTTY1OC4yMiAyNC4wMjMxQzY1OC4yMiAyMS45NjUxIDY1Ni43MTkgMjEuMTIyNiA2NTUuMjM5IDIxLjEyMjZDNjU0LjIzMiAyMS4xMjI2IDY1My40MDQgMjEuNTE4NCA2NTIuNjY0IDIyLjM5MjFINjUyLjYyOVYxNy42MzkySDY1MC4wNzFWMjguODM1M0g2NTIuNjI5VjI0LjAyMzFDNjUzLjIyOCAyMy4yMTYxIDY1My43MzggMjIuODcxMSA2NTQuMzM4IDIyLjg3MTFDNjU1LjEzNCAyMi44NzExIDY1NS42NjIgMjMuMzk4NiA2NTUuNjYyIDI0LjUzMjlWMjcuMjAwOEM2NTYuNTIgMjYuNzg5NiA2NTcuMzkzIDI2LjUzNzQgNjU4LjIyIDI2LjQ0MzhWMjQuMDIzMVpNNjY0LjYzNiAyMS4xMTk5QzY2My41OTQgMjEuMTE5OSA2NjIuNzk5IDIxLjQ4MTEgNjYxLjk4NCAyMi4zNDkzVjIxLjI2MjRINjU5LjQyOFYyNi40MjM0QzY2MC4zMTMgMjYuNTA1OCA2NjEuNDQzIDI2Ljg4NDcgNjYxLjk4NCAyNy41MTA0VjIzLjk2MzRDNjYyLjY1NyAyMy4wMjMyIDY2My4xMzQgMjIuNzA5NyA2NjMuNzcgMjIuNzA5N0M2NjQuNDk0IDIyLjcwOTcgNjY1LjA0NSAyMy4xNTU2IDY2NS4wNDUgMjQuMjI2NFYyOC44MzcySDY2Ny42MDJWMjQuMDI4OUM2NjcuNjAyIDIxLjc5MjYgNjY1LjkwOCAyMS4xMTk5IDY2NC42MzYgMjEuMTE5OVYyMS4xMTk5Wk02NjkuMDE1IDMxLjAxODFINjY2LjA0M1YzMi45ODY0SDY2OC45MDlWMzMuODMxMkg2NjYuMDQzVjM1Ljg2MTlINjY5LjEwM1YzNi43MDU1SDY2NS4wNDZWMzAuMTc1Mkg2NjkuMDE1TDY2OS4wMTUgMzEuMDE4MVpNNjcxLjQ0MiAzNi43MDkzSDY3Mi4zNTJWMzAuMTczM0g2NzEuNDQyVjM2LjcwOTNaTTY3Ni44NTkgMzMuMDQ4NEM2NzcuNTA0IDMzLjA0ODQgNjc3LjkwNCAzMy40NjMxIDY3Ny45MzUgMzQuMTE0Mkg2NzUuNjE2QzY3NS43NDIgMzMuNDM0MiA2NzYuMTYxIDMzLjA0ODQgNjc2Ljg1OSAzMy4wNDg0Wk02NzUuNiAzNC42ODFINjc4Ljg0MkM2NzguODQyIDMzLjA4NjkgNjc4LjA2MiAzMi4zMTggNjc2LjgzOCAzMi4zMThDNjc1LjU2OSAzMi4zMTggNjc0LjY4OCAzMy4xOTI0IDY3NC42ODggMzQuNDk2OUM2NzQuNjg4IDM1LjY4OSA2NzUuNDg0IDM2Ljc4OTggNjc2LjkxNyAzNi43ODk4QzY3Ny42OTggMzYuNzg5OCA2NzguMjAzIDM2LjYyODEgNjc4Ljc2MyAzNi4yODJWMzUuNDU2QzY3OC4yMjIgMzUuNzg1NiA2NzcuNjk4IDM1Ljk3NTggNjc3LjE0NyAzNS45NzU4QzY3Ni4yNjUgMzUuOTc1OCA2NzUuNzQyIDM1LjUzNSA2NzUuNiAzNC42ODA2VjM0LjY4MVpNNjg0Ljc4NiAzMy41MzA5QzY4NC4yNjMgMzMuMTk2NiA2ODMuOTE0IDMzLjA5ODUgNjgzLjUxNSAzMy4wOTg1QzY4Mi42ODIgMzMuMDk4NSA2ODIuMTA1IDMzLjY5NDUgNjgyLjEwNSAzNC41NjdDNjgyLjEwNSAzNS40NTYgNjgyLjcxOSAzNS45OTE2IDY4My42NjggMzUuOTkxNkM2ODQuMDU4IDM1Ljk5MTYgNjg0LjQzIDM1Ljg5NzMgNjg0Ljg4OCAzNS43MDU5VjM2LjU0MjZDNjg0LjU4MiAzNi42Nzc0IDY4My45OTcgMzYuNzg5OCA2ODMuNTE1IDM2Ljc4OThDNjgyLjEzNiAzNi43ODk4IDY4MS4xOCAzNS45MDYyIDY4MS4xOCAzNC42NDMyQzY4MS4xOCAzMy4yMTc4IDY4Mi4wNTQgMzIuMzE4IDY4My40NTMgMzIuMzE4QzY4My45ODcgMzIuMzE4IDY4NC4zNDYgMzIuNDMzOSA2ODQuNzg3IDMyLjYxNDVMNjg0Ljc4NiAzMy41MzA5Wk02ODguOTM0IDMyLjQwMDRINjkwLjM5NVYzMy4xNjUxSDY4OC45MzRWMzUuMzc1MkM2ODguOTM0IDM1Ljg4MTEgNjg5LjMyNyAzNi4wMjc0IDY4OS41OTMgMzYuMDI3NEM2ODkuOTIyIDM2LjAyNzQgNjkwLjI2MiAzNS45MiA2OTAuNjMgMzUuNzA3OVYzNi41MDM3QzY5MC4zMSAzNi42Njc4IDY4OS44MiAzNi43ODk4IDY4OS41MTkgMzYuNzg5OEM2ODguNTI4IDM2Ljc4OTggNjg4LjAyNyAzNi4yMTYxIDY4OC4wMjcgMzUuNDM5MVYzMy4xNjUxSDY4Ny4yMjRWMzMuMDcwM0w2ODguOTM0IDMxLjUxMDJWMzIuNDAwNFpNNjkzLjg3NiAzMi40MDA0VjMzLjM5NjlINjkzLjg5NUM2OTQuMzU5IDMyLjYzNDUgNjk0LjggMzIuMzE4IDY5NS4yMyAzMi4zMThDNjk1LjYwMSAzMi4zMTggNjk1Ljk0NyAzMi40ODAxIDY5Ni4zMjkgMzIuODE2Nkw2OTUuODQ3IDMzLjU2NDRDNjk1LjU3IDMzLjMwOTEgNjk1LjIxMSAzMy4xMzMxIDY5NC45OTUgMzMuMTMzMUM2OTQuMzY4IDMzLjEzMzEgNjkzLjg3NiAzMy43MjY4IDY5My44NzYgMzQuNDYyNlYzNi43MDkzSDY5Mi45NjdWMzIuNDAwNEg2OTMuODc2Wk03MDUuNjU3IDMzLjUzMDlDNzA1LjEzMSAzMy4xOTY2IDcwNC43ODIgMzMuMDk4NSA3MDQuMzgxIDMzLjA5ODVDNzAzLjU0OSAzMy4wOTg1IDcwMi45NzcgMzMuNjk0NSA3MDIuOTc3IDM0LjU2N0M3MDIuOTc3IDM1LjQ1NiA3MDMuNTkyIDM1Ljk5MTYgNzA0LjUzNSAzNS45OTE2QzcwNC45MjUgMzUuOTkxNiA3MDUuMjk1IDM1Ljg5NzMgNzA1Ljc2IDM1LjcwNTlWMzYuNTQyNkM3MDUuNDQ3IDM2LjY3NzQgNzA0Ljg2MiAzNi43ODk4IDcwNC4zOCAzNi43ODk4QzcwMy4wMDQgMzYuNzg5OCA3MDIuMDQ0IDM1LjkwNjIgNzAyLjA0NCAzNC42NDMyQzcwMi4wNDQgMzMuMjE3OCA3MDIuOTIyIDMyLjMxOCA3MDQuMzIgMzIuMzE4QzcwNC44NTUgMzIuMzE4IDcwNS4yMTIgMzIuNDMzOSA3MDUuNjU3IDMyLjYxNDVMNzA1LjY1NyAzMy41MzA5Wk02OTguNzQyIDM2LjcwOTNINjk5LjY1MlYzMi40MDA4SDY5OC43NDJWMzYuNzA5M1oiIGZpbGw9IiMwMDlFNEQiLz4NCjxwYXRoIGQ9Ik02OTkuNjg0IDMwLjg1MjVDNjk5Ljc3MyAzMS4wNjA0IDY5OS42MTggMzEuMzU0NCA2OTkuMzQ0IDMxLjUwNDFDNjk5LjA2OCAzMS42NTQzIDY5OC43NzYgMzEuNjA2MiA2OTguNjkzIDMxLjM5NzhDNjk4LjYxIDMxLjE4NzQgNjk4Ljc2MSAzMC44OTU4IDY5OS4wMzggMzAuNzQ1NkM2OTkuMzExIDMwLjU5MzUgNjk5LjYwMSAzMC42NDIxIDY5OS42ODQgMzAuODUyNVYzMC44NTI1Wk02NTguOTQgMzEuMjAwOUM2NTguNzc5IDMxLjIwMDkgNjU4LjcxMSAzMS4yMjU1IDY1OC42NDYgMzEuMjkzOEM2NTguNjIgMzEuMzIwMyA2NTguNjEgMzEuMzQ3MiA2NTguNiAzMS40MDExTDY1Ny43ODQgMzQuMjg3QzY1Ny41OTMgMzUuMjk5MiA2NTYuMjU5IDM2LjMwOTkgNjU0LjUyMSAzNi4zMDk5SDY1Mi4xMDRMNjUyLjUyMyAzNC44MjdINjU0LjA3NkM2NTQuMjM0IDM0LjgyNyA2NTQuMzU4IDM0Ljc3MjEgNjU0LjQ2MiAzNC42NjQzQzY1NC41IDM0LjYyMjUgNjU0LjU1IDM0LjU1NyA2NTQuNTU2IDM0LjQ4OTZMNjU1LjIwMSAzMS45NjgxQzY1NS4zOTEgMzAuOTU1NSA2NTYuNTM4IDI5LjgzNjkgNjU4LjI3NiAyOS44MzY5SDY2MC43NTFMNjYwLjQzNSAzMS4yMDA5SDY1OC45NFpNNjU5LjQ5NyAzMi45NTk2TDY1OS43NzMgMzIuMDI1OUg2NjIuMjg4QzY2Mi41OTggMzAuNjcyIDY2Mi4zNTQgMjkuNDE3NyA2NjEuNDczIDI4LjU5NjFDNjU5LjY4OSAyNi45MzMyIDY1NS45NTcgMjcuNDk4MyA2NTMuMTc3IDI5Ljk3NzlDNjUyLjc0MyAzMC4zNjMgNjUyLjM3NiAzMC43NzkzIDY1Mi4wNDIgMzEuMjA0OEg2NTMuNTU2TDY1My4yMDQgMzIuMTQwNEg2NTEuMzk1QzY1MS4yMjIgMzIuNDM1NCA2NTEuMDYgMzIuNzI4MSA2NTAuOTM2IDMzLjAyNUg2NTMuMDgxTDY1Mi43MzcgMzMuOTYwN0g2NTAuNjNDNjUwLjI2OSAzNS4zOTAxIDY1MC40OTkgMzYuNzIzMyA2NTEuNDA2IDM3LjU2OTlDNjUzLjE2NyAzOS4yMTE2IDY1Ni44ODggMzguNjM0NiA2NTkuNjY3IDM2LjE1NTRDNjYwLjE1MyAzNS43MjQyIDY2MC41NTUgMzUuMjU4NyA2NjAuOTE4IDM0Ljc4MDhINjU4Ljk3M0w2NTkuMjY5IDMzLjg0NzFINjYxLjU0M0M2NjEuNzEgMzMuNTUwMSA2NjEuODYzIDMzLjI1NjUgNjYxLjk4MyAzMi45NTk2SDY1OS40OTdaIiBmaWxsPSIjMDA5RTREIi8+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNThfMTExKSI+DQo8cGF0aCBkPSJNNzc1LjA2OCA0MS4yMjc0Qzc2Ni4yODUgNDIuMDQ2MyA3NTcuMTMxIDQwLjc1NjQgNzU1Ljg0OCAzMy44MTlDNzU1LjIyMSAzMC4zOTkgNzU2Ljc2NSAyNi43NzI1IDc1OC44MSAyNC41MTg0VjIzLjMxNDhDNzU1LjEyNiAyNi41OCA3NTMuMTMgMzAuNzExNSA3NTQuMjggMzUuNTkyQzc1NS43NDggNDEuODUxOCA3NjMuNjAzIDQ1LjM5NjcgNzc1LjU5NSA0NC4yMTk1Qzc4MC4zNDIgNDMuNzU0NSA3ODYuNTUgNDIuMjEyIDc5MC44NjkgMzkuODE0NFYzNi40MTA5Qzc4Ni45NDkgMzguNzcxMyA3ODAuNDY4IDQwLjcyMTEgNzc1LjA2OCA0MS4yMjc0VjQxLjIyNzRaTTc5OC4yMDUgMjMuMjMzNUM3OTYuMTIyIDEyLjk1MzMgNzc2LjM3MyAxMi4zMDE2IDc2My42NDMgMjAuMTMzOFYyMC45OTg5Qzc3Ni4zNTkgMTQuMzkxNSA3OTQuMzk1IDE0LjQzMTcgNzk2LjAzNyAyMy45MDE2Qzc5Ni41ODkgMjcuMDM0MiA3OTQuODQzIDMwLjI5NzggNzkxLjcyMyAzMi4xNzdWMzQuNjM0MkM3OTUuNDc2IDMzLjI0MzIgNzk5LjMyNCAyOC43NDQyIDc5OC4yMDUgMjMuMjMzNVYyMy4yMzM1WiIgZmlsbD0iIzBFN0RDMiIvPg0KPHBhdGggZD0iTTc5MC4xNTkgMjEuNzM2OEg3ODcuODU2VjMyLjEwM0M3ODcuODU2IDMzLjMxNzkgNzg4LjQzNyAzNC4zNzQ0IDc5MC4xNTkgMzQuNTQzMlYyMS43MzY4Wk03NjIuNzM5IDI1LjUyMTdINzYwLjQzMkw3NjAuNDMxIDMyLjI5NDNDNzYwLjQzMSAzMy41MTM0IDc2MS4wMTMgMzQuNTY4OCA3NjIuNzM5IDM0LjczNDRWMjUuNTIxN1YyNS41MjE3Wk03NjAuNDMyIDIyLjA1MjFINzYyLjczMlYyNC4yNTg0SDc2MC40MzJWMjIuMDUyMVpNNzc2LjUzIDM0LjYyNzJDNzc0LjY2NiAzNC42MjcyIDc3My44NzcgMzMuMzE3NyA3NzMuODc3IDMyLjAyOFYyMy4wMzU1SDc3Ni4xNlYyNS41MjE3SDc3Ny44NzlWMjcuMzg1M0g3NzYuMTZWMzEuODg1NEM3NzYuMTYgMzIuNDExMyA3NzYuNDA3IDMyLjcwNDQgNzc2Ljk1IDMyLjcwNDRINzc3Ljg3OVYzNC42MjcyTDc3Ni41MyAzNC42MjcyVjM0LjYyNzJaTTc4MC43MzEgMzAuNzk2MUM3ODAuNzMxIDMxLjk3NjggNzgxLjQ2MSAzMi44NDQ2IDc4Mi43NTQgMzIuODQ0NkM3ODMuNzY2IDMyLjg0NDYgNzg0LjI2NiAzMi41NjA1IDc4NC44NSAzMS45NzY4TDc4Ni4yNjEgMzMuMzM0OUM3ODUuMzU3IDM0LjIzNzkgNzg0LjQwOSAzNC43ODcgNzgyLjczNyAzNC43ODdDNzgwLjU1MiAzNC43ODcgNzc4LjQ1OSAzMy41ODE5IDc3OC40NTkgMzAuMDY4NkM3NzguNDU5IDI3LjA2NTEgNzgwLjI4OCAyNS4zNjczIDc4Mi42ODYgMjUuMzY3M0M3ODUuMTI0IDI1LjM2NzMgNzg2LjUyNSAyNy4zNTQ5IDc4Ni41MjUgMjkuOTYzOVYzMC43OTYzSDc4MC43MzFWMzAuNzk2MVpNNzgyLjU4NiAyNy4yNzU2Qzc4MS44MDUgMjcuMjc1NiA3ODEuMjA0IDI3LjY4MjMgNzgwLjk1IDI4LjIzMDlDNzgwLjgwMiAyOC41NjA3IDc4MC43NDcgMjguODE3NyA3ODAuNzMxIDI5LjIyMjlINzg0LjI0OUM3ODQuMjA0IDI4LjIzMDkgNzgzLjc1OSAyNy4yNzU2IDc4Mi41ODYgMjcuMjc1NlpNNzY4LjkzOSAyNy4zODUzQzc2OS42MDggMjcuMzg1MyA3NjkuODg3IDI3LjcxOTggNzY5Ljg4NyAyOC4yNjI2VjM0LjY0MDZINzcyLjE3VjI4LjI0OTJDNzcyLjE3IDI2Ljk1NDIgNzcxLjQ4NyAyNS41MjQxIDc2OS40ODIgMjUuNTI0MUw3NjQuNzY2IDI1LjUyMTdWMzQuNjQwNkg3NjcuMDVWMjcuMzg1M0g3NjguOTM5VjI3LjM4NTNaTTc5Mi42MzcgMjMuNTg5MUM3OTIuMTI5IDIzLjU4OTEgNzkxLjcyNCAyMy4xNzU0IDc5MS43MjQgMjIuNjYyOUM3OTEuNzI0IDIyLjE1MjkgNzkyLjEyOSAyMS43MzY4IDc5Mi42MzcgMjEuNzM2OEM3OTMuMTQyIDIxLjczNjggNzkzLjU1NiAyMi4xNTI5IDc5My41NTYgMjIuNjYyOUM3OTMuNTU2IDIzLjE3NTQgNzkzLjE0MiAyMy41ODkxIDc5Mi42MzcgMjMuNTg5MVpNNzkyLjYzNyAyMS44OTEyQzc5Mi4yMTggMjEuODkxMiA3OTEuODgyIDIyLjI0MDcgNzkxLjg4MiAyMi42NjI5Qzc5MS44ODIgMjMuMDg3NiA3OTIuMjE4IDIzLjQzMDkgNzkyLjYzNyAyMy40MzA5Qzc5My4wNTUgMjMuNDMwOSA3OTMuNDAyIDIzLjA4NzYgNzkzLjQwMiAyMi42NjI5Qzc5My40MDIgMjIuMjQwNyA3OTMuMDU1IDIxLjg5MTIgNzkyLjYzNyAyMS44OTEyWk03OTMuMDQzIDIzLjIxOEg3OTIuODcyQzc5Mi44NjQgMjMuMjE3OSA3OTIuODU3IDIzLjIxNTcgNzkyLjg1MSAyMy4yMTE2Qzc5Mi44NDUgMjMuMjA3NSA3OTIuODQgMjMuMjAxNyA3OTIuODM3IDIzLjE5NDlMNzkyLjYwNSAyMi43OTdDNzkyLjU5OCAyMi43ODg1IDc5Mi41NzkgMjIuNzc4OCA3OTIuNTczIDIyLjc3ODhINzkyLjQ2N1YyMy4xNzU0Qzc5Mi40NjcgMjMuMTk1IDc5Mi40NTMgMjMuMjE4MSA3OTIuNDI4IDIzLjIxODFINzkyLjI3NEM3OTIuMjUxIDIzLjIxODEgNzkyLjIzNSAyMy4xOTUgNzkyLjIzNSAyMy4xNzU0VjIyLjE3NDlDNzkyLjIzNSAyMi4xMTY0IDc5Mi4yNTQgMjIuMDkyNCA3OTIuMzA1IDIyLjA4NUM3OTIuMzYxIDIyLjA3OSA3OTIuNTA1IDIyLjA3MTYgNzkyLjU4NiAyMi4wNzE2Qzc5Mi44NzIgMjIuMDcxNiA3OTMuMDM5IDIyLjE1NjYgNzkzLjAzOSAyMi40MjQ0VjIyLjQ0NEM3OTMuMDM5IDIyLjYwOTQgNzkyLjk1OSAyMi42OTk1IDc5Mi44MzMgMjIuNzM5N0w3OTMuMDc0IDIzLjE1NDdDNzkzLjA3OCAyMy4xNjQgNzkzLjA4IDIzLjE3MzkgNzkzLjA4IDIzLjE4NEM3OTMuMDggMjMuMTk5NyA3OTMuMDcyIDIzLjIxOCA3OTMuMDQzIDIzLjIxOFYyMy4yMThaTTc5Mi44MjEgMjIuNDI0NEM3OTIuODIxIDIyLjMxMjcgNzkyLjc1MiAyMi4yNzczIDc5Mi42MDUgMjIuMjc3M0g3OTIuNDU5VjIyLjU5NDdDNzkyLjQ4MiAyMi41OTQ3IDc5Mi41ODYgMjIuNTk5NiA3OTIuNjA1IDIyLjU5OTZDNzkyLjc1MiAyMi41OTk2IDc5Mi44MjEgMjIuNTUgNzkyLjgyMSAyMi40NDRWMjIuNDI0NFoiIGZpbGw9IiMwRTdEQzIiLz4NCjwvZz4NCjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMV81OF8xMTEpIj4NCjxwYXRoIGQ9Ik01MzMuNzczIDIwLjk5MTFDNTI5LjI2MyAyMC45OTExIDUyNS41OTkgMjQuNjU0NyA1MjUuNTk5IDI5LjE2NDRDNTI1LjU5OSAzMy42NzQxIDUyOS4yNjMgMzcuMzM3NyA1MzMuNzczIDM3LjMzNzdDNTM4LjI4MiAzNy4zMzc3IDU0MS45NDYgMzMuNjc0MSA1NDEuOTQ2IDI5LjE2NDRDNTQxLjk0NiAyNC42NTQ3IDUzOC4yODIgMjAuOTkxMSA1MzMuNzczIDIwLjk5MTFaTTUzMy43NzMgMzYuNTE4NkM1MjkuNzEzIDM2LjUxODYgNTI2LjQxOSAzMy4yMTUgNTI2LjQxOSAyOS4xNjQ0QzUyNi40MTkgMjUuMTEzNyA1MjkuNzEzIDIxLjgxMDIgNTMzLjc3MyAyMS44MTAyQzUzNy44MzIgMjEuODEwMiA1NDEuMTI3IDI1LjExMzcgNTQxLjEyNyAyOS4xNjQ0QzU0MS4xMjcgMzMuMjE1IDUzNy44MzIgMzYuNTE4NiA1MzMuNzczIDM2LjUxODZaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTUzNi42OSAyMy45MjUyQzUzNi42NjMgMjMuOTA3MiA1MzYuNjI3IDIzLjg5ODIgNTM2LjU5MSAyMy44OTgyQzUzNi40ODMgMjMuODk4MiA1MzYuNDAyIDIzLjk3OTIgNTM2LjQwMiAyNC4wODczVjI2LjY0MzdDNTM2LjQwMiAyNi43MzM3IDUzNi4zMyAyNi44MDU3IDUzNi4yNCAyNi44MDU3SDUzMS4yOUM1MzEuMiAyNi44MDU3IDUzMS4xMzcgMjYuNzMzNyA1MzEuMTI4IDI2LjY0MzdWMjQuMDg3M0M1MzEuMTI4IDI0LjA1MTMgNTMxLjExOSAyNC4wMjQyIDUzMS4xMDEgMjMuOTg4MkM1MzEuMDQ3IDIzLjg5ODIgNTMwLjkzIDIzLjg3MTIgNTMwLjgzOSAyMy45MjUyQzUyOS4wMTIgMjUuMDUwNCA1MjcuOTA1IDI3LjAwMzcgNTI3LjkwNSAyOS4xNjQxQzUyNy45MDUgMzEuMzI0NCA1MjkuMDEyIDMzLjI3NzcgNTMwLjg1NyAzNC40MDI5QzUzMC44ODUgMzQuNDIwOSA1MzAuOTIxIDM0LjQyOTkgNTMwLjk1NyAzNC40Mjk5QzUzMS4wNjUgMzQuNDI5OSA1MzEuMTQ2IDM0LjM0ODkgNTMxLjE0NiAzNC4yNDA5VjMxLjY4NDVDNTMxLjE0NiAzMS41OTQ0IDUzMS4yMTggMzEuNTMxNCA1MzEuMzA4IDMxLjUyMjRINTM2LjI1OEM1MzYuMzQ4IDMxLjUyMjQgNTM2LjQyIDMxLjU5NDQgNTM2LjQyIDMxLjY4NDVWMzQuMjQwOUM1MzYuNDIgMzQuMjc2OSA1MzYuNDI5IDM0LjMwMzkgNTM2LjQ0NyAzNC4zMzk5QzUzNi41MDEgMzQuNDI5OSA1MzYuNjE4IDM0LjQ1NjkgNTM2LjcwOCAzNC40MDI5QzUzOC41NTQgMzMuMjc3NyA1MzkuNjYxIDMxLjMyNDQgNTM5LjY2MSAyOS4xNjQxQzUzOS42NjEgMjcuMDAzNyA1MzguNTM2IDI1LjA1MDQgNTM2LjY5IDIzLjkyNTJWMjMuOTI1MlpNNTMwLjE5MSAzMi4zNjg2TDUzMC4yMTggMzIuNjc0Nkw1MzAuMDIgMzIuNDMxNkM1MjguNDk5IDMwLjUxNDMgNTI4LjQ5OSAyNy44MDQ4IDUzMC4wMiAyNS44ODc1TDUzMC4xOTEgMjUuNjcxNUw1MzAuMjE4IDI1LjY0NDVMNTMwLjE5MSAyNS45NTk2QzUzMC4xNjQgMjYuMjExNiA1MzAuMTU1IDI2LjQ3MjYgNTMwLjE1NSAyNi43MzM3VjMxLjU4NTRDNTMwLjE1NSAzMS44NDY1IDUzMC4xNzMgMzIuMTA3NSA1MzAuMTkxIDMyLjM2ODZaTTUzNi40MDIgMzAuMzg4M0M1MzYuNDAyIDMwLjQ3ODMgNTM2LjMzIDMwLjU1MDMgNTM2LjI0IDMwLjU1MDNINTMxLjI5QzUzMS4yIDMwLjU1MDMgNTMxLjEzNyAzMC40NzgzIDUzMS4xMjggMzAuMzg4M1YyNy45Mzk5QzUzMS4xMjggMjcuODQ5OSA1MzEuMiAyNy43Nzc4IDUzMS4yOSAyNy43Nzc4SDUzNi4yNEM1MzYuMzMgMjcuNzc3OCA1MzYuNDAyIDI3Ljg0OTkgNTM2LjQwMiAyNy45Mzk5VjMwLjM4ODNaTTUzNy41MTkgMzIuNDMxNkw1MzcuMzIxIDMyLjY3NDZMNTM3LjM0OCAzMi4zNjg2QzUzNy4zNzUgMzIuMTE2NSA1MzcuMzg0IDMxLjg1NTUgNTM3LjM4NCAzMS41OTQ0VjI2LjczMzdDNTM3LjM4NCAyNi40NzI2IDUzNy4zNzUgMjYuMjExNiA1MzcuMzQ4IDI1Ljk1OTZMNTM3LjMzOSAyNS44MjQ1TDUzNy4zMyAyNS42ODA1VjI1LjY0NDVMNTM3LjUxOSAyNS44ODc1QzUzOC4yNTcgMjYuODA1NyA1MzguNjYyIDI3Ljk3NTkgNTM4LjY2MiAyOS4xNTUxQzUzOC42NjIgMzAuMzM0MiA1MzguMjU3IDMxLjUxMzQgNTM3LjUxOSAzMi40MzE2VjMyLjQzMTZaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTU1NC4yNzYgMjkuMDIwMkM1NTQuMjMxIDI5LjAwMjIgNTU0LjE3NyAyOC45ODQyIDU1NC4xNzcgMjguOTMwMkM1NTQuMTc3IDI4Ljg5NDIgNTU0LjE5NSAyOC44NjcyIDU1NC4yMzEgMjguODQ5MkM1NTQuMjk0IDI4LjgyMjIgNTU1Ljg1MSAyOC4yNjQxIDU1NS44NTEgMjYuNDI3OEM1NTUuODUxIDI0LjM4NDUgNTU0LjQ3NCAyMy4xNjkzIDU1Mi4xNTIgMjMuMTY5M0g1NDYuNTI2VjM1LjE3NzJINTUyLjY2NUM1NTQuNDU2IDM1LjE3NzIgNTU2LjM4MiAzMy45MDggNTU2LjM4MiAzMS44NjQ2QzU1Ni4zODIgMjkuOTExMyA1NTQuOTA2IDI5LjIyNzIgNTU0LjI3NiAyOS4wMjAyVjI5LjAyMDJaTTU0OS4zNjEgMjUuNjI2N0M1NDkuMzYxIDI1LjU4MTcgNTQ5LjM5NyAyNS41NDU2IDU0OS40NDIgMjUuNTQ1Nkg1NTEuNjc1QzU1Mi40MTMgMjUuNTQ1NiA1NTIuOTE3IDI2LjA0MDcgNTUyLjkxNyAyNi43Nzg4QzU1Mi45MTcgMjcuMzU0OSA1NTIuNDY3IDI3Ljk3NiA1NTEuNjIxIDI3Ljk3Nkg1NDkuNDQyQzU0OS4zOTcgMjcuOTc2IDU0OS4zNjEgMjcuOTQgNTQ5LjM2MSAyNy44OTVWMjUuNjI2N1pNNTUxLjY3NSAzMi44MDk4SDU0OS40NDJDNTQ5LjM5NyAzMi44MDk4IDU0OS4zNjEgMzIuNzczOCA1NDkuMzYxIDMyLjcyODhWMzAuMzM0NEM1NDkuMzYxIDMwLjI4OTQgNTQ5LjM5NyAzMC4yNTM0IDU0OS40NDIgMzAuMjUzNEg1NTEuNjIxQzU1Mi42OTIgMzAuMjUzNCA1NTMuMzA0IDMwLjcxMjUgNTUzLjMwNCAzMS41MjI2QzU1My4zMDQgMzIuMzU5NyA1NTIuNzM3IDMyLjgwOTggNTUxLjY3NSAzMi44MDk4VjMyLjgwOThaTTU3NS4zODQgMjcuOTQ5TDU3NC45NTIgMjcuODU5QzU3My45OCAyNy42NTIgNTczLjAzNSAyNy4zOTA5IDU3My4wMzUgMjYuNTUzOEM1NzMuMDM1IDI1LjcxNjcgNTczLjgxOCAyNS4zMzg2IDU3NC41OTIgMjUuMzM4NkM1NzUuNTAxIDI1LjMzODYgNTc2LjQwMSAyNS43NDM3IDU3Ny4wODYgMjYuNDQ1OEw1NzguODY4IDI0LjY4MTVDNTc4LjEwMyAyMy44MzU0IDU3Ni43NDQgMjIuODYzMiA1NzQuNTQ3IDIyLjg2MzJDNTcxLjkwMSAyMi44NjMyIDU3MC4xMTggMjQuMzY2NSA1NzAuMTE4IDI2LjYwNzhDNTcwLjExOCAyOC45NzUyIDU3MS45ODIgMjkuODY2MyA1NzMuNTQ4IDMwLjE5OTRMNTczLjk3MSAzMC4yODk0QzU3NS40OTIgMzAuNjEzNSA1NzYuMjEyIDMwLjg1NjUgNTc2LjIxMiAzMS43MjA2QzU3Ni4yMTIgMzIuNDk0NyA1NzUuNTE5IDMzLjAwNzggNTc0LjQ5MyAzMy4wMDc4QzU3My4yODcgMzMuMDA3OCA1NzIuMjE2IDMyLjQ3NjcgNTcxLjQwNiAzMS40Nzc2TDU2OS41NzggMzMuMjY4OUM1NzAuNTUxIDM0LjQyMTEgNTcxLjgzOCAzNS40NjUyIDU3NC41MjkgMzUuNDY1MkM1NzYuODI1IDM1LjQ2NTIgNTc5LjE1NiAzNC4xMzMgNTc5LjE1NiAzMS41NzY2QzU3OS4xNDcgMjguOTU3MiA1NzcuMzY1IDI4LjM2MzEgNTc1LjM4NCAyNy45NDlWMjcuOTQ5Wk01OTkuMTAzIDIzLjE2OTNWMjcuNTYyQzU5OS4xMDMgMjcuNjA3IDU5OS4wNjcgMjcuNjQzIDU5OS4wMjIgMjcuNjQzSDU5NS4zMzFDNTk1LjI4NiAyNy42NDMgNTk1LjI1IDI3LjYwNyA1OTUuMjUgMjcuNTYyVjIzLjE2OTNINTkyLjIyNlYzNS4xNzcySDU5NS4yNVYzMC40NjA0QzU5NS4yNSAzMC40MTU0IDU5NS4yODYgMzAuMzc5NCA1OTUuMzMxIDMwLjM3OTRINTk5LjAyMkM1OTkuMDY3IDMwLjM3OTQgNTk5LjEwMyAzMC40MTU0IDU5OS4xMDMgMzAuNDYwNFYzNS4xNzcySDYwMi4xNDZWMjMuMTY5M0g1OTkuMTAzWk01ODYuMTQxIDMyLjcxOThDNTg0Ljc4MiAzMi43MTk4IDU4My4zMTUgMzEuNTg1NiA1ODMuMzE1IDI5LjA5MjJDNTgzLjMxNSAyNi44MTQ4IDU4NC42OTIgMjUuNjI2NyA1ODYuMDUxIDI1LjYyNjdDNTg3LjA0MSAyNS42MjY3IDU4Ny43MzQgMjYuMDQwNyA1ODguMjgzIDI2Ljk1ODlMNTkwLjYwNiAyNS40MTk2QzU4OS40MTggMjMuNjczMyA1ODguMDA0IDIyLjg4MTIgNTg2LjAzMyAyMi44ODEyQzU4Mi4xNzEgMjIuODgxMiA1ODAuNDQzIDI2LjAwNDcgNTgwLjQ0MyAyOS4wOTIyQzU4MC40NDMgMzIuODQ1OCA1ODIuNzI5IDM1LjQ2NTIgNTg1Ljk5NyAzNS40NjUyQzU4OC40MjcgMzUuNDY1MiA1ODkuNTM1IDM0LjU3NDEgNTkwLjY5NiAzMi45MjY4TDU4OC4zNTUgMzEuMzUxNkM1ODcuODMzIDMyLjE5NzcgNTg3LjI2NiAzMi43MTk4IDU4Ni4xNDEgMzIuNzE5OFpNNTYzLjE3OCAyMi44NjMyQzU1OS44NzUgMjIuODYzMiA1NTcuNjYxIDI1LjM5MjYgNTU3LjY2MSAyOS4xNjQyQzU1Ny42NjEgMzIuOTM1OCA1NTkuODc1IDM1LjQ2NTIgNTYzLjE3OCAzNS40NjUyQzU2Ni40ODIgMzUuNDY1MiA1NjguNjk2IDMyLjkzNTggNTY4LjY5NiAyOS4xNjQyQzU2OC42OTYgMjUuMzkyNiA1NjYuNDgyIDIyLjg2MzIgNTYzLjE3OCAyMi44NjMyVjIyLjg2MzJaTTU2My4xNzggMzIuNzE5OEM1NjEuNTU4IDMyLjcxOTggNTYwLjUxNCAzMS4zMjQ2IDU2MC41MTQgMjkuMTY0MkM1NjAuNTE0IDI3LjAxMjkgNTYxLjU1OCAyNS42MjY3IDU2My4xNzggMjUuNjI2N0M1NjQuODA4IDI1LjYyNjcgNTY1Ljg2MSAyNy4wMTI5IDU2NS44NjEgMjkuMTY0MkM1NjUuODYxIDMxLjMyNDYgNTY0LjgwOCAzMi43MTk4IDU2My4xNzggMzIuNzE5OFoiIGZpbGw9IiNGODAwMDAiLz4NCjwvZz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTQ2LjM0NCAyMi4xODExQzE0Ny41OTUgMjIuMjg1NCAxNDguODQ1IDIxLjU1NTMgMTQ5LjYyNyAyMC42Mjk4QzE1MC4zOTUgMTkuNjc4MSAxNTAuOTAzIDE4LjQwMDUgMTUwLjc3MyAxNy4wOTY5QzE0OS42NjYgMTcuMTQ5MSAxNDguMjk4IDE3LjgyNjkgMTQ3LjUxNyAxOC43Nzg2QzE0Ni44IDE5LjU5OTkgMTQ2LjE4OCAyMC45Mjk2IDE0Ni4zNDQgMjIuMTgxMVpNMTQ3Ljg0MSAyMy4wNzk3QzE0OC42NTMgMjIuNzYwNiAxNDkuNjU4IDIyLjM2NTYgMTUwLjc2IDIyLjQyOTFDMTUxLjQ2MyAyMi40ODEyIDE1My40OTUgMjIuNjg5OCAxNTQuNzk4IDI0LjYxOTJDMTU0Ljc5MiAyNC42MjM3IDE1NC43NzggMjQuNjMyMyAxNTQuNzU5IDI0LjY0NUMxNTQuNDM2IDI0Ljg1NDggMTUyLjM5IDI2LjE4NzEgMTUyLjQxNCAyOC44MTY5QzE1Mi40MzkgMzEuOTQ5OSAxNTQuOTg4IDMzLjExODMgMTU1LjMyMiAzMy4yNzExQzE1NS4zNDQgMzMuMjgxMSAxNTUuMzU2IDMzLjI4NjcgMTU1LjM1OCAzMy4yODgzQzE1NS4zNTYgMzMuMjkyNiAxNTUuMzU0IDMzLjMwMSAxNTUuMzUgMzMuMzEzM0MxNTUuMjgzIDMzLjUyODggMTU0Ljg0NSAzNC45NDg5IDE1My44NDcgMzYuNDA0QzE1Mi45MjIgMzcuNzU5OCAxNTEuOTcxIDM5LjA4OTUgMTUwLjQ2IDM5LjExNTZDMTQ5Ljc0OSAzOS4xMjgzIDE0OS4yNyAzOC45MjExIDE0OC43NzIgMzguNzA1NEMxNDguMjQ3IDM4LjQ3ODUgMTQ3LjcwMSAzOC4yNDIyIDE0Ni44NCAzOC4yNDIyQzE0NS45NDcgMzguMjQyMiAxNDUuMzc2IDM4LjQ4NDggMTQ0LjgyNiAzOC43MTg0QzE0NC4zNDggMzguOTIxNCAxNDMuODg3IDM5LjExNzQgMTQzLjI0NSAzOS4xNDE3QzE0MS43ODYgMzkuMTkzOCAxNDAuNjc5IDM3LjcwNzcgMTM5Ljc1NCAzNi4zNTE5QzEzNy44NjYgMzMuNjE0MyAxMzYuNDIgMjguNjM0NCAxMzguMzc0IDI1LjI3MUMxMzkuMzI1IDIzLjU4OTMgMTQxLjA1NyAyMi41MzM0IDE0Mi45MTkgMjIuNTA3M0MxNDMuNzMyIDIyLjQ5MjUgMTQ0LjUwNyAyMi44MDA2IDE0NS4xODQgMjMuMDcwMUMxNDUuNzAyIDIzLjI3NTggMTQ2LjE2MiAyMy40NTg5IDE0Ni41NCAyMy40NTg5QzE0Ni44NzcgMjMuNDU4OSAxNDcuMzE5IDIzLjI4NTEgMTQ3Ljg0MSAyMy4wNzk3WiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik0zNi44NTg3IDM3LjUyNDFIMzEuOTg3NEwzNS4wMzQyIDE5LjY2NjhIMzkuOTA1MkwzNi44NTg3IDM3LjUyNDFaIiBmaWxsPSIjMDA1NzlGIi8+DQo8cGF0aCBkPSJNNTQuNTE1NyAyMC4xMDQxQzUzLjU1NDkgMTkuNzQyOCA1Mi4wMzA5IDE5LjM0MzggNTAuMTQ2NiAxOS4zNDM4QzQ1LjMzNjEgMTkuMzQzOCA0MS45NDg2IDIxLjc3NTMgNDEuOTI3OCAyNS4yNTE2QzQxLjg4NzggMjcuODE2NSA0NC4zNTMxIDI5LjI0MSA0Ni4xOTcgMzAuMDk2MkM0OC4wODE2IDMwLjk3MDEgNDguNzIyMyAzMS41NDA1IDQ4LjcyMjMgMzIuMzE5NEM0OC43MDMxIDMzLjUxNTcgNDcuMTk5NCAzNC4wNjcyIDQ1Ljc5NjkgMzQuMDY3MkM0My44NTIxIDM0LjA2NzIgNDIuODEgMzMuNzgyOSA0MS4yMjY0IDMzLjExNzNMNDAuNTg1IDMyLjgzMkwzOS45MDMzIDM2Ljg0MDZDNDEuMDQ1OCAzNy4zMzM5IDQzLjE1MDcgMzcuNzcxNyA0NS4zMzYxIDM3Ljc5MDlDNTAuNDQ3MyAzNy43OTA5IDUzLjc3NDkgMzUuMzk3MSA1My44MTQzIDMxLjY5MjVDNTMuODMzOCAyOS42NTk3IDUyLjUzMiAyOC4xMDIgNDkuNzI1NCAyNi44MjkyQzQ4LjAyMTcgMjYuMDEyMSA0Ni45NzgzIDI1LjQ2MTIgNDYuOTc4MyAyNC42MjUyQzQ2Ljk5ODMgMjMuODY1MiA0Ny44NjA4IDIzLjA4NjggNDkuNzg0IDIzLjA4NjhDNTEuMzY3NyAyMy4wNDg2IDUyLjUzMTIgMjMuNDA5NCA1My40MTI2IDIzLjc3MDVMNTMuODUzMiAyMy45NjAxTDU0LjUxNTcgMjAuMTA0MVoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik02MC45OTI0IDMxLjE5NzlDNjEuMzkzNiAzMC4xNzIgNjIuOTM3MiAyNi4yMDE2IDYyLjkzNzIgMjYuMjAxNkM2Mi45MTcgMjYuMjM5NyA2My4zMzc2IDI1LjE1NjggNjMuNTc4MSAyNC40OTE5TDYzLjkxODYgMjYuMDMwNkM2My45MTg2IDI2LjAzMDYgNjQuODQxIDMwLjMwNTEgNjUuMDQxNCAzMS4xOTc5QzY0LjI4IDMxLjE5NzkgNjEuOTU0NiAzMS4xOTc5IDYwLjk5MjQgMzEuMTk3OVpNNjcuMDA1NCAxOS42NjY4SDYzLjIzNzRDNjIuMDc1NSAxOS42NjY4IDYxLjE5MjcgMTkuOTg5NSA2MC42OTE0IDIxLjE0ODRMNTMuNDU1OCAzNy41MjM5SDU4LjU2NzFDNTguNTY3MSAzNy41MjM5IDU5LjQwODUgMzUuMzE5OSA1OS41ODk0IDM0Ljg0NTJDNjAuMTUwMSAzNC44NDUyIDY1LjEyMjMgMzQuODQ1MiA2NS44NDM3IDM0Ljg0NTJDNjUuOTgzNSAzNS40NzIxIDY2LjQyNDkgMzcuNTIzOSA2Ni40MjQ5IDM3LjUyMzlINzAuOTM1Mkw2Ny4wMDU0IDE5LjY2NjhWMTkuNjY2OFoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik0yNy45MTggMTkuNjY2OEwyMy4xNDc1IDMxLjg0MzhMMjIuNjI2MiAyOS4zNzQxQzIxLjc0NDIgMjYuNTI0NSAxOC45NzgxIDIzLjQyODQgMTUuODkxNCAyMS44ODlMMjAuMjYxIDM3LjUwNTJIMjUuNDEyMkwzMy4wNjkgMTkuNjY2OEgyNy45MThWMTkuNjY2OFoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik0xOC43MTg0IDE5LjY2NjhIMTAuODgxMUwxMC44MDA5IDIwLjAyNzZDMTYuOTE0NSAyMS41MDk1IDIwLjk2MzUgMjUuMDgxNSAyMi42MjcgMjkuMzc0OUwyMC45MjMyIDIxLjE2NzlDMjAuNjQyNyAyMC4wMjc0IDE5Ljc4MDcgMTkuNzA0NCAxOC43MTg0IDE5LjY2NjhaIiBmaWxsPSIjRkFBNjFBIi8+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDJfNThfMTExKSI+DQo8cGF0aCBkPSJNMjIxLjE1OCAxNy40OTlWMTguOTM1NkgyMzEuMzA2VjE3LjQ5OUgyMjEuMTU4Wk0yMzIuNzQ0IDE3LjQ5OVYxOC45MzU2SDI0Ny4yMDZDMjQ3LjIwNiAxOC45MzU2IDI0NS43MjkgMTcuNDk5IDI0My43NzMgMTcuNDk5SDIzMi43NDRaTTI1MC4wNDMgMTcuNDk5VjE4LjkzNTZIMjU4Ljc5M0wyNTguMjczIDE3LjQ5OUgyNTAuMDQzWk0yNjUuMDY1IDE3LjQ5OUwyNjQuNTQ2IDE4LjkzNTZIMjczLjIxNlYxNy40OTlIMjY1LjA2NVpNMjIxLjE1OCAyMC4yOTI5VjIxLjcyOTZIMjMxLjMwNlYyMC4yOTI5SDIyMS4xNThaTTIzMi43NDQgMjAuMjk1VjIxLjcyOTdIMjQ4Ljg4NEMyNDguODg0IDIxLjcyOTcgMjQ4LjY5NiAyMC42MjM5IDI0OC4zNjcgMjAuMjk1SDIzMi43NDRaTTI1MC4wNDMgMjAuMjk1VjIxLjcyOTdIMjU5Ljc1MkwyNTkuMjcxIDIwLjI5NUgyNTAuMDQzWk0yNjQuMDI3IDIwLjI5NUwyNjMuNTQ2IDIxLjcyOTdIMjczLjIxNlYyMC4yOTVIMjY0LjAyN1YyMC4yOTVaTTIyNC4wNzQgMjMuMDg2OVYyNC41MjU3SDIyOC40NjlWMjMuMDg2OUgyMjQuMDc0VjIzLjA4NjlaTTIzNS42NjEgMjMuMDg2OVYyNC41MjU3SDI0MC4wNTZWMjMuMDg2OUgyMzUuNjYxVjIzLjA4NjlaTTI0NC4zMzEgMjMuMDg2OVYyNC41MjU3SDI0OC43MjZDMjQ4LjcyNiAyNC41MjU3IDI0OS4wMDUgMjMuNzY1OSAyNDkuMDA1IDIzLjA4NjlIMjQ0LjMzMVYyMy4wODY5Wk0yNTIuOTYgMjMuMDg2OVYyNC41MjU3SDI2MC43NTJMMjYwLjIzMiAyMy4wODY5SDI1Mi45NlYyMy4wODY5Wk0yNjMuMDY5IDIzLjA4NjlMMjYyLjU0OCAyNC41MjU3SDI3MC4zNzlWMjMuMDg2OUgyNjMuMDY5VjIzLjA4NjlaTTIyNC4wNzQgMjUuODgzVjI3LjMxOTdIMjI4LjQ2OVYyNS44ODNIMjI0LjA3NFYyNS44ODNaTTIzNS42NjEgMjUuODgzVjI3LjMxOTdIMjQ2Ljg4N0MyNDYuODg3IDI3LjMxOTcgMjQ3LjgyNiAyNi41ODI1IDI0OC4xMjUgMjUuODgzSDIzNS42NjFaTTI1Mi45NiAyNS44ODNWMjcuMzE5N0gyNTcuMzU1VjI2LjUyTDI1Ny42MzQgMjcuMzE5N0gyNjUuNjg0TDI2NS45ODQgMjYuNTJWMjcuMzE5N0gyNzAuMzc5VjI1Ljg4M0gyNjIuMTI5TDI2MS42OTEgMjcuMDk5OUwyNjEuMjUxIDI1Ljg4M0gyNTIuOTZaTTIyNC4wNzQgMjguNjc3VjMwLjExMzdIMjI4LjQ2OVYyOC42NzdIMjI0LjA3NFpNMjM1LjY2MSAyOC42NzdWMzAuMTEzN0gyNDguMTI1QzI0Ny44MjYgMjkuNDE2NSAyNDYuODg3IDI4LjY3NyAyNDYuODg3IDI4LjY3N0gyMzUuNjYxWk0yNTIuOTYgMjguNjc3VjMwLjExMzdIMjU3LjM1NVYyOC42NzdIMjUyLjk2Wk0yNTguMTUzIDI4LjY3N0wyNTguNjg1IDMwLjExMzdIMjY0LjcyMUwyNjUuMjI2IDI4LjY3N0gyNTguMTUzWk0yNjUuOTg0IDI4LjY3N1YzMC4xMTM3SDI3MC4zNzlWMjguNjc3SDI2NS45ODRaTTIyNC4wNzQgMzEuNDcxVjMyLjkwNzZIMjI4LjQ2OVYzMS40NzFIMjI0LjA3NFpNMjM1LjY2MSAzMS40NzFWMzIuOTA3NkgyNDAuMDU2VjMxLjQ3MUgyMzUuNjYxWk0yNDQuMzMxIDMxLjQ3MVYzMi45MDc2SDI0OS4wMDVDMjQ5LjAwNSAzMi4yMjk2IDI0OC43MjYgMzEuNDcxIDI0OC43MjYgMzEuNDcxSDI0NC4zMzFWMzEuNDcxWk0yNTIuOTYgMzEuNDcxVjMyLjkwNzZIMjU3LjM1NVYzMS40NzFIMjUyLjk2Wk0yNTkuMTUxIDMxLjQ3MUwyNTkuNjY2IDMyLjkwNzZIMjYzLjcxM0wyNjQuMjMyIDMxLjQ3MUgyNTkuMTUxWk0yNjUuOTg0IDMxLjQ3MVYzMi45MDc2SDI3MC4zNzlWMzEuNDcxSDI2NS45ODRaTTIyMS4yMzcgMzQuMjY1VjM1LjcwMzdIMjMxLjM4NlYzNC4yNjVIMjIxLjIzN1pNMjMyLjc0NCAzNC4yNjVWMzUuNzAzN0gyNDguMzY3QzI0OC42OTYgMzUuMzc0MyAyNDguODg0IDM0LjI2NSAyNDguODg0IDM0LjI2NUgyMzIuNzQ0VjM0LjI2NVpNMjUwLjEyMyAzNC4yNjVWMzUuNzAzN0gyNTcuMzU1VjM0LjI2NUgyNTAuMTIzWk0yNjAuMTUxIDM0LjI2NUwyNjAuNjggMzUuNzAzN0gyNjIuNzM5TDI2My4yMzYgMzQuMjY1SDI2MC4xNTFaTTI2NS45ODQgMzQuMjY1VjM1LjcwMzdIMjczLjI5NVYzNC4yNjVIMjY1Ljk4NFpNMjIxLjIzNyAzNy4wNjFWMzguNDk3N0gyMzEuMzg2VjM3LjA2MUgyMjEuMjM3Wk0yMzIuNzQ0IDM3LjA2MVYzOC40OTU2SDI0My43NzNDMjQ1LjcyOSAzOC40OTU2IDI0Ny4yMDYgMzcuMDYxIDI0Ny4yMDYgMzcuMDYxSDIzMi43NDRaTTI1MC4xMjMgMzcuMDYxVjM4LjQ5NzdIMjU3LjM1NVYzNy4wNjFIMjUwLjEyM1pNMjYxLjE1NSAzNy4wNjFMMjYxLjY2NCAzOC40OTM2TDI2MS43NTIgMzguNDk1NkwyNjIuMjY5IDM3LjA2MUgyNjEuMTU1VjM3LjA2MVpNMjY1Ljk4NCAzNy4wNjFWMzguNDk3N0gyNzMuMjk1VjM3LjA2MUgyNjUuOTg0WiIgZmlsbD0iIzFGNzBDMSIvPg0KPC9nPg0KPGRlZnM+DQo8Y2xpcFBhdGggaWQ9ImNsaXAwXzU4XzExMSI+DQo8cmVjdCB3aWR0aD0iNDQuNDQ3MyIgaGVpZ2h0PSIyOS42MzE1IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzUzLjk1NSAxNC44MTU1KSIvPg0KPC9jbGlwUGF0aD4NCjxjbGlwUGF0aCBpZD0iY2xpcDFfNThfMTExIj4NCjxyZWN0IHdpZHRoPSI3Ni41NDgxIiBoZWlnaHQ9IjE2LjM1MDciIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MjUuNTk5IDIwLjk4ODkpIi8+DQo8L2NsaXBQYXRoPg0KPGNsaXBQYXRoIGlkPSJjbGlwMl81OF8xMTEiPg0KPHJlY3Qgd2lkdGg9IjUyLjEzNzIiIGhlaWdodD0iMjAuOTk4NyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyMS4xNTggMTcuNDk5KSIvPg0KPC9jbGlwUGF0aD4NCjwvZGVmcz4NCjwvc3ZnPg0K\" style=\"\n width: 742.5px;\n position: relative;\n top: 107px;\n left: 32px;\n \">\n <a href=" + accountURL + " style=\"\n float: left;\n border-radius: 56px;\n background: #0D6EFD;\n padding-top: 8px;\n width: 280px;\n height: 38px;\n text-align: center;\n position: relative;\n top: 127px;\n left: 274px;\n font-size: 16px;\n color: white;\n text-decoration: none;\n letter-spacing: 0.02em;\n \">Claim your FREE account</a>\n <div style=\"\n font-size: 14px;\n position: relative;\n top: 180px;\n left: 19px;\n letter-spacing: 0.02em;\n font-weight: 500;\n line-height: 125%;\n\">have a Syncfusion account? <a href=\"https://www.syncfusion.com/account/login?ReturnUrl=/account/login\" style=\"text-decoration: none;\ncolor: #0D6EFD;\nfont-weight: 500;\">Sign In</a></div>\n </div>\n </div>";
7004
+ if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {
7005
+ var errorBackground = createElement('div', {
7006
+ innerHTML: bannerTemplate
7007
+ });
7008
+ document.body.appendChild(errorBackground);
7009
+ }
7010
+ };
6971
7011
 
6972
7012
  var __extends$1 = (undefined && undefined.__extends) || (function () {
6973
7013
  var extendStatics = function (d, b) {
@@ -6991,6 +7031,12 @@ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators,
6991
7031
  var componentCount = 0;
6992
7032
  var lastPageID;
6993
7033
  var lastHistoryLen = 0;
7034
+ // Decalre the static variable to count the instance
7035
+ var instancecount = 0;
7036
+ // Decalre the static variable to find if control limit exceed or not
7037
+ var isvalid = true;
7038
+ // We have added styles to inline type so here declare the static variable to detect if banner is added or not
7039
+ var isBannerAdded = false;
6994
7040
  var versionBasedStatePersistence = false;
6995
7041
  /**
6996
7042
  * To enable or disable version based statePersistence functionality for all components globally.
@@ -7033,7 +7079,15 @@ var Component = /** @__PURE__ @class */ (function (_super) {
7033
7079
  _this.localObserver = new Observer(_this);
7034
7080
  // tslint:disable-next-line:no-function-constructor-with-string-args
7035
7081
  onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);
7036
- validateLicense();
7082
+ // Based on the considered control list we have count the instance
7083
+ if (!validateLicense()) {
7084
+ if (componentList.indexOf(_this.getModuleName()) !== -1) {
7085
+ instancecount = instancecount + 1;
7086
+ if (instancecount > 5) {
7087
+ isvalid = false;
7088
+ }
7089
+ }
7090
+ }
7037
7091
  if (!isUndefined(selector)) {
7038
7092
  _this.appendTo();
7039
7093
  }
@@ -7144,6 +7198,11 @@ var Component = /** @__PURE__ @class */ (function (_super) {
7144
7198
  }
7145
7199
  this.preRender();
7146
7200
  this.injectModules();
7201
+ // Checked weather cases are valid or not. If control leads to more than five counts
7202
+ if (!isvalid && !isBannerAdded) {
7203
+ createLicenseOverlay();
7204
+ isBannerAdded = true;
7205
+ }
7147
7206
  this.render();
7148
7207
  if (!this.mount) {
7149
7208
  this.trigger('created');
@@ -7253,8 +7312,8 @@ var Component = /** @__PURE__ @class */ (function (_super) {
7253
7312
  this.prototype.injectedModules = [];
7254
7313
  }
7255
7314
  for (var i = 0; i < moduleList.length; i++) {
7256
- if (this.prototype.injectedModules.indexOf(moduleList[i]) === -1) {
7257
- this.prototype.injectedModules.push(moduleList[i]);
7315
+ if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) {
7316
+ this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]);
7258
7317
  }
7259
7318
  }
7260
7319
  };
@@ -7321,9 +7380,11 @@ var Component = /** @__PURE__ @class */ (function (_super) {
7321
7380
  }
7322
7381
  }
7323
7382
  };
7324
- //tslint:disable-next-line
7383
+ // eslint-disable-next-line
7325
7384
  Component.prototype.renderReactTemplates = function (callback) {
7326
- //No Code
7385
+ if (!isNullOrUndefined(callback)) {
7386
+ callback();
7387
+ }
7327
7388
  };
7328
7389
  // eslint-disable-next-line
7329
7390
  Component.prototype.clearTemplate = function (templateName, index) {
@@ -7391,10 +7452,10 @@ var Component = /** @__PURE__ @class */ (function (_super) {
7391
7452
  }).map(function (str) {
7392
7453
  return str.replace(key + '.', '');
7393
7454
  });
7394
- newObj[key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);
7455
+ newObj["" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);
7395
7456
  }
7396
7457
  else {
7397
- newObj[key] = value;
7458
+ newObj["" + key] = value;
7398
7459
  }
7399
7460
  }
7400
7461
  };
@@ -7495,8 +7556,8 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7495
7556
  _this.prevLeft = 0;
7496
7557
  _this.prevTop = 0;
7497
7558
  _this.dragProcessStarted = false;
7498
- /* tslint:disable no-any */
7499
7559
  _this.eleTop = 0;
7560
+ /* eslint-disable @typescript-eslint/no-explicit-any */
7500
7561
  _this.tapHoldTimer = 0;
7501
7562
  _this.externalInitialize = false;
7502
7563
  _this.diffY = 0;
@@ -7555,7 +7616,7 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7555
7616
  if (isNullOrUndefined(element)) {
7556
7617
  return null;
7557
7618
  }
7558
- if (element[scroll[axis]] > element[client[axis]]) {
7619
+ if (element[scroll["" + axis]] > element[client["" + axis]]) {
7559
7620
  if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {
7560
7621
  if (axis === 'vertical') {
7561
7622
  this.parentScrollY = this.parentScrollY +
@@ -7607,7 +7668,7 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7607
7668
  abortSelectors = [abortSelectors];
7608
7669
  }
7609
7670
  for (var i = 0; i < abortSelectors.length; i++) {
7610
- if (!isNullOrUndefined(closest(evt.target, abortSelectors[i]))) {
7671
+ if (!isNullOrUndefined(closest(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) {
7611
7672
  /* istanbul ignore next */
7612
7673
  if (this.isDragStarted()) {
7613
7674
  this.isDragStarted(true);
@@ -7661,7 +7722,7 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7661
7722
  left: parseInt(styleProp.marginLeft, 10),
7662
7723
  top: parseInt(styleProp.marginTop, 10),
7663
7724
  right: parseInt(styleProp.marginRight, 10),
7664
- bottom: parseInt(styleProp.marginBottom, 10),
7725
+ bottom: parseInt(styleProp.marginBottom, 10)
7665
7726
  };
7666
7727
  var element = this.element;
7667
7728
  if (this.clone && this.dragTarget) {
@@ -7733,6 +7794,9 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7733
7794
  top: (pos.top - this.diffY) + 'px',
7734
7795
  left: (pos.left - this.diffX) + 'px'
7735
7796
  });
7797
+ if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {
7798
+ pos.top += this.dragArea.scrollTop;
7799
+ }
7736
7800
  this.dragElePosition = { top: pos.top, left: pos.left };
7737
7801
  setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));
7738
7802
  EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);
@@ -7949,6 +8013,9 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7949
8013
  draEleTop -= this.parentScrollY;
7950
8014
  draEleLeft -= this.parentScrollX;
7951
8015
  }
8016
+ if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {
8017
+ draEleTop += this.dragArea.scrollTop;
8018
+ }
7952
8019
  var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });
7953
8020
  setStyleAttribute(helperElement, this.getDragPosition(dragValue));
7954
8021
  if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {
@@ -7987,10 +8054,10 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
7987
8054
  var nodeEl = reverse ? node.reverse() : node;
7988
8055
  var hasScroll;
7989
8056
  for (var i = nodeEl.length - 1; i >= 0; i--) {
7990
- hasScroll = window.getComputedStyle(nodeEl[i])['overflow-y'];
8057
+ hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y'];
7991
8058
  if ((hasScroll === 'auto' || hasScroll === 'scroll')
7992
- && nodeEl[i].scrollHeight > nodeEl[i].clientHeight) {
7993
- return nodeEl[i];
8059
+ && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) {
8060
+ return nodeEl[parseInt(i.toString(), 10)];
7994
8061
  }
7995
8062
  }
7996
8063
  hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];
@@ -8120,12 +8187,12 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
8120
8187
  var keys = ['Top', 'Left', 'Bottom', 'Right'];
8121
8188
  var styles = getComputedStyle(ele);
8122
8189
  for (var i = 0; i < keys.length; i++) {
8123
- var key = keys[i];
8190
+ var key = keys[parseInt(i.toString(), 10)];
8124
8191
  var tborder = styles['border' + key + 'Width'];
8125
8192
  var tpadding = styles['padding' + key];
8126
8193
  var lowerKey = key.toLowerCase();
8127
- this.borderWidth[lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);
8128
- this.padding[lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);
8194
+ this.borderWidth["" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);
8195
+ this.padding["" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);
8129
8196
  }
8130
8197
  if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {
8131
8198
  top = elementArea.top + document.scrollingElement.scrollTop;
@@ -8144,7 +8211,8 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
8144
8211
  var intCoord = this.getCoordinates(evt);
8145
8212
  var ele;
8146
8213
  var prevStyle = this.helperElement.style.pointerEvents || '';
8147
- if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1) {
8214
+ var isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version) > 12;
8215
+ if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {
8148
8216
  this.helperElement.style.pointerEvents = 'none';
8149
8217
  ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);
8150
8218
  this.helperElement.style.pointerEvents = prevStyle;
@@ -8183,6 +8251,12 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
8183
8251
  pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;
8184
8252
  pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;
8185
8253
  }
8254
+ if (document.scrollingElement) {
8255
+ var isVerticalScroll = document.scrollingElement.scrollHeight > 0 && document.scrollingElement.scrollHeight > document.scrollingElement.clientHeight && document.scrollingElement.scrollTop > 0;
8256
+ var isHorrizontalScroll = document.scrollingElement.scrollWidth > 0 && document.scrollingElement.scrollWidth > document.scrollingElement.clientWidth && document.scrollingElement.scrollLeft > 0;
8257
+ pageX = isHorrizontalScroll ? pageX - document.scrollingElement.scrollLeft : pageX;
8258
+ pageY = isVerticalScroll ? pageY - document.scrollingElement.scrollTop : pageY;
8259
+ }
8186
8260
  return {
8187
8261
  left: pageX - (this.margin.left + this.cursorAt.left),
8188
8262
  top: pageY - (this.margin.top + this.cursorAt.top)
@@ -8235,7 +8309,7 @@ var Draggable = /** @__PURE__ @class */ (function (_super) {
8235
8309
  if (eleInst) {
8236
8310
  for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {
8237
8311
  var inst = eleInst_1[_i];
8238
- if (inst[name]() === 'droppable') {
8312
+ if (inst["" + name]() === 'droppable') {
8239
8313
  drop = inst;
8240
8314
  break;
8241
8315
  }
@@ -8564,7 +8638,7 @@ var KeyboardEvents = /** @__PURE__ @class */ (function (_super) {
8564
8638
  var keys = Object.keys(_this.keyConfigs);
8565
8639
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
8566
8640
  var key = keys_1[_i];
8567
- var configCollection = _this.keyConfigs[key].split(',');
8641
+ var configCollection = _this.keyConfigs["" + key].split(',');
8568
8642
  for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {
8569
8643
  var rconfig = configCollection_1[_a];
8570
8644
  var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());
@@ -8641,7 +8715,7 @@ var KeyboardEvents = /** @__PURE__ @class */ (function (_super) {
8641
8715
  */
8642
8716
  KeyboardEvents.getKeyConfigData = function (config) {
8643
8717
  if (config in this.configCache) {
8644
- return this.configCache[config];
8718
+ return this.configCache["" + config];
8645
8719
  }
8646
8720
  var keys = config.toLowerCase().split('+');
8647
8721
  var keyData = {
@@ -8656,12 +8730,12 @@ var KeyboardEvents = /** @__PURE__ @class */ (function (_super) {
8656
8730
  else {
8657
8731
  keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);
8658
8732
  }
8659
- KeyboardEvents_1.configCache[config] = keyData;
8733
+ KeyboardEvents_1.configCache["" + config] = keyData;
8660
8734
  return keyData;
8661
8735
  };
8662
8736
  // Return the keycode value as string
8663
8737
  KeyboardEvents.getKeyCode = function (keyVal) {
8664
- return keyCode[keyVal] || keyVal.toUpperCase().charCodeAt(0);
8738
+ return keyCode["" + keyVal] || keyVal.toUpperCase().charCodeAt(0);
8665
8739
  };
8666
8740
  var KeyboardEvents_1;
8667
8741
  KeyboardEvents.configCache = {};
@@ -8743,11 +8817,11 @@ var L10n = /** @__PURE__ @class */ (function () {
8743
8817
  */
8744
8818
  L10n.prototype.getConstant = function (prop) {
8745
8819
  // Removed conditional operator because this method does not return correct value when passing 0 as value in localization
8746
- if (!isNullOrUndefined(this.currentLocale[prop])) {
8747
- return this.currentLocale[prop];
8820
+ if (!isNullOrUndefined(this.currentLocale["" + prop])) {
8821
+ return this.currentLocale["" + prop];
8748
8822
  }
8749
8823
  else {
8750
- return this.localeStrings[prop] || '';
8824
+ return this.localeStrings["" + prop] || '';
8751
8825
  }
8752
8826
  };
8753
8827
  /**
@@ -8758,8 +8832,8 @@ var L10n = /** @__PURE__ @class */ (function () {
8758
8832
  * @returns {Object} ?
8759
8833
  */
8760
8834
  L10n.prototype.intGetControlConstant = function (curObject, locale) {
8761
- if ((curObject)[locale]) {
8762
- return (curObject)[locale][this.controlName];
8835
+ if ((curObject)["" + locale]) {
8836
+ return (curObject)["" + locale][this.controlName];
8763
8837
  }
8764
8838
  return null;
8765
8839
  };
@@ -9175,8 +9249,9 @@ var WINDOWFUNC = /\window\./gm;
9175
9249
  function compile$1(template, helper, ignorePrefix) {
9176
9250
  var argName = 'data';
9177
9251
  var evalExpResult = evalExp(template, argName, helper, ignorePrefix);
9252
+ // eslint-disable-next-line
9178
9253
  var condtion = "var valueRegEx = (/value=\\'([A-Za-z0-9 _]*)((.)([\\w)(!-;?-\u25A0\\s]+)['])/g);\n var hrefRegex = (/(?:href)([\\s='\"./]+)([\\w-./?=&\\\\#\"]+)((.)([\\w)(!-;/?-\u25A0\\s]+)['])/g);\n if(str.match(valueRegEx)){\n var check = str.match(valueRegEx);\n var str1 = str;\n for (var i=0; i < check.length; i++) {\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;\n change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;\n str1 = str1.replace(check1, change);\n }\n str = str.replace(str, str1);\n }\n else if (str.match(/(?:href='')/) === null) {\n if(str.match(hrefRegex)) {\n var check = str.match(hrefRegex);\n var str1 = str;\n for (var i=0; i < check.length; i++) {\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\n if (check1) {\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;\n change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;\n str1 = str1.replace(check1, change);\n }\n }\n str = str.replace(str, str1);\n }\n }\n ";
9179
- var fnCode = "var str=\"" + evalExpResult + "\";" + condtion + " return str;";
9254
+ var fnCode = 'var str=\"' + evalExpResult + '\";' + condtion + ' return str;';
9180
9255
  var fn = new Function(argName, fnCode);
9181
9256
  return fn.bind(helper);
9182
9257
  }
@@ -9408,24 +9483,24 @@ function compile$$1(templateString, helper, ignorePrefix) {
9408
9483
  if (isBlazor() && !isStringTemplate) {
9409
9484
  var randomId = getRandomId();
9410
9485
  var blazorId = templateId + randomId;
9411
- if (!blazorTemplates[templateId]) {
9412
- blazorTemplates[templateId] = [];
9486
+ if (!blazorTemplates["" + templateId]) {
9487
+ blazorTemplates["" + templateId] = [];
9413
9488
  }
9414
9489
  if (!isNullOrUndefined(index)) {
9415
- var keys = Object.keys(blazorTemplates[templateId][index]);
9490
+ var keys = Object.keys(blazorTemplates["" + templateId][parseInt(index.toString(), 10)]);
9416
9491
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
9417
9492
  var key = keys_1[_i];
9418
- if (key !== blazorTemplateId && data[key]) {
9419
- blazorTemplates[templateId][index][key] = data[key];
9493
+ if (key !== blazorTemplateId && data["" + key]) {
9494
+ blazorTemplates["" + templateId][parseInt(index.toString(), 10)]["" + key] = data["" + key];
9420
9495
  }
9421
9496
  if (key === blazorTemplateId) {
9422
- blazorId = blazorTemplates[templateId][index][key];
9497
+ blazorId = blazorTemplates["" + templateId][parseInt(index.toString(), 10)]["" + key];
9423
9498
  }
9424
9499
  }
9425
9500
  }
9426
9501
  else {
9427
- data[blazorTemplateId] = blazorId;
9428
- blazorTemplates[templateId].push(data);
9502
+ data["" + blazorTemplateId] = blazorId;
9503
+ blazorTemplates["" + templateId].push(data);
9429
9504
  }
9430
9505
  // eslint-disable-next-line
9431
9506
  return propName === 'rowTemplate' ? [createElement('tr', { id: blazorId, className: 'e-blazor-template' })] :
@@ -9459,9 +9534,9 @@ function compile$$1(templateString, helper, ignorePrefix) {
9459
9534
  function updateBlazorTemplate(templateId, templateName, comp, isEmpty, callBack) {
9460
9535
  if (isBlazor()) {
9461
9536
  var ejsIntrop = 'sfBlazor';
9462
- window[ejsIntrop].updateTemplate(templateName, blazorTemplates[templateId], templateId, comp, callBack);
9537
+ window["" + ejsIntrop].updateTemplate(templateName, blazorTemplates["" + templateId], templateId, comp, callBack);
9463
9538
  if (isEmpty !== false) {
9464
- blazorTemplates[templateId] = [];
9539
+ blazorTemplates["" + templateId] = [];
9465
9540
  }
9466
9541
  }
9467
9542
  }
@@ -9480,21 +9555,21 @@ function resetBlazorTemplate(templateId, templateName, index) {
9480
9555
  for (var i = 0; i < innerTemplates.length; i++) {
9481
9556
  var tempId = ' ';
9482
9557
  if (!isNullOrUndefined(index)) {
9483
- tempId = innerTemplates[index].getAttribute('data-templateId');
9558
+ tempId = innerTemplates[parseInt(index.toString(), 10)].getAttribute('data-templateId');
9484
9559
  }
9485
9560
  else {
9486
- tempId = innerTemplates[i].getAttribute('data-templateId');
9561
+ tempId = innerTemplates[parseInt(i.toString(), 10)].getAttribute('data-templateId');
9487
9562
  }
9488
9563
  var tempElement = document.getElementById(tempId);
9489
9564
  if (tempElement) {
9490
9565
  var length_1 = tempElement.childNodes.length;
9491
9566
  for (var j = 0; j < length_1; j++) {
9492
9567
  if (!isNullOrUndefined(index)) {
9493
- innerTemplates[index].appendChild(tempElement.childNodes[0]);
9568
+ innerTemplates[parseInt(index.toString(), 10)].appendChild(tempElement.childNodes[0]);
9494
9569
  i = innerTemplates.length;
9495
9570
  }
9496
9571
  else {
9497
- innerTemplates[i].appendChild(tempElement.childNodes[0]);
9572
+ innerTemplates[parseInt(i.toString(), 10)].appendChild(tempElement.childNodes[0]);
9498
9573
  }
9499
9574
  }
9500
9575
  }
@@ -9676,9 +9751,9 @@ var SanitizeHtmlHelper = /** @__PURE__ @class */ (function () {
9676
9751
  // Removes an element's attibute to avoid html tag validation
9677
9752
  var nodes = this.wrapElement.children;
9678
9753
  for (var j = 0; j < nodes.length; j++) {
9679
- var attribute = nodes[j].attributes;
9754
+ var attribute = nodes[parseInt(j.toString(), 10)].attributes;
9680
9755
  for (var i = 0; i < attribute.length; i++) {
9681
- this.wrapElement.children[j].removeAttribute(attribute[i].localName);
9756
+ this.wrapElement.children[parseInt(j.toString(), 10)].removeAttribute(attribute[parseInt(i.toString(), 10)].localName);
9682
9757
  }
9683
9758
  }
9684
9759
  };
@@ -9727,5 +9802,5 @@ var SanitizeHtmlHelper = /** @__PURE__ @class */ (function () {
9727
9802
  * Base modules
9728
9803
  */
9729
9804
 
9730
- export { blazorCultureFormats, IntlBase, Ajax, Animation, rippleEffect, isRippleEnabled, enableRipple, animationMode, setGlobalAnimation, Base, getComponent, removeChildInstance, Browser, versionBasedStatePersistence, enableVersionBasedPersistence, Component, ChildProperty, Position, Draggable, Droppable, EventHandler, onIntlChange, rightToLeft, cldrData, defaultCulture, defaultCurrencyCode, Internationalization, setCulture, setCurrencyCode, loadCldr, enableRtl, getNumericObject, getNumberDependable, getDefaultDateObject, KeyboardEvents, L10n, ModuleLoader, Property, Complex, ComplexFactory, Collection, CollectionFactory, Event$1 as Event, NotifyPropertyChanges, CreateBuilder, SwipeSettings, Touch, HijriParser, blazorTemplates, getRandomId, compile$$1 as compile, updateBlazorTemplate, resetBlazorTemplate, setTemplateEngine, getTemplateEngine, disableBlazorMode, createInstance, setImmediate, getValue, setValue, deleteObject, containerObject, isObject, getEnumValue, merge, extend, isNullOrUndefined, isUndefined, getUniqueID, debounce, queryParams, isObjectArray, compareElementParent, throwError, print, formatUnit, enableBlazorMode, isBlazor, getElement, getInstance, addInstance, uniqueID, createElement, addClass, removeClass, isVisible, prepend, append, detach, remove, attributes, select, selectAll, closest, siblings, getAttributeOrDefault, setStyleAttribute, classList, matches, includeInnerHTML, containsClass, cloneNode, Observer, SanitizeHtmlHelper, registerLicense, validateLicense, getVersion };
9805
+ export { blazorCultureFormats, IntlBase, Ajax, Animation, rippleEffect, isRippleEnabled, enableRipple, animationMode, setGlobalAnimation, Base, getComponent, removeChildInstance, Browser, versionBasedStatePersistence, enableVersionBasedPersistence, Component, ChildProperty, Position, Draggable, Droppable, EventHandler, onIntlChange, rightToLeft, cldrData, defaultCulture, defaultCurrencyCode, Internationalization, setCulture, setCurrencyCode, loadCldr, enableRtl, getNumericObject, getNumberDependable, getDefaultDateObject, KeyboardEvents, L10n, ModuleLoader, Property, Complex, ComplexFactory, Collection, CollectionFactory, Event$1 as Event, NotifyPropertyChanges, CreateBuilder, SwipeSettings, Touch, HijriParser, blazorTemplates, getRandomId, compile$$1 as compile, updateBlazorTemplate, resetBlazorTemplate, setTemplateEngine, getTemplateEngine, disableBlazorMode, createInstance, setImmediate, getValue, setValue, deleteObject, containerObject, isObject, getEnumValue, merge, extend, isNullOrUndefined, isUndefined, getUniqueID, debounce, queryParams, isObjectArray, compareElementParent, throwError, print, formatUnit, enableBlazorMode, isBlazor, getElement, getInstance, addInstance, uniqueID, createElement, addClass, removeClass, isVisible, prepend, append, detach, remove, attributes, select, selectAll, closest, siblings, getAttributeOrDefault, setStyleAttribute, classList, matches, includeInnerHTML, containsClass, cloneNode, Observer, SanitizeHtmlHelper, componentList, registerLicense, validateLicense, getVersion, createLicenseOverlay };
9731
9806
  //# sourceMappingURL=ej2-base.es5.js.map