@magic-xpa/mscorelib 4.1200.0-dev4120.21 → 4.1200.0-dev4120.213

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 (37) hide show
  1. package/fesm2022/magic-xpa-mscorelib.mjs +166 -50
  2. package/fesm2022/magic-xpa-mscorelib.mjs.map +1 -1
  3. package/index.d.ts +3 -0
  4. package/package.json +1 -3
  5. package/esm2022/index.mjs +0 -32
  6. package/esm2022/magic-xpa-mscorelib.mjs +0 -2
  7. package/esm2022/src/ApplicationException.mjs +0 -12
  8. package/esm2022/src/ArrayEnumerator.mjs +0 -17
  9. package/esm2022/src/BitArray.mjs +0 -16
  10. package/esm2022/src/Char.mjs +0 -5
  11. package/esm2022/src/CultureInfo.mjs +0 -4
  12. package/esm2022/src/DateTime.mjs +0 -75
  13. package/esm2022/src/Debug.mjs +0 -10
  14. package/esm2022/src/Dictionary.mjs +0 -39
  15. package/esm2022/src/Encoding.mjs +0 -114
  16. package/esm2022/src/Exception.mjs +0 -32
  17. package/esm2022/src/HashTable.mjs +0 -157
  18. package/esm2022/src/IComparable.mjs +0 -2
  19. package/esm2022/src/ISO_8859_1_Encoding.mjs +0 -38
  20. package/esm2022/src/Int32.mjs +0 -5
  21. package/esm2022/src/Int64.mjs +0 -4
  22. package/esm2022/src/List.mjs +0 -87
  23. package/esm2022/src/NChar.mjs +0 -25
  24. package/esm2022/src/NNumber.mjs +0 -28
  25. package/esm2022/src/NString.mjs +0 -149
  26. package/esm2022/src/NotImplementedException.mjs +0 -7
  27. package/esm2022/src/NumberFormatInfo.mjs +0 -8
  28. package/esm2022/src/RefParam.mjs +0 -7
  29. package/esm2022/src/Stack.mjs +0 -35
  30. package/esm2022/src/StackFrame.mjs +0 -14
  31. package/esm2022/src/StackTrace.mjs +0 -7
  32. package/esm2022/src/StringBuilder.mjs +0 -112
  33. package/esm2022/src/StringUtils.mjs +0 -77
  34. package/esm2022/src/Thread.mjs +0 -16
  35. package/esm2022/src/Utils.mjs +0 -7
  36. package/esm2022/src/WebException.mjs +0 -10
  37. package/esm2022/src/XmlConvert.mjs +0 -7
@@ -1,87 +0,0 @@
1
- import { Array_Enumerator } from "./ArrayEnumerator";
2
- import { isUndefined } from "./Utils";
3
- export class List extends Array {
4
- constructor(arrayEnumerator) {
5
- super();
6
- Object.setPrototypeOf(this, List.prototype);
7
- if (arguments.length === 1 && arrayEnumerator.constructor === Array_Enumerator) {
8
- this.AddRange(arrayEnumerator);
9
- }
10
- }
11
- AddRange(arrayEnumeratorOrArray) {
12
- if (arrayEnumeratorOrArray.constructor === Array) {
13
- arrayEnumeratorOrArray.forEach((item) => {
14
- this.push(item);
15
- });
16
- }
17
- else {
18
- let e = arrayEnumeratorOrArray;
19
- while (e.MoveNext()) {
20
- this.push(e.Current);
21
- }
22
- }
23
- }
24
- get_Item(index) {
25
- if (isUndefined(this[index]))
26
- this[index] = null;
27
- return this[index];
28
- }
29
- set_Item(index, value) {
30
- if (index >= 0 && index < this.length)
31
- this[index] = value;
32
- else
33
- throw new Error("index out of bounds");
34
- }
35
- GetEnumerator() {
36
- return new Array_Enumerator(this);
37
- }
38
- Remove(object) {
39
- let index = this.indexOf(object);
40
- if (index > -1)
41
- this.RemoveAt(index);
42
- }
43
- RemoveAt(index) {
44
- this.RemoveRange(index, 1);
45
- }
46
- RemoveRange(index, count) {
47
- this.splice(index, count);
48
- }
49
- Insert(index, item) {
50
- if (index >= 0 && index < this.length)
51
- this.splice(index, 0, item);
52
- else if (index === this.length)
53
- this.push(item);
54
- else
55
- throw new Error("index out of bounds");
56
- }
57
- InsertRange(items) {
58
- let idx = 0;
59
- while (idx < items.length) {
60
- this.Insert(idx, items[idx]);
61
- idx++;
62
- }
63
- }
64
- Clear() {
65
- this.splice(0, this.length);
66
- }
67
- ToArray() {
68
- return this.slice(0);
69
- }
70
- Contains(object) {
71
- return this.indexOf(object) > -1;
72
- }
73
- find(predicate) {
74
- let foundItem = super.find(predicate);
75
- if (isUndefined(foundItem))
76
- foundItem = null;
77
- return foundItem;
78
- }
79
- SetSize(size) {
80
- if (this.length > size) {
81
- this.RemoveRange(size, this.length - size);
82
- }
83
- else
84
- this.length = size;
85
- }
86
- }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRXBDLE1BQU0sT0FBTyxJQUFTLFNBQVEsS0FBUTtJQUVwQyxZQUFZLGVBQXFDO1FBQy9DLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsRUFBRTtZQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUlELFFBQVEsQ0FBQyxzQkFBMkI7UUFDbEMsSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQ2hELHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQU8sRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFDSTtZQUNILElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDO1lBQy9CLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYSxFQUFFLEtBQVE7UUFDOUIsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDOztZQUVwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksZ0JBQWdCLENBQUksSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFTO1FBQ2QsSUFBSSxLQUFLLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLElBQU87UUFDM0IsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDekIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU07WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzs7WUFFaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLEdBQUcsR0FBVyxDQUFDLENBQUM7UUFDcEIsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QixHQUFHLEVBQUUsQ0FBQztTQUNQO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQXlEO1FBQzVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3hCLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFbkIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU1ELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztTQUM1Qzs7WUFFQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FycmF5X0VudW1lcmF0b3J9IGZyb20gXCIuL0FycmF5RW51bWVyYXRvclwiO1xyXG5pbXBvcnQge2lzVW5kZWZpbmVkfSBmcm9tIFwiLi9VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIExpc3Q8VD4gIGV4dGVuZHMgQXJyYXk8VD4ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihhcnJheUVudW1lcmF0b3I/OiBBcnJheV9FbnVtZXJhdG9yPFQ+KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIExpc3QucHJvdG90eXBlKTtcclxuXHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBhcnJheUVudW1lcmF0b3IuY29uc3RydWN0b3IgPT09IEFycmF5X0VudW1lcmF0b3IpIHtcclxuICAgICAgdGhpcy5BZGRSYW5nZShhcnJheUVudW1lcmF0b3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQWRkUmFuZ2UoYXJyYXlFbnVtZXJhdG9yOiBBcnJheV9FbnVtZXJhdG9yPFQ+KVxyXG4gIEFkZFJhbmdlKGFycmF5OiBBcnJheTxUPilcclxuICBBZGRSYW5nZShhcnJheUVudW1lcmF0b3JPckFycmF5OiBhbnkpIHtcclxuICAgIGlmIChhcnJheUVudW1lcmF0b3JPckFycmF5LmNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgICBhcnJheUVudW1lcmF0b3JPckFycmF5LmZvckVhY2goKGl0ZW06IFQpID0+IHtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBlID0gYXJyYXlFbnVtZXJhdG9yT3JBcnJheTtcclxuICAgICAgd2hpbGUgKGUuTW92ZU5leHQoKSkge1xyXG4gICAgICAgIHRoaXMucHVzaChlLkN1cnJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRfSXRlbShpbmRleDogbnVtYmVyKTogVCB7XHJcbiAgICBpZiAoaXNVbmRlZmluZWQodGhpc1tpbmRleF0pKVxyXG4gICAgICB0aGlzW2luZGV4XSA9IG51bGw7XHJcbiAgICByZXR1cm4gdGhpc1tpbmRleF07XHJcbiAgfVxyXG5cclxuICBzZXRfSXRlbShpbmRleDogbnVtYmVyLCB2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCB0aGlzLmxlbmd0aClcclxuICAgICAgdGhpc1tpbmRleF0gPSB2YWx1ZTtcclxuICAgIGVsc2VcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIEdldEVudW1lcmF0b3IoKTogQXJyYXlfRW51bWVyYXRvcjxUPiB7XHJcbiAgICByZXR1cm4gbmV3IEFycmF5X0VudW1lcmF0b3I8VD4odGhpcyk7XHJcbiAgfVxyXG5cclxuICBSZW1vdmUob2JqZWN0OiBUKTogdm9pZCB7XHJcbiAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaW5kZXhPZihvYmplY3QpO1xyXG5cclxuICAgIGlmIChpbmRleCA+IC0xKVxyXG4gICAgICB0aGlzLlJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcblxyXG4gIFJlbW92ZUF0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuUmVtb3ZlUmFuZ2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgUmVtb3ZlUmFuZ2UoaW5kZXg6IG51bWJlciwgY291bnQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zcGxpY2UoaW5kZXgsIGNvdW50KTtcclxuICB9XHJcblxyXG4gIEluc2VydChpbmRleDogbnVtYmVyLCBpdGVtOiBUKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMubGVuZ3RoKVxyXG4gICAgICB0aGlzLnNwbGljZShpbmRleCwgMCwgaXRlbSk7XHJcbiAgICBlbHNlIGlmIChpbmRleCA9PT0gdGhpcy5sZW5ndGgpIC8vIGluc2VydGluZyBhdCBlbmQgbWVhbnMgYXBwZW5kXHJcbiAgICAgIHRoaXMucHVzaChpdGVtKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIEluc2VydFJhbmdlKGl0ZW1zOiBUW10pOiB2b2lkIHtcclxuICAgIGxldCBpZHg6IG51bWJlciA9IDA7XHJcbiAgICB3aGlsZSAoaWR4IDwgaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuSW5zZXJ0KGlkeCwgaXRlbXNbaWR4XSk7XHJcbiAgICAgIGlkeCsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNwbGljZSgwLCB0aGlzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBUb0FycmF5KCk6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zbGljZSgwKTtcclxuICB9XHJcblxyXG4gIENvbnRhaW5zKG9iamVjdDogVCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5kZXhPZihvYmplY3QpID4gLTE7XHJcbiAgfVxyXG5cclxuICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBvYmo6IFRbXSkgPT4gYm9vbGVhbik6IFQge1xyXG4gICAgbGV0IGZvdW5kSXRlbSA9IHN1cGVyLmZpbmQocHJlZGljYXRlKTtcclxuICAgIGlmIChpc1VuZGVmaW5lZChmb3VuZEl0ZW0pKVxyXG4gICAgICBmb3VuZEl0ZW0gPSBudWxsO1xyXG5cclxuICAgIHJldHVybiBmb3VuZEl0ZW07XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGFkZCBudWxsIGNlbGxzIHVwIHRvICdzaXplJyBjZWxscy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInNpemVcIj48L3BhcmFtPlxyXG4gIFNldFNpemUoc2l6ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sZW5ndGggPiBzaXplKSB7XHJcbiAgICAgIHRoaXMuUmVtb3ZlUmFuZ2Uoc2l6ZSwgdGhpcy5sZW5ndGggLSBzaXplKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5sZW5ndGggPSBzaXplO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,25 +0,0 @@
1
- import { isAsciiLetter, isDigit, isLowerCase, isUpperCase, isWhitespace } from "./StringUtils";
2
- export class NChar {
3
- static IsWhiteSpace(str) {
4
- let ch = str.charCodeAt(0);
5
- return isWhitespace(ch);
6
- }
7
- static IsLetterOrDigit(str) {
8
- let ch = str.charCodeAt(0);
9
- return isDigit(ch) || isAsciiLetter(ch);
10
- }
11
- static IsDigit(str) {
12
- let ch = str.charCodeAt(0);
13
- return isDigit(ch);
14
- }
15
- static IsLetter(ltr) {
16
- return isAsciiLetter(ltr.charCodeAt(0));
17
- }
18
- static IsLower(ch) {
19
- return isLowerCase(ch);
20
- }
21
- static IsUpper(ch) {
22
- return isUpperCase(ch);
23
- }
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTkNoYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL05DaGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE1BQU0sT0FBTyxLQUFLO0lBQ2hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBVztRQUM3QixJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDaEMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBVztRQUN4QixJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVc7UUFDekIsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQVU7UUFDdkIsT0FBTyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBVTtRQUN2QixPQUFPLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbmltcG9ydCB7aXNBc2NpaUxldHRlciwgaXNEaWdpdCwgaXNMb3dlckNhc2UsIGlzVXBwZXJDYXNlLCBpc1doaXRlc3BhY2V9IGZyb20gXCIuL1N0cmluZ1V0aWxzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTkNoYXIge1xyXG4gIHN0YXRpYyBJc1doaXRlU3BhY2Uoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBjaCA9IHN0ci5jaGFyQ29kZUF0KDApO1xyXG4gICAgcmV0dXJuIGlzV2hpdGVzcGFjZShjaCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgSXNMZXR0ZXJPckRpZ2l0KHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgY2ggPSBzdHIuY2hhckNvZGVBdCgwKTtcclxuICAgIHJldHVybiBpc0RpZ2l0KGNoKSB8fCBpc0FzY2lpTGV0dGVyKGNoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBJc0RpZ2l0KHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgY2ggPSBzdHIuY2hhckNvZGVBdCgwKTtcclxuICAgIHJldHVybiBpc0RpZ2l0KGNoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBJc0xldHRlcihsdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzQXNjaWlMZXR0ZXIobHRyLmNoYXJDb2RlQXQoMCkpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIElzTG93ZXIoY2g6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzTG93ZXJDYXNlKGNoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBJc1VwcGVyKGNoOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpc1VwcGVyQ2FzZShjaClcclxuICB9XHJcbn1cclxuIl19
@@ -1,28 +0,0 @@
1
- import { NotImplementedException } from "./NotImplementedException";
2
- export var NumberStyles;
3
- (function (NumberStyles) {
4
- NumberStyles[NumberStyles["HexNumber"] = 0] = "HexNumber";
5
- })(NumberStyles || (NumberStyles = {}));
6
- export class NNumber {
7
- static Parse(text, style) {
8
- if (arguments.length === 2) {
9
- if (style === NumberStyles.HexNumber)
10
- return parseInt(text, 16);
11
- else
12
- throw new NotImplementedException();
13
- }
14
- return +text;
15
- }
16
- static TryParse(str, pvalue) {
17
- pvalue.value = +str;
18
- return !isNaN(pvalue.value);
19
- }
20
- static ToString(num, format) {
21
- if (format === 'X2') {
22
- let res = num.toString(16);
23
- return res.length === 1 ? '0' + res : res;
24
- }
25
- throw new NotImplementedException();
26
- }
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTk51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTk51bWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxNQUFNLENBQU4sSUFBWSxZQUVYO0FBRkQsV0FBWSxZQUFZO0lBQ3RCLHlEQUFTLENBQUE7QUFDWCxDQUFDLEVBRlcsWUFBWSxLQUFaLFlBQVksUUFFdkI7QUFFRCxNQUFNLE9BQU8sT0FBTztJQU9sQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVksRUFBRSxLQUFvQjtRQUM3QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksS0FBSyxLQUFLLFlBQVksQ0FBQyxTQUFTO2dCQUNsQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7O2dCQUUxQixNQUFNLElBQUksdUJBQXVCLEVBQUUsQ0FBQztTQUN2QztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDZixDQUFDO0lBUUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBd0I7UUFDbkQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBS0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBYztRQUN6QyxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsSUFBSSxHQUFHLEdBQVcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7U0FDM0M7UUFDRCxNQUFNLElBQUksdUJBQXVCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlZlBhcmFtfSBmcm9tIFwiLi9SZWZQYXJhbVwiO1xyXG5pbXBvcnQge05vdEltcGxlbWVudGVkRXhjZXB0aW9ufSBmcm9tIFwiLi9Ob3RJbXBsZW1lbnRlZEV4Y2VwdGlvblwiO1xyXG5cclxuZXhwb3J0IGVudW0gTnVtYmVyU3R5bGVzIHtcclxuICBIZXhOdW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5OdW1iZXIge1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICBjb252ZXJ0IGEgc3RyaW5nIHRvIG51bWJlclxyXG4gIC8vLyBmb3IgYmxhbmsgc3RyaW5nICwgaXQgd2lsbCByZXR1cm4gMFxyXG4gIC8vLyAgZm9yIGluY29ycmVjdCBmb3JtYXQgaXQgd2lsbCByZXR1cm4gTmFOXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIHN0YXRpYyBQYXJzZSh0ZXh0OiBzdHJpbmcsIHN0eWxlPzogTnVtYmVyU3R5bGVzKTogbnVtYmVyIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIGlmIChzdHlsZSA9PT0gTnVtYmVyU3R5bGVzLkhleE51bWJlcilcclxuICAgICAgICByZXR1cm4gcGFyc2VJbnQodGV4dCwgMTYpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gK3RleHQ7IC8vIHVzZSB1bmFyeSArIG9wZXJhdG9yIHRvIGNvbnZlcnQgc3RyaW5nICB0byBudW1iZXIuXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgY29udmVydCBhIHN0cmluZyB0byBudW1iZXJcclxuICAvLy8gIHJldHVybiB0cnVlIGlmIHN0cmluZyBpcyBjb3JyZWN0bHkgcGFyc2VkIGkuZSBwdmFsdWUudmFsdWUgaXMgbnVtYmVyXHJcbiAgLy8vICBmb3IgaW5jb3JyZWN0IGZvcm1hdCBpdCB3aWxsIHJldHVybiBmYWxzZVxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICBzdGF0aWMgVHJ5UGFyc2Uoc3RyOiBzdHJpbmcsIHB2YWx1ZTogUmVmUGFyYW08bnVtYmVyPik6IGJvb2xlYW4ge1xyXG4gICAgcHZhbHVlLnZhbHVlID0gK3N0cjtcclxuICAgIHJldHVybiAhaXNOYU4ocHZhbHVlLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gIGNvbnZlcnQgYSBudW1iZXIgdG8gc3RyaW5nIHdpdGggc3BlY2lmaWVkIGZvcm1hdFxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICBzdGF0aWMgVG9TdHJpbmcobnVtOiBudW1iZXIsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChmb3JtYXQgPT09ICdYMicpIHtcclxuICAgICAgbGV0IHJlczogc3RyaW5nID0gbnVtLnRvU3RyaW5nKDE2KTtcclxuICAgICAgcmV0dXJuIHJlcy5sZW5ndGggPT09IDEgPyAnMCcgKyByZXMgOiByZXM7XHJcbiAgICB9XHJcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,149 +0,0 @@
1
- import { isNullOrUndefined } from "./Utils";
2
- import { Exception } from "./Exception";
3
- export class NString {
4
- static Empty = "";
5
- static IndexOf(str, searchStr, startIndex, count) {
6
- let index = str.substr(startIndex, count).indexOf(searchStr);
7
- return index > -1 ? startIndex + index : index;
8
- }
9
- static IndexOfAny(str, subs, startIndex, count) {
10
- for (let i = 0; i < count; ++i) {
11
- let c = str.charAt(startIndex + i);
12
- for (let j = 0; j < subs.length; ++j) {
13
- if (c === subs[j])
14
- return (startIndex + i);
15
- }
16
- }
17
- return -1;
18
- }
19
- static CopyTo(source, sourceIndex, destination, destinationIndex, count) {
20
- for (let i = 0; i < count; i++) {
21
- destination[destinationIndex + i] = source[sourceIndex + i];
22
- }
23
- }
24
- static Compare(strA, strB, ignoreCase, indexA, indexB, length) {
25
- if (arguments.length = 6) {
26
- strA = strA.substr(indexA, length);
27
- strB = strB.substr(indexB, length);
28
- }
29
- if (ignoreCase) {
30
- strA = strA.toLowerCase();
31
- strB = strB.toLowerCase();
32
- }
33
- return strA.localeCompare(strB);
34
- }
35
- static Equals(strA, strB, ignoreCase) {
36
- if (!NString.IsNullOrEmpty(strA) && !NString.IsNullOrEmpty(strB)) {
37
- if (ignoreCase) {
38
- strA = strA.toLowerCase();
39
- strB = strB.toLowerCase();
40
- }
41
- return strA === strB;
42
- }
43
- return false;
44
- }
45
- static GetHashCode(str) {
46
- var hash = 0, i, l, ch;
47
- if (str.length === 0)
48
- return hash;
49
- for (i = 0, l = str.length; i < l; i++) {
50
- ch = str.charCodeAt(i);
51
- hash = ((hash << 5) - hash) + ch;
52
- hash |= 0;
53
- }
54
- return hash;
55
- }
56
- static Remove(str, startIndex, length) {
57
- return str.substr(0, startIndex - 1) + str.substr(startIndex + length - 1);
58
- }
59
- static TrimStart(str) {
60
- return str.replace(/^\s\s*/, '');
61
- }
62
- static TrimEnd(string, trimChars) {
63
- if (arguments.length === 1)
64
- return string.replace(/\s\s*$/, '');
65
- for (let j = 0; j < trimChars.length; j++) {
66
- let trimChar = trimChars[j];
67
- let i = string.length - 1;
68
- while (!isNullOrUndefined(string[i]) && string[i].endsWith(trimChar)) {
69
- string = NString.Remove(string, string.length, 1);
70
- i--;
71
- }
72
- }
73
- return string;
74
- }
75
- static Format(format, arg0, arg1, arg2, arg3, arg4, arg5) {
76
- if (!isNullOrUndefined(arg0) && arg0.constructor === Array) {
77
- var s = format, i = arg0.length;
78
- while (i--) {
79
- s = s.replace(new RegExp('\\{' + i + '\\}', 'gm'), arg0[i]);
80
- }
81
- return s;
82
- }
83
- else {
84
- var args = [arg0, arg1, arg2, arg3, arg4, arg5];
85
- return NString.Format(format, args);
86
- }
87
- }
88
- static IsNullOrEmpty(str1) {
89
- return !str1;
90
- }
91
- static FromChars(chOrChars, startIndex, len) {
92
- let str = chOrChars.join('');
93
- if (arguments.length === 3)
94
- return str.substr(startIndex, len);
95
- return str;
96
- }
97
- static FromChar(ch, count) {
98
- return (new Array(count).fill(ch)).join('');
99
- }
100
- static ToCharArray(str) {
101
- return Array.from(str);
102
- }
103
- static CompareOrdinal(strA, strB) {
104
- let lenA = strA.length;
105
- let lenB = strB.length;
106
- let len = Math.min(lenA, lenB);
107
- for (let i = 0; i < len; i++) {
108
- if (strA[i].charCodeAt(0) !== strB[i].charCodeAt(0)) {
109
- return strA[i].charCodeAt(0) - strB[i].charCodeAt(0);
110
- }
111
- }
112
- if (lenA !== lenB) {
113
- return lenA - lenB;
114
- }
115
- return 0;
116
- }
117
- static PadRight(source, maxLength, fillString) {
118
- if (source.length >= maxLength)
119
- return source;
120
- let fillLen = maxLength - source.length;
121
- let timesToRepeat = Math.ceil(fillLen / fillString.length);
122
- let truncatedStringFiller = fillString.repeat(timesToRepeat).slice(0, fillLen);
123
- return source + truncatedStringFiller;
124
- }
125
- static Insert(str, index, ch) {
126
- return str.substr(0, index) + ch + str.substr(index, str.length - index);
127
- }
128
- static Replace(str, orgSubStr, newSubStr) {
129
- let resultStr = '';
130
- orgSubStr = orgSubStr.replace(new RegExp("\\\\", 'g'), "\\\\");
131
- orgSubStr = orgSubStr.replace(new RegExp("\\*", 'g'), "\\\*");
132
- orgSubStr = orgSubStr.replace(new RegExp("\\$", 'g'), "\\\$");
133
- orgSubStr = orgSubStr.replace(new RegExp("\\^", 'g'), "\\\^");
134
- orgSubStr = orgSubStr.replace(new RegExp("\\.", 'g'), "\\\.");
135
- orgSubStr = orgSubStr.replace(new RegExp("\\?", 'g'), "\\\?");
136
- orgSubStr = orgSubStr.replace(new RegExp("\\+", 'g'), "\\\+");
137
- orgSubStr = orgSubStr.replace(new RegExp("\\,", 'g'), "\\\,");
138
- orgSubStr = orgSubStr.replace(new RegExp("\\[", 'g'), "\\\[");
139
- orgSubStr = orgSubStr.replace(new RegExp("\\|", 'g'), "\\\|");
140
- try {
141
- resultStr = str.replace(new RegExp(orgSubStr, 'g'), newSubStr);
142
- }
143
- catch (e) {
144
- throw new Exception(e.message);
145
- }
146
- return resultStr;
147
- }
148
- }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTlN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUl0QyxNQUFNLE9BQU8sT0FBTztJQUNoQixNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVsQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVcsRUFBRSxTQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQ3pFLElBQUksS0FBSyxHQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVcsRUFBRSxJQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQzVFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2IsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FB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QUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFSCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVUsRUFBRSxTQUFpQixFQUFFLFNBQWlCO1FBQzdELElBQUksU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUkxQixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0QsSUFBSTtZQUNGLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sQ0FBQyxFQUFFO1lBQ1IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCIuL1V0aWxzXCI7XHJcbmltcG9ydCB7RXhjZXB0aW9ufSBmcm9tIFwiLi9FeGNlcHRpb25cIjtcclxuXHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgTlN0cmluZyB7XHJcbiAgICBzdGF0aWMgRW1wdHkgPSBcIlwiO1xyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mKHN0cjogc3RyaW5nLCBzZWFyY2hTdHI6IGFueSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHN0ci5zdWJzdHIoc3RhcnRJbmRleCwgY291bnQpLmluZGV4T2Yoc2VhcmNoU3RyKTtcclxuICAgICAgICByZXR1cm4gaW5kZXggPiAtMSA/IHN0YXJ0SW5kZXggKyBpbmRleCA6IGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mQW55KHN0cjogc3RyaW5nLCBzdWJzOiBzdHJpbmdbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBzdHIuY2hhckF0KHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzdWJzLmxlbmd0aDsgKytqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYyA9PT0gc3Vic1tqXSlcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIENvcHlUbyhzb3VyY2U6IHN0cmluZywgc291cmNlSW5kZXg6IG51bWJlciwgZGVzdGluYXRpb246IHN0cmluZ1tdLCBkZXN0aW5hdGlvbkluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgZGVzdGluYXRpb25bZGVzdGluYXRpb25JbmRleCArIGldID0gc291cmNlW3NvdXJjZUluZGV4ICsgaV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlKHN0ckE6IHN0cmluZywgc3RyQjogc3RyaW5nLCBpZ25vcmVDYXNlOiBib29sZWFuKTogbnVtYmVyXHJcbiAgICBzdGF0aWMgQ29tcGFyZShzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbiwgaW5kZXhBOiBudW1iZXIsIGluZGV4QjogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IG51bWJlclxyXG4gICAgc3RhdGljIENvbXBhcmUoc3RyQTogc3RyaW5nLCBzdHJCOiBzdHJpbmcsIGlnbm9yZUNhc2U6IGJvb2xlYW4sIGluZGV4QT86IG51bWJlciwgaW5kZXhCPzogbnVtYmVyLCBsZW5ndGg/OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID0gNikge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS5zdWJzdHIoaW5kZXhBLCBsZW5ndGgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi5zdWJzdHIoaW5kZXhCLCBsZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyQS5sb2NhbGVDb21wYXJlKHN0ckIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgc3RhdGljIEVxdWFscyhzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkoc3RyQSkgJiYgIU5TdHJpbmcuSXNOdWxsT3JFbXB0eShzdHJCKSkge1xyXG4gICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgIHN0ckEgPSBzdHJBLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgc3RyQiA9IHN0ckIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc3RyQSA9PT0gc3RyQjtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gICAgc3RhdGljIEdldEhhc2hDb2RlKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICB2YXIgaGFzaCA9IDAsIGksIGwsIGNoO1xyXG4gICAgICAgIGlmIChzdHIubGVuZ3RoID09PSAwKSByZXR1cm4gaGFzaDtcclxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gc3RyLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBjaCA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaDtcclxuICAgICAgICAgICAgaGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhc2g7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBSZW1vdmUoc3RyOiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIHN0YXJ0SW5kZXggLSAxKSArIHN0ci5zdWJzdHIoc3RhcnRJbmRleCArIGxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUcmltU3RhcnQoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvXlxcc1xccyovLCAnJylcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgVHJpbUVuZChzdHJpbmc6IHN0cmluZywgdHJpbUNoYXJzPzogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKVxyXG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRyaW1DaGFycy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgdHJpbUNoYXIgPSB0cmltQ2hhcnNbal07XHJcbiAgICAgICAgICAgIGxldCBpID0gc3RyaW5nLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgIHdoaWxlICghaXNOdWxsT3JVbmRlZmluZWQoc3RyaW5nW2ldKSAmJiBzdHJpbmdbaV0uZW5kc1dpdGgodHJpbUNoYXIpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHJpbmcgPSBOU3RyaW5nLlJlbW92ZShzdHJpbmcsIHN0cmluZy5sZW5ndGgsIDEpO1xyXG4gICAgICAgICAgICAgICAgaS0tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55LCBhcmczPzogYW55LCBhcmc0PzogYW55LCBhcmc1PzogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGFyZzApICYmIGFyZzAuY29uc3RydWN0b3IgPT09IEFycmF5KSB7XHJcbiAgICAgICAgICAgIHZhciBzID0gZm9ybWF0LFxyXG4gICAgICAgICAgICAgICAgaSA9IGFyZzAubGVuZ3RoO1xyXG4gICAgICAgICAgICB3aGlsZSAoaS0tKSB7XHJcbiAgICAgICAgICAgICAgICBzID0gcy5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcXFx7JyArIGkgKyAnXFxcXH0nLCAnZ20nKSwgYXJnMFtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YXIgYXJncyA9IFthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1XTtcclxuICAgICAgICAgICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KGZvcm1hdCwgYXJncyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJc051bGxPckVtcHR5KHN0cjE6IHN0cmluZyB8IE5TdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXN0cjE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4OiBudW1iZXIsIGxlbjogbnVtYmVyKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4PzogbnVtYmVyLCBsZW4/OiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgc3RyOiBzdHJpbmcgPSBjaE9yQ2hhcnMuam9pbignJyk7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpXHJcbiAgICAgICAgICAgIHJldHVybiBzdHIuc3Vic3RyKHN0YXJ0SW5kZXgsIGxlbik7XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgRnJvbUNoYXIoY2g6IHN0cmluZywgY291bnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAobmV3IEFycmF5PHN0cmluZz4oY291bnQpLmZpbGwoPHN0cmluZz5jaCkpLmpvaW4oJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUb0NoYXJBcnJheShzdHI6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlT3JkaW5hbChzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGxlbkEgPSBzdHJBLmxlbmd0aDtcclxuICAgICAgICBsZXQgbGVuQiA9IHN0ckIubGVuZ3RoO1xyXG5cclxuICAgICAgICBsZXQgbGVuID0gTWF0aC5taW4obGVuQSwgbGVuQik7XHJcblxyXG4gICAgICAgIC8vIGNvbXBhcmUgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlclxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHN0ckFbaV0uY2hhckNvZGVBdCgwKSAhPT0gc3RyQltpXS5jaGFyQ29kZUF0KDApKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyQVtpXS5jaGFyQ29kZUF0KDApIC0gc3RyQltpXS5jaGFyQ29kZUF0KDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZiBhbGwgY2hhcmFjdGVycyBhcmUgc2FtZSAsIGJ1dCBsZW5ndGggaXMgZGlmZmVyZW50IHJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiBsZW5ndGhcclxuICAgICAgICBpZiAobGVuQSAhPT0gbGVuQikge1xyXG4gICAgICAgICAgICByZXR1cm4gbGVuQSAtIGxlbkI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhbGwgY2hhcnMgYXJlIHNhbWUgLCBzbyBzdHJpbmdzIGFyZSBlcXVhbFxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBQYWRSaWdodChzb3VyY2U6IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIsIGZpbGxTdHJpbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChzb3VyY2UubGVuZ3RoID49IG1heExlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcclxuXHJcbiAgICAgICAgbGV0IGZpbGxMZW4gPSBtYXhMZW5ndGggLSBzb3VyY2UubGVuZ3RoO1xyXG4gICAgICAgIGxldCB0aW1lc1RvUmVwZWF0ID0gTWF0aC5jZWlsKGZpbGxMZW4gLyBmaWxsU3RyaW5nLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHRydW5jYXRlZFN0cmluZ0ZpbGxlciA9IGZpbGxTdHJpbmcucmVwZWF0KHRpbWVzVG9SZXBlYXQpLnNsaWNlKDAsIGZpbGxMZW4pO1xyXG4gICAgICAgIHJldHVybiBzb3VyY2UgKyB0cnVuY2F0ZWRTdHJpbmdGaWxsZXI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEluc2VydChzdHI6IHN0cmluZywgaW5kZXg6IG51bWJlciwgY2g6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwgaW5kZXgpICsgY2ggKyBzdHIuc3Vic3RyKGluZGV4LCBzdHIubGVuZ3RoIC0gaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICBzdGF0aWMgUmVwbGFjZShzdHI6c3RyaW5nLCBvcmdTdWJTdHI6IHN0cmluZywgbmV3U3ViU3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdFN0cjpzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvLyBmaXhlZCBkZWZlY3QgMTUxODEwOiAgcmVwbGFjZSBcIipcIiB3aXRoIFwiXFwqXCIgYmVmb3JlIHdlIHVwZGF0ZSB0aGUgc3RyaW5nIHNvICogd2lsbCBiZSBhcyBjaGFyIGFuZCBub3QgcmVnIGV4cFxyXG4gICAgLy8gYWxzbyBmb3Igc3BlY2lhbCBjaGFycyAkIF4gLiA/ICsgLCBbXHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXFxcXFxcIiwgJ2cnKSwgXCJcXFxcXFxcXFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcKlwiLCdnJyksIFwiXFxcXFxcKlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcJFwiLCdnJyksIFwiXFxcXFxcJFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcXlwiLCdnJyksIFwiXFxcXFxcXlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLlwiLCdnJyksIFwiXFxcXFxcLlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcP1wiLCdnJyksIFwiXFxcXFxcP1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcK1wiLCdnJyksIFwiXFxcXFxcK1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLFwiLCdnJyksIFwiXFxcXFxcLFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcW1wiLCdnJyksIFwiXFxcXFxcW1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcfFwiLCdnJyksIFwiXFxcXFxcfFwiKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICByZXN1bHRTdHIgPSBzdHIucmVwbGFjZShuZXcgUmVnRXhwKG9yZ1N1YlN0ciwnZycpLCBuZXdTdWJTdHIpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdFN0cjtcclxuICB9XHJcbn1cclxuIl19
@@ -1,7 +0,0 @@
1
- import { Exception } from "./Exception";
2
- export class NotImplementedException extends Exception {
3
- constructor(message = "Not implemented") {
4
- super(message);
5
- }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90SW1wbGVtZW50ZWRFeGNlcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL05vdEltcGxlbWVudGVkRXhjZXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFdEMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQVM7SUFDcEQsWUFBWSxVQUFrQixpQkFBaUI7UUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXhjZXB0aW9ufSBmcm9tIFwiLi9FeGNlcHRpb25cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7XHJcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gXCJOb3QgaW1wbGVtZW50ZWRcIikge1xyXG4gICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,8 +0,0 @@
1
- export class NumberFormatInfo {
2
- static NegativeSign = '-';
3
- static NumberDecimalSeparator = NumberFormatInfo.GetLocaleDecimalSeperator();
4
- static GetLocaleDecimalSeperator() {
5
- return (1.1).toLocaleString()[1];
6
- }
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnVtYmVyRm9ybWF0SW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTnVtYmVyRm9ybWF0SW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBVSxZQUFZLEdBQVcsR0FBRyxDQUFDO0lBRTNDLE1BQU0sQ0FBVSxzQkFBc0IsR0FBVyxnQkFBZ0IsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBRTdGLE1BQU0sQ0FBQyx5QkFBeUI7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTnVtYmVyRm9ybWF0SW5mbyB7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOZWdhdGl2ZVNpZ246IHN0cmluZyA9ICctJztcclxuXHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOdW1iZXJEZWNpbWFsU2VwYXJhdG9yOiBzdHJpbmcgPSBOdW1iZXJGb3JtYXRJbmZvLkdldExvY2FsZURlY2ltYWxTZXBlcmF0b3IoKTtcclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgR2V0TG9jYWxlRGVjaW1hbFNlcGVyYXRvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICgxLjEpLnRvTG9jYWxlU3RyaW5nKClbMV07IC8vIGdldCB0aGUgZGVjaW1hbCBzZXBlcmF0b3Igb2YgY3VycmVudCBsb2NhbGVcclxuICB9XHJcbn1cclxuIl19
@@ -1,7 +0,0 @@
1
- export class RefParam {
2
- value;
3
- constructor(value) {
4
- this.value = value;
5
- }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVmUGFyYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL1JlZlBhcmFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxRQUFRO0lBQ25CLEtBQUssQ0FBSTtJQUVULFlBQVksS0FBUTtRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUmVmUGFyYW08VD4ge1xyXG4gIHZhbHVlOiBUO1xyXG5cclxuICBjb25zdHJ1Y3Rvcih2YWx1ZTogVCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,35 +0,0 @@
1
- export class Stack {
2
- _array;
3
- constructor() {
4
- this._array = new Array();
5
- }
6
- count() {
7
- return this._array.length;
8
- }
9
- isEmpty() {
10
- return this._array.length === 0;
11
- }
12
- push(value) {
13
- this._array.push(value);
14
- }
15
- pop() {
16
- return this._array.pop();
17
- }
18
- peek() {
19
- if (this._array.length > 0) {
20
- return this._array[this._array.length - 1];
21
- }
22
- else {
23
- return null;
24
- }
25
- }
26
- Clear() {
27
- this._array.splice(0, this._array.length);
28
- }
29
- Clone() {
30
- let clone = new Stack();
31
- clone._array = this._array.slice();
32
- return clone;
33
- }
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBRVIsTUFBTSxDQUFlO0lBRTdCO1FBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBUyxDQUFDO0lBQ25DLENBQUM7SUFFTSxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sR0FBRztRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLEtBQUssR0FBaUIsSUFBSSxLQUFLLEVBQVMsQ0FBQztRQUM3QyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3RhY2s8VERhdGE+IHtcclxuXHJcbiAgcHJpdmF0ZSBfYXJyYXk6IEFycmF5PFREYXRhPjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9hcnJheSA9IG5ldyBBcnJheTxURGF0YT4oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FycmF5Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FycmF5Lmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwdXNoKHZhbHVlOiBURGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXJyYXkucHVzaCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9wKCk6IFREYXRhIHtcclxuICAgIHJldHVybiB0aGlzLl9hcnJheS5wb3AoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwZWVrKCk6IFREYXRhIHtcclxuICAgIGlmICh0aGlzLl9hcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hcnJheVt0aGlzLl9hcnJheS5sZW5ndGggLSAxXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIENsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXJyYXkuc3BsaWNlKDAsIHRoaXMuX2FycmF5Lmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2xvbmUoKTogU3RhY2s8VERhdGE+IHtcclxuICAgIGxldCBjbG9uZTogU3RhY2s8VERhdGE+ID0gbmV3IFN0YWNrPFREYXRhPigpO1xyXG4gICAgY2xvbmUuX2FycmF5ID0gdGhpcy5fYXJyYXkuc2xpY2UoKTtcclxuICAgIHJldHVybiBjbG9uZTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,14 +0,0 @@
1
- import * as StackTrace from 'stacktrace-js';
2
- export class StackFrame {
3
- stackFrame = null;
4
- constructor(skipFrames) {
5
- let stackFrames = StackTrace.getSync();
6
- if (skipFrames < 0 || skipFrames >= stackFrames.length)
7
- throw new Error("Argument out of range");
8
- this.stackFrame = stackFrames[skipFrames];
9
- }
10
- GetFileName() {
11
- return this.stackFrame.fileName;
12
- }
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2tGcmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvU3RhY2tGcmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUs1QyxNQUFNLE9BQU8sVUFBVTtJQUNiLFVBQVUsR0FBaUIsSUFBSSxDQUFDO0lBRXhDLFlBQVksVUFBa0I7UUFFNUIsSUFBSSxXQUFXLEdBQW1CLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2RCxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksVUFBVSxJQUFJLFdBQVcsQ0FBQyxNQUFNO1lBQ3BELE1BQU8sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFN0YWNrVHJhY2UgZnJvbSAnc3RhY2t0cmFjZS1qcyc7XHJcbmltcG9ydCBKU1N0YWNrRnJhbWUgPSBTdGFja1RyYWNlLlN0YWNrRnJhbWU7XHJcblxyXG4vLyBTdGFja0ZyYW1lIHVzZXMgU3RhY2tUcmFjZSB1dGlsaXR5IHVzaW5nIHN0YWNrdHJhY2UtanMgdXRpbGl0eSBmcm9tIG5wbVxyXG4vLyBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zdGFja3RyYWNlLWpzXHJcbmV4cG9ydCBjbGFzcyBTdGFja0ZyYW1lIHtcclxuICBwcml2YXRlIHN0YWNrRnJhbWU6IEpTU3RhY2tGcmFtZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHNraXBGcmFtZXM6IG51bWJlcikge1xyXG5cclxuICAgIGxldCBzdGFja0ZyYW1lczogSlNTdGFja0ZyYW1lW10gPSBTdGFja1RyYWNlLmdldFN5bmMoKTtcclxuICAgIGlmIChza2lwRnJhbWVzIDwgMCB8fCBza2lwRnJhbWVzID49IHN0YWNrRnJhbWVzLmxlbmd0aClcclxuICAgICAgdGhyb3cgIG5ldyBFcnJvcihcIkFyZ3VtZW50IG91dCBvZiByYW5nZVwiKTtcclxuXHJcbiAgICB0aGlzLnN0YWNrRnJhbWUgPSBzdGFja0ZyYW1lc1tza2lwRnJhbWVzXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRGaWxlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhY2tGcmFtZS5maWxlTmFtZTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,7 +0,0 @@
1
- import * as JSStackTrace from 'stacktrace-js';
2
- export class StackTrace {
3
- GetFrames() {
4
- return JSStackTrace.getSync();
5
- }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2tUcmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvU3RhY2tUcmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssWUFBWSxNQUFNLGVBQWUsQ0FBQztBQUs5QyxNQUFNLE9BQU8sVUFBVTtJQUNyQixTQUFTO1FBSVAsT0FBTyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgSlNTdGFja1RyYWNlIGZyb20gJ3N0YWNrdHJhY2UtanMnO1xyXG5pbXBvcnQgSlNTdGFja0ZyYW1lID0gSlNTdGFja1RyYWNlLlN0YWNrRnJhbWU7XHJcblxyXG4vLyBUaGlzIHVzZXMgU3RhY2tUcmFjZSB1dGlsaXR5IHVzaW5nIHN0YWNrdHJhY2UtanMgdXRpbGl0eSBmcm9tIG5wbS4gVXNlIHRoaXMgaW4gcGFja2FnZS5qc29uXHJcbi8vIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N0YWNrdHJhY2UtanNcclxuZXhwb3J0IGNsYXNzIFN0YWNrVHJhY2Uge1xyXG4gIEdldEZyYW1lcygpOiBKU1N0YWNrRnJhbWVbXSB7XHJcbiAgICAvLyBVc2luZyBnZXRTeW5jKCkgbWV0aG9kLCBpdCByZXR1cm5zIHJlZmVyZW5jZXMgb2YgY2FsbHN0YWNrIGV0aG9kIGZyb20gdGhlIGphdmFzY3JpcHQgZmlsZXMgYmluZGxlZCBhbmQgbm90IHR5cGVTY3JpcHQgZmlsZSBmcm9tIHNvdXJjZXMuXHJcbiAgICAvLyBIb3dldmVyLCBpZiBhU3luYyBtZXRob2Qgd291bGQgaGF2ZSB1c2VkLCBpdCBvdmVyY29tZXMgYWJvdmUgcHJvYmxlbXMgYnV0IHRoZSBjYWxsIHRvIGxvZyB3b3VsZCBoYXZlIGJlZW4gYXN5bmMgYW5kIHdlIHdvdWxkIG5vdCBoYXZlXHJcbiAgICAvLyByZWNlaXZlZCBzeW5jaHJvbm91cyBsb2dzIHdoaWNoIHdvdWxkIGJlIGNvbmZ1c2luZy5cclxuICAgIHJldHVybiBKU1N0YWNrVHJhY2UuZ2V0U3luYygpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,112 +0,0 @@
1
- import { Debug } from "./Debug";
2
- import { NString } from "./NString";
3
- export class StringBuilder {
4
- part = "";
5
- constructor(valueOrLength, length) {
6
- if (arguments.length > 0) {
7
- if (valueOrLength != null && valueOrLength.constructor === Number) {
8
- }
9
- else if (valueOrLength != null && valueOrLength.constructor === String) {
10
- this.part = valueOrLength.toString();
11
- }
12
- }
13
- }
14
- Append(textOrNum, startIndexOrNumberOfCharacters, charCount) {
15
- if (textOrNum === null)
16
- return this;
17
- if (textOrNum.constructor === String) {
18
- if (arguments.length === 1)
19
- this.AppendString(textOrNum.toString());
20
- else if (arguments.length === 2) {
21
- Debug.Assert(textOrNum.length === 1, "character is expected not string");
22
- this.AppendString(textOrNum.charAt(0).repeat(startIndexOrNumberOfCharacters));
23
- }
24
- else
25
- this.AppendString(textOrNum.toString(), startIndexOrNumberOfCharacters, charCount);
26
- }
27
- else
28
- this.AppendNumber(textOrNum, startIndexOrNumberOfCharacters);
29
- return this;
30
- }
31
- AppendString(text, startIndex = 0, charCount = text.length) {
32
- this.part = this.part + text.substr(startIndex, charCount);
33
- }
34
- AppendNumber(num, numberOfCharacters = 1) {
35
- if (numberOfCharacters <= 0)
36
- throw new Error("numberOfCharacters cannot be less than or equal to zero");
37
- this.part = this.part + num.toString().repeat(numberOfCharacters);
38
- }
39
- AppendLine(text = null) {
40
- if (text !== null)
41
- this.part = this.part + text;
42
- this.part = this.part + '\n';
43
- }
44
- AppendFormat(format, arg0, arg1, arg2) {
45
- this.part = this.part + NString.Format(format, arg0, arg1, arg2);
46
- return this;
47
- }
48
- ToString(startIndex, length) {
49
- if (arguments.length === 2) {
50
- if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)
51
- throw new Error("Argument out of range");
52
- return this.part.substr(startIndex, length);
53
- }
54
- return this.part;
55
- }
56
- get Length() {
57
- return this.part.length;
58
- }
59
- get_Item(index) {
60
- if (index < 0 || index >= this.part.length)
61
- throw new Error("Index out of range");
62
- return this.part.charAt(index);
63
- }
64
- set_Item(index, value) {
65
- if (index < 0 || index >= this.part.length)
66
- throw new Error("Index out of range");
67
- Debug.Assert(value.length <= 1, "Length of string cannot be more than 1. Only character is expected");
68
- let leftPart = this.part.substring(0, index);
69
- let rightPart = this.part.substring(index + 1, this.part.length);
70
- this.part = leftPart + value.charAt(0) + rightPart;
71
- }
72
- Insert(index, value) {
73
- if (index < 0 || index > this.part.length)
74
- throw new Error("Argument out of range");
75
- let leftPart = this.part.substring(0, index);
76
- let rightPart = this.part.substring(index, this.part.length);
77
- this.part = leftPart + value + rightPart;
78
- return this;
79
- }
80
- Remove(startIndex, length) {
81
- if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)
82
- throw new Error("Argument out of range");
83
- let leftPart = this.part.substring(0, startIndex);
84
- let rightPart = this.part.substring(startIndex + length, this.part.length);
85
- this.part = leftPart + rightPart;
86
- return this;
87
- }
88
- Replace(oldValue, newValue, startIndex, count) {
89
- if (oldValue === null)
90
- throw new Error("oldValue cannot be null");
91
- else if (oldValue.length === 0)
92
- throw new Error("Length of oldValue cannot be 0");
93
- if (arguments.length === 4) {
94
- if (startIndex < 0 || count < 0 || (startIndex + count) > this.part.length)
95
- throw new Error("Argument out of range");
96
- }
97
- if (arguments.length === 2)
98
- this.part = this.part.replace(new RegExp(oldValue, 'g'), newValue);
99
- else if (arguments.length === 4) {
100
- let substr = this.part.substring(startIndex, startIndex + count);
101
- substr = substr.replace(new RegExp(oldValue, 'g'), newValue);
102
- let leftPart = this.part.substring(0, startIndex);
103
- let rightPart = this.part.substring(startIndex + count, this.part.length);
104
- this.part = leftPart + substr + rightPart;
105
- }
106
- return this;
107
- }
108
- toString() {
109
- return this.ToString();
110
- }
111
- }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RyaW5nQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvU3RyaW5nQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFNbEMsTUFBTSxPQUFPLGFBQWE7SUFDaEIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUsxQixZQUFZLGFBQW1CLEVBQUUsTUFBZTtRQUM5QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLElBQUksYUFBYSxJQUFJLElBQUksSUFBSyxhQUFhLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTthQUluRTtpQkFDSSxJQUFJLGFBQWEsSUFBSSxJQUFJLElBQUssYUFBYSxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7Z0JBQ3ZFLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBSXRDO1NBQ0Y7SUFDSCxDQUFDO0lBT0QsTUFBTSxDQUFDLFNBQWMsRUFBRSw4QkFBdUMsRUFBRSxTQUFrQjtRQUVoRixJQUFJLFNBQVMsS0FBSyxJQUFJO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBRWQsSUFBSSxTQUFTLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTtZQUNwQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDckMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLENBQUMs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LEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFN0QsSUFBSSxRQUFRLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFELElBQUksU0FBUyxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR0QsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGVidWd9IGZyb20gXCIuL0RlYnVnXCI7XHJcbmltcG9ydCB7TlN0cmluZ30gZnJvbSBcIi4vTlN0cmluZ1wiO1xyXG5cclxuLy8gU3RyaW5nQnVpbGRlciBjbGFzcy4gSXRzIEltcGxlbWVudGF0aW9uIGN1cnJlbnRseSB1c2VzIHN0cmluZyBvYmplY3QuIEl0IGNvdWxkIGhhdmUgYmVlbiBzdHJpbmdbXSwgYnV0IGl0IGhhcyBpc3N1ZXMgd2hlbiBpbnNlcnRpbmcgc3RyaW5nLlxyXG4vLyBJdCB3b3VsZCBub3QgaGF2ZSBzZXJ2ZWQgcHVycG9zZSB3aGlsZSBpbnNlcnRpbmcgYSBzdHJpbmcuIE90aGVyICBjb3VsZCBiZSB0byB1c2Ugc3RyaW5nW10gd2l0aCBvbmUgY2hyYXJhY3RlciBwZXIgc3RyaW5nLiBFdmVuIGl0cyB1dGlsaXR5XHJcbi8vIGlzIGRvdWJ0ZnVsIGFzIHdoaWxlIG1hbmlwdWxhdGlvbiwgaXQgd291bGQgYmUgY3JldGluZyBuZXcgb2JqZWN0cyBpbnN0ZWFkIHBvaW50ZXJzLiBTbyBmb3Igbm93IHdlIGhhdmUgdXNlZCBvbmx5IHN0cmluZyBhbmQgc2VlIGlmIHdlIGhhdmVcclxuLy8gYW55IHBlcmZvcm1hbmNlIGlzc3Vlcy5cclxuZXhwb3J0IGNsYXNzIFN0cmluZ0J1aWxkZXIge1xyXG4gIHByaXZhdGUgcGFydDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLy8gQ3RvclxyXG4gIGNvbnN0cnVjdG9yKGxlbmd0aD86IG51bWJlcilcclxuICBjb25zdHJ1Y3Rvcih2YWx1ZT86IHN0cmluZywgbGVuZ3RoPzogbnVtYmVyKVxyXG4gIGNvbnN0cnVjdG9yKHZhbHVlT3JMZW5ndGg/OiBhbnksIGxlbmd0aD86IG51bWJlcikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh2YWx1ZU9yTGVuZ3RoICE9IG51bGwgICYmIHZhbHVlT3JMZW5ndGguY29uc3RydWN0b3IgPT09IE51bWJlcikge1xyXG4gICAgICAgIC8vIFRPRE86IFZlcnkgbG93IHByaW9yaXR5IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IC0gSW1wbGVtZW50IHRoaXMuXHJcbiAgICAgICAgLy8gRGVidWcuQXNzZXJ0KGZhbHNlLCBcIlN0cmluZ0J1aWxkZXI6IE5vdEltcGxlbWVudGVkIGNvbnN0cnVjdG9yIHdpdGggaW5pdGlhbCBsZW5ndGgvY2FwYWNpdHlcIik7XHJcbiAgICAgICAgLy8gdGhyb3cgIG5ldyBFcnJvcihcIk5vdEltcGxlbWVudGVkIGNvbnN0cnVjdG9yIHdpdGggaW5pdGlhbCBsZW5ndGgvY2FwYWNpdHlcIik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodmFsdWVPckxlbmd0aCAhPSBudWxsICAmJiB2YWx1ZU9yTGVuZ3RoLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnBhcnQgPSB2YWx1ZU9yTGVuZ3RoLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgLy8gVE9ETzogVmVyeSBsb3cgcHJpb3JpdHkgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgLSBJbXBsZW1lbnQgdGhpcy5cclxuICAgICAgICAvLyBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMilcclxuICAgICAgICAvLyAgIERlYnVnLkFzc2VydChmYWxzZSwgXCJOb3RJbXBsZW1lbnRlZCBjb25zdHJ1Y3RvciB3aXRoIGluaXRpYWwgbGVuZ3RoL2NhcGFjaXR5XCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmRzIHN0cmluZy9udW1iZXJcclxuICBBcHBlbmQobnVtOiBudW1iZXIsIG51bWJlck9mQ2hhcmFjdGVycz86IG51bWJlcik6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHQ6IHN0cmluZyk6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHQ6IHN0cmluZywgbnVtYmVyT2ZDaGFyYWN0ZXJzOiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIEFwcGVuZCh0ZXh0OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgY2hhckNvdW50OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIEFwcGVuZCh0ZXh0T3JOdW06IGFueSwgc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzPzogbnVtYmVyLCBjaGFyQ291bnQ/OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyIHtcclxuXHJcbiAgICBpZiAodGV4dE9yTnVtID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gdGhpcztcclxuXHJcbiAgICBpZiAodGV4dE9yTnVtLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgdGhpcy5BcHBlbmRTdHJpbmcodGV4dE9yTnVtLnRvU3RyaW5nKCkpO1xyXG4gICAgICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgRGVidWcuQXNzZXJ0KHRleHRPck51bS5sZW5ndGggPT09IDEsIFwiY2hhcmFjdGVyIGlzIGV4cGVjdGVkIG5vdCBzdHJpbmdcIik7XHJcbiAgICAgICAgdGhpcy5BcHBlbmRTdHJpbmcodGV4dE9yTnVtLmNoYXJBdCgwKS5yZXBlYXQoc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuQXBwZW5kU3RyaW5nKHRleHRPck51bS50b1N0cmluZygpLCBzdGFydEluZGV4T3JOdW1iZXJPZkNoYXJhY3RlcnMsIGNoYXJDb3VudCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuQXBwZW5kTnVtYmVyKHRleHRPck51bSwgc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8vIEFwcGVuZCBzdHJpbmdcclxuICBwcml2YXRlIEFwcGVuZFN0cmluZyh0ZXh0OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciA9IDAsIGNoYXJDb3VudDogbnVtYmVyID0gdGV4dC5sZW5ndGgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIHRleHQuc3Vic3RyKHN0YXJ0SW5kZXgsIGNoYXJDb3VudCk7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmQgTnVtYmVyXHJcbiAgcHJpdmF0ZSBBcHBlbmROdW1iZXIobnVtOiBudW1iZXIsIG51bWJlck9mQ2hhcmFjdGVyczogbnVtYmVyID0gMSk6IHZvaWQge1xyXG4gICAgaWYgKG51bWJlck9mQ2hhcmFjdGVycyA8PSAwKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJudW1iZXJPZkNoYXJhY3RlcnMgY2Fubm90IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB6ZXJvXCIpO1xyXG5cclxuICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIG51bS50b1N0cmluZygpLnJlcGVhdChudW1iZXJPZkNoYXJhY3RlcnMpO1xyXG4gIH1cclxuXHJcbiAgLy8gQXBwZW5kIExpbmVcclxuICBBcHBlbmRMaW5lKHRleHQ6IHN0cmluZyA9IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0ZXh0ICE9PSBudWxsKVxyXG4gICAgICB0aGlzLnBhcnQgPSB0aGlzLnBhcnQgKyB0ZXh0O1xyXG4gICAgdGhpcy5wYXJ0ID0gdGhpcy5wYXJ0ICsgJ1xcbic7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmQgRm9ybWF0dGVkIHN0cmluZ1xyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55KTogU3RyaW5nQnVpbGRlclxyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxOiBhbnkpOiBTdHJpbmdCdWlsZGVyXHJcbiAgQXBwZW5kRm9ybWF0KGZvcm1hdDogc3RyaW5nLCBhcmcwOiBhbnksIGFyZzE6IGFueSwgYXJnMjogYW55KTogU3RyaW5nQnVpbGRlclxyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55KTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICB0aGlzLnBhcnQgPSB0aGlzLnBhcnQgKyBOU3RyaW5nLkZvcm1hdChmb3JtYXQsIGFyZzAsIGFyZzEsIGFyZzIpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyBDb252ZXJ0IHRvIHN0cmluZ1xyXG4gIFRvU3RyaW5nKCk6IHN0cmluZztcclxuICBUb1N0cmluZyhzdGFydEluZGV4OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nO1xyXG4gIFRvU3RyaW5nKHN0YXJ0SW5kZXggPzogbnVtYmVyLCBsZW5ndGggPzogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIGlmIChzdGFydEluZGV4IDwgMCB8fCBsZW5ndGggPCAwIHx8IChzdGFydEluZGV4ICsgbGVuZ3RoKSA+IHRoaXMucGFydC5sZW5ndGgpXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMucGFydC5zdWJzdHIoc3RhcnRJbmRleCwgbGVuZ3RoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnBhcnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgTGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJ0Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldF9JdGVtKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucGFydC5jaGFyQXQoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgc2V0X0l0ZW0oaW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgRGVidWcuQXNzZXJ0KHZhbHVlLmxlbmd0aCA8PSAxLCBcIkxlbmd0aCBvZiBzdHJpbmcgY2Fubm90IGJlIG1vcmUgdGhhbiAxLiBPbmx5IGNoYXJhY3RlciBpcyBleHBlY3RlZFwiKTtcclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XHJcbiAgICBsZXQgcmlnaHRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKGluZGV4ICsgMSwgdGhpcy5wYXJ0Lmxlbmd0aCk7XHJcbiAgICB0aGlzLnBhcnQgPSBsZWZ0UGFydCArIHZhbHVlLmNoYXJBdCgwKSArIHJpZ2h0UGFydDtcclxuICB9XHJcblxyXG4gIEluc2VydChpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5wYXJ0Lmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XHJcbiAgICBsZXQgcmlnaHRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKGluZGV4LCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgIHRoaXMucGFydCA9IGxlZnRQYXJ0ICsgdmFsdWUgKyByaWdodFBhcnQ7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBSZW1vdmUoc3RhcnRJbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IFN0cmluZ0J1aWxkZXIge1xyXG4gICAgaWYgKHN0YXJ0SW5kZXggPCAwIHx8IGxlbmd0aCA8IDAgfHwgKHN0YXJ0SW5kZXggKyBsZW5ndGgpID4gdGhpcy5wYXJ0Lmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBzdGFydEluZGV4KTtcclxuICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoc3RhcnRJbmRleCArIGxlbmd0aCwgdGhpcy5wYXJ0Lmxlbmd0aCk7XHJcbiAgICB0aGlzLnBhcnQgPSBsZWZ0UGFydCArIHJpZ2h0UGFydDtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIFJlcGxhY2Uob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZyk6IFN0cmluZ0J1aWxkZXI7XHJcbiAgUmVwbGFjZShvbGRWYWx1ZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nLCBzdGFydEluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIFJlcGxhY2Uob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZywgc3RhcnRJbmRleD86IG51bWJlciwgY291bnQ/OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyIHtcclxuICAgIGlmIChvbGRWYWx1ZSA9PT0gbnVsbClcclxuICAgICAgdGhyb3cgIG5ldyBFcnJvcihcIm9sZFZhbHVlIGNhbm5vdCBiZSBudWxsXCIpO1xyXG4gICAgZWxzZSBpZiAob2xkVmFsdWUubGVuZ3RoID09PSAwKVxyXG4gICAgICB0aHJvdyAgbmV3IEVycm9yKFwiTGVuZ3RoIG9mIG9sZFZhbHVlIGNhbm5vdCBiZSAwXCIpO1xyXG5cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSA0KSB7XHJcbiAgICAgIGlmIChzdGFydEluZGV4IDwgMCB8fCBjb3VudCA8IDAgfHwgKHN0YXJ0SW5kZXggKyBjb3VudCkgPiB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICAgIHRocm93ICBuZXcgRXJyb3IoXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpXHJcbiAgICAgIHRoaXMucGFydCA9IHRoaXMucGFydC5yZXBsYWNlKG5ldyBSZWdFeHAob2xkVmFsdWUsICdnJyksIG5ld1ZhbHVlKTtcclxuICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDQpIHtcclxuICAgICAgbGV0IHN1YnN0cjogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZyhzdGFydEluZGV4LCBzdGFydEluZGV4ICsgY291bnQpO1xyXG4gICAgICBzdWJzdHIgPSBzdWJzdHIucmVwbGFjZShuZXcgUmVnRXhwKG9sZFZhbHVlLCAnZycpLCBuZXdWYWx1ZSk7XHJcblxyXG4gICAgICBsZXQgbGVmdFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoMCwgc3RhcnRJbmRleCk7XHJcbiAgICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoc3RhcnRJbmRleCArIGNvdW50LCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgICAgdGhpcy5wYXJ0ID0gbGVmdFBhcnQgKyBzdWJzdHIgKyByaWdodFBhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm4gdGhlIHN0cmluZ1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5Ub1N0cmluZygpO1xyXG4gIH1cclxufVxyXG4iXX0=