@magic-xpa/engine 4.900.0-dev491.7 → 4.1000.0-dev000.0

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.
@@ -38,9 +38,10 @@ export class Scrambler {
38
38
  if (high > (sqrt / 2))
39
39
  high = Math.floor(sqrt / 2);
40
40
  delta = (Math.random() * (high - low)) + low;
41
+ delta = Math.floor(delta);
41
42
  if (delta === Scrambler.XML_ILLEGAL_RANDOM)
42
43
  delta++;
43
- return Math.floor(delta);
44
+ return delta;
44
45
  }
45
46
  static UnScramble(inVal, beginOffSet, endOffSet) {
46
47
  if (!Scrambler.ScramblingEnabled) {
@@ -85,4 +86,4 @@ Scrambler.ScramblingEnabled = true;
85
86
  Scrambler.XML_MIN_RANDOM = -48;
86
87
  Scrambler.XML_MAX_RANDOM = 47;
87
88
  Scrambler.XML_ILLEGAL_RANDOM = -21;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyYW1ibGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy91dGlsL1NjcmFtYmxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRSxNQUFNLE9BQU8sU0FBUztJQVNwQixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFDekIsT0FBTyxLQUFLLENBQUM7UUFFZixJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7UUFDckIsSUFBSSxPQUFlLENBQUM7UUFDcEIsSUFBSSxNQUFNLEdBQVcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLE1BQU0sR0FBVyxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN6RCxJQUFJLE1BQU0sR0FBa0IsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRzFELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksR0FBRyxDQUFDLENBQUM7WUFFVCxPQUFPLElBQUksR0FBRyxNQUFNLEVBQUU7Z0JBQ3BCLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksSUFBSSxHQUFHLENBQUM7YUFDYjtTQUNGO1FBR0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBUTtRQUMxQixPQUFPLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR08sTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFhLEVBQUUsSUFBWTtRQUN2RCxJQUFJLENBQUMsR0FBVyxJQUFJLENBQUM7UUFDckIsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5RCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNYO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQWdCTyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVc7UUFDdkMsSUFBSSxLQUFhLENBQUM7UUFDbEIsSUFBSSxJQUFJLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLEdBQUcsR0FBVyxTQUFTLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksSUFBSSxHQUFXLFNBQVMsQ0FBQyxjQUFjLENBQUM7UUFFNUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdEMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUU5QixLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDN0MsSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDLGtCQUFrQjtZQUN4QyxLQUFLLEVBQUUsQ0FBQztRQUVWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBT0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFhLEVBQUUsV0FBbUIsRUFBRSxTQUFpQjtRQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFO1lBQ2hDLElBQUksTUFBTSxHQUFXLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFNBQVMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUUsT0FBTyxNQUFNLENBQUM7U0FDZjthQUNJO1lBQ0gsSUFBSSxPQUFlLEVBQUUsTUFBYyxFQUFFLENBQVMsQ0FBQztZQUMvQyxJQUFJLE1BQWMsQ0FBQztZQUNuQixJQUFJLEdBQVcsQ0FBQztZQUNoQixJQUFJLE1BQWdCLENBQUM7WUFDckIsSUFBSSxPQUFlLENBQUM7WUFDcEIsSUFBSSxTQUFpQixDQUFDO1lBQ3RCLElBQUksUUFBZ0IsQ0FBQztZQUNyQixJQUFJLEtBQWEsQ0FBQztZQUNsQixJQUFJLFNBQWlCLENBQUM7WUFHdEIsU0FBUyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFJMUIsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2hELFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRTdCLE1BQU0sR0FBRyxTQUFTLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUMvQixHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQixTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDckMsUUFBUSxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFFeEIsS0FBSyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNYLE9BQU8sR0FBRyxDQUFDLENBQUM7Z0JBRVosT0FBTyxNQUFNLEdBQUcsTUFBTSxJQUFJLE9BQU8sR0FBRyxNQUFNLEVBQUU7b0JBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO29CQUN4QyxNQUFNLElBQUksU0FBUyxDQUFDO29CQUNwQixJQUFJLE9BQU8sSUFBSSxRQUFRO3dCQUNyQixNQUFNLEVBQUUsQ0FBQztvQkFDWCxPQUFPLEVBQUUsQ0FBQztvQkFDVixPQUFPLEVBQUUsQ0FBQztpQkFDWDthQUNGO1lBRUQsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7QUFsSU0sMkJBQWlCLEdBQVksSUFBSSxDQUFDO0FBQzFCLHdCQUFjLEdBQVcsQ0FBQyxFQUFFLENBQUM7QUFDN0Isd0JBQWMsR0FBVyxFQUFFLENBQUM7QUFDNUIsNEJBQWtCLEdBQVcsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05DaGFyLCBOU3RyaW5nLCBTdHJpbmdCdWlsZGVyfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTY3JhbWJsZXIge1xyXG4gIHN0YXRpYyBTY3JhbWJsaW5nRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7IC8vIERpc2FibGUgc2NyYW1ibGluZ1xyXG4gIHByaXZhdGUgc3RhdGljIFhNTF9NSU5fUkFORE9NOiBudW1iZXIgPSAtNDg7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgWE1MX01BWF9SQU5ET006IG51bWJlciA9IDQ3O1xyXG4gIHByaXZhdGUgc3RhdGljIFhNTF9JTExFR0FMX1JBTkRPTTogbnVtYmVyID0gLTIxO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+c2NyYW1ibGUgc3RyaW5nPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImluVmFsXCI+c3RyaW5nIHRvIHNjcmFtYmxlPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHNjcmFtYmxlZCBzdHJpbmc8L3JldHVybnM+XHJcbiAgc3RhdGljIFNjcmFtYmxlKGluVmFsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLlNjcmFtYmxpbmdFbmFibGVkKVxyXG4gICAgICByZXR1cm4gaW5WYWw7XHJcblxyXG4gICAgbGV0IGN1cnI6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgY3VyckNocjogc3RyaW5nO1xyXG4gICAgbGV0IGxlbmd0aDogbnVtYmVyID0gaW5WYWwubGVuZ3RoO1xyXG4gICAgbGV0IHJhbmRvbTogbnVtYmVyID0gU2NyYW1ibGVyLlJhbmRvbVNjcmFtYmxlKGxlbmd0aCk7XHJcbiAgICBsZXQga2V5OiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGguc3FydChsZW5ndGgpKSArIHJhbmRvbTtcclxuICAgIGxldCBvdXRWYWw6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcihsZW5ndGggKyAxKTtcclxuXHJcbiAgICAvLyBUaGUgZmlyc3QgY2hhciBpbiB0aGUgc2NyYW1ibGVkIHN0cmluZyBpcyBhIHJhbmRvbSBtb2RpZmllciB0byB0aGUgZGVmYXVsdCBrZXlcclxuICAgIG91dFZhbC5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZShyYW5kb20gKyA4MSkpO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBrZXk7IGkrKykge1xyXG4gICAgICBjdXJyID0gaTtcclxuXHJcbiAgICAgIHdoaWxlIChjdXJyIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgY3VyckNociA9IGluVmFsW2N1cnJdO1xyXG4gICAgICAgIG91dFZhbC5BcHBlbmQoY3VyckNocik7XHJcbiAgICAgICAgY3VyciArPSBrZXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBUaGUgbGFzdCBjaGFyIGluIHRoZSBzY3JhbWJsZWQgc3RyaW5nIGlzIGEgcGFkZGluZyByZWFkYWJsZSBjaGFyLlxyXG4gICAgb3V0VmFsLkFwcGVuZCgnXycpLyonXycqLztcclxuICAgIHJldHVybiBvdXRWYWwuVG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5kZWxldGUgZmlyc3QgY2hhcmFjdGVyIG9mIHNjcmFtYmxlZCB0ZXh0IGFuZCBtYWtlcyBsZWZ0IHRyaW0gdG8gdGhlIHN0cmluZzwvc3VtbWFyeT5cclxuICBwcml2YXRlIHN0YXRpYyBMb2NhdGVTY3JhbWJsZShpblZhbDogc3RyaW5nLCBmcm9tOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IGk6IG51bWJlciA9IGZyb207XHJcbiAgICB3aGlsZSAoaSA8IGluVmFsLmxlbmd0aCAmJiBOQ2hhci5Jc1doaXRlU3BhY2UoaW5WYWwuY2hhckF0KGkpKSkge1xyXG4gICAgICBpID0gaSArIDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaSArIDE7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENob29zZSBhIHJhbmRvbSBtb2RpZmllciB0byB0aGUga2V5IG9uIHdoaWNoIHdlIGJhc2UgdGhlIHNjcmFtYmxpbmcgcHJvY2Vzcy5cclxuICAvLy8gVGhlIHJhbmRvbSBmYWN0b3IgY2Fubm90IGJlIGp1c3QgYW55IG51bWJlciB3ZSBjaG9vc2UuIFNpbmNlIHRoZSBzY3JhbWJsZSBrZXlcclxuICAvLy8gZGV0ZXJtaW5lcyB0aGUgYW1vdW50IG9mICdqdW1wcycgd2UgcGVyZm9ybSBvbiB0aGUgdGV4dCB0byBiZSBzY3JhbWJsZWQsIHRoZW5cclxuICAvLy8gdGhlIHJhbmRvbSBudW1iZXIgd2UgYWRkIHRvIGl0IG11c3Qgbm90IGJlIHRvbyBiaWcsIG5vciB0b28gc21hbGwuIEFzIGEgcnVsZSxcclxuICAvLy8gdGhlIHJhbmRvbSBtb2RpZmllciBjYW4gcmFuZ2UgZnJvbSBTUVJUKGxlbikvMicgdG8gJy1TUVJUKGxlbikvMicsIGFuZCBzaW5jZSB3ZVxyXG4gIC8vLyBwYXNzIHRoZSBzZWxlY3RlZCBudW1iZXIgYXMgYSBjaGFyYWN0ZXIgd2l0aGluIHRoZSBYTUwsIHRoZSB3aG9sZSByYW5nZSBjYW5ub3RcclxuICAvLy8gZXhjZWVkIHRoZSBudW1iZXIgb2YgdGhlIHByaW50YWJsZSBjaGFyYWN0ZXJzICg5NSksIHRodXMgdGhlIHJhbmdlIGlzIGxpbWl0ZWRcclxuICAvLy8gYmV0d2VlbiAoLTQ4KSB0byAoNDcpLCBzbyB3ZSBjYXAgdGhlIGFsbG93ZWQgcmFuZ2UgYWNjb3JkaW5nIHRvIHRoZXNlIGxpbWl0cy5cclxuICAvLy8gTGFzdCwgdGhlIHZhbHVlIFhNTF9JTExFR0FMX1JBTkRPTSwgc2luY2UgaXQgd2lsbCByZXN1bHQgaW4gYWRkaW5nIHRoZSBjaGFyICc8J1xyXG4gIC8vLyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBYTUwuIFRoaXMgd2lsbCBtYWtlIHRoZSBjbGllbnQgY29uZnVzZWQsIHNpbmNlIGl0IHdpbGxcclxuICAvLy8gdGhpbmsgdGhlIFhNTCBpcyBub3Qgc2NyYW1ibGVkLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwibGVuXCI+b2Ygb3V0Z29pbmcgU3RyaW5nPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHJhbmRvbSBtb2RpZmllcjwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBSYW5kb21TY3JhbWJsZShsZW46IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgZGVsdGE6IG51bWJlcjtcclxuICAgIGxldCBzcXJ0OiBudW1iZXIgPSBNYXRoLnNxcnQobGVuKTtcclxuICAgIGxldCBsb3c6IG51bWJlciA9IFNjcmFtYmxlci5YTUxfTUlOX1JBTkRPTTtcclxuICAgIGxldCBoaWdoOiBudW1iZXIgPSBTY3JhbWJsZXIuWE1MX01BWF9SQU5ET007XHJcblxyXG4gICAgaWYgKGxvdyA8ICgoKC0xKSAqIHNxcnQpIC8gMikpXHJcbiAgICAgIGxvdyA9IE1hdGguZmxvb3IoKCgtMSkgKiBzcXJ0KSAvIDIpO1xyXG5cclxuICAgIGlmIChoaWdoID4gKHNxcnQgLyAyKSlcclxuICAgICAgaGlnaCA9IE1hdGguZmxvb3Ioc3FydCAvIDIpO1xyXG5cclxuICAgIGRlbHRhID0gKE1hdGgucmFuZG9tKCkgKiAoaGlnaCAtIGxvdykpICsgbG93O1xyXG4gICAgaWYgKGRlbHRhID09PSBTY3JhbWJsZXIuWE1MX0lMTEVHQUxfUkFORE9NKVxyXG4gICAgICBkZWx0YSsrO1xyXG5cclxuICAgIHJldHVybiBNYXRoLmZsb29yKGRlbHRhKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5tYWtlIHVuc2NyYW1ibGluZyB0byBzdHJpbmcgaW5zaWRlIHVwcGVyIGFuZCBkb3duIGJvcmRlcjwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpblZhbFwiPnNjcmFtYmxlZCBzdHJpbmcgdG8gYnVpbGQgdW5zY3JhbWJsZWQgc3RyaW5nIGZyb20gaXQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJlZ2luT2ZmU2V0XCI+b2Zmc2V0IHdoZXJlIHRoZSBzY3JhbWJsZWQgc3RyaW5nIGJlZ2luczwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZW5kT2ZmU2V0XCI+b2Zmc2V0IG9mIHRoZSBsYXN0IGNoYXIgaW4gdGhlIHNjcmFtYmxlZCBzdHJpbmcuPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHVuc2NyYW1ibGVkIHN0cmluZzwvcmV0dXJucz5cclxuICBzdGF0aWMgVW5TY3JhbWJsZShpblZhbDogc3RyaW5nLCBiZWdpbk9mZlNldDogbnVtYmVyLCBlbmRPZmZTZXQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoIVNjcmFtYmxlci5TY3JhbWJsaW5nRW5hYmxlZCkge1xyXG4gICAgICBsZXQgb3V0VmFsOiBzdHJpbmcgPSBpblZhbC5zdWJzdHIoYmVnaW5PZmZTZXQsIGVuZE9mZlNldCAtIGJlZ2luT2ZmU2V0ICsgMSk7XHJcbiAgICAgIHJldHVybiBvdXRWYWw7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IGN1cnJPdXQ6IG51bWJlciwgY3VyckluOiBudW1iZXIsIGk6IG51bWJlcjtcclxuICAgICAgbGV0IGxlbmd0aDogbnVtYmVyO1xyXG4gICAgICBsZXQga2V5OiBudW1iZXI7XHJcbiAgICAgIGxldCBvdXRWYWw6IHN0cmluZ1tdO1xyXG4gICAgICBsZXQgY3VyckJsazogbnVtYmVyO1xyXG4gICAgICBsZXQgYmxvY2tTaXplOiBudW1iZXI7XHJcbiAgICAgIGxldCByZW1pbmRlcjogbnVtYmVyO1xyXG4gICAgICBsZXQgc3RhcnQ6IG51bWJlcjtcclxuICAgICAgbGV0IHJhbmRvbUNocjogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gaWdub3JlIHRoZSBsYXN0IGNoYXIgaW4gdGhlIGlucHV0LCBpdCdzIGp1c3QgYSBwYWRkaW5nIGNoYXJhY3Rlci5cclxuICAgICAgZW5kT2ZmU2V0ID0gZW5kT2ZmU2V0IC0gMTtcclxuXHJcbiAgICAgIC8vIHNraXAgb3ZlciB0aGUgZmlyc3QgY2hhciBpbiB0aGUgaW5wdXQsIGl0IG9ubHkgY29udGFpbnMgYSByYW5kb20gbW9kaWZpZXIgdG8gdGhlIGtleS5cclxuICAgICAgLy8gaXQgaXMgbm90IHBhcnQgb2YgdGhlIGRhdGEuXHJcbiAgICAgIHN0YXJ0ID0gdGhpcy5Mb2NhdGVTY3JhbWJsZShpblZhbCwgYmVnaW5PZmZTZXQpO1xyXG4gICAgICByYW5kb21DaHIgPSBpblZhbFtzdGFydCAtIDFdO1xyXG5cclxuICAgICAgbGVuZ3RoID0gZW5kT2ZmU2V0IC0gc3RhcnQgKyAxO1xyXG4gICAgICBrZXkgPSAocmFuZG9tQ2hyLmNoYXJDb2RlQXQoMCkgLSA4MSkgKyBNYXRoLmZsb29yKE1hdGguc3FydChsZW5ndGgpKTtcclxuICAgICAgb3V0VmFsID0gbmV3IEFycmF5KGxlbmd0aCk7XHJcbiAgICAgIGJsb2NrU2l6ZSA9IE1hdGguZmxvb3IobGVuZ3RoIC8ga2V5KTtcclxuICAgICAgcmVtaW5kZXIgPSBsZW5ndGggJSBrZXk7XHJcblxyXG4gICAgICBmb3IgKGkgPSBjdXJyT3V0ID0gMDsgY3Vyck91dCA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY3VyckluID0gaTtcclxuICAgICAgICBjdXJyQmxrID0gMTtcclxuXHJcbiAgICAgICAgd2hpbGUgKGN1cnJJbiA8IGxlbmd0aCAmJiBjdXJyT3V0IDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgICBvdXRWYWxbY3Vyck91dF0gPSBpblZhbFtjdXJySW4gKyBzdGFydF07XHJcbiAgICAgICAgICBjdXJySW4gKz0gYmxvY2tTaXplO1xyXG4gICAgICAgICAgaWYgKGN1cnJCbGsgPD0gcmVtaW5kZXIpXHJcbiAgICAgICAgICAgIGN1cnJJbisrO1xyXG4gICAgICAgICAgY3Vyck91dCsrO1xyXG4gICAgICAgICAgY3VyckJsaysrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIE5TdHJpbmcuRnJvbUNoYXJzKG91dFZhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyYW1ibGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy91dGlsL1NjcmFtYmxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRSxNQUFNLE9BQU8sU0FBUztJQVNwQixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFDekIsT0FBTyxLQUFLLENBQUM7UUFFZixJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7UUFDckIsSUFBSSxPQUFlLENBQUM7UUFDcEIsSUFBSSxNQUFNLEdBQVcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLE1BQU0sR0FBVyxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN6RCxJQUFJLE1BQU0sR0FBa0IsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRzFELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksR0FBRyxDQUFDLENBQUM7WUFFVCxPQUFPLElBQUksR0FBRyxNQUFNLEVBQUU7Z0JBQ3BCLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksSUFBSSxHQUFHLENBQUM7YUFDYjtTQUNGO1FBR0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBUTtRQUMxQixPQUFPLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR08sTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFhLEVBQUUsSUFBWTtRQUN2RCxJQUFJLENBQUMsR0FBVyxJQUFJLENBQUM7UUFDckIsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5RCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNYO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQWdCTyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVc7UUFDdkMsSUFBSSxLQUFhLENBQUM7UUFDbEIsSUFBSSxJQUFJLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLEdBQUcsR0FBVyxTQUFTLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksSUFBSSxHQUFXLFNBQVMsQ0FBQyxjQUFjLENBQUM7UUFFNUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdEMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUU5QixLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDN0MsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDLGtCQUFrQjtZQUN4QyxLQUFLLEVBQUUsQ0FBQztRQUVWLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQU9ELE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYSxFQUFFLFdBQW1CLEVBQUUsU0FBaUI7UUFDckUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRTtZQUNoQyxJQUFJLE1BQU0sR0FBVyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxTQUFTLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVFLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFDSTtZQUNILElBQUksT0FBZSxFQUFFLE1BQWMsRUFBRSxDQUFTLENBQUM7WUFDL0MsSUFBSSxNQUFjLENBQUM7WUFDbkIsSUFBSSxHQUFXLENBQUM7WUFDaEIsSUFBSSxNQUFnQixDQUFDO1lBQ3JCLElBQUksT0FBZSxDQUFDO1lBQ3BCLElBQUksU0FBaUIsQ0FBQztZQUN0QixJQUFJLFFBQWdCLENBQUM7WUFDckIsSUFBSSxLQUFhLENBQUM7WUFDbEIsSUFBSSxTQUFpQixDQUFDO1lBR3RCLFNBQVMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBSTFCLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNoRCxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUU3QixNQUFNLEdBQUcsU0FBUyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDL0IsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNyRSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBRXhCLEtBQUssQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDWCxPQUFPLEdBQUcsQ0FBQyxDQUFDO2dCQUVaLE9BQU8sTUFBTSxHQUFHLE1BQU0sSUFBSSxPQUFPLEdBQUcsTUFBTSxFQUFFO29CQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQztvQkFDeEMsTUFBTSxJQUFJLFNBQVMsQ0FBQztvQkFDcEIsSUFBSSxPQUFPLElBQUksUUFBUTt3QkFDckIsTUFBTSxFQUFFLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxFQUFFLENBQUM7aUJBQ1g7YUFDRjtZQUVELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7O0FBbklNLDJCQUFpQixHQUFZLElBQUksQ0FBQztBQUMxQix3QkFBYyxHQUFXLENBQUMsRUFBRSxDQUFDO0FBQzdCLHdCQUFjLEdBQVcsRUFBRSxDQUFDO0FBQzVCLDRCQUFrQixHQUFXLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOQ2hhciwgTlN0cmluZywgU3RyaW5nQnVpbGRlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU2NyYW1ibGVyIHtcclxuICBzdGF0aWMgU2NyYW1ibGluZ0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlOyAvLyBEaXNhYmxlIHNjcmFtYmxpbmdcclxuICBwcml2YXRlIHN0YXRpYyBYTUxfTUlOX1JBTkRPTTogbnVtYmVyID0gLTQ4O1xyXG4gIHByaXZhdGUgc3RhdGljIFhNTF9NQVhfUkFORE9NOiBudW1iZXIgPSA0NztcclxuICBwcml2YXRlIHN0YXRpYyBYTUxfSUxMRUdBTF9SQU5ET006IG51bWJlciA9IC0yMTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PnNjcmFtYmxlIHN0cmluZzwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpblZhbFwiPnN0cmluZyB0byBzY3JhbWJsZTwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBzY3JhbWJsZWQgc3RyaW5nPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBTY3JhbWJsZShpblZhbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5TY3JhbWJsaW5nRW5hYmxlZClcclxuICAgICAgcmV0dXJuIGluVmFsO1xyXG5cclxuICAgIGxldCBjdXJyOiBudW1iZXIgPSAwO1xyXG4gICAgbGV0IGN1cnJDaHI6IHN0cmluZztcclxuICAgIGxldCBsZW5ndGg6IG51bWJlciA9IGluVmFsLmxlbmd0aDtcclxuICAgIGxldCByYW5kb206IG51bWJlciA9IFNjcmFtYmxlci5SYW5kb21TY3JhbWJsZShsZW5ndGgpO1xyXG4gICAgbGV0IGtleTogbnVtYmVyID0gTWF0aC5mbG9vcihNYXRoLnNxcnQobGVuZ3RoKSkgKyByYW5kb207XHJcbiAgICBsZXQgb3V0VmFsOiBTdHJpbmdCdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIobGVuZ3RoICsgMSk7XHJcblxyXG4gICAgLy8gVGhlIGZpcnN0IGNoYXIgaW4gdGhlIHNjcmFtYmxlZCBzdHJpbmcgaXMgYSByYW5kb20gbW9kaWZpZXIgdG8gdGhlIGRlZmF1bHQga2V5XHJcbiAgICBvdXRWYWwuQXBwZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUocmFuZG9tICsgODEpKTtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwga2V5OyBpKyspIHtcclxuICAgICAgY3VyciA9IGk7XHJcblxyXG4gICAgICB3aGlsZSAoY3VyciA8IGxlbmd0aCkge1xyXG4gICAgICAgIGN1cnJDaHIgPSBpblZhbFtjdXJyXTtcclxuICAgICAgICBvdXRWYWwuQXBwZW5kKGN1cnJDaHIpO1xyXG4gICAgICAgIGN1cnIgKz0ga2V5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhlIGxhc3QgY2hhciBpbiB0aGUgc2NyYW1ibGVkIHN0cmluZyBpcyBhIHBhZGRpbmcgcmVhZGFibGUgY2hhci5cclxuICAgIG91dFZhbC5BcHBlbmQoJ18nKS8qJ18nKi87XHJcbiAgICByZXR1cm4gb3V0VmFsLlRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+ZGVsZXRlIGZpcnN0IGNoYXJhY3RlciBvZiBzY3JhbWJsZWQgdGV4dCBhbmQgbWFrZXMgbGVmdCB0cmltIHRvIHRoZSBzdHJpbmc8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgTG9jYXRlU2NyYW1ibGUoaW5WYWw6IHN0cmluZywgZnJvbTogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBpOiBudW1iZXIgPSBmcm9tO1xyXG4gICAgd2hpbGUgKGkgPCBpblZhbC5sZW5ndGggJiYgTkNoYXIuSXNXaGl0ZVNwYWNlKGluVmFsLmNoYXJBdChpKSkpIHtcclxuICAgICAgaSA9IGkgKyAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGkgKyAxO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBDaG9vc2UgYSByYW5kb20gbW9kaWZpZXIgdG8gdGhlIGtleSBvbiB3aGljaCB3ZSBiYXNlIHRoZSBzY3JhbWJsaW5nIHByb2Nlc3MuXHJcbiAgLy8vIFRoZSByYW5kb20gZmFjdG9yIGNhbm5vdCBiZSBqdXN0IGFueSBudW1iZXIgd2UgY2hvb3NlLiBTaW5jZSB0aGUgc2NyYW1ibGUga2V5XHJcbiAgLy8vIGRldGVybWluZXMgdGhlIGFtb3VudCBvZiAnanVtcHMnIHdlIHBlcmZvcm0gb24gdGhlIHRleHQgdG8gYmUgc2NyYW1ibGVkLCB0aGVuXHJcbiAgLy8vIHRoZSByYW5kb20gbnVtYmVyIHdlIGFkZCB0byBpdCBtdXN0IG5vdCBiZSB0b28gYmlnLCBub3IgdG9vIHNtYWxsLiBBcyBhIHJ1bGUsXHJcbiAgLy8vIHRoZSByYW5kb20gbW9kaWZpZXIgY2FuIHJhbmdlIGZyb20gU1FSVChsZW4pLzInIHRvICctU1FSVChsZW4pLzInLCBhbmQgc2luY2Ugd2VcclxuICAvLy8gcGFzcyB0aGUgc2VsZWN0ZWQgbnVtYmVyIGFzIGEgY2hhcmFjdGVyIHdpdGhpbiB0aGUgWE1MLCB0aGUgd2hvbGUgcmFuZ2UgY2Fubm90XHJcbiAgLy8vIGV4Y2VlZCB0aGUgbnVtYmVyIG9mIHRoZSBwcmludGFibGUgY2hhcmFjdGVycyAoOTUpLCB0aHVzIHRoZSByYW5nZSBpcyBsaW1pdGVkXHJcbiAgLy8vIGJldHdlZW4gKC00OCkgdG8gKDQ3KSwgc28gd2UgY2FwIHRoZSBhbGxvd2VkIHJhbmdlIGFjY29yZGluZyB0byB0aGVzZSBsaW1pdHMuXHJcbiAgLy8vIExhc3QsIHRoZSB2YWx1ZSBYTUxfSUxMRUdBTF9SQU5ET00sIHNpbmNlIGl0IHdpbGwgcmVzdWx0IGluIGFkZGluZyB0aGUgY2hhciAnPCdcclxuICAvLy8gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgWE1MLiBUaGlzIHdpbGwgbWFrZSB0aGUgY2xpZW50IGNvbmZ1c2VkLCBzaW5jZSBpdCB3aWxsXHJcbiAgLy8vIHRoaW5rIHRoZSBYTUwgaXMgbm90IHNjcmFtYmxlZC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImxlblwiPm9mIG91dGdvaW5nIFN0cmluZzwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiByYW5kb20gbW9kaWZpZXI8L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgUmFuZG9tU2NyYW1ibGUobGVuOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IGRlbHRhOiBudW1iZXI7XHJcbiAgICBsZXQgc3FydDogbnVtYmVyID0gTWF0aC5zcXJ0KGxlbik7XHJcbiAgICBsZXQgbG93OiBudW1iZXIgPSBTY3JhbWJsZXIuWE1MX01JTl9SQU5ET007XHJcbiAgICBsZXQgaGlnaDogbnVtYmVyID0gU2NyYW1ibGVyLlhNTF9NQVhfUkFORE9NO1xyXG5cclxuICAgIGlmIChsb3cgPCAoKCgtMSkgKiBzcXJ0KSAvIDIpKVxyXG4gICAgICBsb3cgPSBNYXRoLmZsb29yKCgoLTEpICogc3FydCkgLyAyKTtcclxuXHJcbiAgICBpZiAoaGlnaCA+IChzcXJ0IC8gMikpXHJcbiAgICAgIGhpZ2ggPSBNYXRoLmZsb29yKHNxcnQgLyAyKTtcclxuXHJcbiAgICBkZWx0YSA9IChNYXRoLnJhbmRvbSgpICogKGhpZ2ggLSBsb3cpKSArIGxvdztcclxuICAgIGRlbHRhID0gTWF0aC5mbG9vcihkZWx0YSk7XHJcbiAgICBpZiAoZGVsdGEgPT09IFNjcmFtYmxlci5YTUxfSUxMRUdBTF9SQU5ET00pXHJcbiAgICAgIGRlbHRhKys7XHJcblxyXG4gICAgcmV0dXJuIGRlbHRhO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5Pm1ha2UgdW5zY3JhbWJsaW5nIHRvIHN0cmluZyBpbnNpZGUgdXBwZXIgYW5kIGRvd24gYm9yZGVyPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImluVmFsXCI+c2NyYW1ibGVkIHN0cmluZyB0byBidWlsZCB1bnNjcmFtYmxlZCBzdHJpbmcgZnJvbSBpdDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmVnaW5PZmZTZXRcIj5vZmZzZXQgd2hlcmUgdGhlIHNjcmFtYmxlZCBzdHJpbmcgYmVnaW5zPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJlbmRPZmZTZXRcIj5vZmZzZXQgb2YgdGhlIGxhc3QgY2hhciBpbiB0aGUgc2NyYW1ibGVkIHN0cmluZy48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdW5zY3JhbWJsZWQgc3RyaW5nPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBVblNjcmFtYmxlKGluVmFsOiBzdHJpbmcsIGJlZ2luT2ZmU2V0OiBudW1iZXIsIGVuZE9mZlNldDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICghU2NyYW1ibGVyLlNjcmFtYmxpbmdFbmFibGVkKSB7XHJcbiAgICAgIGxldCBvdXRWYWw6IHN0cmluZyA9IGluVmFsLnN1YnN0cihiZWdpbk9mZlNldCwgZW5kT2ZmU2V0IC0gYmVnaW5PZmZTZXQgKyAxKTtcclxuICAgICAgcmV0dXJuIG91dFZhbDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgY3Vyck91dDogbnVtYmVyLCBjdXJySW46IG51bWJlciwgaTogbnVtYmVyO1xyXG4gICAgICBsZXQgbGVuZ3RoOiBudW1iZXI7XHJcbiAgICAgIGxldCBrZXk6IG51bWJlcjtcclxuICAgICAgbGV0IG91dFZhbDogc3RyaW5nW107XHJcbiAgICAgIGxldCBjdXJyQmxrOiBudW1iZXI7XHJcbiAgICAgIGxldCBibG9ja1NpemU6IG51bWJlcjtcclxuICAgICAgbGV0IHJlbWluZGVyOiBudW1iZXI7XHJcbiAgICAgIGxldCBzdGFydDogbnVtYmVyO1xyXG4gICAgICBsZXQgcmFuZG9tQ2hyOiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBpZ25vcmUgdGhlIGxhc3QgY2hhciBpbiB0aGUgaW5wdXQsIGl0J3MganVzdCBhIHBhZGRpbmcgY2hhcmFjdGVyLlxyXG4gICAgICBlbmRPZmZTZXQgPSBlbmRPZmZTZXQgLSAxO1xyXG5cclxuICAgICAgLy8gc2tpcCBvdmVyIHRoZSBmaXJzdCBjaGFyIGluIHRoZSBpbnB1dCwgaXQgb25seSBjb250YWlucyBhIHJhbmRvbSBtb2RpZmllciB0byB0aGUga2V5LlxyXG4gICAgICAvLyBpdCBpcyBub3QgcGFydCBvZiB0aGUgZGF0YS5cclxuICAgICAgc3RhcnQgPSB0aGlzLkxvY2F0ZVNjcmFtYmxlKGluVmFsLCBiZWdpbk9mZlNldCk7XHJcbiAgICAgIHJhbmRvbUNociA9IGluVmFsW3N0YXJ0IC0gMV07XHJcblxyXG4gICAgICBsZW5ndGggPSBlbmRPZmZTZXQgLSBzdGFydCArIDE7XHJcbiAgICAgIGtleSA9IChyYW5kb21DaHIuY2hhckNvZGVBdCgwKSAtIDgxKSArIE1hdGguZmxvb3IoTWF0aC5zcXJ0KGxlbmd0aCkpO1xyXG4gICAgICBvdXRWYWwgPSBuZXcgQXJyYXkobGVuZ3RoKTtcclxuICAgICAgYmxvY2tTaXplID0gTWF0aC5mbG9vcihsZW5ndGggLyBrZXkpO1xyXG4gICAgICByZW1pbmRlciA9IGxlbmd0aCAlIGtleTtcclxuXHJcbiAgICAgIGZvciAoaSA9IGN1cnJPdXQgPSAwOyBjdXJyT3V0IDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjdXJySW4gPSBpO1xyXG4gICAgICAgIGN1cnJCbGsgPSAxO1xyXG5cclxuICAgICAgICB3aGlsZSAoY3VyckluIDwgbGVuZ3RoICYmIGN1cnJPdXQgPCBsZW5ndGgpIHtcclxuICAgICAgICAgIG91dFZhbFtjdXJyT3V0XSA9IGluVmFsW2N1cnJJbiArIHN0YXJ0XTtcclxuICAgICAgICAgIGN1cnJJbiArPSBibG9ja1NpemU7XHJcbiAgICAgICAgICBpZiAoY3VyckJsayA8PSByZW1pbmRlcilcclxuICAgICAgICAgICAgY3VyckluKys7XHJcbiAgICAgICAgICBjdXJyT3V0Kys7XHJcbiAgICAgICAgICBjdXJyQmxrKys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gTlN0cmluZy5Gcm9tQ2hhcnMob3V0VmFsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -81,7 +81,7 @@ export class CookieService {
81
81
  var cookie = cookies[i];
82
82
  var eqPos = cookie.indexOf('=');
83
83
  var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
84
- if (cookieName === decodeURI(name)) {
84
+ if (cookieName === NString.TrimStart(decodeURI(name))) {
85
85
  document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
86
86
  return true;
87
87
  }
@@ -89,4 +89,4 @@ export class CookieService {
89
89
  return false;
90
90
  }
91
91
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3V0aWwvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxhQUFhO0lBRWpCLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBa0I7UUFFekMsSUFBSSxVQUFVLElBQUksR0FBRztZQUNuQixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFFekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsT0FBdUIsRUFBRSxJQUFLLEVBQUUsTUFBUSxFQUFFLE1BQU8sRUFBRSxRQUFTO1FBQy9HLElBQUksWUFBWSxHQUFXLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3pILElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7Z0JBQy9CLE1BQU0sV0FBVyxHQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUU1QyxZQUFZLElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUM7YUFDOUQ7aUJBQ0ksSUFBRyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxFQUNyQztnQkFDRSxNQUFNLFdBQVcsR0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFNUMsWUFBWSxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLEdBQUcs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YSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7U0FDRjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVTtRQUM1QixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDekQsSUFBSSxVQUFVLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNsQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyx5Q0FBeUMsQ0FBQztnQkFDbkUsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOU3RyaW5nIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xuXG5leHBvcnQgY2xhc3MgQ29va2llU2VydmljZSB7XG5cbiAgcHVibGljIHN0YXRpYyBnZXRDb29raWVzKGNvb2tpZU5hbWU6IHN0cmluZykge1xuXG4gICAgaWYgKGNvb2tpZU5hbWUgPT0gJyonKVxuICAgICAgcmV0dXJuIGRvY3VtZW50LmNvb2tpZTtcblxuICAgIHJldHVybiB0aGlzLmdldENvb2tpZShjb29raWVOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2V0Q29va2llKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZXhwaXJlcz86IG51bWJlciB8IERhdGUsIHBhdGg/LCBkb21haW4gPywgc2VjdXJlPywgc2FtZVNpdGU/KTogYm9vbGVhbiB7XG4gICAgbGV0IGNvb2tpZVN0cmluZzogc3RyaW5nID0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KENvb2tpZVNlcnZpY2UuZW5jb2RlX2Nvb2tpZSh2YWx1ZSkpICsgJzsnO1xuICAgIGlmIChleHBpcmVzKSB7XG4gICAgICBpZiAodHlwZW9mIGV4cGlyZXMgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGNvbnN0IGRhdGVFeHBpcmVzOiBEYXRlID0gbmV3IERhdGUoZXhwaXJlcyk7XG5cbiAgICAgICAgY29va2llU3RyaW5nICs9ICdleHBpcmVzPScgKyBkYXRlRXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgfVxuICAgICAgZWxzZSBpZigodHlwZW9mIGV4cGlyZXMgPT09ICdzdHJpbmcnKSlcbiAgICAgIHtcbiAgICAgICAgY29uc3QgZGF0ZUV4cGlyZXM6IERhdGUgPSBuZXcgRGF0ZShleHBpcmVzKTtcblxuICAgICAgICBjb29raWVTdHJpbmcgKz0gJ2V4cGlyZXM9JyArIGRhdGVFeHBpcmVzLnRvVVRDU3RyaW5nKCkgKyAnOyc7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgY29va2llU3RyaW5nICs9ICdleHBpcmVzPScgKyBleHBpcmVzLnRvVVRDU3RyaW5nKCkgKyAnOyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIGNvb2tpZVN0cmluZyArPSAncGF0aD0nICsgcGF0aCArICc7JztcbiAgICB9XG5cbiAgICBpZiAoZG9tYWluKSB7XG4gICAgICBjb29raWVTdHJpbmcgKz0gJ2RvbWFpbj0nICsgZG9tYWluICsgJzsnO1xuICAgIH1cblxuICAgIGlmIChzZWN1cmUgPT09IGZhbHNlICYmIHNhbWVTaXRlID09PSAnTm9uZScpIHtcbiAgICAgIHNlY3VyZSA9IHRydWU7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBjb29raWUgJHtuYW1lfSB3YXMgZm9yY2VkIHdpdGggc2VjdXJlIGZsYWcgYmVjYXVzZSBzYW1lU2l0ZT1Ob25lLmBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChzZWN1cmUpIHtcbiAgICAgIGNvb2tpZVN0cmluZyArPSAnc2VjdXJlOyc7XG4gICAgfVxuXG4gICAgaWYgKCFzYW1lU2l0ZSkge1xuICAgICAgc2FtZVNpdGUgPSAnTGF4JztcbiAgICB9XG5cbiAgICBjb29raWVTdHJpbmcgKz0gJ3NhbWVTaXRlPScgKyBzYW1lU2l0ZSArICc7JztcblxuICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZVN0cmluZztcblxuICAgIHJldHVybiB0aGlzLmdldENvb2tpZShuYW1lKTtcbiAgfVxuXG4gIHN0YXRpYyBlbmNvZGVfY29va2llKGNvb2tpZV92YWx1ZSkge1xuXG4gICAgY29va2llX3ZhbHVlID0gY29va2llX3ZhbHVlLnRyaW0oKTtcbiAgICAvL1RoaXMgdmFyaWFibGUgaG9sZHMgdGhlIGVuY29kZWQgY29va2llIGNoYXJhY3RlcnNcbiAgICB2YXIgY29kZWRfc3RyaW5nID0gJyc7XG5cbiAgICAvLyBSdW4gdGhyb3VnaCBlYWNoIGNoYXJhY3RlciBpbiB0aGUgY29va2llIHZhbHVlXG4gICAgZm9yICh2YXIgY291bnRlciA9IDA7IGNvdW50ZXIgPCBjb29raWVfdmFsdWUubGVuZ3RoOyBjb3VudGVyKyspIHtcblxuICAgICAgLy8gQWRkIHRoZSBjaGFyYWN0ZXIncyBudW1lcmljIGNvZGUgdG8gdGhlIHN0cmluZ1xuICAgICAgY29kZWRfc3RyaW5nICs9IGNvb2tpZV92YWx1ZS5jaGFyQ29kZUF0KGNvdW50ZXIpO1xuXG4gICAgICAvLyBTZXBhcmF0ZSBlYWNoIGNvZGUgd2l0aCBhIHBsdXMgc2lnbiAoKylcbiAgICAgIGlmIChjb3VudGVyIDwgY29va2llX3ZhbHVlLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgY29kZWRfc3RyaW5nICs9ICcrJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvZGVkX3N0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBkZWNvZGVfY29va2llKGNvZGVkX3N0cmluZykge1xuICAgIC8vIFRoaXMgdmFyaWFibGUgaG9sZHMgdGhlIGRlY29kZWQgY29va2llIHZhbHVlXG4gICAgdmFyIGNvb2tpZV92YWx1ZSA9ICcnO1xuXG4gICAgLy8gVXNlICsgdG8gc3BsaXQgdGhlIGNvZGVkIHN0cmluZyBpbnRvIGFuIGFycmF5XG4gICAgdmFyIGNvZGVfYXJyYXkgPSBjb2RlZF9zdHJpbmcuc3BsaXQoJysnKTtcblxuICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYXJyYXlcbiAgICBmb3IgKHZhciBjb3VudGVyID0gMDsgY291bnRlciA8IGNvZGVfYXJyYXkubGVuZ3RoOyBjb3VudGVyKyspIHtcblxuICAgICAgLy8gQ29udmVydCB0aGUgY29kZSBpbnRvIGEgY2hhcmFjdGVyIGFuZFxuICAgICAgLy8gYWRkIGl0IHRvIHRoZSBjb29raWUgdmFsdWUgc3RyaW5nXG4gICAgICBjb29raWVfdmFsdWUgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlX2FycmF5W2NvdW50ZXJdKTtcbiAgICB9XG4gICAgLy8gcmV0dXJuIGNvZGVkX3N0cmluZztcblxuICAgIHJldHVybiBjb29raWVfdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29va2llKGNvb2tpZU5hbWUpOiBhbnkge1xuICAgIGxldCBuYW1lID0gTlN0cmluZy5UcmltU3RhcnQoY29va2llTmFtZSArICc9Jyk7XG4gICAgbGV0IGRlY29kZWRDb29raWUgPSBkZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuY29va2llKTtcbiAgICBsZXQgY2EgPSBkZWNvZGVkQ29va2llLnNwbGl0KCc7Jyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYS5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGMgPSBjYVtpXTtcbiAgICAgIHdoaWxlIChjLmNoYXJBdCgwKSA9PSAnICcpIHtcbiAgICAgICAgYyA9IGMuc3Vic3RyaW5nKDEpO1xuICAgICAgfVxuICAgICAgaWYgKGMuaW5kZXhPZihuYW1lKSA+PSAwKSB7XG4gICAgICAgIGxldCBkZWNvZGUgPSBDb29raWVTZXJ2aWNlLmRlY29kZV9jb29raWUoYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKSk7XG4gICAgICAgIHJldHVybiBkZWNvZGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHN0YXRpYyBkZWxldGVDb29raWUoY29va2llTmFtZSk6IGJvb2xlYW4ge1xuICAgIHZhciBjb29raWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjb29raWUgPSBjb29raWVzW2ldO1xuICAgICAgdmFyIGVxUG9zID0gY29va2llLmluZGV4T2YoJz0nKTtcbiAgICAgIHZhciBuYW1lID0gZXFQb3MgPiAtMSA/IGNvb2tpZS5zdWJzdHIoMCwgZXFQb3MpIDogY29va2llO1xuICAgICAgaWYgKGNvb2tpZU5hbWUgPT09IGRlY29kZVVSSShuYW1lKSkge1xuICAgICAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgJz07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCc7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxufVxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3V0aWwvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxhQUFhO0lBRWpCLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBa0I7UUFFekMsSUFBSSxVQUFVLElBQUksR0FBRztZQUNuQixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFFekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsT0FBdUIsRUFBRSxJQUFLLEVBQUUsTUFBUSxFQUFFLE1BQU8sRUFBRSxRQUFTO1FBQy9HLElBQUksWUFBWSxHQUFXLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3pILElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7Z0JBQy9CLE1BQU0sV0FBVyxHQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUU1QyxZQUFZLElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUM7YUFDOUQ7aUJBQ0ksSUFBRyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxFQUNyQztnQkFDRSxNQUFNLFdBQVcsR0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFNUMsWUFBWSxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLEdBQUcs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YSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7U0FDRjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVTtRQUM1QixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDekQsSUFBSSxVQUFVLEtBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtnQkFDckQsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcseUNBQXlDLENBQUM7Z0JBQ25FLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTlN0cmluZyB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcblxuZXhwb3J0IGNsYXNzIENvb2tpZVNlcnZpY2Uge1xuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q29va2llcyhjb29raWVOYW1lOiBzdHJpbmcpIHtcblxuICAgIGlmIChjb29raWVOYW1lID09ICcqJylcbiAgICAgIHJldHVybiBkb2N1bWVudC5jb29raWU7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDb29raWUoY29va2llTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNldENvb2tpZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGV4cGlyZXM/OiBudW1iZXIgfCBEYXRlLCBwYXRoPywgZG9tYWluID8sIHNlY3VyZT8sIHNhbWVTaXRlPyk6IGJvb2xlYW4ge1xuICAgIGxldCBjb29raWVTdHJpbmc6IHN0cmluZyA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChDb29raWVTZXJ2aWNlLmVuY29kZV9jb29raWUodmFsdWUpKSArICc7JztcbiAgICBpZiAoZXhwaXJlcykge1xuICAgICAgaWYgKHR5cGVvZiBleHBpcmVzID09PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zdCBkYXRlRXhwaXJlczogRGF0ZSA9IG5ldyBEYXRlKGV4cGlyZXMpO1xuXG4gICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgZGF0ZUV4cGlyZXMudG9VVENTdHJpbmcoKSArICc7JztcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYoKHR5cGVvZiBleHBpcmVzID09PSAnc3RyaW5nJykpXG4gICAgICB7XG4gICAgICAgIGNvbnN0IGRhdGVFeHBpcmVzOiBEYXRlID0gbmV3IERhdGUoZXhwaXJlcyk7XG5cbiAgICAgICAgY29va2llU3RyaW5nICs9ICdleHBpcmVzPScgKyBkYXRlRXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgZXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXRoKSB7XG4gICAgICBjb29raWVTdHJpbmcgKz0gJ3BhdGg9JyArIHBhdGggKyAnOyc7XG4gICAgfVxuXG4gICAgaWYgKGRvbWFpbikge1xuICAgICAgY29va2llU3RyaW5nICs9ICdkb21haW49JyArIGRvbWFpbiArICc7JztcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJlID09PSBmYWxzZSAmJiBzYW1lU2l0ZSA9PT0gJ05vbmUnKSB7XG4gICAgICBzZWN1cmUgPSB0cnVlO1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgY29va2llICR7bmFtZX0gd2FzIGZvcmNlZCB3aXRoIHNlY3VyZSBmbGFnIGJlY2F1c2Ugc2FtZVNpdGU9Tm9uZS5gXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoc2VjdXJlKSB7XG4gICAgICBjb29raWVTdHJpbmcgKz0gJ3NlY3VyZTsnO1xuICAgIH1cblxuICAgIGlmICghc2FtZVNpdGUpIHtcbiAgICAgIHNhbWVTaXRlID0gJ0xheCc7XG4gICAgfVxuXG4gICAgY29va2llU3RyaW5nICs9ICdzYW1lU2l0ZT0nICsgc2FtZVNpdGUgKyAnOyc7XG5cbiAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWVTdHJpbmc7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDb29raWUobmFtZSk7XG4gIH1cblxuICBzdGF0aWMgZW5jb2RlX2Nvb2tpZShjb29raWVfdmFsdWUpIHtcblxuICAgIGNvb2tpZV92YWx1ZSA9IGNvb2tpZV92YWx1ZS50cmltKCk7XG4gICAgLy9UaGlzIHZhcmlhYmxlIGhvbGRzIHRoZSBlbmNvZGVkIGNvb2tpZSBjaGFyYWN0ZXJzXG4gICAgdmFyIGNvZGVkX3N0cmluZyA9ICcnO1xuXG4gICAgLy8gUnVuIHRocm91Z2ggZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIGNvb2tpZSB2YWx1ZVxuICAgIGZvciAodmFyIGNvdW50ZXIgPSAwOyBjb3VudGVyIDwgY29va2llX3ZhbHVlLmxlbmd0aDsgY291bnRlcisrKSB7XG5cbiAgICAgIC8vIEFkZCB0aGUgY2hhcmFjdGVyJ3MgbnVtZXJpYyBjb2RlIHRvIHRoZSBzdHJpbmdcbiAgICAgIGNvZGVkX3N0cmluZyArPSBjb29raWVfdmFsdWUuY2hhckNvZGVBdChjb3VudGVyKTtcblxuICAgICAgLy8gU2VwYXJhdGUgZWFjaCBjb2RlIHdpdGggYSBwbHVzIHNpZ24gKCspXG4gICAgICBpZiAoY291bnRlciA8IGNvb2tpZV92YWx1ZS5sZW5ndGggLSAxKSB7XG4gICAgICAgIGNvZGVkX3N0cmluZyArPSAnKyc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb2RlZF9zdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZGVjb2RlX2Nvb2tpZShjb2RlZF9zdHJpbmcpIHtcbiAgICAvLyBUaGlzIHZhcmlhYmxlIGhvbGRzIHRoZSBkZWNvZGVkIGNvb2tpZSB2YWx1ZVxuICAgIHZhciBjb29raWVfdmFsdWUgPSAnJztcblxuICAgIC8vIFVzZSArIHRvIHNwbGl0IHRoZSBjb2RlZCBzdHJpbmcgaW50byBhbiBhcnJheVxuICAgIHZhciBjb2RlX2FycmF5ID0gY29kZWRfc3RyaW5nLnNwbGl0KCcrJyk7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggdGhlIGFycmF5XG4gICAgZm9yICh2YXIgY291bnRlciA9IDA7IGNvdW50ZXIgPCBjb2RlX2FycmF5Lmxlbmd0aDsgY291bnRlcisrKSB7XG5cbiAgICAgIC8vIENvbnZlcnQgdGhlIGNvZGUgaW50byBhIGNoYXJhY3RlciBhbmRcbiAgICAgIC8vIGFkZCBpdCB0byB0aGUgY29va2llIHZhbHVlIHN0cmluZ1xuICAgICAgY29va2llX3ZhbHVlICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZV9hcnJheVtjb3VudGVyXSk7XG4gICAgfVxuICAgIC8vIHJldHVybiBjb2RlZF9zdHJpbmc7XG5cbiAgICByZXR1cm4gY29va2llX3ZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGdldENvb2tpZShjb29raWVOYW1lKTogYW55IHtcbiAgICBsZXQgbmFtZSA9IE5TdHJpbmcuVHJpbVN0YXJ0KGNvb2tpZU5hbWUgKyAnPScpO1xuICAgIGxldCBkZWNvZGVkQ29va2llID0gZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZSk7XG4gICAgbGV0IGNhID0gZGVjb2RlZENvb2tpZS5zcGxpdCgnOycpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBjID0gY2FbaV07XG4gICAgICB3aGlsZSAoYy5jaGFyQXQoMCkgPT0gJyAnKSB7XG4gICAgICAgIGMgPSBjLnN1YnN0cmluZygxKTtcbiAgICAgIH1cbiAgICAgIGlmIChjLmluZGV4T2YobmFtZSkgPj0gMCkge1xuICAgICAgICBsZXQgZGVjb2RlID0gQ29va2llU2VydmljZS5kZWNvZGVfY29va2llKGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCkpO1xuICAgICAgICByZXR1cm4gZGVjb2RlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBzdGF0aWMgZGVsZXRlQ29va2llKGNvb2tpZU5hbWUpOiBib29sZWFuIHtcbiAgICB2YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb29raWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY29va2llID0gY29va2llc1tpXTtcbiAgICAgIHZhciBlcVBvcyA9IGNvb2tpZS5pbmRleE9mKCc9Jyk7XG4gICAgICB2YXIgbmFtZSA9IGVxUG9zID4gLTEgPyBjb29raWUuc3Vic3RyKDAsIGVxUG9zKSA6IGNvb2tpZTtcbiAgICAgIGlmIChjb29raWVOYW1lID09PSBOU3RyaW5nLlRyaW1TdGFydChkZWNvZGVVUkkobmFtZSkpKSB7XG4gICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAnPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UJztcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG4iXX0=
@@ -39,7 +39,6 @@ var ClientTargetedCommandType;
39
39
  })(ClientTargetedCommandType || (ClientTargetedCommandType = {}));
40
40
 
41
41
  class ConstInterface {
42
- ;
43
42
  }
44
43
  ConstInterface.MG_TAG_CONTEXT = "context";
45
44
  ConstInterface.MG_TAG_ENV = "env";
@@ -1241,7 +1240,8 @@ class MgControl extends MgControlBase {
1241
1240
  if (!isTagProcessed) {
1242
1241
  switch (attribute) {
1243
1242
  case ConstInterface.MG_ATTR_SUBFORM_TASK:
1244
- this._subformTaskId = valueStr;
1243
+ if (valueStr.trim() != "")
1244
+ this._subformTaskId = valueStr;
1245
1245
  break;
1246
1246
  case ConstInterface.MG_ATTR_REFRESHON:
1247
1247
  this.refreshOnString = valueStr.trim();
@@ -4242,9 +4242,10 @@ class Scrambler {
4242
4242
  if (high > (sqrt / 2))
4243
4243
  high = Math.floor(sqrt / 2);
4244
4244
  delta = (Math.random() * (high - low)) + low;
4245
+ delta = Math.floor(delta);
4245
4246
  if (delta === Scrambler.XML_ILLEGAL_RANDOM)
4246
4247
  delta++;
4247
- return Math.floor(delta);
4248
+ return delta;
4248
4249
  }
4249
4250
  static UnScramble(inVal, beginOffSet, endOffSet) {
4250
4251
  if (!Scrambler.ScramblingEnabled) {
@@ -6311,17 +6312,22 @@ class LanguageData {
6311
6312
  if (this._mlsContent.length > 0) {
6312
6313
  let linePairs = 0;
6313
6314
  let srcLine = this._mlsContent + 3;
6315
+ let transLine;
6314
6316
  this._mlsStrings = new Hashtable();
6315
- let linesStr = this._mlsContent.substring(this._mlsContent.length - MLS_EOF_CHARS_TO_READ, 8);
6317
+ let linesStr = this._mlsContent.substr(this._mlsContent.length - MLS_EOF_CHARS_TO_READ, 8);
6316
6318
  linePairs = parseInt(linesStr.toString(), 16);
6317
6319
  let tokens = StrUtil.tokenize(srcLine.toString(), "\n");
6318
- for (let line = 0; line < linePairs * 2; line += 2) {
6319
- if (this._mlsStrings.get_Item(tokens[line].toString()) == null)
6320
- this._mlsStrings.set_Item(tokens[line].toString(), tokens[line + 1].toString());
6320
+ for (let pairNum = 0; pairNum < linePairs * 2; pairNum += 2) {
6321
+ srcLine = tokens[pairNum].substr(0, tokens[pairNum].length - 1);
6322
+ transLine = tokens[pairNum + 1].substr(0, tokens[pairNum + 1].length - 1);
6323
+ if (this._mlsStrings.get_Item(srcLine.toString()) == null)
6324
+ this._mlsStrings.set_Item(srcLine.toString(), transLine);
6321
6325
  }
6322
6326
  }
6323
6327
  }
6324
6328
  else if (this._mlsFileUrl != null) {
6329
+ if (this._mlsFileUrl.startsWith("./"))
6330
+ this._mlsFileUrl = NString.Replace(this._mlsFileUrl, './', './assets/cache/');
6325
6331
  let contentStr = yield CommandsProcessorManager.GetContent(this._mlsFileUrl, true);
6326
6332
  let buffer = contentStr;
6327
6333
  if (buffer != null && buffer.length > 0) {
@@ -8089,6 +8095,13 @@ class SelectProgramCommand extends ExecOperCommand {
8089
8095
  }
8090
8096
  }
8091
8097
 
8098
+ class ControlItemsRefreshCommand extends DataviewCommand {
8099
+ constructor() {
8100
+ super();
8101
+ this.Control = null;
8102
+ }
8103
+ }
8104
+
8092
8105
  class CommandFactory {
8093
8106
  static CreateEventCommand(taskTag, magicEvent) {
8094
8107
  let eventCommand = new EventCommand(magicEvent);
@@ -8107,6 +8120,13 @@ class CommandFactory {
8107
8120
  dataviewCommand.TaskTag = taskId;
8108
8121
  return dataviewCommand;
8109
8122
  }
8123
+ static CreateControlItemsRefreshCommand(taskId, control) {
8124
+ let command = new ControlItemsRefreshCommand();
8125
+ command.CommandType = DataViewCommandType.ControlItemsRefresh;
8126
+ command.TaskTag = taskId;
8127
+ command.Control = control;
8128
+ return command;
8129
+ }
8110
8130
  static CreateAddUserRangeDataviewCommand(taskId, userRange) {
8111
8131
  let addUserRangeDataviewCommand = new AddUserRangeDataviewCommand();
8112
8132
  addUserRangeDataviewCommand.TaskTag = taskId;
@@ -9468,8 +9488,8 @@ class Operation {
9468
9488
  if (rtEvnt !== null) {
9469
9489
  this._routeParams = rtEvnt.getRouteParamList();
9470
9490
  if ((yield rtEvnt.getArgList().getArg(0).getValue(StorageAttribute.ALPHA, 0)).trim() === this._routerPath &&
9471
- ((rtEvnt.getArgList().getArg(1).skipArg()) ||
9472
- (yield rtEvnt.getArgList().getArg(1).getValue(StorageAttribute.ALPHA, 0)).trim() === this._originalRouterOutletName))
9491
+ ((rtEvnt.getArgList().getArg(1).skipArg() && destSubForm === this._task.getForm().DefaultRouterOutlet) ||
9492
+ (!rtEvnt.getArgList().getArg(1).skipArg() && (yield rtEvnt.getArgList().getArg(1).getValue(StorageAttribute.ALPHA, 0)).trim() === this._originalRouterOutletName)))
9473
9493
  canRoute = true;
9474
9494
  if (!canRoute)
9475
9495
  return false;
@@ -10361,7 +10381,7 @@ class CookieService {
10361
10381
  var cookie = cookies[i];
10362
10382
  var eqPos = cookie.indexOf('=');
10363
10383
  var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
10364
- if (cookieName === decodeURI(name)) {
10384
+ if (cookieName === NString.TrimStart(decodeURI(name))) {
10365
10385
  document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
10366
10386
  return true;
10367
10387
  }
@@ -11084,6 +11104,11 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
11084
11104
  this.eval_op_VarDisplayName(resVal, val1);
11085
11105
  expStrTracker.resetNullResult();
11086
11106
  break;
11107
+ case ExpressionInterface.EXP_OP_CONTROL_ITEMS_REFRESH:
11108
+ val2 = valStack.pop();
11109
+ val1 = valStack.pop();
11110
+ yield this.eval_op_controlItemRefresh(val1, val2, resVal);
11111
+ break;
11087
11112
  case ExpressionInterface.EXP_OP_VARCONTROLID:
11088
11113
  val1 = valStack.pop();
11089
11114
  this.eval_op_VarControlID(resVal, val1);
@@ -13228,6 +13253,28 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
13228
13253
  resVal.StrVal = fld.VarDisplayName;
13229
13254
  }
13230
13255
  }
13256
+ eval_op_controlItemRefresh(val1, val2, resVal) {
13257
+ const _super = Object.create(null, {
13258
+ GetContextTask: { get: () => super.GetContextTask }
13259
+ });
13260
+ return __awaiter(this, void 0, void 0, function* () {
13261
+ let success = false;
13262
+ let parent = val2.MgNumVal.NUM_2_LONG();
13263
+ resVal.Attr = StorageAttribute.BOOLEAN;
13264
+ if ((parent >= 0 && parent < (this.ExpTask.getTaskDepth(false))) || parent === ExpressionEvaluator.TRIGGER_TASK) {
13265
+ let tsk = _super.GetContextTask.call(this, parent);
13266
+ if (tsk != null && tsk.getForm() != null) {
13267
+ let control = tsk.getForm().GetCtrl(val1.StrVal);
13268
+ if (control != null && control.isChoiceControl() && control.isDataCtrl()) {
13269
+ let command = CommandFactory.CreateControlItemsRefreshCommand(tsk.getTaskTag(), control);
13270
+ yield tsk.DataviewManager.CurrentDataviewManager.Execute(command);
13271
+ success = true;
13272
+ }
13273
+ }
13274
+ }
13275
+ resVal.BoolVal = success;
13276
+ });
13277
+ }
13231
13278
  eval_op_VarControlID(resVal, val1) {
13232
13279
  let ret = 0;
13233
13280
  if (val1.MgNumVal !== null) {
@@ -14497,7 +14544,7 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14497
14544
  }
14498
14545
  path = args[3];
14499
14546
  domain = args[4];
14500
- resVal.BoolVal = CookieService.setCookie(cookieName, args[0], nativeDt, path, domain, secure, sameSite);
14547
+ resVal.BoolVal = CookieService.setCookie(cookieName, (args[0] != null ? args[0].toString() : ""), nativeDt, path, domain, secure, sameSite);
14501
14548
  }
14502
14549
  eval_op_get_cookie(cookieName, resVal) {
14503
14550
  resVal.StrVal = CookieService.getCookie(cookieName);
@@ -16585,7 +16632,8 @@ class Field extends FieldBase {
16585
16632
  }
16586
16633
  break;
16587
16634
  case ConstInterface.MG_ATTR_CHACHED_FLD_ID:
16588
- this.CacheTableFldIdx = NNumber.Parse(data[1]);
16635
+ if (data[0] != "")
16636
+ this.CacheTableFldIdx = NNumber.Parse(data[1]);
16589
16637
  break;
16590
16638
  case ConstInterface.MG_ATTR_LOCATE:
16591
16639
  this.Locate = new Boundary(this.getTask(), NNumber.Parse(data[1]), NNumber.Parse(data[0]), this.getType(), this.getSize(), this.CacheTableFldIdx);
@@ -19823,7 +19871,11 @@ class MgForm extends MgFormBase {
19823
19871
  this.GetDataview().setTopRecIdxModified(true);
19824
19872
  try {
19825
19873
  this._suffixDone = false;
19826
- yield this.setCurrRowByDisplayLine(this.GetDataview().getCurrRecIdx() + size, true, false);
19874
+ let newDisplayLine = this.GetDataview().getCurrRecIdx() + size;
19875
+ if (unit === Constants.MOVE_UNIT_PAGE && this.isLineMode())
19876
+ if (newDisplayLine > this.GetDataview().getSize() - 1)
19877
+ visibleLine -= newDisplayLine - (this.GetDataview().getSize() - 1);
19878
+ yield this.setCurrRowByDisplayLine(newDisplayLine, true, false);
19827
19879
  this.GetDataview().setTopRecIdxModified(false);
19828
19880
  yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
19829
19881
  }
@@ -20987,8 +21039,10 @@ class RemoteTaskService extends TaskServiceBase {
20987
21039
  return OwnerTransactionTask;
20988
21040
  }
20989
21041
  static PreparePropMainDisplay(task) {
20990
- task.ComputeMainDisplay();
20991
- return task.FormIsLegal() ? ReturnResult.SuccessfulResult : new ReturnResult(MsgInterface.BRKTAB_STR_ERR_FORM);
21042
+ return __awaiter(this, void 0, void 0, function* () {
21043
+ yield task.ComputeMainDisplay();
21044
+ return task.FormIsLegal() ? ReturnResult.SuccessfulResult : new ReturnResult(MsgInterface.BRKTAB_STR_ERR_FORM);
21045
+ });
20992
21046
  }
20993
21047
  }
20994
21048
 
@@ -21393,15 +21447,18 @@ class RemoteDataviewHeader extends DataviewHeaderBase {
21393
21447
  setAttribute(attribute, valueStr) {
21394
21448
  switch (attribute) {
21395
21449
  case ConstInterface.MG_ATTR_CACHED_TABLE:
21396
- if (TableCacheManager.Instance.TableExists(valueStr))
21397
- this._table = TableCacheManager.Instance.GetTableById(valueStr);
21398
- else {
21399
- this._table = new TableCache(valueStr);
21400
- TableCacheManager.Instance.InsertTable(this._table);
21450
+ if (valueStr != "") {
21451
+ if (TableCacheManager.Instance.TableExists(valueStr))
21452
+ this._table = TableCacheManager.Instance.GetTableById(valueStr);
21453
+ else {
21454
+ this._table = new TableCache(valueStr);
21455
+ TableCacheManager.Instance.InsertTable(this._table);
21456
+ }
21401
21457
  }
21402
21458
  break;
21403
21459
  case ConstInterface.MG_ATTR_IDENT:
21404
- this._table.SetTableIdent(valueStr);
21460
+ if (valueStr != "")
21461
+ this._table.SetTableIdent(valueStr);
21405
21462
  break;
21406
21463
  default:
21407
21464
  super.setAttribute(attribute, valueStr);
@@ -22515,9 +22572,17 @@ class RecomputeTable {
22515
22572
  this.fillData_1(task.DataView, task, parser);
22516
22573
  }
22517
22574
  else
22518
- throw new ApplicationException("in RecomputeTable.fillData() invalid task id: ");
22575
+ parser.setCurrIndex(parser.getXMLdata().indexOf(XMLConstants.TAG_CLOSE, parser.getCurrIndex()) + 1);
22519
22576
  }
22520
22577
  fillData_1(dataView, task, parser) {
22578
+ if (parser.getNextTag() == XMLConstants.MG_TAG_RECOMPUTE) {
22579
+ let currrentIndex = parser.getCurrIndex();
22580
+ let encoded = parser.ReadContentOfCurrentElement().trim();
22581
+ let decoded = Base64.decode(encoded.substr(0, encoded.length).trim());
22582
+ let newXmlData = parser.getXMLdata().replace(encoded.trim(), decoded);
22583
+ parser.setXMLdata(newXmlData);
22584
+ parser.setCurrIndex(currrentIndex);
22585
+ }
22521
22586
  while (this.initInnerObjects(parser, parser.getNextTag(), dataView, task)) {
22522
22587
  }
22523
22588
  }
@@ -23282,10 +23347,12 @@ class Task extends TaskBase {
23282
23347
  this.setDescriptor(valueStr);
23283
23348
  break;
23284
23349
  case ConstInterface.MG_ATTR_HAS_LOCATE:
23285
- this.hasLocate = true;
23350
+ if (+valueStr == 1)
23351
+ this.hasLocate = true;
23286
23352
  break;
23287
23353
  case ConstInterface.MG_ATTR_AS_PARENT:
23288
- this.ModeAsParent = true;
23354
+ if (+valueStr == 1)
23355
+ this.ModeAsParent = true;
23289
23356
  break;
23290
23357
  case ConstInterface.MG_ATTR_TASK_UNIQUE_SORT:
23291
23358
  this.UniqueSort = valueStr[0];
@@ -23621,6 +23688,7 @@ class Task extends TaskBase {
23621
23688
  result = yield this.DataviewManager.Execute(dataViewCommand);
23622
23689
  if (!result.Success)
23623
23690
  return null;
23691
+ this.ResumeSubformLayout();
23624
23692
  }
23625
23693
  nonInteractiveTask = yield this.StartSubTasks(moveToFirstControl, nonInteractiveTask, callByDestSubForm);
23626
23694
  this.InStartProcess = false;
@@ -25314,16 +25382,18 @@ class Task extends TaskBase {
25314
25382
  }
25315
25383
  }
25316
25384
  ComputeMainDisplay() {
25317
- let propMainDisplay = this.getProp(PropInterface.PROP_TYPE_MAIN_DISPLAY);
25318
- let mainDisplayIndex = propMainDisplay.GetComputedValueInteger();
25319
- mainDisplayIndex = this.GetRealMainDisplayIndexOnCurrentTask(mainDisplayIndex);
25320
- this._forms.InitFormFromXmlString(mainDisplayIndex);
25321
- this.EnsureValidForm();
25385
+ return __awaiter(this, void 0, void 0, function* () {
25386
+ let propMainDisplay = this.getProp(PropInterface.PROP_TYPE_MAIN_DISPLAY);
25387
+ let mainDisplayIndex = yield propMainDisplay.getValueInt();
25388
+ mainDisplayIndex = this.GetRealMainDisplayIndexOnCurrentTask(mainDisplayIndex);
25389
+ this._forms.InitFormFromXmlString(mainDisplayIndex);
25390
+ this.EnsureValidForm();
25391
+ });
25322
25392
  }
25323
25393
  PrepareTaskForm() {
25324
25394
  return __awaiter(this, void 0, void 0, function* () {
25325
25395
  yield TaskServiceBase.PreparePropOpenTaskWindow(this);
25326
- return RemoteTaskService.PreparePropMainDisplay(this);
25396
+ return yield RemoteTaskService.PreparePropMainDisplay(this);
25327
25397
  });
25328
25398
  }
25329
25399
  FormIsLegal() {
@@ -25394,7 +25464,12 @@ class Task extends TaskBase {
25394
25464
  let tokensVector = XmlParser.getTokens(RuntimeContextBase.Instance.Parser.getXMLsubstring(endTaskUrlIdx), XMLConstants.XML_ATTR_DELIM);
25395
25465
  let taskCacheURL = tokensVector.get_Item(1);
25396
25466
  let refListStr = tokensVector.get_Item(3);
25397
- let taskContentOriginal = yield Task.CommandsProcessor.GetContent(taskCacheURL, true);
25467
+ let taskContentOriginal = "";
25468
+ if (taskCacheURL.trim() != "") {
25469
+ if (taskCacheURL.startsWith("./"))
25470
+ taskCacheURL = NString.Replace(taskCacheURL, './', './assets/cache/');
25471
+ taskContentOriginal = yield Task.CommandsProcessor.GetContent(taskCacheURL, true);
25472
+ }
25398
25473
  let taskContentFinal = new StringBuilder(xmlData.substr(0, RuntimeContextBase.Instance.Parser.getCurrIndex() - (ConstInterface.MG_TAG_TASKURL.length + 1)), taskContentOriginal.length);
25399
25474
  let reflist = this.getReflist(refListStr, ';', true, -1);
25400
25475
  let refListIdx = 0;
@@ -27684,7 +27759,7 @@ class EventsManager {
27684
27759
  val = Manager.GetCtrlVal(ctrl);
27685
27760
  task.CurrentEditingControl = null;
27686
27761
  if (!task.cancelWasRaised() &&
27687
- (ctrl.Type !== MgControlType.CTRL_TYPE_BROWSER && (!isNullOrUndefined(ctrl._field) && ctrl._field.getType() === StorageAttribute.DATE || val !== null) && typeof val != 'undefined' &&
27762
+ (ctrl.Type !== MgControlType.CTRL_TYPE_BROWSER && (!isNullOrUndefined(ctrl._field) && (ctrl._field.getType() === StorageAttribute.DATE || ctrl._field.getType() == StorageAttribute.NUMERIC) || val !== null) && typeof val != 'undefined' &&
27688
27763
  !(yield ctrl.validateAndSetValue(val, true)))) {
27689
27764
  this.setStopExecution(true);
27690
27765
  return false;
@@ -30357,7 +30432,7 @@ class CommandsTable {
30357
30432
  }
30358
30433
  }
30359
30434
 
30360
- let CurrentClientVersion = '4.900.0-dev491.7';
30435
+ let CurrentClientVersion = '4.1000.0-dev000.0';
30361
30436
 
30362
30437
  class ClientManager {
30363
30438
  constructor() {
@@ -30448,6 +30523,10 @@ class ClientManager {
30448
30523
  EventsManager.Instance.addGuiTriggeredEventWithTaskAndCodeAndLine(task, InternalInterface.MG_ACT_REC_PREFIX, dvRowIdx);
30449
30524
  }
30450
30525
  break;
30526
+ case "navigateInTable":
30527
+ if (guiEvent.ControlName === "magicRow")
30528
+ this.handleNavigateInRowEvent(task, guiEvent.Value);
30529
+ break;
30451
30530
  case "close":
30452
30531
  if (task.IsRoute())
30453
30532
  EventsManager.Instance.AddRouterClosedEvent(task);
@@ -30482,6 +30561,38 @@ class ClientManager {
30482
30561
  break;
30483
30562
  }
30484
30563
  }
30564
+ handleNavigateInRowEvent(task, evt) {
30565
+ let internalEvt = InternalInterface.MG_ACT_NONE;
30566
+ evt = evt.toLowerCase();
30567
+ switch (evt) {
30568
+ case "begin-page":
30569
+ internalEvt = InternalInterface.MG_ACT_TBL_BEGPAGE;
30570
+ break;
30571
+ case "previous-page":
30572
+ internalEvt = InternalInterface.MG_ACT_TBL_PRVPAGE;
30573
+ break;
30574
+ case "end-page":
30575
+ internalEvt = InternalInterface.MG_ACT_TBL_ENDPAGE;
30576
+ break;
30577
+ case "next-page":
30578
+ internalEvt = InternalInterface.MG_ACT_TBL_NXTPAGE;
30579
+ break;
30580
+ case "previous-line":
30581
+ internalEvt = InternalInterface.MG_ACT_TBL_PRVLINE;
30582
+ break;
30583
+ case "next-line":
30584
+ internalEvt = InternalInterface.MG_ACT_TBL_NXTLINE;
30585
+ break;
30586
+ case "begin-table":
30587
+ internalEvt = InternalInterface.MG_ACT_TBL_BEGTBL;
30588
+ break;
30589
+ case "end-table":
30590
+ internalEvt = InternalInterface.MG_ACT_TBL_ENDTBL;
30591
+ break;
30592
+ }
30593
+ if (internalEvt != InternalInterface.MG_ACT_NONE)
30594
+ EventsManager.Instance.addGuiTriggeredEventWithTaskAndCode(task, internalEvt);
30595
+ }
30485
30596
  ConfirmationClosed(res) {
30486
30597
  Commands.ResolvePromise(res);
30487
30598
  }
@@ -30626,15 +30737,20 @@ class ClientManager {
30626
30737
  }
30627
30738
  return pic;
30628
30739
  }
30629
- static GetFormattedValue(taskId, controlName, value) {
30740
+ static GetFormattedValue(taskId, controlName, value, rowId) {
30630
30741
  let pic = null;
30631
30742
  let task = MGDataCollection.Instance.GetTaskByID(taskId);
30632
30743
  let control = null;
30633
30744
  let newValue = value;
30634
- if (controlName !== null)
30745
+ if (controlName !== null && task !== null)
30635
30746
  control = task.getForm().GetCtrl(controlName);
30636
30747
  if (control != null && control.DataType == StorageAttribute.NUMERIC) {
30637
- pic = control.getPIC();
30748
+ if (control.isRepeatable() && control.getProp(PropInterface.PROP_TYPE_FORMAT).isExpression()) {
30749
+ let picval = control.getProp(PropInterface.PROP_TYPE_FORMAT).getPrevValue(+rowId);
30750
+ pic = new PIC(picval, StorageAttribute.NUMERIC, control.getForm().getTask().getCompIdx());
30751
+ }
30752
+ else
30753
+ pic = control.getPIC();
30638
30754
  let dispValue = String(value);
30639
30755
  let newPic = pic.getUnformattedNumericPic();
30640
30756
  let num = DisplayConvertor.Instance.toNum(dispValue, newPic, 0);
@@ -30737,8 +30853,8 @@ class MagicBridge {
30737
30853
  static GetControlPictureMask(taskId, controlName) {
30738
30854
  return ClientManager.GetControlPictureMask(taskId, controlName);
30739
30855
  }
30740
- static GetFormattedValue(taskId, controlName, value) {
30741
- return ClientManager.GetFormattedValue(taskId, controlName, value);
30856
+ static GetFormattedValue(taskId, controlName, value, rowId) {
30857
+ return ClientManager.GetFormattedValue(taskId, controlName, value, rowId);
30742
30858
  }
30743
30859
  static GetRangedValue(taskId, controlName, value) {
30744
30860
  return ClientManager.GetRangedValue(taskId, controlName, value);
@@ -30757,13 +30873,6 @@ class MagicBridge {
30757
30873
  }
30758
30874
  }
30759
30875
 
30760
- class ControlItemsRefreshCommand extends DataviewCommand {
30761
- constructor() {
30762
- super();
30763
- this.Control = null;
30764
- }
30765
- }
30766
-
30767
30876
  class DataViewOutputCommand extends DataviewCommand {
30768
30877
  constructor(OutputCommandType) {
30769
30878
  super();