@magic-xpa/engine 4.900.0-dev491.7 → 4.900.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyYW1ibGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy91dGlsL1NjcmFtYmxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRSxNQUFNLE9BQU8sU0FBUztJQVNwQixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFDekIsT0FBTyxLQUFLLENBQUM7UUFFZixJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7UUFDckIsSUFBSSxPQUFlLENBQUM7UUFDcEIsSUFBSSxNQUFNLEdBQVcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLE1BQU0sR0FBVyxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN6RCxJQUFJLE1BQU0sR0FBa0IsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRzFELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksR0FBRyxDQUFDLENBQUM7WUFFVCxPQUFPLElBQUksR0FBRyxNQUFNLEVBQUU7Z0JBQ3BCLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7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O1lBQ3JFLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQixTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDckMsUUFBUSxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFFeEIsS0FBSyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNYLE9BQU8sR0FBRyxDQUFDLENBQUM7Z0JBRVosT0FBTyxNQUFNLEdBQUcsTUFBTSxJQUFJLE9BQU8sR0FBRyxNQUFNLEVBQUU7b0JBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO29CQUN4QyxNQUFNLElBQUksU0FBUyxDQUFDO29CQUNwQixJQUFJLE9BQU8sSUFBSSxRQUFRO3dCQUNyQixNQUFNLEVBQUUsQ0FBQztvQkFDWCxPQUFPLEVBQUUsQ0FBQztvQkFDVixPQUFPLEVBQUUsQ0FBQztpQkFDWDthQUNGO1lBRUQsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7QUFsSU0sMkJBQWlCLEdBQVksSUFBSSxDQUFDO0FBQzFCLHdCQUFjLEdBQVcsQ0FBQyxFQUFFLENBQUM7QUFDN0Isd0JBQWMsR0FBVyxFQUFFLENBQUM7QUFDNUIsNEJBQWtCLEdBQVcsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05DaGFyLCBOU3RyaW5nLCBTdHJpbmdCdWlsZGVyfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTY3JhbWJsZXIge1xyXG4gIHN0YXRpYyBTY3JhbWJsaW5nRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7IC8vIERpc2FibGUgc2NyYW1ibGluZ1xyXG4gIHByaXZhdGUgc3RhdGljIFhNTF9NSU5fUkFORE9NOiBudW1iZXIgPSAtNDg7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgWE1MX01BWF9SQU5ET006IG51bWJlciA9IDQ3O1xyXG4gIHByaXZhdGUgc3RhdGljIFhNTF9JTExFR0FMX1JBTkRPTTogbnVtYmVyID0gLTIxO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+c2NyYW1ibGUgc3RyaW5nPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImluVmFsXCI+c3RyaW5nIHRvIHNjcmFtYmxlPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHNjcmFtYmxlZCBzdHJpbmc8L3JldHVybnM+XHJcbiAgc3RhdGljIFNjcmFtYmxlKGluVmFsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLlNjcmFtYmxpbmdFbmFibGVkKVxyXG4gICAgICByZXR1cm4gaW5WYWw7XHJcblxyXG4gICAgbGV0IGN1cnI6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgY3VyckNocjogc3RyaW5nO1xyXG4gICAgbGV0IGxlbmd0aDogbnVtYmVyID0gaW5WYWwubGVuZ3RoO1xyXG4gICAgbGV0IHJhbmRvbTogbnVtYmVyID0gU2NyYW1ibGVyLlJhbmRvbVNjcmFtYmxlKGxlbmd0aCk7XHJcbiAgICBsZXQga2V5OiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGguc3FydChsZW5ndGgpKSArIHJhbmRvbTtcclxuICAgIGxldCBvdXRWYWw6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcihsZW5ndGggKyAxKTtcclxuXHJcbiAgICAvLyBUaGUgZmlyc3QgY2hhciBpbiB0aGUgc2NyYW1ibGVkIHN0cmluZyBpcyBhIHJhbmRvbSBtb2RpZmllciB0byB0aGUgZGVmYXVsdCBrZXlcclxuICAgIG91dFZhbC5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZShyYW5kb20gKyA4MSkpO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBrZXk7IGkrKykge1xyXG4gICAgICBjdXJyID0gaTtcclxuXHJcbiAgICAgIHdoaWxlIChjdXJyIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgY3VyckNociA9IGluVmFsW2N1cnJdO1xyXG4gICAgICAgIG91dFZhbC5BcHBlbmQoY3VyckNocik7XHJcbiAgICAgICAgY3VyciArPSBrZXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBUaGUgbGFzdCBjaGFyIGluIHRoZSBzY3JhbWJsZWQgc3RyaW5nIGlzIGEgcGFkZGluZyByZWFkYWJsZSBjaGFyLlxyXG4gICAgb3V0VmFsLkFwcGVuZCgnXycpLyonXycqLztcclxuICAgIHJldHVybiBvdXRWYWwuVG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5kZWxldGUgZmlyc3QgY2hhcmFjdGVyIG9mIHNjcmFtYmxlZCB0ZXh0IGFuZCBtYWtlcyBsZWZ0IHRyaW0gdG8gdGhlIHN0cmluZzwvc3VtbWFyeT5cclxuICBwcml2YXRlIHN0YXRpYyBMb2NhdGVTY3JhbWJsZShpblZhbDogc3RyaW5nLCBmcm9tOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IGk6IG51bWJlciA9IGZyb207XHJcbiAgICB3aGlsZSAoaSA8IGluVmFsLmxlbmd0aCAmJiBOQ2hhci5Jc1doaXRlU3BhY2UoaW5WYWwuY2hhckF0KGkpKSkge1xyXG4gICAgICBpID0gaSArIDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaSArIDE7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENob29zZSBhIHJhbmRvbSBtb2RpZmllciB0byB0aGUga2V5IG9uIHdoaWNoIHdlIGJhc2UgdGhlIHNjcmFtYmxpbmcgcHJvY2Vzcy5cclxuICAvLy8gVGhlIHJhbmRvbSBmYWN0b3IgY2Fubm90IGJlIGp1c3QgYW55IG51bWJlciB3ZSBjaG9vc2UuIFNpbmNlIHRoZSBzY3JhbWJsZSBrZXlcclxuICAvLy8gZGV0ZXJtaW5lcyB0aGUgYW1vdW50IG9mICdqdW1wcycgd2UgcGVyZm9ybSBvbiB0aGUgdGV4dCB0byBiZSBzY3JhbWJsZWQsIHRoZW5cclxuICAvLy8gdGhlIHJhbmRvbSBudW1iZXIgd2UgYWRkIHRvIGl0IG11c3Qgbm90IGJlIHRvbyBiaWcsIG5vciB0b28gc21hbGwuIEFzIGEgcnVsZSxcclxuICAvLy8gdGhlIHJhbmRvbSBtb2RpZmllciBjYW4gcmFuZ2UgZnJvbSBTUVJUKGxlbikvMicgdG8gJy1TUVJUKGxlbikvMicsIGFuZCBzaW5jZSB3ZVxyXG4gIC8vLyBwYXNzIHRoZSBzZWxlY3RlZCBudW1iZXIgYXMgYSBjaGFyYWN0ZXIgd2l0aGluIHRoZSBYTUwsIHRoZSB3aG9sZSByYW5nZSBjYW5ub3RcclxuICAvLy8gZXhjZWVkIHRoZSBudW1iZXIgb2YgdGhlIHByaW50YWJsZSBjaGFyYWN0ZXJzICg5NSksIHRodXMgdGhlIHJhbmdlIGlzIGxpbWl0ZWRcclxuICAvLy8gYmV0d2VlbiAoLTQ4KSB0byAoNDcpLCBzbyB3ZSBjYXAgdGhlIGFsbG93ZWQgcmFuZ2UgYWNjb3JkaW5nIHRvIHRoZXNlIGxpbWl0cy5cclxuICAvLy8gTGFzdCwgdGhlIHZhbHVlIFhNTF9JTExFR0FMX1JBTkRPTSwgc2luY2UgaXQgd2lsbCByZXN1bHQgaW4gYWRkaW5nIHRoZSBjaGFyICc8J1xyXG4gIC8vLyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBYTUwuIFRoaXMgd2lsbCBtYWtlIHRoZSBjbGllbnQgY29uZnVzZWQsIHNpbmNlIGl0IHdpbGxcclxuICAvLy8gdGhpbmsgdGhlIFhNTCBpcyBub3Qgc2NyYW1ibGVkLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwibGVuXCI+b2Ygb3V0Z29pbmcgU3RyaW5nPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHJhbmRvbSBtb2RpZmllcjwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBSYW5kb21TY3JhbWJsZShsZW46IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgZGVsdGE6IG51bWJlcjtcclxuICAgIGxldCBzcXJ0OiBudW1iZXIgPSBNYXRoLnNxcnQobGVuKTtcclxuICAgIGxldCBsb3c6IG51bWJlciA9IFNjcmFtYmxlci5YTUxfTUlOX1JBTkRPTTtcclxuICAgIGxldCBoaWdoOiBudW1iZXIgPSBTY3JhbWJsZXIuWE1MX01BWF9SQU5ET007XHJcblxyXG4gICAgaWYgKGxvdyA8ICgoKC0xKSAqIHNxcnQpIC8gMikpXHJcbiAgICAgIGxvdyA9IE1hdGguZmxvb3IoKCgtMSkgKiBzcXJ0KSAvIDIpO1xyXG5cclxuICAgIGlmIChoaWdoID4gKHNxcnQgLyAyKSlcclxuICAgICAgaGlnaCA9IE1hdGguZmxvb3Ioc3FydCAvIDIpO1xyXG5cclxuICAgIGRlbHRhID0gKE1hdGgucmFuZG9tKCkgKiAoaGlnaCAtIGxvdykpICsgbG93O1xyXG4gICAgaWYgKGRlbHRhID09PSBTY3JhbWJsZXIuWE1MX0lMTEVHQUxfUkFORE9NKVxyXG4gICAgICBkZWx0YSsrO1xyXG5cclxuICAgIHJldHVybiBNYXRoLmZsb29yKGRlbHRhKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5tYWtlIHVuc2NyYW1ibGluZyB0byBzdHJpbmcgaW5zaWRlIHVwcGVyIGFuZCBkb3duIGJvcmRlcjwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpblZhbFwiPnNjcmFtYmxlZCBzdHJpbmcgdG8gYnVpbGQgdW5zY3JhbWJsZWQgc3RyaW5nIGZyb20gaXQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJlZ2luT2ZmU2V0XCI+b2Zmc2V0IHdoZXJlIHRoZSBzY3JhbWJsZWQgc3RyaW5nIGJlZ2luczwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZW5kT2ZmU2V0XCI+b2Zmc2V0IG9mIHRoZSBsYXN0IGNoYXIgaW4gdGhlIHNjcmFtYmxlZCBzdHJpbmcuPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHVuc2NyYW1ibGVkIHN0cmluZzwvcmV0dXJucz5cclxuICBzdGF0aWMgVW5TY3JhbWJsZShpblZhbDogc3RyaW5nLCBiZWdpbk9mZlNldDogbnVtYmVyLCBlbmRPZmZTZXQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoIVNjcmFtYmxlci5TY3JhbWJsaW5nRW5hYmxlZCkge1xyXG4gICAgICBsZXQgb3V0VmFsOiBzdHJpbmcgPSBpblZhbC5zdWJzdHIoYmVnaW5PZmZTZXQsIGVuZE9mZlNldCAtIGJlZ2luT2ZmU2V0ICsgMSk7XHJcbiAgICAgIHJldHVybiBvdXRWYWw7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IGN1cnJPdXQ6IG51bWJlciwgY3VyckluOiBudW1iZXIsIGk6IG51bWJlcjtcclxuICAgICAgbGV0IGxlbmd0aDogbnVtYmVyO1xyXG4gICAgICBsZXQga2V5OiBudW1iZXI7XHJcbiAgICAgIGxldCBvdXRWYWw6IHN0cmluZ1tdO1xyXG4gICAgICBsZXQgY3VyckJsazogbnVtYmVyO1xyXG4gICAgICBsZXQgYmxvY2tTaXplOiBudW1iZXI7XHJcbiAgICAgIGxldCByZW1pbmRlcjogbnVtYmVyO1xyXG4gICAgICBsZXQgc3RhcnQ6IG51bWJlcjtcclxuICAgICAgbGV0IHJhbmRvbUNocjogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gaWdub3JlIHRoZSBsYXN0IGNoYXIgaW4gdGhlIGlucHV0LCBpdCdzIGp1c3QgYSBwYWRkaW5nIGNoYXJhY3Rlci5cclxuICAgICAgZW5kT2ZmU2V0ID0gZW5kT2ZmU2V0IC0gMTtcclxuXHJcbiAgICAgIC8vIHNraXAgb3ZlciB0aGUgZmlyc3QgY2hhciBpbiB0aGUgaW5wdXQsIGl0IG9ubHkgY29udGFpbnMgYSByYW5kb20gbW9kaWZpZXIgdG8gdGhlIGtleS5cclxuICAgICAgLy8gaXQgaXMgbm90IHBhcnQgb2YgdGhlIGRhdGEuXHJcbiAgICAgIHN0YXJ0ID0gdGhpcy5Mb2NhdGVTY3JhbWJsZShpblZhbCwgYmVnaW5PZmZTZXQpO1xyXG4gICAgICByYW5kb21DaHIgPSBpblZhbFtzdGFydCAtIDFdO1xyXG5cclxuICAgICAgbGVuZ3RoID0gZW5kT2ZmU2V0IC0gc3RhcnQgKyAxO1xyXG4gICAgICBrZXkgPSAocmFuZG9tQ2hyLmNoYXJDb2RlQXQoMCkgLSA4MSkgKyBNYXRoLmZsb29yKE1hdGguc3FydChsZW5ndGgpKTtcclxuICAgICAgb3V0VmFsID0gbmV3IEFycmF5KGxlbmd0aCk7XHJcbiAgICAgIGJsb2NrU2l6ZSA9IE1hdGguZmxvb3IobGVuZ3RoIC8ga2V5KTtcclxuICAgICAgcmVtaW5kZXIgPSBsZW5ndGggJSBrZXk7XHJcblxyXG4gICAgICBmb3IgKGkgPSBjdXJyT3V0ID0gMDsgY3Vyck91dCA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY3VyckluID0gaTtcclxuICAgICAgICBjdXJyQmxrID0gMTtcclxuXHJcbiAgICAgICAgd2hpbGUgKGN1cnJJbiA8IGxlbmd0aCAmJiBjdXJyT3V0IDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgICBvdXRWYWxbY3Vyck91dF0gPSBpblZhbFtjdXJySW4gKyBzdGFydF07XHJcbiAgICAgICAgICBjdXJySW4gKz0gYmxvY2tTaXplO1xyXG4gICAgICAgICAgaWYgKGN1cnJCbGsgPD0gcmVtaW5kZXIpXHJcbiAgICAgICAgICAgIGN1cnJJbisrO1xyXG4gICAgICAgICAgY3Vyck91dCsrO1xyXG4gICAgICAgICAgY3VyckJsaysrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIE5TdHJpbmcuRnJvbUNoYXJzKG91dFZhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyYW1ibGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy91dGlsL1NjcmFtYmxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRSxNQUFNLE9BQU8sU0FBUztJQVNwQixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFDekIsT0FBTyxLQUFLLENBQUM7UUFFZixJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7UUFDckIsSUFBSSxPQUFlLENBQUM7UUFDcEIsSUFBSSxNQUFNLEdBQVcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLE1BQU0sR0FBVyxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN6RCxJQUFJLE1BQU0sR0FBa0IsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRzFELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksR0FBRyxDQUFDLENBQUM7WUFFVCxPQUFPLElBQUksR0FBRyxNQUFNLEVBQUU7Z0JBQ3BCLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7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LENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNyRSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBRXhCLEtBQUssQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDWCxPQUFPLEdBQUcsQ0FBQyxDQUFDO2dCQUVaLE9BQU8sTUFBTSxHQUFHLE1BQU0sSUFBSSxPQUFPLEdBQUcsTUFBTSxFQUFFO29CQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQztvQkFDeEMsTUFBTSxJQUFJLFNBQVMsQ0FBQztvQkFDcEIsSUFBSSxPQUFPLElBQUksUUFBUTt3QkFDckIsTUFBTSxFQUFFLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxFQUFFLENBQUM7aUJBQ1g7YUFDRjtZQUVELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7O0FBbklNLDJCQUFpQixHQUFZLElBQUksQ0FBQztBQUMxQix3QkFBYyxHQUFXLENBQUMsRUFBRSxDQUFDO0FBQzdCLHdCQUFjLEdBQVcsRUFBRSxDQUFDO0FBQzVCLDRCQUFrQixHQUFXLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOQ2hhciwgTlN0cmluZywgU3RyaW5nQnVpbGRlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU2NyYW1ibGVyIHtcclxuICBzdGF0aWMgU2NyYW1ibGluZ0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlOyAvLyBEaXNhYmxlIHNjcmFtYmxpbmdcclxuICBwcml2YXRlIHN0YXRpYyBYTUxfTUlOX1JBTkRPTTogbnVtYmVyID0gLTQ4O1xyXG4gIHByaXZhdGUgc3RhdGljIFhNTF9NQVhfUkFORE9NOiBudW1iZXIgPSA0NztcclxuICBwcml2YXRlIHN0YXRpYyBYTUxfSUxMRUdBTF9SQU5ET006IG51bWJlciA9IC0yMTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PnNjcmFtYmxlIHN0cmluZzwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpblZhbFwiPnN0cmluZyB0byBzY3JhbWJsZTwvcGFyYW0+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3V0aWwvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxhQUFhO0lBRWpCLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBa0I7UUFFekMsSUFBSSxVQUFVLElBQUksR0FBRztZQUNuQixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFFekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsT0FBdUIsRUFBRSxJQUFLLEVBQUUsTUFBUSxFQUFFLE1BQU8sRUFBRSxRQUFTO1FBQy9HLElBQUksWUFBWSxHQUFXLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3pILElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7Z0JBQy9CLE1BQU0sV0FBVyxHQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUU1QyxZQUFZLElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUM7YUFDOUQ7aUJBQ0ksSUFBRyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxFQUNyQztnQkFDRSxNQUFNLFdBQVcsR0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFNUMsWUFBWSxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDO2FBQzlEO2lCQUNJO2dCQUNILFlBQVksSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQzthQUMxRDtTQUNGO1FBRUQsSUFBSSxJQUFJLEVBQUU7WUFDUixZQUFZLElBQUksT0FBTyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7U0FDdEM7UUFFRCxJQUFJLE1BQU0sRUFBRTtZQUNWLFlBQVksSUFBSSxTQUFTLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQztTQUMxQztRQUVELElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO1lBQzNDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDZCxPQUFPLENBQUMsSUFBSSxDQUNWLFVBQVUsSUFBSSxxREFBcUQsQ0FDcEUsQ0FBQztTQUNIO1FBQ0QsSUFBSSxNQUFNLEVBQUU7WUFDVixZQUFZLElBQUksU0FBUyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDbEI7UUFFRCxZQUFZLElBQUksV0FBVyxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFFN0MsUUFBUSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7UUFFL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVk7UUFFL0IsWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVuQyxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFHdEIsS0FBSyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFHOUQsWUFBWSxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFHakQsSUFBSSxPQUFPLEdBQUcsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3JDLFlBQVksSUFBSSxHQUFHLENBQUM7YUFDckI7U0FDRjtRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVk7UUFFL0IsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBR3RCLElBQUksVUFBVSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFHekMsS0FBSyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFJNUQsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDMUQ7UUFHRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVO1FBQ3pCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQUksYUFBYSxHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxJQUFJLEVBQUUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNkLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUU7Z0JBQ3pCLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BCO1lBQ0QsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxNQUFNLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7U0FDRjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVTtRQUM1QixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDekQsSUFBSSxVQUFVLEtBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtnQkFDckQsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcseUNBQXlDLENBQUM7Z0JBQ25FLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTlN0cmluZyB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcblxuZXhwb3J0IGNsYXNzIENvb2tpZVNlcnZpY2Uge1xuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q29va2llcyhjb29raWVOYW1lOiBzdHJpbmcpIHtcblxuICAgIGlmIChjb29raWVOYW1lID09ICcqJylcbiAgICAgIHJldHVybiBkb2N1bWVudC5jb29raWU7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDb29raWUoY29va2llTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNldENvb2tpZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGV4cGlyZXM/OiBudW1iZXIgfCBEYXRlLCBwYXRoPywgZG9tYWluID8sIHNlY3VyZT8sIHNhbWVTaXRlPyk6IGJvb2xlYW4ge1xuICAgIGxldCBjb29raWVTdHJpbmc6IHN0cmluZyA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChDb29raWVTZXJ2aWNlLmVuY29kZV9jb29raWUodmFsdWUpKSArICc7JztcbiAgICBpZiAoZXhwaXJlcykge1xuICAgICAgaWYgKHR5cGVvZiBleHBpcmVzID09PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zdCBkYXRlRXhwaXJlczogRGF0ZSA9IG5ldyBEYXRlKGV4cGlyZXMpO1xuXG4gICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgZGF0ZUV4cGlyZXMudG9VVENTdHJpbmcoKSArICc7JztcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYoKHR5cGVvZiBleHBpcmVzID09PSAnc3RyaW5nJykpXG4gICAgICB7XG4gICAgICAgIGNvbnN0IGRhdGVFeHBpcmVzOiBEYXRlID0gbmV3IERhdGUoZXhwaXJlcyk7XG5cbiAgICAgICAgY29va2llU3RyaW5nICs9ICdleHBpcmVzPScgKyBkYXRlRXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgZXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXRoKSB7XG4gICAgICBjb29raWVTdHJpbmcgKz0gJ3BhdGg9JyArIHBhdGggKyAnOyc7XG4gICAgfVxuXG4gICAgaWYgKGRvbWFpbikge1xuICAgICAgY29va2llU3RyaW5nICs9ICdkb21haW49JyArIGRvbWFpbiArICc7JztcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJlID09PSBmYWxzZSAmJiBzYW1lU2l0ZSA9PT0gJ05vbmUnKSB7XG4gICAgICBzZWN1cmUgPSB0cnVlO1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgY29va2llICR7bmFtZX0gd2FzIGZvcmNlZCB3aXRoIHNlY3VyZSBmbGFnIGJlY2F1c2Ugc2FtZVNpdGU9Tm9uZS5gXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoc2VjdXJlKSB7XG4gICAgICBjb29raWVTdHJpbmcgKz0gJ3NlY3VyZTsnO1xuICAgIH1cblxuICAgIGlmICghc2FtZVNpdGUpIHtcbiAgICAgIHNhbWVTaXRlID0gJ0xheCc7XG4gICAgfVxuXG4gICAgY29va2llU3RyaW5nICs9ICdzYW1lU2l0ZT0nICsgc2FtZVNpdGUgKyAnOyc7XG5cbiAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWVTdHJpbmc7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDb29raWUobmFtZSk7XG4gIH1cblxuICBzdGF0aWMgZW5jb2RlX2Nvb2tpZShjb29raWVfdmFsdWUpIHtcblxuICAgIGNvb2tpZV92YWx1ZSA9IGNvb2tpZV92YWx1ZS50cmltKCk7XG4gICAgLy9UaGlzIHZhcmlhYmxlIGhvbGRzIHRoZSBlbmNvZGVkIGNvb2tpZSBjaGFyYWN0ZXJzXG4gICAgdmFyIGNvZGVkX3N0cmluZyA9ICcnO1xuXG4gICAgLy8gUnVuIHRocm91Z2ggZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIGNvb2tpZSB2YWx1ZVxuICAgIGZvciAodmFyIGNvdW50ZXIgPSAwOyBjb3VudGVyIDwgY29va2llX3ZhbHVlLmxlbmd0aDsgY291bnRlcisrKSB7XG5cbiAgICAgIC8vIEFkZCB0aGUgY2hhcmFjdGVyJ3MgbnVtZXJpYyBjb2RlIHRvIHRoZSBzdHJpbmdcbiAgICAgIGNvZGVkX3N0cmluZyArPSBjb29raWVfdmFsdWUuY2hhckNvZGVBdChjb3VudGVyKTtcblxuICAgICAgLy8gU2VwYXJhdGUgZWFjaCBjb2RlIHdpdGggYSBwbHVzIHNpZ24gKCspXG4gICAgICBpZiAoY291bnRlciA8IGNvb2tpZV92YWx1ZS5sZW5ndGggLSAxKSB7XG4gICAgICAgIGNvZGVkX3N0cmluZyArPSAnKyc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb2RlZF9zdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZGVjb2RlX2Nvb2tpZShjb2RlZF9zdHJpbmcpIHtcbiAgICAvLyBUaGlzIHZhcmlhYmxlIGhvbGRzIHRoZSBkZWNvZGVkIGNvb2tpZSB2YWx1ZVxuICAgIHZhciBjb29raWVfdmFsdWUgPSAnJztcblxuICAgIC8vIFVzZSArIHRvIHNwbGl0IHRoZSBjb2RlZCBzdHJpbmcgaW50byBhbiBhcnJheVxuICAgIHZhciBjb2RlX2FycmF5ID0gY29kZWRfc3RyaW5nLnNwbGl0KCcrJyk7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggdGhlIGFycmF5XG4gICAgZm9yICh2YXIgY291bnRlciA9IDA7IGNvdW50ZXIgPCBjb2RlX2FycmF5Lmxlbmd0aDsgY291bnRlcisrKSB7XG5cbiAgICAgIC8vIENvbnZlcnQgdGhlIGNvZGUgaW50byBhIGNoYXJhY3RlciBhbmRcbiAgICAgIC8vIGFkZCBpdCB0byB0aGUgY29va2llIHZhbHVlIHN0cmluZ1xuICAgICAgY29va2llX3ZhbHVlICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZV9hcnJheVtjb3VudGVyXSk7XG4gICAgfVxuICAgIC8vIHJldHVybiBjb2RlZF9zdHJpbmc7XG5cbiAgICByZXR1cm4gY29va2llX3ZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGdldENvb2tpZShjb29raWVOYW1lKTogYW55IHtcbiAgICBsZXQgbmFtZSA9IE5TdHJpbmcuVHJpbVN0YXJ0KGNvb2tpZU5hbWUgKyAnPScpO1xuICAgIGxldCBkZWNvZGVkQ29va2llID0gZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZSk7XG4gICAgbGV0IGNhID0gZGVjb2RlZENvb2tpZS5zcGxpdCgnOycpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBjID0gY2FbaV07XG4gICAgICB3aGlsZSAoYy5jaGFyQXQoMCkgPT0gJyAnKSB7XG4gICAgICAgIGMgPSBjLnN1YnN0cmluZygxKTtcbiAgICAgIH1cbiAgICAgIGlmIChjLmluZGV4T2YobmFtZSkgPj0gMCkge1xuICAgICAgICBsZXQgZGVjb2RlID0gQ29va2llU2VydmljZS5kZWNvZGVfY29va2llKGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCkpO1xuICAgICAgICByZXR1cm4gZGVjb2RlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBzdGF0aWMgZGVsZXRlQ29va2llKGNvb2tpZU5hbWUpOiBib29sZWFuIHtcbiAgICB2YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb29raWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY29va2llID0gY29va2llc1tpXTtcbiAgICAgIHZhciBlcVBvcyA9IGNvb2tpZS5pbmRleE9mKCc9Jyk7XG4gICAgICB2YXIgbmFtZSA9IGVxUG9zID4gLTEgPyBjb29raWUuc3Vic3RyKDAsIGVxUG9zKSA6IGNvb2tpZTtcbiAgICAgIGlmIChjb29raWVOYW1lID09PSBOU3RyaW5nLlRyaW1TdGFydChkZWNvZGVVUkkobmFtZSkpKSB7XG4gICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAnPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UJztcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG4iXX0=
@@ -1241,7 +1241,8 @@ class MgControl extends MgControlBase {
1241
1241
  if (!isTagProcessed) {
1242
1242
  switch (attribute) {
1243
1243
  case ConstInterface.MG_ATTR_SUBFORM_TASK:
1244
- this._subformTaskId = valueStr;
1244
+ if (valueStr.trim() != "")
1245
+ this._subformTaskId = valueStr;
1245
1246
  break;
1246
1247
  case ConstInterface.MG_ATTR_REFRESHON:
1247
1248
  this.refreshOnString = valueStr.trim();
@@ -4242,9 +4243,10 @@ class Scrambler {
4242
4243
  if (high > (sqrt / 2))
4243
4244
  high = Math.floor(sqrt / 2);
4244
4245
  delta = (Math.random() * (high - low)) + low;
4246
+ delta = Math.floor(delta);
4245
4247
  if (delta === Scrambler.XML_ILLEGAL_RANDOM)
4246
4248
  delta++;
4247
- return Math.floor(delta);
4249
+ return delta;
4248
4250
  }
4249
4251
  static UnScramble(inVal, beginOffSet, endOffSet) {
4250
4252
  if (!Scrambler.ScramblingEnabled) {
@@ -6311,17 +6313,22 @@ class LanguageData {
6311
6313
  if (this._mlsContent.length > 0) {
6312
6314
  let linePairs = 0;
6313
6315
  let srcLine = this._mlsContent + 3;
6316
+ let transLine;
6314
6317
  this._mlsStrings = new Hashtable();
6315
- let linesStr = this._mlsContent.substring(this._mlsContent.length - MLS_EOF_CHARS_TO_READ, 8);
6318
+ let linesStr = this._mlsContent.substr(this._mlsContent.length - MLS_EOF_CHARS_TO_READ, 8);
6316
6319
  linePairs = parseInt(linesStr.toString(), 16);
6317
6320
  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());
6321
+ for (let pairNum = 0; pairNum < linePairs * 2; pairNum += 2) {
6322
+ srcLine = tokens[pairNum].substr(0, tokens[pairNum].length - 1);
6323
+ transLine = tokens[pairNum + 1].substr(0, tokens[pairNum + 1].length - 1);
6324
+ if (this._mlsStrings.get_Item(srcLine.toString()) == null)
6325
+ this._mlsStrings.set_Item(srcLine.toString(), transLine);
6321
6326
  }
6322
6327
  }
6323
6328
  }
6324
6329
  else if (this._mlsFileUrl != null) {
6330
+ if (this._mlsFileUrl.startsWith("./"))
6331
+ this._mlsFileUrl = NString.Replace(this._mlsFileUrl, './', './assets/cache/');
6325
6332
  let contentStr = yield CommandsProcessorManager.GetContent(this._mlsFileUrl, true);
6326
6333
  let buffer = contentStr;
6327
6334
  if (buffer != null && buffer.length > 0) {
@@ -9468,8 +9475,8 @@ class Operation {
9468
9475
  if (rtEvnt !== null) {
9469
9476
  this._routeParams = rtEvnt.getRouteParamList();
9470
9477
  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))
9478
+ ((rtEvnt.getArgList().getArg(1).skipArg() && destSubForm === this._task.getForm().DefaultRouterOutlet) ||
9479
+ (!rtEvnt.getArgList().getArg(1).skipArg() && (yield rtEvnt.getArgList().getArg(1).getValue(StorageAttribute.ALPHA, 0)).trim() === this._originalRouterOutletName)))
9473
9480
  canRoute = true;
9474
9481
  if (!canRoute)
9475
9482
  return false;
@@ -10361,7 +10368,7 @@ class CookieService {
10361
10368
  var cookie = cookies[i];
10362
10369
  var eqPos = cookie.indexOf('=');
10363
10370
  var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
10364
- if (cookieName === decodeURI(name)) {
10371
+ if (cookieName === NString.TrimStart(decodeURI(name))) {
10365
10372
  document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
10366
10373
  return true;
10367
10374
  }
@@ -14497,7 +14504,7 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
14497
14504
  }
14498
14505
  path = args[3];
14499
14506
  domain = args[4];
14500
- resVal.BoolVal = CookieService.setCookie(cookieName, args[0], nativeDt, path, domain, secure, sameSite);
14507
+ resVal.BoolVal = CookieService.setCookie(cookieName, (args[0] != null ? args[0].toString() : ""), nativeDt, path, domain, secure, sameSite);
14501
14508
  }
14502
14509
  eval_op_get_cookie(cookieName, resVal) {
14503
14510
  resVal.StrVal = CookieService.getCookie(cookieName);
@@ -16585,7 +16592,8 @@ class Field extends FieldBase {
16585
16592
  }
16586
16593
  break;
16587
16594
  case ConstInterface.MG_ATTR_CHACHED_FLD_ID:
16588
- this.CacheTableFldIdx = NNumber.Parse(data[1]);
16595
+ if (data[0] != "")
16596
+ this.CacheTableFldIdx = NNumber.Parse(data[1]);
16589
16597
  break;
16590
16598
  case ConstInterface.MG_ATTR_LOCATE:
16591
16599
  this.Locate = new Boundary(this.getTask(), NNumber.Parse(data[1]), NNumber.Parse(data[0]), this.getType(), this.getSize(), this.CacheTableFldIdx);
@@ -20987,8 +20995,10 @@ class RemoteTaskService extends TaskServiceBase {
20987
20995
  return OwnerTransactionTask;
20988
20996
  }
20989
20997
  static PreparePropMainDisplay(task) {
20990
- task.ComputeMainDisplay();
20991
- return task.FormIsLegal() ? ReturnResult.SuccessfulResult : new ReturnResult(MsgInterface.BRKTAB_STR_ERR_FORM);
20998
+ return __awaiter(this, void 0, void 0, function* () {
20999
+ yield task.ComputeMainDisplay();
21000
+ return task.FormIsLegal() ? ReturnResult.SuccessfulResult : new ReturnResult(MsgInterface.BRKTAB_STR_ERR_FORM);
21001
+ });
20992
21002
  }
20993
21003
  }
20994
21004
 
@@ -21393,15 +21403,18 @@ class RemoteDataviewHeader extends DataviewHeaderBase {
21393
21403
  setAttribute(attribute, valueStr) {
21394
21404
  switch (attribute) {
21395
21405
  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);
21406
+ if (valueStr != "") {
21407
+ if (TableCacheManager.Instance.TableExists(valueStr))
21408
+ this._table = TableCacheManager.Instance.GetTableById(valueStr);
21409
+ else {
21410
+ this._table = new TableCache(valueStr);
21411
+ TableCacheManager.Instance.InsertTable(this._table);
21412
+ }
21401
21413
  }
21402
21414
  break;
21403
21415
  case ConstInterface.MG_ATTR_IDENT:
21404
- this._table.SetTableIdent(valueStr);
21416
+ if (valueStr != "")
21417
+ this._table.SetTableIdent(valueStr);
21405
21418
  break;
21406
21419
  default:
21407
21420
  super.setAttribute(attribute, valueStr);
@@ -22515,9 +22528,17 @@ class RecomputeTable {
22515
22528
  this.fillData_1(task.DataView, task, parser);
22516
22529
  }
22517
22530
  else
22518
- throw new ApplicationException("in RecomputeTable.fillData() invalid task id: ");
22531
+ parser.setCurrIndex(parser.getXMLdata().indexOf(XMLConstants.TAG_CLOSE, parser.getCurrIndex()) + 1);
22519
22532
  }
22520
22533
  fillData_1(dataView, task, parser) {
22534
+ if (parser.getNextTag() == XMLConstants.MG_TAG_RECOMPUTE) {
22535
+ let currrentIndex = parser.getCurrIndex();
22536
+ let encoded = parser.ReadContentOfCurrentElement().trim();
22537
+ let decoded = Base64.decode(encoded.substr(0, encoded.length).trim());
22538
+ let newXmlData = parser.getXMLdata().replace(encoded.trim(), decoded);
22539
+ parser.setXMLdata(newXmlData);
22540
+ parser.setCurrIndex(currrentIndex);
22541
+ }
22521
22542
  while (this.initInnerObjects(parser, parser.getNextTag(), dataView, task)) {
22522
22543
  }
22523
22544
  }
@@ -23282,10 +23303,12 @@ class Task extends TaskBase {
23282
23303
  this.setDescriptor(valueStr);
23283
23304
  break;
23284
23305
  case ConstInterface.MG_ATTR_HAS_LOCATE:
23285
- this.hasLocate = true;
23306
+ if (+valueStr == 1)
23307
+ this.hasLocate = true;
23286
23308
  break;
23287
23309
  case ConstInterface.MG_ATTR_AS_PARENT:
23288
- this.ModeAsParent = true;
23310
+ if (+valueStr == 1)
23311
+ this.ModeAsParent = true;
23289
23312
  break;
23290
23313
  case ConstInterface.MG_ATTR_TASK_UNIQUE_SORT:
23291
23314
  this.UniqueSort = valueStr[0];
@@ -23621,6 +23644,7 @@ class Task extends TaskBase {
23621
23644
  result = yield this.DataviewManager.Execute(dataViewCommand);
23622
23645
  if (!result.Success)
23623
23646
  return null;
23647
+ this.ResumeSubformLayout();
23624
23648
  }
23625
23649
  nonInteractiveTask = yield this.StartSubTasks(moveToFirstControl, nonInteractiveTask, callByDestSubForm);
23626
23650
  this.InStartProcess = false;
@@ -25314,16 +25338,18 @@ class Task extends TaskBase {
25314
25338
  }
25315
25339
  }
25316
25340
  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();
25341
+ return __awaiter(this, void 0, void 0, function* () {
25342
+ let propMainDisplay = this.getProp(PropInterface.PROP_TYPE_MAIN_DISPLAY);
25343
+ let mainDisplayIndex = yield propMainDisplay.getValueInt();
25344
+ mainDisplayIndex = this.GetRealMainDisplayIndexOnCurrentTask(mainDisplayIndex);
25345
+ this._forms.InitFormFromXmlString(mainDisplayIndex);
25346
+ this.EnsureValidForm();
25347
+ });
25322
25348
  }
25323
25349
  PrepareTaskForm() {
25324
25350
  return __awaiter(this, void 0, void 0, function* () {
25325
25351
  yield TaskServiceBase.PreparePropOpenTaskWindow(this);
25326
- return RemoteTaskService.PreparePropMainDisplay(this);
25352
+ return yield RemoteTaskService.PreparePropMainDisplay(this);
25327
25353
  });
25328
25354
  }
25329
25355
  FormIsLegal() {
@@ -25394,7 +25420,12 @@ class Task extends TaskBase {
25394
25420
  let tokensVector = XmlParser.getTokens(RuntimeContextBase.Instance.Parser.getXMLsubstring(endTaskUrlIdx), XMLConstants.XML_ATTR_DELIM);
25395
25421
  let taskCacheURL = tokensVector.get_Item(1);
25396
25422
  let refListStr = tokensVector.get_Item(3);
25397
- let taskContentOriginal = yield Task.CommandsProcessor.GetContent(taskCacheURL, true);
25423
+ let taskContentOriginal = "";
25424
+ if (taskCacheURL.trim() != "") {
25425
+ if (taskCacheURL.startsWith("./"))
25426
+ taskCacheURL = NString.Replace(taskCacheURL, './', './assets/cache/');
25427
+ taskContentOriginal = yield Task.CommandsProcessor.GetContent(taskCacheURL, true);
25428
+ }
25398
25429
  let taskContentFinal = new StringBuilder(xmlData.substr(0, RuntimeContextBase.Instance.Parser.getCurrIndex() - (ConstInterface.MG_TAG_TASKURL.length + 1)), taskContentOriginal.length);
25399
25430
  let reflist = this.getReflist(refListStr, ';', true, -1);
25400
25431
  let refListIdx = 0;
@@ -27684,7 +27715,7 @@ class EventsManager {
27684
27715
  val = Manager.GetCtrlVal(ctrl);
27685
27716
  task.CurrentEditingControl = null;
27686
27717
  if (!task.cancelWasRaised() &&
27687
- (ctrl.Type !== MgControlType.CTRL_TYPE_BROWSER && (!isNullOrUndefined(ctrl._field) && ctrl._field.getType() === StorageAttribute.DATE || val !== null) && typeof val != 'undefined' &&
27718
+ (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
27719
  !(yield ctrl.validateAndSetValue(val, true)))) {
27689
27720
  this.setStopExecution(true);
27690
27721
  return false;
@@ -30357,7 +30388,7 @@ class CommandsTable {
30357
30388
  }
30358
30389
  }
30359
30390
 
30360
- let CurrentClientVersion = '4.900.0-dev491.7';
30391
+ let CurrentClientVersion = '4.900.0';
30361
30392
 
30362
30393
  class ClientManager {
30363
30394
  constructor() {
@@ -30626,15 +30657,20 @@ class ClientManager {
30626
30657
  }
30627
30658
  return pic;
30628
30659
  }
30629
- static GetFormattedValue(taskId, controlName, value) {
30660
+ static GetFormattedValue(taskId, controlName, value, rowId) {
30630
30661
  let pic = null;
30631
30662
  let task = MGDataCollection.Instance.GetTaskByID(taskId);
30632
30663
  let control = null;
30633
30664
  let newValue = value;
30634
- if (controlName !== null)
30665
+ if (controlName !== null && task !== null)
30635
30666
  control = task.getForm().GetCtrl(controlName);
30636
30667
  if (control != null && control.DataType == StorageAttribute.NUMERIC) {
30637
- pic = control.getPIC();
30668
+ if (control.isRepeatable() && control.getProp(PropInterface.PROP_TYPE_FORMAT).isExpression()) {
30669
+ let picval = control.getProp(PropInterface.PROP_TYPE_FORMAT).getPrevValue(+rowId);
30670
+ pic = new PIC(picval, StorageAttribute.NUMERIC, control.getForm().getTask().getCompIdx());
30671
+ }
30672
+ else
30673
+ pic = control.getPIC();
30638
30674
  let dispValue = String(value);
30639
30675
  let newPic = pic.getUnformattedNumericPic();
30640
30676
  let num = DisplayConvertor.Instance.toNum(dispValue, newPic, 0);
@@ -30737,8 +30773,8 @@ class MagicBridge {
30737
30773
  static GetControlPictureMask(taskId, controlName) {
30738
30774
  return ClientManager.GetControlPictureMask(taskId, controlName);
30739
30775
  }
30740
- static GetFormattedValue(taskId, controlName, value) {
30741
- return ClientManager.GetFormattedValue(taskId, controlName, value);
30776
+ static GetFormattedValue(taskId, controlName, value, rowId) {
30777
+ return ClientManager.GetFormattedValue(taskId, controlName, value, rowId);
30742
30778
  }
30743
30779
  static GetRangedValue(taskId, controlName, value) {
30744
30780
  return ClientManager.GetRangedValue(taskId, controlName, value);