@gipisistemas/ng-core 1.1.15 → 1.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/gipisistemas-ng-core.umd.js +600 -38
- package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
- package/bundles/gipisistemas-ng-core.umd.min.js +6 -6
- package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
- package/core/utils/acbr-validator-ie.d.ts +36 -0
- package/core/utils/document.util.d.ts +6 -4
- package/esm2015/core/utils/acbr-validator-ie.js +582 -0
- package/esm2015/core/utils/document.util.js +6 -39
- package/esm5/core/utils/acbr-validator-ie.js +598 -0
- package/esm5/core/utils/document.util.js +6 -39
- package/fesm2015/gipisistemas-ng-core.js +587 -39
- package/fesm2015/gipisistemas-ng-core.js.map +1 -1
- package/fesm5/gipisistemas-ng-core.js +601 -39
- package/fesm5/gipisistemas-ng-core.js.map +1 -1
- package/gipisistemas-ng-core.metadata.json +1 -1
- package/package.json +1 -1
@@ -1,4 +1,5 @@
|
|
1
1
|
import * as BrasilianUtil from '@brazilian-utils/brazilian-utils';
|
2
|
+
import { ACBrValidadorIE } from './acbr-validator-ie';
|
2
3
|
import { StringUtil } from './string.util';
|
3
4
|
/** @dynamic */
|
4
5
|
export class DocumentUtil {
|
@@ -102,20 +103,12 @@ export class DocumentUtil {
|
|
102
103
|
}
|
103
104
|
static isValidStateRegistration(acronymState, stateRegistration) {
|
104
105
|
if (StringUtil.isEmpty(acronymState) || StringUtil.isEmpty(stateRegistration)) {
|
105
|
-
return false;
|
106
|
-
}
|
107
|
-
else if (stateRegistration.toUpperCase() === 'ISENTO') {
|
108
|
-
return true;
|
106
|
+
return { ie: stateRegistration, isValid: false, error: 'É nescessário informar a UF e a inscrição estadual para a validação' };
|
109
107
|
}
|
110
|
-
|
111
|
-
|
112
|
-
const digits = BrasilianUtil.onlyNumbers(stateRegistration);
|
113
|
-
return this.calcDigit(digits);
|
114
|
-
}
|
115
|
-
else {
|
116
|
-
return BrasilianUtil.isValidIE(acronymState, stateRegistration);
|
117
|
-
}
|
108
|
+
if (stateRegistration.toUpperCase() === 'ISENTO') {
|
109
|
+
return { ie: stateRegistration, isValid: true, error: '' };
|
118
110
|
}
|
111
|
+
return (new ACBrValidadorIE().isValid(stateRegistration, acronymState, './-'));
|
119
112
|
}
|
120
113
|
static isValidCep(cep) {
|
121
114
|
if (StringUtil.isEmpty(cep)) {
|
@@ -123,31 +116,5 @@ export class DocumentUtil {
|
|
123
116
|
}
|
124
117
|
return BrasilianUtil.isValidCEP(cep);
|
125
118
|
}
|
126
|
-
static calcDigit(ie) {
|
127
|
-
const length = ie.length;
|
128
|
-
const position = length - 1;
|
129
|
-
let weight = length;
|
130
|
-
const body = ie.substring(0, position);
|
131
|
-
// const bodyInt: number = parseInt(body, 10);
|
132
|
-
let sum = 0;
|
133
|
-
body.split('').forEach((digit) => {
|
134
|
-
sum += parseInt(digit, 10) * weight;
|
135
|
-
weight--;
|
136
|
-
});
|
137
|
-
const rest = sum % 11;
|
138
|
-
let dig = 11 - rest;
|
139
|
-
let fatorG = 0;
|
140
|
-
if ((Number(ie) >= 101031050) && (Number(ie) <= 101199979)) {
|
141
|
-
fatorG = 1;
|
142
|
-
}
|
143
|
-
if (dig === 10) {
|
144
|
-
dig = fatorG;
|
145
|
-
}
|
146
|
-
else if (dig === 11) {
|
147
|
-
dig = 0;
|
148
|
-
}
|
149
|
-
const digIe = parseInt(ie.charAt(position), 10);
|
150
|
-
return dig === digIe;
|
151
|
-
}
|
152
119
|
}
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQudXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbImNvcmUvdXRpbHMvZG9jdW1lbnQudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsZUFBZTtBQUNmLE1BQU0sT0FBTyxZQUFZO0lBRWQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFhO1FBQ25DLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQ2hDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELEdBQUcsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxFQUFFO2VBQ2QsR0FBRyxLQUFLLGFBQWE7ZUFDckIsR0FBRyxLQUFLLGFBQWE7ZUFDckIsR0FBRyxLQUFLLGFBQWE7ZUFDckIsR0FBRyxLQUFLLGFBQWE7ZUFDckIsR0FBRyxLQUFLLGFBQWE7ZUFDckIsR0FBRyxLQUFLLGFBQWE7ZUFDckIsR0FBRyxLQUFLLGFBQWE7ZUFDckIsR0FBRyxLQUFLLGFBQWE7ZUFDckIsR0FBRyxLQUFLLGFBQWE7ZUFDckIsR0FBRyxLQUFLLGFBQWEsRUFBRTtZQUMxQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksR0FBRyxHQUFXLENBQUMsQ0FBQztRQUNwQixLQUFLLElBQUks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LENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxHQUFXLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxHQUFHLEdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUU1QixJQUFJLE1BQU0sR0FBVyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsRUFBRTtZQUN4RCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7WUFDWixHQUFHLEdBQUcsTUFBTSxDQUFDO1NBQ2hCO2FBQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQ25CLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDWDtRQUVELE1BQU0sS0FBSyxHQUFXLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sR0FBRyxLQUFLLEtBQUssQ0FBQztJQUN6QixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBCcmFzaWxpYW5VdGlsIGZyb20gJ0BicmF6aWxpYW4tdXRpbHMvYnJhemlsaWFuLXV0aWxzJztcbmltcG9ydCB7IFNUQVRFU19EQVRBIH0gZnJvbSAnQGJyYXppbGlhbi11dGlscy9icmF6aWxpYW4tdXRpbHMvZGlzdC9jb21tb24vc3RhdGVzJztcbmltcG9ydCB7IFN0cmluZ1V0aWwgfSBmcm9tICcuL3N0cmluZy51dGlsJztcblxuZXhwb3J0IHR5cGUgQWNyb255bVN0YXRlID0ga2V5b2YgdHlwZW9mIFNUQVRFU19EQVRBO1xuXG4vKiogQGR5bmFtaWMgKi9cbmV4cG9ydCBjbGFzcyBEb2N1bWVudFV0aWwge1xuXG4gICAgcHVibGljIHN0YXRpYyBjbGVhckZvcm1hdCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKFN0cmluZ1V0aWwuaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWRDcGYoY3BmOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFN0cmluZ1V0aWwuaXNFbXB0eShjcGYpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjcGYgPSBTdHJpbmdVdGlsLnJlbW92ZUFjY2VudHMoY3BmKTtcblxuICAgICAgICBpZiAoY3BmLmxlbmd0aCAhPT0gMTFcbiAgICAgICAgICAgIHx8IGNwZiA9PT0gJzAwMDAwMDAwMDAwJ1xuICAgICAgICAgICAgfHwgY3BmID09PSAnMTExMTExMTExMTEnXG4gICAgICAgICAgICB8fCBjcGYgPT09ICcyMjIyMjIyMjIyMidcbiAgICAgICAgICAgIHx8IGNwZiA9PT0gJzMzMzMzMzMzMzMzJ1xuICAgICAgICAgICAgfHwgY3BmID09PSAnNDQ0NDQ0NDQ0NDQnXG4gICAgICAgICAgICB8fCBjcGYgPT09ICc1NTU1NTU1NTU1NSdcbiAgICAgICAgICAgIHx8IGNwZiA9PT0gJzY2NjY2NjY2NjY2J1xuICAgICAgICAgICAgfHwgY3BmID09PSAnNzc3Nzc3Nzc3NzcnXG4gICAgICAgICAgICB8fCBjcGYgPT09ICc4ODg4ODg4ODg4OCdcbiAgICAgICAgICAgIHx8IGNwZiA9PT0gJzk5OTk5OTk5OTk5Jykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGFkZDogbnVtYmVyID0gMDtcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IDk7IGkrKykge1xuICAgICAgICAgICAgYWRkICs9ICtjcGYuY2hhckF0KGkpICogKDEwIC0gaSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJldjogbnVtYmVyID0gMTEgLSAoYWRkICUgMTEpO1xuXG4gICAgICAgIGlmIChyZXYgPT09IDEwIHx8IHJldiA9PT0gMTEpIHtcbiAgICAgICAgICAgIHJldiA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmV2ICE9PSArY3BmLmNoYXJBdCg5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgYWRkID0gMDtcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IDEwOyBpKyspIHtcbiAgICAgICAgICAgIGFkZCArPSArY3BmLmNoYXJBdChpKSAqICgxMSAtIGkpO1xuICAgICAgICB9XG4gICAgICAgIHJldiA9IDExIC0gKGFkZCAlIDExKTtcblxuICAgICAgICBpZiAocmV2ID09PSAxMCB8fCByZXYgPT09IDExKSB7XG4gICAgICAgICAgICByZXYgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJldiAhPT0gK2NwZi5jaGFyQXQoMTApKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWRDbnBqKGNucGo6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoU3RyaW5nVXRpbC5pc0VtcHR5KGNucGopKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjbnBqID0gU3RyaW5nVXRpbC5yZW1vdmVBY2NlbnRzKGNucGopO1xuXG4gICAgICAgIGlmIChTdHJpbmdVdGlsLmlzRW1wdHkoY25wailcbiAgICAgICAgICAgIHx8IGNucGoubGVuZ3RoICE9PSAxNFxuICAgICAgICAgICAgfHwgY25waiA9PT0gJzAwMDAwMDAwMDAwMDAwJ1xuICAgICAgICAgICAgfHwgY25waiA9PT0gJzExMTExMTExMTExMTExJ1xuICAgICAgICAgICAgfHwgY25waiA9PT0gJzIyMjIyMjIyMjIyMjIyJ1xuICAgICAgICAgICAgfHwgY25waiA9PT0gJzMzMzMzMzMzMzMzMzMzJ1xuICAgICAgICAgICAgfHwgY25waiA9PT0gJzQ0NDQ0NDQ0NDQ0NDQ0J1xuICAgICAgICAgICAgfHwgY25waiA9PT0gJzU1NTU1NTU1NTU1NTU1J1xuICAgICAgICAgICAgfHwgY25waiA9PT0gJzY2NjY2NjY2NjY2NjY2J1xuICAgICAgICAgICAgfHwgY25waiA9PT0gJzc3Nzc3Nzc3Nzc3Nzc3J1xuICAgICAgICAgICAgfHwgY25waiA9PT0gJzg4ODg4ODg4ODg4ODg4J1xuICAgICAgICAgICAgfHwgY25waiA9PT0gJzk5OTk5OTk5OTk5OTk5Jykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxlbmd0aDogbnVtYmVyID0gY25wai5sZW5ndGggLSAyO1xuICAgICAgICBsZXQgbnVtYmVycyA9IGNucGouc3Vic3RyaW5nKDAsIGxlbmd0aCk7XG4gICAgICAgIGNvbnN0IGRpZ2l0cyA9IGNucGouc3Vic3RyaW5nKGxlbmd0aCk7XG4gICAgICAgIGxldCBzdW06IG51bWJlciA9IDA7XG4gICAgICAgIGxldCBwb3M6IG51bWJlciA9IGxlbmd0aCAtIDc7XG5cbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gbGVuZ3RoOyBpID49IDE7IGktLSkge1xuICAgICAgICAgICAgc3VtICs9ICtudW1iZXJzLmNoYXJBdChsZW5ndGggLSBpKSAqIHBvcy0tO1xuICAgICAgICAgICAgaWYgKHBvcyA8IDIpIHtcbiAgICAgICAgICAgICAgICBwb3MgPSA5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxldCByZXN1bHRhZG86IG51bWJlciA9IHN1bSAlIDExIDwgMiA/IDAgOiAxMSAtIHN1bSAlIDExO1xuICAgICAgICBpZiAocmVzdWx0YWRvICE9PSArZGlnaXRzLmNoYXJBdCgwKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGVuZ3RoID0gbGVuZ3RoICsgMTtcbiAgICAgICAgbnVtYmVycyA9IGNucGouc3Vic3RyaW5nKDAsIGxlbmd0aCk7XG4gICAgICAgIHN1bSA9IDA7XG4gICAgICAgIHBvcyA9IGxlbmd0aCAtIDc7XG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IGxlbmd0aDsgaSA+PSAxOyBpLS0pIHtcbiAgICAgICAgICAgIHN1bSArPSArbnVtYmVycy5jaGFyQXQobGVuZ3RoIC0gaSkgKiBwb3MtLTtcbiAgICAgICAgICAgIGlmIChwb3MgPCAyKSB7XG4gICAgICAgICAgICAgICAgcG9zID0gOTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXN1bHRhZG8gPSBzdW0gJSAxMSA8IDIgPyAwIDogMTEgLSBzdW0gJSAxMTtcblxuICAgICAgICBpZiAocmVzdWx0YWRvICE9PSArZGlnaXRzLmNoYXJBdCgxKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc1ZhbGlkU3RhdGVSZWdpc3RyYXRpb24oYWNyb255bVN0YXRlOiBBY3JvbnltU3RhdGUsIHN0YXRlUmVnaXN0cmF0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFN0cmluZ1V0aWwuaXNFbXB0eShhY3JvbnltU3RhdGUpIHx8IFN0cmluZ1V0aWwuaXNFbXB0eShzdGF0ZVJlZ2lzdHJhdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0ZVJlZ2lzdHJhdGlvbi50b1VwcGVyQ2FzZSgpID09PSAnSVNFTlRPJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoYWNyb255bVN0YXRlID09PSAnR08nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlnaXRzOiBzdHJpbmcgPSBCcmFzaWxpYW5VdGlsLm9ubHlOdW1iZXJzKHN0YXRlUmVnaXN0cmF0aW9uKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxjRGlnaXQoZGlnaXRzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJyYXNpbGlhblV0aWwuaXNWYWxpZElFKGFjcm9ueW1TdGF0ZSwgc3RhdGVSZWdpc3RyYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc1ZhbGlkQ2VwKGNlcDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChTdHJpbmdVdGlsLmlzRW1wdHkoY2VwKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEJyYXNpbGlhblV0aWwuaXNWYWxpZENFUChjZXApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNhbGNEaWdpdChpZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGxlbmd0aDogbnVtYmVyID0gaWUubGVuZ3RoO1xuICAgICAgICBjb25zdCBwb3NpdGlvbjogbnVtYmVyID0gbGVuZ3RoIC0gMTtcbiAgICAgICAgbGV0IHdlaWdodDogbnVtYmVyID0gbGVuZ3RoO1xuICAgICAgICBjb25zdCBib2R5OiBzdHJpbmcgPSBpZS5zdWJzdHJpbmcoMCwgcG9zaXRpb24pO1xuICAgICAgICAvLyBjb25zdCBib2R5SW50OiBudW1iZXIgPSBwYXJzZUludChib2R5LCAxMCk7XG4gICAgICAgIGxldCBzdW06IG51bWJlciA9IDA7XG5cbiAgICAgICAgYm9keS5zcGxpdCgnJykuZm9yRWFjaCgoZGlnaXQpID0+IHtcbiAgICAgICAgICAgIHN1bSArPSBwYXJzZUludChkaWdpdCwgMTApICogd2VpZ2h0O1xuICAgICAgICAgICAgd2VpZ2h0LS07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHJlc3Q6IG51bWJlciA9IHN1bSAlIDExO1xuICAgICAgICBsZXQgZGlnOiBudW1iZXIgPSAxMSAtIHJlc3Q7XG5cbiAgICAgICAgbGV0IGZhdG9yRzogbnVtYmVyID0gMDtcbiAgICAgICAgaWYgKChOdW1iZXIoaWUpID49IDEwMTAzMTA1MCkgJiYgKE51bWJlcihpZSkgPD0gMTAxMTk5OTc5KSkge1xuICAgICAgICAgICAgZmF0b3JHID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkaWcgPT09IDEwKSB7XG4gICAgICAgICAgICBkaWcgPSBmYXRvckc7XG4gICAgICAgIH0gZWxzZSBpZiAoZGlnID09PSAxMSkge1xuICAgICAgICAgICAgZGlnID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpZ0llOiBudW1iZXIgPSBwYXJzZUludChpZS5jaGFyQXQocG9zaXRpb24pLCAxMCk7XG4gICAgICAgIHJldHVybiBkaWcgPT09IGRpZ0llO1xuICAgIH1cblxufVxuIl19
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQudXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbImNvcmUvdXRpbHMvZG9jdW1lbnQudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBWSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLGVBQWU7QUFDZixNQUFNLE9BQU8sWUFBWTtJQUVkLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNuQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVztRQUNoQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxHQUFHLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRTtlQUNkLEdBQUcsS0FBSyxhQUFhO2VBQ3JCLEdBQUcsS0FBSyxhQUFhO2VBQ3JCLEdBQUcsS0FBSyxhQUFhO2VBQ3JCLEdBQUcsS0FBSyxhQUFhO2VBQ3JCLEdBQUcsS0FBSyxhQUFhO2VBQ3JCLEdBQUcsS0FBSyxhQUFhO2VBQ3JCLEdBQUcsS0FBSyxhQUFhO2VBQ3JCLEdBQUcsS0FBSyxhQUFhO2VBQ3JCLEdBQUcsS0FBSyxhQUFhO2VBQ3JCLEdBQUcsS0FBSyxhQUFhLEVBQUU7WUFDMUIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFF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VUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQzNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUscUVBQXFFLEVBQUUsQ0FBQztTQUNsSTtRQUNELElBQUksaUJBQWlCLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFO1lBQzlDLE9BQU8sRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDOUQ7UUFFRCxPQUFPLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVztRQUNoQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQnJhc2lsaWFuVXRpbCBmcm9tICdAYnJhemlsaWFuLXV0aWxzL2JyYXppbGlhbi11dGlscyc7XG5pbXBvcnQgeyBBQ0JSX1VGcywgQUNCclZhbGlkYWRvcklFIH0gZnJvbSAnLi9hY2JyLXZhbGlkYXRvci1pZSc7XG5pbXBvcnQgeyBTdHJpbmdVdGlsIH0gZnJvbSAnLi9zdHJpbmcudXRpbCc7XG5cbi8qKiBAZHluYW1pYyAqL1xuZXhwb3J0IGNsYXNzIERvY3VtZW50VXRpbCB7XG5cbiAgICBwdWJsaWMgc3RhdGljIGNsZWFyRm9ybWF0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoU3RyaW5nVXRpbC5pc0VtcHR5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZENwZihjcGY6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoU3RyaW5nVXRpbC5pc0VtcHR5KGNwZikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNwZiA9IFN0cmluZ1V0aWwucmVtb3ZlQWNjZW50cyhjcGYpO1xuXG4gICAgICAgIGlmIChjcGYubGVuZ3RoICE9PSAxMVxuICAgICAgICAgICAgfHwgY3BmID09PSAnMDAwMDAwMDAwMDAnXG4gICAgICAgICAgICB8fCBjcGYgPT09ICcxMTExMTExMTExMSdcbiAgICAgICAgICAgIHx8IGNwZiA9PT0gJzIyMjIyMjIyMjIyJ1xuICAgICAgICAgICAgfHwgY3BmID09PSAnMzMzMzMzMzMzMzMnXG4gICAgICAgICAgICB8fCBjcGYgPT09ICc0NDQ0NDQ0NDQ0NCdcbiAgICAgICAgICAgIHx8IGNwZiA9PT0gJzU1NTU1NTU1NTU1J1xuICAgICAgICAgICAgfHwgY3BmID09PSAnNjY2NjY2NjY2NjYnXG4gICAgICAgICAgICB8fCBjcGYgPT09ICc3Nzc3Nzc3Nzc3NydcbiAgICAgICAgICAgIHx8IGNwZiA9PT0gJzg4ODg4ODg4ODg4J1xuICAgICAgICAgICAgfHwgY3BmID09PSAnOTk5OTk5OTk5OTknKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYWRkOiBudW1iZXIgPSAwO1xuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgOTsgaSsrKSB7XG4gICAgICAgICAgICBhZGQgKz0gK2NwZi5jaGFyQXQoaSkgKiAoMTAgLSBpKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmV2OiBudW1iZXIgPSAxMSAtIChhZGQgJSAxMSk7XG5cbiAgICAgICAgaWYgKHJldiA9PT0gMTAgfHwgcmV2ID09PSAxMSkge1xuICAgICAgICAgICAgcmV2ID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXYgIT09ICtjcGYuY2hhckF0KDkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBhZGQgPSAwO1xuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgMTA7IGkrKykge1xuICAgICAgICAgICAgYWRkICs9ICtjcGYuY2hhckF0KGkpICogKDExIC0gaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV2ID0gMTEgLSAoYWRkICUgMTEpO1xuXG4gICAgICAgIGlmIChyZXYgPT09IDEwIHx8IHJldiA9PT0gMTEpIHtcbiAgICAgICAgICAgIHJldiA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmV2ICE9PSArY3BmLmNoYXJBdCgxMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZENucGooY25wajogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChTdHJpbmdVdGlsLmlzRW1wdHkoY25waikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNucGogPSBTdHJpbmdVdGlsLnJlbW92ZUFjY2VudHMoY25waik7XG5cbiAgICAgICAgaWYgKFN0cmluZ1V0aWwuaXNFbXB0eShjbnBqKVxuICAgICAgICAgICAgfHwgY25wai5sZW5ndGggIT09IDE0XG4gICAgICAgICAgICB8fCBjbnBqID09PSAnMDAwMDAwMDAwMDAwMDAnXG4gICAgICAgICAgICB8fCBjbnBqID09PSAnMTExMTExMTExMTExMTEnXG4gICAgICAgICAgICB8fCBjbnBqID09PSAnMjIyMjIyMjIyMjIyMjInXG4gICAgICAgICAgICB8fCBjbnBqID09PSAnMzMzMzMzMzMzMzMzMzMnXG4gICAgICAgICAgICB8fCBjbnBqID09PSAnNDQ0NDQ0NDQ0NDQ0NDQnXG4gICAgICAgICAgICB8fCBjbnBqID09PSAnNTU1NTU1NTU1NTU1NTUnXG4gICAgICAgICAgICB8fCBjbnBqID09PSAnNjY2NjY2NjY2NjY2NjYnXG4gICAgICAgICAgICB8fCBjbnBqID09PSAnNzc3Nzc3Nzc3Nzc3NzcnXG4gICAgICAgICAgICB8fCBjbnBqID09PSAnODg4ODg4ODg4ODg4ODgnXG4gICAgICAgICAgICB8fCBjbnBqID09PSAnOTk5OTk5OTk5OTk5OTknKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGVuZ3RoOiBudW1iZXIgPSBjbnBqLmxlbmd0aCAtIDI7XG4gICAgICAgIGxldCBudW1iZXJzID0gY25wai5zdWJzdHJpbmcoMCwgbGVuZ3RoKTtcbiAgICAgICAgY29uc3QgZGlnaXRzID0gY25wai5zdWJzdHJpbmcobGVuZ3RoKTtcbiAgICAgICAgbGV0IHN1bTogbnVtYmVyID0gMDtcbiAgICAgICAgbGV0IHBvczogbnVtYmVyID0gbGVuZ3RoIC0gNztcblxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSBsZW5ndGg7IGkgPj0gMTsgaS0tKSB7XG4gICAgICAgICAgICBzdW0gKz0gK251bWJlcnMuY2hhckF0KGxlbmd0aCAtIGkpICogcG9zLS07XG4gICAgICAgICAgICBpZiAocG9zIDwgMikge1xuICAgICAgICAgICAgICAgIHBvcyA9IDk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc3VsdGFkbzogbnVtYmVyID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gc3VtICUgMTE7XG4gICAgICAgIGlmIChyZXN1bHRhZG8gIT09ICtkaWdpdHMuY2hhckF0KDApKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZW5ndGggPSBsZW5ndGggKyAxO1xuICAgICAgICBudW1iZXJzID0gY25wai5zdWJzdHJpbmcoMCwgbGVuZ3RoKTtcbiAgICAgICAgc3VtID0gMDtcbiAgICAgICAgcG9zID0gbGVuZ3RoIC0gNztcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gbGVuZ3RoOyBpID49IDE7IGktLSkge1xuICAgICAgICAgICAgc3VtICs9ICtudW1iZXJzLmNoYXJBdChsZW5ndGggLSBpKSAqIHBvcy0tO1xuICAgICAgICAgICAgaWYgKHBvcyA8IDIpIHtcbiAgICAgICAgICAgICAgICBwb3MgPSA5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc3VsdGFkbyA9IHN1bSAlIDExIDwgMiA/IDAgOiAxMSAtIHN1bSAlIDExO1xuXG4gICAgICAgIGlmIChyZXN1bHRhZG8gIT09ICtkaWdpdHMuY2hhckF0KDEpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWRTdGF0ZVJlZ2lzdHJhdGlvbihhY3JvbnltU3RhdGU6IEFDQlJfVUZzLCBzdGF0ZVJlZ2lzdHJhdGlvbjogc3RyaW5nKTogeyBpZTogc3RyaW5nLCBpc1ZhbGlkOiBib29sZWFuOyBlcnJvcjogc3RyaW5nOyB9IHtcbiAgICAgICAgaWYgKFN0cmluZ1V0aWwuaXNFbXB0eShhY3JvbnltU3RhdGUpIHx8IFN0cmluZ1V0aWwuaXNFbXB0eShzdGF0ZVJlZ2lzdHJhdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGllOiBzdGF0ZVJlZ2lzdHJhdGlvbiwgaXNWYWxpZDogZmFsc2UsIGVycm9yOiAnw4kgbmVzY2Vzc8OhcmlvIGluZm9ybWFyIGEgVUYgZSBhIGluc2NyacOnw6NvIGVzdGFkdWFsIHBhcmEgYSB2YWxpZGHDp8OjbycgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGVSZWdpc3RyYXRpb24udG9VcHBlckNhc2UoKSA9PT0gJ0lTRU5UTycpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGllOiBzdGF0ZVJlZ2lzdHJhdGlvbiwgaXNWYWxpZDogdHJ1ZSwgZXJyb3I6ICcnIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKG5ldyBBQ0JyVmFsaWRhZG9ySUUoKS5pc1ZhbGlkKHN0YXRlUmVnaXN0cmF0aW9uLCBhY3JvbnltU3RhdGUsICcuLy0nKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc1ZhbGlkQ2VwKGNlcDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChTdHJpbmdVdGlsLmlzRW1wdHkoY2VwKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEJyYXNpbGlhblV0aWwuaXNWYWxpZENFUChjZXApO1xuICAgIH1cblxufVxuIl19
|