@acorex/connectivity 20.2.4-next.3 → 20.2.4-next.5

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-connectivity-mock-employee-skills.queries-DLQzhHUF.mjs","sources":["../tmp-esm2022/mock/lib/organization-management/reports/employee-skills.queries.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { EMPLOYEE_SKILLS_MOCK } from '../employee-skill/employee-skill.mock';\nimport * as i0 from \"@angular/core\";\nexport class AXQEmployeeSkillsListQuery {\n async fetch(input) {\n const { skillId, level, minYears, startDate, endDate, skip = 0, take = 10 } = input ?? {};\n const sDate = startDate ? new Date(startDate) : undefined;\n const eDate = endDate ? new Date(endDate) : undefined;\n let data = EMPLOYEE_SKILLS_MOCK.map((r) => ({\n id: r.id,\n employeeId: r.employeeId,\n employeeName: r.employee?.contact?.displayName,\n skillId: r.skillId,\n skillTitle: r.skill?.title ?? r.skillId,\n level: r.level,\n yearsOfExperience: r.yearsOfExperience ?? 0,\n lastUsedDate: r.lastUsedDate,\n }));\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (level)\n data = data.filter((x) => x.level === level);\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n if (sDate)\n data = data.filter((x) => x.lastUsedDate && new Date(x.lastUsedDate) >= sDate);\n if (eDate)\n data = data.filter((x) => x.lastUsedDate && new Date(x.lastUsedDate) <= eDate);\n const total = data.length;\n const items = data.slice(skip, skip + take);\n return { items, total };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsListQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsListQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsListQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport class AXQEmployeeSkillsStatsQuery {\n async fetch(input) {\n const { skillId, level, minYears } = input ?? {};\n let data = EMPLOYEE_SKILLS_MOCK;\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (level)\n data = data.filter((x) => x.level === level);\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n const grouped = data.reduce((acc, cur) => {\n const key = cur.skill?.title ?? cur.skillId;\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n return grouped;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsStatsQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsStatsQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsStatsQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport class AXQEmployeeSkillsLevelsQuery {\n async fetch(input) {\n const { skillId, minYears } = input ?? {};\n let data = EMPLOYEE_SKILLS_MOCK;\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n const levels = ['Beginner', 'Intermediate', 'Advanced', 'Expert'];\n const grouped = data.reduce((acc, cur) => {\n const key = cur.level && levels.includes(cur.level) ? cur.level : 'Unknown';\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n // Ensure all known levels exist (0 if missing)\n levels.forEach((lvl) => (grouped[lvl] = grouped[lvl] ?? 0));\n return grouped;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelsQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelsQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelsQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport class AXQEmployeeSkillsTrendQuery {\n async fetch(input) {\n const { startDate, endDate, skillId, level } = input ?? {};\n const sDate = startDate ? new Date(startDate) : undefined;\n const eDate = endDate ? new Date(endDate) : undefined;\n let data = EMPLOYEE_SKILLS_MOCK\n .filter((x) => (skillId ? x.skillId === skillId : true))\n .filter((x) => (level ? x.level === level : true))\n .filter((x) => (sDate ? (x.lastUsedDate && new Date(x.lastUsedDate) >= sDate) : true))\n .filter((x) => (eDate ? (x.lastUsedDate && new Date(x.lastUsedDate) <= eDate) : true));\n // Group by YYYY-MM from lastUsedDate and count occurrences\n const counts = data.reduce((acc, cur) => {\n const d = cur.lastUsedDate ? new Date(cur.lastUsedDate) : undefined;\n const key = d ? `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}` : 'Unknown';\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n // Convert to sorted array, ignoring 'Unknown'\n return Object.entries(counts)\n .filter(([k]) => k !== 'Unknown')\n .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))\n .map(([month, value]) => ({ month, value }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsTrendQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsTrendQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsTrendQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//#region ---- Percentage Queries ----\nexport class AXQEmployeeSkillsSkillPercentagesQuery {\n async fetch(input) {\n const { skillId, level, minYears } = input ?? {};\n let data = EMPLOYEE_SKILLS_MOCK;\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (level)\n data = data.filter((x) => x.level === level);\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n const counts = data.reduce((acc, cur) => {\n const key = cur.skill?.title ?? cur.skillId;\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n const total = Object.values(counts).reduce((a, b) => a + b, 0) || 1;\n const percentages = {};\n Object.entries(counts).forEach(([k, v]) => {\n percentages[k] = Math.round((v / total) * 100);\n });\n return percentages;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsSkillPercentagesQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsSkillPercentagesQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsSkillPercentagesQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport class AXQEmployeeSkillsLevelPercentagesQuery {\n async fetch(input) {\n const { skillId, minYears } = input ?? {};\n let data = EMPLOYEE_SKILLS_MOCK;\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n const levels = ['Beginner', 'Intermediate', 'Advanced', 'Expert'];\n const counts = data.reduce((acc, cur) => {\n const key = cur.level && levels.includes(cur.level) ? cur.level : 'Unknown';\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n // Ensure fixed level keys exist\n levels.forEach((lvl) => (counts[lvl] = counts[lvl] ?? 0));\n const total = levels.reduce((sum, lvl) => sum + (counts[lvl] ?? 0), 0) || 1;\n const percentages = {};\n levels.forEach((lvl) => {\n percentages[lvl] = Math.round(((counts[lvl] ?? 0) / total) * 100);\n });\n return percentages;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelPercentagesQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelPercentagesQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelPercentagesQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtc2tpbGxzLnF1ZXJpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nvbm5lY3Rpdml0eS9tb2NrL3NyYy9saWIvb3JnYW5pemF0aW9uLW1hbmFnZW1lbnQvcmVwb3J0cy9lbXBsb3llZS1za2lsbHMucXVlcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQWlCN0UsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQWdCO1FBQ3hCLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFTLENBQUM7UUFFakcsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzFELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0RCxJQUFJLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1IsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1lBQ3hCLFlBQVksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxXQUFXO1lBQzlDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztZQUNsQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLE9BQU87WUFDdkMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1lBQ2QsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixJQUFJLENBQUM7WUFDM0MsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZO1NBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxPQUFPO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxLQUFLO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLElBQUksSUFBSTtZQUFFLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNoRyxJQUFJLEtBQUs7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7UUFDMUYsSUFBSSxLQUFLO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBRTFGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0ExQlEsMEJBQTBCO2tIQUExQiwwQkFBMEIsY0FGdkIsTUFBTTs7MkZBRVQsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7QUF1Q0QsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQWlCO1FBQ3pCLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFTLENBQUM7UUFDeEQsSUFBSSxJQUFJLEdBQUcsb0JBQW9CLENBQUM7UUFFaEMsSUFBSSxPQUFPO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxLQUFLO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLElBQUksSUFBSTtZQUFFLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVoRyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBMkIsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM3RCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQzVDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0IsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFUCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDOzhHQWhCUSwyQkFBMkI7a0hBQTNCLDJCQUEyQixjQUZ4QixNQUFNOzsyRkFFVCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOztBQTRCRCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBa0I7UUFDMUIsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLElBQUksRUFBUyxDQUFDO1FBQ2pELElBQUksSUFBSSxHQUFHLG9CQUFvQixDQUFDO1FBRWhDLElBQUksT0FBTztZQUFFLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQzlELElBQUksUUFBUSxJQUFJLElBQUk7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFaEcsTUFBTSxNQUFNLEdBQUcsQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBMkIsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM3RCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDNUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvQixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLCtDQUErQztRQUMvQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDOzhHQWpCUSw0QkFBNEI7a0hBQTVCLDRCQUE0QixjQUZ6QixNQUFNOzsyRkFFVCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOztBQStCRCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBaUI7UUFDekIsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFTLENBQUM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzFELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUV0RCxJQUFJLElBQUksR0FBRyxvQkFBb0I7YUFDMUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNqRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyRixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTNGLDJEQUEyRDtRQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBMkIsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM1RCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDOUYsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvQixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUE0QixDQUFDLENBQUM7UUFFakMsOENBQThDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7YUFDeEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQzthQUNoQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBekJRLDJCQUEyQjtrSEFBM0IsMkJBQTJCLGNBRnhCLE1BQU07OzJGQUVULDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7O0FBNkJELDBDQUEwQztBQUsxQyxNQUFNLE9BQU8sc0NBQXNDO0lBQy9DLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBaUI7UUFDekIsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxJQUFLLEVBQVUsQ0FBQztRQUMxRCxJQUFJLElBQUksR0FBRyxvQkFBb0IsQ0FBQztRQUVoQyxJQUFJLE9BQU87WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLEtBQUs7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztRQUN4RCxJQUFJLFFBQVEsSUFBSSxJQUFJO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRWhHLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUEyQixFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFDNUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvQixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUE0QixDQUFDLENBQUM7UUFFakMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxNQUFNLFdBQVcsR0FBMkIsRUFBRSxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0QyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7OEdBckJRLHNDQUFzQztrSEFBdEMsc0NBQXNDLGNBRm5DLE1BQU07OzJGQUVULHNDQUFzQztrQkFIbEQsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7O0FBNEJELE1BQU0sT0FBTyxzQ0FBc0M7SUFDL0MsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFrQjtRQUMxQixNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssSUFBSyxFQUFVLENBQUM7UUFDbkQsSUFBSSxJQUFJLEdBQUcsb0JBQW9CLENBQUM7UUFFaEMsSUFBSSxPQUFPO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxRQUFRLElBQUksSUFBSTtZQUFFLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVoRyxNQUFNLE1BQU0sR0FBRyxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUEyQixFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM1RSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLEVBQTRCLENBQUMsQ0FBQztRQUVqQyxnQ0FBZ0M7UUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUUsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7OEdBeEJRLHNDQUFzQztrSEFBdEMsc0NBQXNDLGNBRm5DLE1BQU07OzJGQUVULHNDQUFzQztrQkFIbEQsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEVNUExPWUVFX1NLSUxMU19NT0NLIH0gZnJvbSAnLi4vZW1wbG95ZWUtc2tpbGwvZW1wbG95ZWUtc2tpbGwubW9jayc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgUXVlcmllcyAgIC0tLS1cblxudHlwZSBMaXN0SW5wdXQgPSB7XG4gICAgc2tpbGxJZD86IHN0cmluZztcbiAgICBsZXZlbD86IHN0cmluZztcbiAgICBtaW5ZZWFycz86IG51bWJlcjtcbiAgICBzdGFydERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICAgIGVuZERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICAgIHNraXA/OiBudW1iZXI7XG4gICAgdGFrZT86IG51bWJlcjtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQVhRRW1wbG95ZWVTa2lsbHNMaXN0UXVlcnkgaW1wbGVtZW50cyBBWFBRdWVyeTxMaXN0SW5wdXQsIHsgaXRlbXM6IGFueVtdOyB0b3RhbDogbnVtYmVyIH0+IHtcbiAgICBhc3luYyBmZXRjaChpbnB1dDogTGlzdElucHV0KTogUHJvbWlzZTx7IGl0ZW1zOiBhbnlbXTsgdG90YWw6IG51bWJlciB9PiB7XG4gICAgICAgIGNvbnN0IHsgc2tpbGxJZCwgbGV2ZWwsIG1pblllYXJzLCBzdGFydERhdGUsIGVuZERhdGUsIHNraXAgPSAwLCB0YWtlID0gMTAgfSA9IGlucHV0ID8/IHt9IGFzIGFueTtcblxuICAgICAgICBjb25zdCBzRGF0ZSA9IHN0YXJ0RGF0ZSA/IG5ldyBEYXRlKHN0YXJ0RGF0ZSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGVEYXRlID0gZW5kRGF0ZSA/IG5ldyBEYXRlKGVuZERhdGUpIDogdW5kZWZpbmVkO1xuICAgICAgICBsZXQgZGF0YSA9IEVNUExPWUVFX1NLSUxMU19NT0NLLm1hcCgocikgPT4gKHtcbiAgICAgICAgICAgIGlkOiByLmlkLFxuICAgICAgICAgICAgZW1wbG95ZWVJZDogci5lbXBsb3llZUlkLFxuICAgICAgICAgICAgZW1wbG95ZWVOYW1lOiByLmVtcGxveWVlPy5jb250YWN0Py5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIHNraWxsSWQ6IHIuc2tpbGxJZCxcbiAgICAgICAgICAgIHNraWxsVGl0bGU6IHIuc2tpbGw/LnRpdGxlID8/IHIuc2tpbGxJZCxcbiAgICAgICAgICAgIGxldmVsOiByLmxldmVsLFxuICAgICAgICAgICAgeWVhcnNPZkV4cGVyaWVuY2U6IHIueWVhcnNPZkV4cGVyaWVuY2UgPz8gMCxcbiAgICAgICAgICAgIGxhc3RVc2VkRGF0ZTogci5sYXN0VXNlZERhdGUsXG4gICAgICAgIH0pKTtcblxuICAgICAgICBpZiAoc2tpbGxJZCkgZGF0YSA9IGRhdGEuZmlsdGVyKCh4KSA9PiB4LnNraWxsSWQgPT09IHNraWxsSWQpO1xuICAgICAgICBpZiAobGV2ZWwpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4geC5sZXZlbCA9PT0gbGV2ZWwpO1xuICAgICAgICBpZiAobWluWWVhcnMgIT0gbnVsbCkgZGF0YSA9IGRhdGEuZmlsdGVyKCh4KSA9PiAoeC55ZWFyc09mRXhwZXJpZW5jZSA/PyAwKSA+PSBOdW1iZXIobWluWWVhcnMpKTtcbiAgICAgICAgaWYgKHNEYXRlKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IHgubGFzdFVzZWREYXRlICYmIG5ldyBEYXRlKHgubGFzdFVzZWREYXRlKSA+PSBzRGF0ZSk7XG4gICAgICAgIGlmIChlRGF0ZSkgZGF0YSA9IGRhdGEuZmlsdGVyKCh4KSA9PiB4Lmxhc3RVc2VkRGF0ZSAmJiBuZXcgRGF0ZSh4Lmxhc3RVc2VkRGF0ZSkgPD0gZURhdGUpO1xuXG4gICAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gZGF0YS5zbGljZShza2lwLCBza2lwICsgdGFrZSk7XG4gICAgICAgIHJldHVybiB7IGl0ZW1zLCB0b3RhbCB9O1xuICAgIH1cbn1cblxudHlwZSBTdGF0c0lucHV0ID0ge1xuICAgIHNraWxsSWQ/OiBzdHJpbmc7XG4gICAgbGV2ZWw/OiBzdHJpbmc7XG4gICAgbWluWWVhcnM/OiBudW1iZXI7XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUUVtcGxveWVlU2tpbGxzU3RhdHNRdWVyeSBpbXBsZW1lbnRzIEFYUFF1ZXJ5PFN0YXRzSW5wdXQsIFJlY29yZDxzdHJpbmcsIG51bWJlcj4+IHtcbiAgICBhc3luYyBmZXRjaChpbnB1dDogU3RhdHNJbnB1dCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuICAgICAgICBjb25zdCB7IHNraWxsSWQsIGxldmVsLCBtaW5ZZWFycyB9ID0gaW5wdXQgPz8ge30gYXMgYW55O1xuICAgICAgICBsZXQgZGF0YSA9IEVNUExPWUVFX1NLSUxMU19NT0NLO1xuXG4gICAgICAgIGlmIChza2lsbElkKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IHguc2tpbGxJZCA9PT0gc2tpbGxJZCk7XG4gICAgICAgIGlmIChsZXZlbCkgZGF0YSA9IGRhdGEuZmlsdGVyKCh4KSA9PiB4LmxldmVsID09PSBsZXZlbCk7XG4gICAgICAgIGlmIChtaW5ZZWFycyAhPSBudWxsKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+ICh4LnllYXJzT2ZFeHBlcmllbmNlID8/IDApID49IE51bWJlcihtaW5ZZWFycykpO1xuXG4gICAgICAgIGNvbnN0IGdyb3VwZWQgPSBkYXRhLnJlZHVjZSgoYWNjOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LCBjdXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGN1ci5za2lsbD8udGl0bGUgPz8gY3VyLnNraWxsSWQ7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IChhY2Nba2V5XSA/PyAwKSArIDE7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgcmV0dXJuIGdyb3VwZWQ7XG4gICAgfVxufVxuXG50eXBlIExldmVsc0lucHV0ID0ge1xuICAgIHNraWxsSWQ/OiBzdHJpbmc7XG4gICAgbWluWWVhcnM/OiBudW1iZXI7XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUUVtcGxveWVlU2tpbGxzTGV2ZWxzUXVlcnkgaW1wbGVtZW50cyBBWFBRdWVyeTxMZXZlbHNJbnB1dCwgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuICAgIGFzeW5jIGZldGNoKGlucHV0OiBMZXZlbHNJbnB1dCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuICAgICAgICBjb25zdCB7IHNraWxsSWQsIG1pblllYXJzIH0gPSBpbnB1dCA/PyB7fSBhcyBhbnk7XG4gICAgICAgIGxldCBkYXRhID0gRU1QTE9ZRUVfU0tJTExTX01PQ0s7XG5cbiAgICAgICAgaWYgKHNraWxsSWQpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4geC5za2lsbElkID09PSBza2lsbElkKTtcbiAgICAgICAgaWYgKG1pblllYXJzICE9IG51bGwpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4gKHgueWVhcnNPZkV4cGVyaWVuY2UgPz8gMCkgPj0gTnVtYmVyKG1pblllYXJzKSk7XG5cbiAgICAgICAgY29uc3QgbGV2ZWxzID0gWydCZWdpbm5lcicsICdJbnRlcm1lZGlhdGUnLCAnQWR2YW5jZWQnLCAnRXhwZXJ0J107XG4gICAgICAgIGNvbnN0IGdyb3VwZWQgPSBkYXRhLnJlZHVjZSgoYWNjOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LCBjdXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGN1ci5sZXZlbCAmJiBsZXZlbHMuaW5jbHVkZXMoY3VyLmxldmVsKSA/IGN1ci5sZXZlbCA6ICdVbmtub3duJztcbiAgICAgICAgICAgIGFjY1trZXldID0gKGFjY1trZXldID8/IDApICsgMTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgICAgLy8gRW5zdXJlIGFsbCBrbm93biBsZXZlbHMgZXhpc3QgKDAgaWYgbWlzc2luZylcbiAgICAgICAgbGV2ZWxzLmZvckVhY2goKGx2bCkgPT4gKGdyb3VwZWRbbHZsXSA9IGdyb3VwZWRbbHZsXSA/PyAwKSk7XG4gICAgICAgIHJldHVybiBncm91cGVkO1xuICAgIH1cbn1cblxudHlwZSBUcmVuZElucHV0ID0ge1xuICAgIHN0YXJ0RGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gICAgZW5kRGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gICAgc2tpbGxJZD86IHN0cmluZztcbiAgICBsZXZlbD86IHN0cmluZztcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQVhRRW1wbG95ZWVTa2lsbHNUcmVuZFF1ZXJ5IGltcGxlbWVudHMgQVhQUXVlcnk8VHJlbmRJbnB1dCwgeyBtb250aDogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH1bXT4ge1xuICAgIGFzeW5jIGZldGNoKGlucHV0OiBUcmVuZElucHV0KTogUHJvbWlzZTx7IG1vbnRoOiBzdHJpbmc7IHZhbHVlOiBudW1iZXIgfVtdPiB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnREYXRlLCBlbmREYXRlLCBza2lsbElkLCBsZXZlbCB9ID0gaW5wdXQgPz8ge30gYXMgYW55O1xuICAgICAgICBjb25zdCBzRGF0ZSA9IHN0YXJ0RGF0ZSA/IG5ldyBEYXRlKHN0YXJ0RGF0ZSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGVEYXRlID0gZW5kRGF0ZSA/IG5ldyBEYXRlKGVuZERhdGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGxldCBkYXRhID0gRU1QTE9ZRUVfU0tJTExTX01PQ0tcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+IChza2lsbElkID8geC5za2lsbElkID09PSBza2lsbElkIDogdHJ1ZSkpXG4gICAgICAgICAgICAuZmlsdGVyKCh4KSA9PiAobGV2ZWwgPyB4LmxldmVsID09PSBsZXZlbCA6IHRydWUpKVxuICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4gKHNEYXRlID8gKHgubGFzdFVzZWREYXRlICYmIG5ldyBEYXRlKHgubGFzdFVzZWREYXRlKSA+PSBzRGF0ZSkgOiB0cnVlKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+IChlRGF0ZSA/ICh4Lmxhc3RVc2VkRGF0ZSAmJiBuZXcgRGF0ZSh4Lmxhc3RVc2VkRGF0ZSkgPD0gZURhdGUpIDogdHJ1ZSkpO1xuXG4gICAgICAgIC8vIEdyb3VwIGJ5IFlZWVktTU0gZnJvbSBsYXN0VXNlZERhdGUgYW5kIGNvdW50IG9jY3VycmVuY2VzXG4gICAgICAgIGNvbnN0IGNvdW50cyA9IGRhdGEucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4sIGN1cikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZCA9IGN1ci5sYXN0VXNlZERhdGUgPyBuZXcgRGF0ZShjdXIubGFzdFVzZWREYXRlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGQgPyBgJHtkLmdldEZ1bGxZZWFyKCl9LSR7U3RyaW5nKGQuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyl9YCA6ICdVbmtub3duJztcbiAgICAgICAgICAgIGFjY1trZXldID0gKGFjY1trZXldID8/IDApICsgMTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4pO1xuXG4gICAgICAgIC8vIENvbnZlcnQgdG8gc29ydGVkIGFycmF5LCBpZ25vcmluZyAnVW5rbm93bidcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNvdW50cylcbiAgICAgICAgICAgIC5maWx0ZXIoKFtrXSkgPT4gayAhPT0gJ1Vua25vd24nKVxuICAgICAgICAgICAgLnNvcnQoKFthXSwgW2JdKSA9PiAoYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IDApKVxuICAgICAgICAgICAgLm1hcCgoW21vbnRoLCB2YWx1ZV0pID0+ICh7IG1vbnRoLCB2YWx1ZSB9KSk7XG4gICAgfVxufVxuXG4vLyNyZWdpb24gLS0tLSAgIFBlcmNlbnRhZ2UgUXVlcmllcyAgIC0tLS1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBWFFFbXBsb3llZVNraWxsc1NraWxsUGVyY2VudGFnZXNRdWVyeSBpbXBsZW1lbnRzIEFYUFF1ZXJ5PFN0YXRzSW5wdXQsIFJlY29yZDxzdHJpbmcsIG51bWJlcj4+IHtcbiAgICBhc3luYyBmZXRjaChpbnB1dDogU3RhdHNJbnB1dCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuICAgICAgICBjb25zdCB7IHNraWxsSWQsIGxldmVsLCBtaW5ZZWFycyB9ID0gaW5wdXQgPz8gKHt9IGFzIGFueSk7XG4gICAgICAgIGxldCBkYXRhID0gRU1QTE9ZRUVfU0tJTExTX01PQ0s7XG5cbiAgICAgICAgaWYgKHNraWxsSWQpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4geC5za2lsbElkID09PSBza2lsbElkKTtcbiAgICAgICAgaWYgKGxldmVsKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IHgubGV2ZWwgPT09IGxldmVsKTtcbiAgICAgICAgaWYgKG1pblllYXJzICE9IG51bGwpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4gKHgueWVhcnNPZkV4cGVyaWVuY2UgPz8gMCkgPj0gTnVtYmVyKG1pblllYXJzKSk7XG5cbiAgICAgICAgY29uc3QgY291bnRzID0gZGF0YS5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgbnVtYmVyPiwgY3VyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBjdXIuc2tpbGw/LnRpdGxlID8/IGN1ci5za2lsbElkO1xuICAgICAgICAgICAgYWNjW2tleV0gPSAoYWNjW2tleV0gPz8gMCkgKyAxO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPik7XG5cbiAgICAgICAgY29uc3QgdG90YWwgPSBPYmplY3QudmFsdWVzKGNvdW50cykucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCkgfHwgMTtcbiAgICAgICAgY29uc3QgcGVyY2VudGFnZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoY291bnRzKS5mb3JFYWNoKChbaywgdl0pID0+IHtcbiAgICAgICAgICAgIHBlcmNlbnRhZ2VzW2tdID0gTWF0aC5yb3VuZCgodiAvIHRvdGFsKSAqIDEwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGVyY2VudGFnZXM7XG4gICAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUUVtcGxveWVlU2tpbGxzTGV2ZWxQZXJjZW50YWdlc1F1ZXJ5IGltcGxlbWVudHMgQVhQUXVlcnk8TGV2ZWxzSW5wdXQsIFJlY29yZDxzdHJpbmcsIG51bWJlcj4+IHtcbiAgICBhc3luYyBmZXRjaChpbnB1dDogTGV2ZWxzSW5wdXQpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIG51bWJlcj4+IHtcbiAgICAgICAgY29uc3QgeyBza2lsbElkLCBtaW5ZZWFycyB9ID0gaW5wdXQgPz8gKHt9IGFzIGFueSk7XG4gICAgICAgIGxldCBkYXRhID0gRU1QTE9ZRUVfU0tJTExTX01PQ0s7XG5cbiAgICAgICAgaWYgKHNraWxsSWQpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4geC5za2lsbElkID09PSBza2lsbElkKTtcbiAgICAgICAgaWYgKG1pblllYXJzICE9IG51bGwpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4gKHgueWVhcnNPZkV4cGVyaWVuY2UgPz8gMCkgPj0gTnVtYmVyKG1pblllYXJzKSk7XG5cbiAgICAgICAgY29uc3QgbGV2ZWxzID0gWydCZWdpbm5lcicsICdJbnRlcm1lZGlhdGUnLCAnQWR2YW5jZWQnLCAnRXhwZXJ0J107XG4gICAgICAgIGNvbnN0IGNvdW50cyA9IGRhdGEucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4sIGN1cikgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gY3VyLmxldmVsICYmIGxldmVscy5pbmNsdWRlcyhjdXIubGV2ZWwpID8gY3VyLmxldmVsIDogJ1Vua25vd24nO1xuICAgICAgICAgICAgYWNjW2tleV0gPSAoYWNjW2tleV0gPz8gMCkgKyAxO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPik7XG5cbiAgICAgICAgLy8gRW5zdXJlIGZpeGVkIGxldmVsIGtleXMgZXhpc3RcbiAgICAgICAgbGV2ZWxzLmZvckVhY2goKGx2bCkgPT4gKGNvdW50c1tsdmxdID0gY291bnRzW2x2bF0gPz8gMCkpO1xuXG4gICAgICAgIGNvbnN0IHRvdGFsID0gbGV2ZWxzLnJlZHVjZSgoc3VtLCBsdmwpID0+IHN1bSArIChjb3VudHNbbHZsXSA/PyAwKSwgMCkgfHwgMTtcbiAgICAgICAgY29uc3QgcGVyY2VudGFnZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcbiAgICAgICAgbGV2ZWxzLmZvckVhY2goKGx2bCkgPT4ge1xuICAgICAgICAgICAgcGVyY2VudGFnZXNbbHZsXSA9IE1hdGgucm91bmQoKChjb3VudHNbbHZsXSA/PyAwKSAvIHRvdGFsKSAqIDEwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGVyY2VudGFnZXM7XG4gICAgfVxufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jZW5kcmVnaW9uXG5cblxuIl19"],"names":[],"mappings":"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"}