ravcredit-lib 0.0.3 → 0.0.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.
- package/fesm2022/ravcredit-lib.mjs +551 -24
- package/fesm2022/ravcredit-lib.mjs.map +1 -1
- package/index.d.ts +1516 -4
- package/package.json +3 -4
- package/esm2022/lib/ravcredit-lib.component.mjs +0 -19
- package/esm2022/lib/ravcredit-lib.service.mjs +0 -14
- package/esm2022/lib/v1/objects/oAddress.mjs +0 -2
- package/esm2022/lib/v1/objects/oBusiness.mjs +0 -2
- package/esm2022/lib/v1/objects/oClient.mjs +0 -2
- package/esm2022/lib/v1/objects/oConekta.mjs +0 -85
- package/esm2022/lib/v1/objects/oContract.mjs +0 -2
- package/esm2022/lib/v1/objects/oContractAll.mjs +0 -2
- package/esm2022/lib/v1/objects/oCustomer.mjs +0 -18
- package/esm2022/lib/v1/objects/oDevice.mjs +0 -2
- package/esm2022/lib/v1/objects/oFinancial.mjs +0 -2
- package/esm2022/lib/v1/objects/oGlobal.mjs +0 -86
- package/esm2022/lib/v1/objects/oLogIn.mjs +0 -17
- package/esm2022/lib/v1/objects/oNewPayment.mjs +0 -2
- package/esm2022/lib/v1/objects/oNotification.mjs +0 -17
- package/esm2022/lib/v1/objects/oPassport.mjs +0 -7
- package/esm2022/lib/v1/objects/oUser.mjs +0 -2
- package/esm2022/lib/v1/util/UtilBusiness.mjs +0 -181
- package/esm2022/lib/v1/util/UtilClient.mjs +0 -221
- package/esm2022/lib/v1/util/UtilContract.mjs +0 -339
- package/esm2022/lib/v1/util/UtilDynamiCore.mjs +0 -292
- package/esm2022/public-api.mjs +0 -21
- package/esm2022/ravcredit-lib.mjs +0 -5
- package/lib/ravcredit-lib.component.d.ts +0 -5
- package/lib/ravcredit-lib.service.d.ts +0 -6
- package/lib/v1/objects/oAddress.d.ts +0 -9
- package/lib/v1/objects/oBusiness.d.ts +0 -101
- package/lib/v1/objects/oClient.d.ts +0 -43
- package/lib/v1/objects/oConekta.d.ts +0 -305
- package/lib/v1/objects/oContract.d.ts +0 -23
- package/lib/v1/objects/oContractAll.d.ts +0 -21
- package/lib/v1/objects/oCustomer.d.ts +0 -17
- package/lib/v1/objects/oDevice.d.ts +0 -5
- package/lib/v1/objects/oFinancial.d.ts +0 -30
- package/lib/v1/objects/oGlobal.d.ts +0 -149
- package/lib/v1/objects/oLogIn.d.ts +0 -30
- package/lib/v1/objects/oNewPayment.d.ts +0 -11
- package/lib/v1/objects/oNotification.d.ts +0 -25
- package/lib/v1/objects/oPassport.d.ts +0 -55
- package/lib/v1/objects/oUser.d.ts +0 -25
- package/lib/v1/util/UtilBusiness.d.ts +0 -54
- package/lib/v1/util/UtilClient.d.ts +0 -34
- package/lib/v1/util/UtilContract.d.ts +0 -71
- package/lib/v1/util/UtilDynamiCore.d.ts +0 -453
- package/public-api.d.ts +0 -17
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { UntypedFormArray, UntypedFormControl, Validators } from "@angular/forms";
|
|
2
|
-
// TODO **************************************** DELETE
|
|
3
|
-
export const cAddress = {
|
|
4
|
-
street: "",
|
|
5
|
-
city: "",
|
|
6
|
-
neighbor: "",
|
|
7
|
-
zip: "",
|
|
8
|
-
ext: "",
|
|
9
|
-
int: "",
|
|
10
|
-
state: ""
|
|
11
|
-
};
|
|
12
|
-
// TODO **************************************** DELETE
|
|
13
|
-
export const cSchedule = {
|
|
14
|
-
day: "",
|
|
15
|
-
open: 0,
|
|
16
|
-
close: 0,
|
|
17
|
-
};
|
|
18
|
-
export const cEmptyDay = {
|
|
19
|
-
close: 0, open: 0, day: ""
|
|
20
|
-
};
|
|
21
|
-
export const week = [
|
|
22
|
-
"monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"
|
|
23
|
-
];
|
|
24
|
-
export const cDefinedSchedule = [
|
|
25
|
-
{ close: 0, open: 0, day: "monday" },
|
|
26
|
-
{ close: 0, open: 0, day: "tuesday" },
|
|
27
|
-
{ close: 0, open: 0, day: "wednesday" },
|
|
28
|
-
{ close: 0, open: 0, day: "thursday" },
|
|
29
|
-
{ close: 0, open: 0, day: "friday" },
|
|
30
|
-
{ close: 0, open: 0, day: "saturday" },
|
|
31
|
-
{ close: 0, open: 0, day: "sunday" },
|
|
32
|
-
];
|
|
33
|
-
export const cBusinessInfo = {
|
|
34
|
-
version: "v2024",
|
|
35
|
-
name: "",
|
|
36
|
-
address: cAddress,
|
|
37
|
-
phones: [],
|
|
38
|
-
email: "",
|
|
39
|
-
};
|
|
40
|
-
export const cBusinessDeadlines = {
|
|
41
|
-
weeks: 0,
|
|
42
|
-
interest: 0
|
|
43
|
-
};
|
|
44
|
-
export const cBusinessConfig = {
|
|
45
|
-
version: "",
|
|
46
|
-
apiVersion: "",
|
|
47
|
-
adminVersion: "",
|
|
48
|
-
mobileVersion: "",
|
|
49
|
-
mobileVersionPrev: "",
|
|
50
|
-
deadlines: [],
|
|
51
|
-
downloadsClient: false,
|
|
52
|
-
passportPaymentReference: false,
|
|
53
|
-
conektaPaymentReference: false,
|
|
54
|
-
conektaPaymentLink: false,
|
|
55
|
-
dynamicPaymentReference: false,
|
|
56
|
-
apkUrl: "https://firebasestorage.googleapis.com/v0/b/ravcredit-2b079.appspot.com/o/mobile-app%2Fapp-release.apk?alt=media&token=ae05f332-a39a-46ad-8a64-312ae1487496"
|
|
57
|
-
};
|
|
58
|
-
export class FactoryBusiness {
|
|
59
|
-
static FormBusinessInfo(info) {
|
|
60
|
-
let data = cBusinessInfo;
|
|
61
|
-
if (info)
|
|
62
|
-
data = info;
|
|
63
|
-
if (!info?.address)
|
|
64
|
-
data.address = cAddress;
|
|
65
|
-
return {
|
|
66
|
-
name: new UntypedFormControl(data.name, Validators.required),
|
|
67
|
-
email: new UntypedFormControl(data.email, [Validators.required, Validators.email]),
|
|
68
|
-
desc: new UntypedFormControl(data.desc, [Validators.required, Validators.email]),
|
|
69
|
-
street: new UntypedFormControl(data.address.street, Validators.required),
|
|
70
|
-
neighbor: new UntypedFormControl(data.address.neighbor, Validators.required),
|
|
71
|
-
cp: new UntypedFormControl(data.address.zip, Validators.required),
|
|
72
|
-
ext: new UntypedFormControl(data.address.ext, Validators.required),
|
|
73
|
-
int: new UntypedFormControl(data.address.int),
|
|
74
|
-
city: new UntypedFormControl(data.address.city, Validators.required),
|
|
75
|
-
state: new UntypedFormControl(data.address.state, Validators.required),
|
|
76
|
-
phones: new UntypedFormControl(data.phones),
|
|
77
|
-
mondayOpen: new UntypedFormControl(data.schedule?.monday.open),
|
|
78
|
-
mondayClose: new UntypedFormControl(data.schedule?.monday.close),
|
|
79
|
-
tuesdayOpen: new UntypedFormControl(data.schedule?.tuesday.open),
|
|
80
|
-
tuesdayClose: new UntypedFormControl(data.schedule?.tuesday.close),
|
|
81
|
-
wednesdayOpen: new UntypedFormControl(data.schedule?.wednesday.open),
|
|
82
|
-
wednesdayClose: new UntypedFormControl(data.schedule?.wednesday.close),
|
|
83
|
-
thursdayOpen: new UntypedFormControl(data.schedule?.thursday.open),
|
|
84
|
-
thursdayClose: new UntypedFormControl(data.schedule?.thursday.close),
|
|
85
|
-
fridayOpen: new UntypedFormControl(data.schedule?.friday.open),
|
|
86
|
-
fridayClose: new UntypedFormControl(data.schedule?.friday.close),
|
|
87
|
-
saturdayOpen: new UntypedFormControl(data.schedule?.saturday.open),
|
|
88
|
-
saturdayClose: new UntypedFormControl(data.schedule?.saturday.close),
|
|
89
|
-
sundayOpen: new UntypedFormControl(data.schedule?.sunday.open),
|
|
90
|
-
sundayClose: new UntypedFormControl(data.schedule?.sunday.close),
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
static CreateBusinessInfoObj(data) {
|
|
94
|
-
const address = cAddress;
|
|
95
|
-
const schedule = {
|
|
96
|
-
monday: {},
|
|
97
|
-
tuesday: {},
|
|
98
|
-
wednesday: {},
|
|
99
|
-
thursday: {},
|
|
100
|
-
friday: {},
|
|
101
|
-
saturday: {},
|
|
102
|
-
sunday: {}
|
|
103
|
-
};
|
|
104
|
-
if (data.street)
|
|
105
|
-
address.street = data.street;
|
|
106
|
-
if (data.state)
|
|
107
|
-
address.state = data.state;
|
|
108
|
-
if (data.neighbor)
|
|
109
|
-
address.neighbor = data.neighbor;
|
|
110
|
-
if (data.city)
|
|
111
|
-
address.city = data.city;
|
|
112
|
-
if (data.ext)
|
|
113
|
-
address.ext = data.ext;
|
|
114
|
-
if (data.int)
|
|
115
|
-
address.int = data.int;
|
|
116
|
-
if (data.cp)
|
|
117
|
-
address.zip = data.cp;
|
|
118
|
-
if (data.mondayOpen)
|
|
119
|
-
schedule.monday.open = data.mondayOpen;
|
|
120
|
-
if (data.mondayClose)
|
|
121
|
-
schedule.monday.close = data.mondayClose;
|
|
122
|
-
if (data.tuesdayOpen)
|
|
123
|
-
schedule.tuesday.open = data.tuesdayOpen;
|
|
124
|
-
if (data.tuesdayClose)
|
|
125
|
-
schedule.tuesday.close = data.tuesdayClose;
|
|
126
|
-
if (data.wednesdayOpen)
|
|
127
|
-
schedule.wednesday.open = data.wednesdayOpen;
|
|
128
|
-
if (data.wednesdayClose)
|
|
129
|
-
schedule.wednesday.close = data.wednesdayClose;
|
|
130
|
-
if (data.thursdayOpen)
|
|
131
|
-
schedule.thursday.open = data.thursdayOpen;
|
|
132
|
-
if (data.thursdayClose)
|
|
133
|
-
schedule.thursday.close = data.thursdayClose;
|
|
134
|
-
if (data.fridayOpen)
|
|
135
|
-
schedule.friday.open = data.fridayOpen;
|
|
136
|
-
if (data.fridayClose)
|
|
137
|
-
schedule.friday.close = data.fridayClose;
|
|
138
|
-
if (data.saturdayOpen)
|
|
139
|
-
schedule.saturday.open = data.saturdayOpen;
|
|
140
|
-
if (data.saturdayClose)
|
|
141
|
-
schedule.saturday.close = data.saturdayClose;
|
|
142
|
-
if (data.sundayOpen)
|
|
143
|
-
schedule.sunday.open = data.sundayOpen;
|
|
144
|
-
if (data.sundayClose)
|
|
145
|
-
schedule.sunday.close = data.sundayClose;
|
|
146
|
-
const info = {
|
|
147
|
-
version: "v2024",
|
|
148
|
-
name: data.name ? data.name : "",
|
|
149
|
-
address: address,
|
|
150
|
-
phones: data.phones ? data.phones : [],
|
|
151
|
-
email: data.email ? data.email : "",
|
|
152
|
-
schedule: schedule,
|
|
153
|
-
desc: data.desc ? data.desc : ""
|
|
154
|
-
};
|
|
155
|
-
return info;
|
|
156
|
-
}
|
|
157
|
-
static FormDeadlineConfig(data) {
|
|
158
|
-
// if (!data) data = cBusinessDeadlines
|
|
159
|
-
return {
|
|
160
|
-
weeks: new UntypedFormControl(data.weeks),
|
|
161
|
-
interest: new UntypedFormControl(data.interest),
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
static FormBusinessConfig(config) {
|
|
165
|
-
let data = cBusinessConfig;
|
|
166
|
-
if (config)
|
|
167
|
-
data = config;
|
|
168
|
-
return {
|
|
169
|
-
downloadsClient: new UntypedFormControl(data.downloadsClient),
|
|
170
|
-
passportPaymentReference: new UntypedFormControl(data.passportPaymentReference),
|
|
171
|
-
conektaPaymentReference: new UntypedFormControl(data.conektaPaymentReference),
|
|
172
|
-
conektaPaymentLink: new UntypedFormControl(data.conektaPaymentLink),
|
|
173
|
-
dynamicPaymentReference: new UntypedFormControl(data.dynamicPaymentReference),
|
|
174
|
-
deadlines: new UntypedFormArray([])
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
static testBusiness(message) {
|
|
178
|
-
return `Message ${message}`;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbEJ1c2luZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmF2Y3JlZGl0LWxpYi9zcmMvbGliL3YxL3V0aWwvVXRpbEJ1c2luZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQVdoRix1REFBdUQ7QUFDdkQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFhO0lBQ2hDLE1BQU0sRUFBRSxFQUFFO0lBQ1YsSUFBSSxFQUFFLEVBQUU7SUFDUixRQUFRLEVBQUUsRUFBRTtJQUNaLEdBQUcsRUFBRSxFQUFFO0lBQ1AsR0FBRyxFQUFFLEVBQUU7SUFDUCxHQUFHLEVBQUUsRUFBRTtJQUNQLEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQTtBQUNELHVEQUF1RDtBQUV2RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQWM7SUFDbEMsR0FBRyxFQUFFLEVBQUU7SUFDUCxJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0NBQ1QsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBYztJQUNsQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7Q0FDM0IsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBYTtJQUM1QixRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO0NBQzdFLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBZ0I7SUFDM0MsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBQztJQUNsQyxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDO0lBQ25DLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUM7SUFDckMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBQztJQUNwQyxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFDO0lBQ2xDLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUM7SUFDcEMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBQztDQUNuQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFrQjtJQUMxQyxPQUFPLEVBQUUsT0FBTztJQUNoQixJQUFJLEVBQUUsRUFBRTtJQUNSLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE1BQU0sRUFBRSxFQUFFO0lBQ1YsS0FBSyxFQUFFLEVBQUU7Q0FDVixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXVCO0lBQ3BELEtBQUssRUFBRSxDQUFDO0lBQ1IsUUFBUSxFQUFFLENBQUM7Q0FDWixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFvQjtJQUM5QyxPQUFPLEVBQUUsRUFBRTtJQUNYLFVBQVUsRUFBRSxFQUFFO0lBQ2QsWUFBWSxFQUFFLEVBQUU7SUFDaEIsYUFBYSxFQUFFLEVBQUU7SUFDakIsaUJBQWlCLEVBQUUsRUFBRTtJQUNyQixTQUFTLEVBQUUsRUFBRTtJQUNiLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLHdCQUF3QixFQUFFLEtBQUs7SUFDL0IsdUJBQXVCLEVBQUUsS0FBSztJQUM5QixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLHVCQUF1QixFQUFFLEtBQUs7SUFDOUIsTUFBTSxFQUFFLDZKQUE2SjtDQUN0SyxDQUFBO0FBSUQsTUFBTSxPQUFPLGVBQWU7SUFFbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQW9CO1FBQ2pELElBQUksSUFBSSxHQUFHLGFBQWEsQ0FBQTtRQUV4QixJQUFJLElBQUk7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBRXJCLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTztZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFBO1FBRTNDLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDNUQsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xGLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRixNQUFNLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3hFLFFBQVEsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDNUUsRUFBRSxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNqRSxHQUFHLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xFLEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzdDLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDcEUsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN0RSxNQUFNLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzNDLFVBQVUsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztZQUM5RCxXQUFXLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDaEUsV0FBVyxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hFLFlBQVksRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNsRSxhQUFhLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDcEUsY0FBYyxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ3RFLFlBQVksRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNsRSxhQUFhLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDcEUsVUFBVSxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQzlELFdBQVcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNoRSxZQUFZLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbEUsYUFBYSxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3BFLFVBQVUsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztZQUM5RCxXQUFXLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDakUsQ0FBQTtJQUVILENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBd0I7UUFDMUQsTUFBTSxPQUFPLEdBQWEsUUFBUSxDQUFBO1FBQ2xDLE1BQU0sUUFBUSxHQUFpQjtZQUM3QixNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFO1lBQ1gsU0FBUyxFQUFFLEVBQUU7WUFDYixRQUFRLEVBQUUsRUFBRTtZQUNaLE1BQU0sRUFBRSxFQUFFO1lBQ1YsUUFBUSxFQUFFLEVBQUU7WUFDWixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUE7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQzdDLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDMUMsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtRQUNuRCxJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQ3ZDLElBQUksSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7UUFDcEMsSUFBSSxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQTtRQUNwQyxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO1FBRWxDLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQzNELElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFBO1FBRTlELElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFBO1FBQzlELElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFBO1FBRWpFLElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFBO1FBQ3BFLElBQUksSUFBSSxDQUFDLGNBQWM7WUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFBO1FBRXZFLElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFBO1FBQ2pFLElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFBO1FBRXBFLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQzNELElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFBO1FBRTlELElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFBO1FBQ2pFLElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFBO1FBRXBFLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQzNELElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFBO1FBRTlELE1BQU0sSUFBSSxHQUFrQjtZQUMxQixPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQyxPQUFPLEVBQUUsT0FBTztZQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQyxRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUNqQyxDQUFBO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQXdCO1FBQ3ZELHVDQUF1QztRQUV2QyxPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN6QyxRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2hELENBQUE7SUFDSCxDQUFDO0lBR00sTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQXdCO1FBQ3ZELElBQUksSUFBSSxHQUFHLGVBQWUsQ0FBQTtRQUMxQixJQUFJLE1BQU07WUFBRSxJQUFJLEdBQUcsTUFBTSxDQUFBO1FBRXpCLE9BQU87WUFDTCxlQUFlLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQzdELHdCQUF3QixFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1lBQy9FLHVCQUF1QixFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1lBQzdFLGtCQUFrQixFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQ25FLHVCQUF1QixFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1lBQzdFLFNBQVMsRUFBRSxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztTQUNwQyxDQUFBO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBZTtRQUN4QyxPQUFPLFdBQVcsT0FBTyxFQUFFLENBQUE7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnN9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgb0J1c2luZXNzQ29uZmlnLFxuICBvQnVzaW5lc3NEZWFkbGluZXMsXG4gIG9CdXNpbmVzc0luZm8sXG4gIG9TY2hlZHVsZSxcbiAgb1RtcEJ1c2luZXNzQ29uZmlnLFxuICB3ZWVrU2NoZWR1bGVcbn0gZnJvbSBcIi4uL29iamVjdHMvb0J1c2luZXNzXCI7XG5pbXBvcnQge29BZGRyZXNzfSBmcm9tICcuLi9vYmplY3RzL29BZGRyZXNzJztcblxuLy8gVE9ETyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIERFTEVURVxuZXhwb3J0IGNvbnN0IGNBZGRyZXNzOiBvQWRkcmVzcyA9IHtcbiAgc3RyZWV0OiBcIlwiLFxuICBjaXR5OiBcIlwiLFxuICBuZWlnaGJvcjogXCJcIixcbiAgemlwOiBcIlwiLFxuICBleHQ6IFwiXCIsXG4gIGludDogXCJcIixcbiAgc3RhdGU6IFwiXCJcbn1cbi8vIFRPRE8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBERUxFVEVcblxuZXhwb3J0IGNvbnN0IGNTY2hlZHVsZTogb1NjaGVkdWxlID0ge1xuICBkYXk6IFwiXCIsXG4gIG9wZW46IDAsXG4gIGNsb3NlOiAwLFxufVxuXG5leHBvcnQgY29uc3QgY0VtcHR5RGF5OiBvU2NoZWR1bGUgPSB7XG4gIGNsb3NlOiAwLCBvcGVuOiAwLCBkYXk6IFwiXCJcbn1cblxuZXhwb3J0IGNvbnN0IHdlZWs6IHN0cmluZ1tdID0gW1xuICBcIm1vbmRheVwiLCBcInR1ZXNkYXlcIiwgXCJ3ZWRuZXNkYXlcIiwgXCJ0aHVyc2RheVwiLCBcImZyaWRheVwiLCBcInNhdHVyZGF5XCIsIFwic3VuZGF5XCJcbl1cblxuZXhwb3J0IGNvbnN0IGNEZWZpbmVkU2NoZWR1bGU6IG9TY2hlZHVsZVtdID0gW1xuICB7Y2xvc2U6IDAsIG9wZW46IDAsIGRheTogXCJtb25kYXlcIn0sXG4gIHtjbG9zZTogMCwgb3BlbjogMCwgZGF5OiBcInR1ZXNkYXlcIn0sXG4gIHtjbG9zZTogMCwgb3BlbjogMCwgZGF5OiBcIndlZG5lc2RheVwifSxcbiAge2Nsb3NlOiAwLCBvcGVuOiAwLCBkYXk6IFwidGh1cnNkYXlcIn0sXG4gIHtjbG9zZTogMCwgb3BlbjogMCwgZGF5OiBcImZyaWRheVwifSxcbiAge2Nsb3NlOiAwLCBvcGVuOiAwLCBkYXk6IFwic2F0dXJkYXlcIn0sXG4gIHtjbG9zZTogMCwgb3BlbjogMCwgZGF5OiBcInN1bmRheVwifSxcbl1cblxuZXhwb3J0IGNvbnN0IGNCdXNpbmVzc0luZm86IG9CdXNpbmVzc0luZm8gPSB7XG4gIHZlcnNpb246IFwidjIwMjRcIixcbiAgbmFtZTogXCJcIixcbiAgYWRkcmVzczogY0FkZHJlc3MsXG4gIHBob25lczogW10sXG4gIGVtYWlsOiBcIlwiLFxufVxuXG5leHBvcnQgY29uc3QgY0J1c2luZXNzRGVhZGxpbmVzOiBvQnVzaW5lc3NEZWFkbGluZXMgPSB7XG4gIHdlZWtzOiAwLFxuICBpbnRlcmVzdDogMFxufVxuXG5leHBvcnQgY29uc3QgY0J1c2luZXNzQ29uZmlnOiBvQnVzaW5lc3NDb25maWcgPSB7XG4gIHZlcnNpb246IFwiXCIsXG4gIGFwaVZlcnNpb246IFwiXCIsXG4gIGFkbWluVmVyc2lvbjogXCJcIixcbiAgbW9iaWxlVmVyc2lvbjogXCJcIixcbiAgbW9iaWxlVmVyc2lvblByZXY6IFwiXCIsXG4gIGRlYWRsaW5lczogW10sXG4gIGRvd25sb2Fkc0NsaWVudDogZmFsc2UsXG4gIHBhc3Nwb3J0UGF5bWVudFJlZmVyZW5jZTogZmFsc2UsXG4gIGNvbmVrdGFQYXltZW50UmVmZXJlbmNlOiBmYWxzZSxcbiAgY29uZWt0YVBheW1lbnRMaW5rOiBmYWxzZSxcbiAgZHluYW1pY1BheW1lbnRSZWZlcmVuY2U6IGZhbHNlLFxuICBhcGtVcmw6IFwiaHR0cHM6Ly9maXJlYmFzZXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vdjAvYi9yYXZjcmVkaXQtMmIwNzkuYXBwc3BvdC5jb20vby9tb2JpbGUtYXBwJTJGYXBwLXJlbGVhc2UuYXBrP2FsdD1tZWRpYSZ0b2tlbj1hZTA1ZjMzMi1hMzlhLTQ2YWQtOGE2NC0zMTJhZTE0ODc0OTZcIlxufVxuXG5cblxuZXhwb3J0IGNsYXNzIEZhY3RvcnlCdXNpbmVzcyB7XG5cbiAgcHVibGljIHN0YXRpYyBGb3JtQnVzaW5lc3NJbmZvKGluZm8/OiBvQnVzaW5lc3NJbmZvKSB7XG4gICAgbGV0IGRhdGEgPSBjQnVzaW5lc3NJbmZvXG5cbiAgICBpZiAoaW5mbykgZGF0YSA9IGluZm9cblxuICAgIGlmICghaW5mbz8uYWRkcmVzcykgZGF0YS5hZGRyZXNzID0gY0FkZHJlc3NcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRhdGEubmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBlbWFpbDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLmVtYWlsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0pLFxuICAgICAgZGVzYzogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLmRlc2MsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSksXG4gICAgICBzdHJlZXQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5hZGRyZXNzLnN0cmVldCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBuZWlnaGJvcjogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLmFkZHJlc3MubmVpZ2hib3IsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgY3A6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5hZGRyZXNzLnppcCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBleHQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5hZGRyZXNzLmV4dCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBpbnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5hZGRyZXNzLmludCksXG4gICAgICBjaXR5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRhdGEuYWRkcmVzcy5jaXR5LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHN0YXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRhdGEuYWRkcmVzcy5zdGF0ZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBwaG9uZXM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5waG9uZXMpLFxuICAgICAgbW9uZGF5T3BlbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLnNjaGVkdWxlPy5tb25kYXkub3BlbiksXG4gICAgICBtb25kYXlDbG9zZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLnNjaGVkdWxlPy5tb25kYXkuY2xvc2UpLFxuICAgICAgdHVlc2RheU9wZW46IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5zY2hlZHVsZT8udHVlc2RheS5vcGVuKSxcbiAgICAgIHR1ZXNkYXlDbG9zZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLnNjaGVkdWxlPy50dWVzZGF5LmNsb3NlKSxcbiAgICAgIHdlZG5lc2RheU9wZW46IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5zY2hlZHVsZT8ud2VkbmVzZGF5Lm9wZW4pLFxuICAgICAgd2VkbmVzZGF5Q2xvc2U6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5zY2hlZHVsZT8ud2VkbmVzZGF5LmNsb3NlKSxcbiAgICAgIHRodXJzZGF5T3BlbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLnNjaGVkdWxlPy50aHVyc2RheS5vcGVuKSxcbiAgICAgIHRodXJzZGF5Q2xvc2U6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5zY2hlZHVsZT8udGh1cnNkYXkuY2xvc2UpLFxuICAgICAgZnJpZGF5T3BlbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLnNjaGVkdWxlPy5mcmlkYXkub3BlbiksXG4gICAgICBmcmlkYXlDbG9zZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLnNjaGVkdWxlPy5mcmlkYXkuY2xvc2UpLFxuICAgICAgc2F0dXJkYXlPcGVuOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRhdGEuc2NoZWR1bGU/LnNhdHVyZGF5Lm9wZW4pLFxuICAgICAgc2F0dXJkYXlDbG9zZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLnNjaGVkdWxlPy5zYXR1cmRheS5jbG9zZSksXG4gICAgICBzdW5kYXlPcGVuOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRhdGEuc2NoZWR1bGU/LnN1bmRheS5vcGVuKSxcbiAgICAgIHN1bmRheUNsb3NlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRhdGEuc2NoZWR1bGU/LnN1bmRheS5jbG9zZSksXG4gICAgfVxuXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIENyZWF0ZUJ1c2luZXNzSW5mb09iaihkYXRhOiBvVG1wQnVzaW5lc3NDb25maWcpIHtcbiAgICBjb25zdCBhZGRyZXNzOiBvQWRkcmVzcyA9IGNBZGRyZXNzXG4gICAgY29uc3Qgc2NoZWR1bGU6IHdlZWtTY2hlZHVsZSA9IHtcbiAgICAgIG1vbmRheToge30sXG4gICAgICB0dWVzZGF5OiB7fSxcbiAgICAgIHdlZG5lc2RheToge30sXG4gICAgICB0aHVyc2RheToge30sXG4gICAgICBmcmlkYXk6IHt9LFxuICAgICAgc2F0dXJkYXk6IHt9LFxuICAgICAgc3VuZGF5OiB7fVxuICAgIH1cblxuICAgIGlmIChkYXRhLnN0cmVldCkgYWRkcmVzcy5zdHJlZXQgPSBkYXRhLnN0cmVldFxuICAgIGlmIChkYXRhLnN0YXRlKSBhZGRyZXNzLnN0YXRlID0gZGF0YS5zdGF0ZVxuICAgIGlmIChkYXRhLm5laWdoYm9yKSBhZGRyZXNzLm5laWdoYm9yID0gZGF0YS5uZWlnaGJvclxuICAgIGlmIChkYXRhLmNpdHkpIGFkZHJlc3MuY2l0eSA9IGRhdGEuY2l0eVxuICAgIGlmIChkYXRhLmV4dCkgYWRkcmVzcy5leHQgPSBkYXRhLmV4dFxuICAgIGlmIChkYXRhLmludCkgYWRkcmVzcy5pbnQgPSBkYXRhLmludFxuICAgIGlmIChkYXRhLmNwKSBhZGRyZXNzLnppcCA9IGRhdGEuY3BcblxuICAgIGlmIChkYXRhLm1vbmRheU9wZW4pIHNjaGVkdWxlLm1vbmRheS5vcGVuID0gZGF0YS5tb25kYXlPcGVuXG4gICAgaWYgKGRhdGEubW9uZGF5Q2xvc2UpIHNjaGVkdWxlLm1vbmRheS5jbG9zZSA9IGRhdGEubW9uZGF5Q2xvc2VcblxuICAgIGlmIChkYXRhLnR1ZXNkYXlPcGVuKSBzY2hlZHVsZS50dWVzZGF5Lm9wZW4gPSBkYXRhLnR1ZXNkYXlPcGVuXG4gICAgaWYgKGRhdGEudHVlc2RheUNsb3NlKSBzY2hlZHVsZS50dWVzZGF5LmNsb3NlID0gZGF0YS50dWVzZGF5Q2xvc2VcblxuICAgIGlmIChkYXRhLndlZG5lc2RheU9wZW4pIHNjaGVkdWxlLndlZG5lc2RheS5vcGVuID0gZGF0YS53ZWRuZXNkYXlPcGVuXG4gICAgaWYgKGRhdGEud2VkbmVzZGF5Q2xvc2UpIHNjaGVkdWxlLndlZG5lc2RheS5jbG9zZSA9IGRhdGEud2VkbmVzZGF5Q2xvc2VcblxuICAgIGlmIChkYXRhLnRodXJzZGF5T3Blbikgc2NoZWR1bGUudGh1cnNkYXkub3BlbiA9IGRhdGEudGh1cnNkYXlPcGVuXG4gICAgaWYgKGRhdGEudGh1cnNkYXlDbG9zZSkgc2NoZWR1bGUudGh1cnNkYXkuY2xvc2UgPSBkYXRhLnRodXJzZGF5Q2xvc2VcblxuICAgIGlmIChkYXRhLmZyaWRheU9wZW4pIHNjaGVkdWxlLmZyaWRheS5vcGVuID0gZGF0YS5mcmlkYXlPcGVuXG4gICAgaWYgKGRhdGEuZnJpZGF5Q2xvc2UpIHNjaGVkdWxlLmZyaWRheS5jbG9zZSA9IGRhdGEuZnJpZGF5Q2xvc2VcblxuICAgIGlmIChkYXRhLnNhdHVyZGF5T3Blbikgc2NoZWR1bGUuc2F0dXJkYXkub3BlbiA9IGRhdGEuc2F0dXJkYXlPcGVuXG4gICAgaWYgKGRhdGEuc2F0dXJkYXlDbG9zZSkgc2NoZWR1bGUuc2F0dXJkYXkuY2xvc2UgPSBkYXRhLnNhdHVyZGF5Q2xvc2VcblxuICAgIGlmIChkYXRhLnN1bmRheU9wZW4pIHNjaGVkdWxlLnN1bmRheS5vcGVuID0gZGF0YS5zdW5kYXlPcGVuXG4gICAgaWYgKGRhdGEuc3VuZGF5Q2xvc2UpIHNjaGVkdWxlLnN1bmRheS5jbG9zZSA9IGRhdGEuc3VuZGF5Q2xvc2VcblxuICAgIGNvbnN0IGluZm86IG9CdXNpbmVzc0luZm8gPSB7XG4gICAgICB2ZXJzaW9uOiBcInYyMDI0XCIsXG4gICAgICBuYW1lOiBkYXRhLm5hbWUgPyBkYXRhLm5hbWUgOiBcIlwiLFxuICAgICAgYWRkcmVzczogYWRkcmVzcyxcbiAgICAgIHBob25lczogZGF0YS5waG9uZXMgPyBkYXRhLnBob25lcyA6IFtdLFxuICAgICAgZW1haWw6IGRhdGEuZW1haWwgPyBkYXRhLmVtYWlsIDogXCJcIixcbiAgICAgIHNjaGVkdWxlOiBzY2hlZHVsZSxcbiAgICAgIGRlc2M6IGRhdGEuZGVzYyA/IGRhdGEuZGVzYyA6IFwiXCJcbiAgICB9XG5cbiAgICByZXR1cm4gaW5mb1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBGb3JtRGVhZGxpbmVDb25maWcoZGF0YTogb0J1c2luZXNzRGVhZGxpbmVzKSB7XG4gICAgLy8gaWYgKCFkYXRhKSBkYXRhID0gY0J1c2luZXNzRGVhZGxpbmVzXG5cbiAgICByZXR1cm4ge1xuICAgICAgd2Vla3M6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS53ZWVrcyksXG4gICAgICBpbnRlcmVzdDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLmludGVyZXN0KSxcbiAgICB9XG4gIH1cblxuXG4gIHB1YmxpYyBzdGF0aWMgRm9ybUJ1c2luZXNzQ29uZmlnKGNvbmZpZz86IG9CdXNpbmVzc0NvbmZpZykge1xuICAgIGxldCBkYXRhID0gY0J1c2luZXNzQ29uZmlnXG4gICAgaWYgKGNvbmZpZykgZGF0YSA9IGNvbmZpZ1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRvd25sb2Fkc0NsaWVudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChkYXRhLmRvd25sb2Fkc0NsaWVudCksXG4gICAgICBwYXNzcG9ydFBheW1lbnRSZWZlcmVuY2U6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5wYXNzcG9ydFBheW1lbnRSZWZlcmVuY2UpLFxuICAgICAgY29uZWt0YVBheW1lbnRSZWZlcmVuY2U6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5jb25la3RhUGF5bWVudFJlZmVyZW5jZSksXG4gICAgICBjb25la3RhUGF5bWVudExpbms6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5jb25la3RhUGF5bWVudExpbmspLFxuICAgICAgZHluYW1pY1BheW1lbnRSZWZlcmVuY2U6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGF0YS5keW5hbWljUGF5bWVudFJlZmVyZW5jZSksXG4gICAgICBkZWFkbGluZXM6IG5ldyBVbnR5cGVkRm9ybUFycmF5KFtdKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdGVzdEJ1c2luZXNzKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHJldHVybiBgTWVzc2FnZSAke21lc3NhZ2V9YFxuICB9XG59XG4iXX0=
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import { cConektaRecurrent } from '../objects/oConekta';
|
|
2
|
-
import { cContract } from './UtilContract';
|
|
3
|
-
import { eClientStatus } from '../objects/oGlobal';
|
|
4
|
-
export const cClient = {
|
|
5
|
-
id: "",
|
|
6
|
-
name: "",
|
|
7
|
-
username: "",
|
|
8
|
-
email: "",
|
|
9
|
-
phone: "",
|
|
10
|
-
curp: "",
|
|
11
|
-
contract_temporary: "",
|
|
12
|
-
conekta_id: "",
|
|
13
|
-
userReferences: [],
|
|
14
|
-
status: ""
|
|
15
|
-
};
|
|
16
|
-
export const cUserReference = {
|
|
17
|
-
name: "",
|
|
18
|
-
phone: "",
|
|
19
|
-
relationship: ""
|
|
20
|
-
};
|
|
21
|
-
export const cClientConekta = {
|
|
22
|
-
conekta: cConektaRecurrent,
|
|
23
|
-
ravcredit: cClient
|
|
24
|
-
};
|
|
25
|
-
export const cClientContract = {
|
|
26
|
-
client: cClient,
|
|
27
|
-
contract: cContract,
|
|
28
|
-
};
|
|
29
|
-
export class FactoryClient {
|
|
30
|
-
static CreateClientToConektaObj(data) {
|
|
31
|
-
const o = {};
|
|
32
|
-
if (data.name && data.name.length > 0)
|
|
33
|
-
o.name = data.name;
|
|
34
|
-
if (data.username && data.name.length > 0)
|
|
35
|
-
o.username = data.username;
|
|
36
|
-
if (data.email && data.email.length > 0)
|
|
37
|
-
o.email = data.email;
|
|
38
|
-
if (data.phone && data.phone.length > 0)
|
|
39
|
-
o.phone = String(data.phone);
|
|
40
|
-
if (data.curp && data.curp.length > 0)
|
|
41
|
-
o.curp = data.curp;
|
|
42
|
-
if (data.userReferences && data.userReferences.length > 0)
|
|
43
|
-
o.userReferences = data.userReferences;
|
|
44
|
-
if (data.contract)
|
|
45
|
-
o.contract = data.contract;
|
|
46
|
-
if (data.createdAt)
|
|
47
|
-
o.createdAt = data.createdAt;
|
|
48
|
-
if (data.lastLogin)
|
|
49
|
-
o.lastLogin = data.lastLogin;
|
|
50
|
-
if (data.conekta_id)
|
|
51
|
-
o.conekta_id = data.conekta_id;
|
|
52
|
-
return o;
|
|
53
|
-
}
|
|
54
|
-
static CreateClientFromFormObj(data, client) {
|
|
55
|
-
const o = {
|
|
56
|
-
id: "",
|
|
57
|
-
name: data["client"][0].name,
|
|
58
|
-
username: data["auth"][0].username,
|
|
59
|
-
password: data["auth"][0].password,
|
|
60
|
-
email: data["client"][0].email,
|
|
61
|
-
phone: String(data["client"][0].phone),
|
|
62
|
-
curp: data["client"][0].curp,
|
|
63
|
-
userReferences: data["client"][0].userReferences,
|
|
64
|
-
status: eClientStatus.ACTIVE
|
|
65
|
-
};
|
|
66
|
-
if (client != undefined) {
|
|
67
|
-
if (client.dynamic_id)
|
|
68
|
-
o.dynamic_id = client.dynamic_id;
|
|
69
|
-
if (client.dynamic_account)
|
|
70
|
-
o.dynamic_account = client.dynamic_account;
|
|
71
|
-
if (client.conekta_id)
|
|
72
|
-
o.conekta_id = client.conekta_id;
|
|
73
|
-
}
|
|
74
|
-
return o;
|
|
75
|
-
}
|
|
76
|
-
static CreateClientConektaObj(data, finalDate) {
|
|
77
|
-
const sources = {
|
|
78
|
-
type: "oxxo_recurrent",
|
|
79
|
-
expires_at: finalDate
|
|
80
|
-
};
|
|
81
|
-
return {
|
|
82
|
-
name: data.name,
|
|
83
|
-
email: data.email,
|
|
84
|
-
phone: data.phone,
|
|
85
|
-
contract: data.contract_temporary,
|
|
86
|
-
client_id: data.id,
|
|
87
|
-
payment_sources: [sources]
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
static MapperConektaClient(client, conekta) {
|
|
91
|
-
const o = client;
|
|
92
|
-
o.name = conekta.name;
|
|
93
|
-
o.email = conekta.email;
|
|
94
|
-
o.phone = conekta.phone;
|
|
95
|
-
o.conekta_id = conekta.id;
|
|
96
|
-
return {
|
|
97
|
-
client: o,
|
|
98
|
-
contract: cContract
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
static MapperTypeContCli_Client(_client) {
|
|
102
|
-
const client = {
|
|
103
|
-
id: _client.id,
|
|
104
|
-
name: _client.name,
|
|
105
|
-
username: _client.username,
|
|
106
|
-
email: _client.email,
|
|
107
|
-
phone: _client.phone,
|
|
108
|
-
curp: _client.curp,
|
|
109
|
-
userReferences: _client.userReferences,
|
|
110
|
-
status: _client.status,
|
|
111
|
-
contract: _client.contract,
|
|
112
|
-
reference: _client.reference,
|
|
113
|
-
references: _client.references,
|
|
114
|
-
conekta_id: _client.conekta_id,
|
|
115
|
-
dynamic_account: _client.dynamic_account,
|
|
116
|
-
token: _client.token,
|
|
117
|
-
contract_temporary: _client.contract_temporary,
|
|
118
|
-
lastLogin: _client.lastLogin,
|
|
119
|
-
dynamic_id: _client.dynamic_id,
|
|
120
|
-
createdAt: _client.createdAt,
|
|
121
|
-
payments: _client.payments,
|
|
122
|
-
password: _client.password,
|
|
123
|
-
contractUrl: _client.contractUrl,
|
|
124
|
-
dynamic_ref: _client.dynamic_ref,
|
|
125
|
-
exists: _client.exists,
|
|
126
|
-
passport_id: _client.passport_id,
|
|
127
|
-
};
|
|
128
|
-
return client;
|
|
129
|
-
}
|
|
130
|
-
static MapperDynamicClient(dynamic, client, contract, clientDyn, account) {
|
|
131
|
-
// const o: tyClientContract = cTyClientContract
|
|
132
|
-
/* Client ------------------------------------------------------ */
|
|
133
|
-
client.username = `${dynamic.pii.name} ${dynamic.pii.motherlastname} ${dynamic.pii.lastname}`;
|
|
134
|
-
client.phone = dynamic.pii.phone;
|
|
135
|
-
client.dynamic_id = dynamic.id;
|
|
136
|
-
client.curp = dynamic.pii.curp;
|
|
137
|
-
client.email = dynamic.pii.email;
|
|
138
|
-
if (account)
|
|
139
|
-
client.dynamic_account = account.id;
|
|
140
|
-
/* Auth ---------------------------------------------------------- */
|
|
141
|
-
/* Device -------------------------------------------------------- */
|
|
142
|
-
contract.device.IMEI = clientDyn.pii.imei;
|
|
143
|
-
contract.device.device = clientDyn.pii.model;
|
|
144
|
-
/* Contract ------------------------------------------------------ */
|
|
145
|
-
contract.by = clientDyn.pii.seller_name;
|
|
146
|
-
if (clientDyn.pii.fotografia_del_cliente_con_el_equipo != undefined) {
|
|
147
|
-
const oPhoto = clientDyn.pii.fotografia_del_cliente_con_el_equipo;
|
|
148
|
-
if (oPhoto != "") {
|
|
149
|
-
const _photo = JSON.parse(oPhoto);
|
|
150
|
-
if (_photo)
|
|
151
|
-
contract.photo = _photo[0].url;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
contract.address.state = dynamic.pii.state;
|
|
155
|
-
contract.address.city = dynamic.pii.city;
|
|
156
|
-
contract.address.street = dynamic.pii.street;
|
|
157
|
-
contract.address.ext = dynamic.pii.num_ext;
|
|
158
|
-
contract.address.zip = dynamic.pii.zipcode;
|
|
159
|
-
contract.address.neighbor = dynamic.pii.colony;
|
|
160
|
-
/* Financial ------------------------------------------------------ */
|
|
161
|
-
contract.dynamicAccount = Number(account?.id);
|
|
162
|
-
if (account?.config.installments) {
|
|
163
|
-
contract.financial.deadlines = {
|
|
164
|
-
weeks: account.config.installments,
|
|
165
|
-
interest: 0
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
if (account?.properties.expected_disbursed)
|
|
169
|
-
contract.financial.total = account?.properties.expected_disbursed;
|
|
170
|
-
if (account?.properties.principal_disbursed)
|
|
171
|
-
contract.financial.financed = account?.properties.principal_disbursed;
|
|
172
|
-
if (account?.properties.amount_commission_opening) {
|
|
173
|
-
contract.financial.initial = account?.properties.amount_commission_opening;
|
|
174
|
-
contract.financial.amount_commission_opening = account?.properties.amount_commission_opening;
|
|
175
|
-
}
|
|
176
|
-
contract.financial.interest_rate = Number(clientDyn.pii.interest_rate);
|
|
177
|
-
contract.financial.interest_arrears = account?.config.interest_arrears;
|
|
178
|
-
contract.financial.commission_opening = account?.config.commission_opening;
|
|
179
|
-
contract.financial.credit_type = account?.config.credit_type;
|
|
180
|
-
contract.financial.principal_disbursed = account?.properties.principal_disbursed;
|
|
181
|
-
contract.financial.expected_disbursed = account?.properties.expected_disbursed;
|
|
182
|
-
contract.financial.weeklyPayment = Number(clientDyn.pii.amount_by_period);
|
|
183
|
-
return {
|
|
184
|
-
client: client,
|
|
185
|
-
contract: contract,
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
static MapperFinancialContract(contract, account) {
|
|
189
|
-
contract.dynamicAccount = Number(account.id);
|
|
190
|
-
if (account.config.installments) {
|
|
191
|
-
contract.financial.deadlines = {
|
|
192
|
-
weeks: account.config.installments,
|
|
193
|
-
interest: 0
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
const total = account.config.financed_amount != undefined ? account.config.financed_amount : 0;
|
|
197
|
-
if (total > 0)
|
|
198
|
-
contract.financial.total = total;
|
|
199
|
-
// if (account.properties.expected_disbursed)
|
|
200
|
-
const expected_disbursed = account.properties.expected_disbursed != undefined ? account.properties.expected_disbursed : 0;
|
|
201
|
-
if (expected_disbursed > 0)
|
|
202
|
-
contract.financial.total = expected_disbursed;
|
|
203
|
-
contract.financial.expected_disbursed = expected_disbursed;
|
|
204
|
-
contract.financial.interest_rate = account.config.interest_rate;
|
|
205
|
-
contract.financial.interest_arrears = account.config.interest_arrears;
|
|
206
|
-
// if (account.properties.principal_disbursed)
|
|
207
|
-
if (account.properties.principal_disbursed > 0)
|
|
208
|
-
contract.financial.financed = account.properties.principal_disbursed;
|
|
209
|
-
contract.financial.principal_disbursed = account.properties.principal_disbursed;
|
|
210
|
-
const amount_commission_opening = account.properties.amount_commission_opening != undefined ? account.properties.amount_commission_opening : 0;
|
|
211
|
-
if (amount_commission_opening > 0)
|
|
212
|
-
contract.financial.initial = amount_commission_opening;
|
|
213
|
-
contract.financial.amount_commission_opening = amount_commission_opening;
|
|
214
|
-
contract.financial.interest_arrears = account.config.interest_arrears;
|
|
215
|
-
contract.financial.commission_opening = account.config.commission_opening;
|
|
216
|
-
contract.financial.credit_type = account.config.credit_type;
|
|
217
|
-
contract.financial.clabe = String(account.properties.clabe);
|
|
218
|
-
return contract.financial;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhdmNyZWRpdC1saWIvc3JjL2xpYi92MS91dGlsL1V0aWxDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGlCQUFpQixFQUFxQyxNQUFNLHFCQUFxQixDQUFDO0FBRTFGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFtQixNQUFNLG9CQUFvQixDQUFDO0FBSW5FLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBWTtJQUM5QixFQUFFLEVBQUUsRUFBRTtJQUNOLElBQUksRUFBRSxFQUFFO0lBQ1IsUUFBUSxFQUFFLEVBQUU7SUFDWixLQUFLLEVBQUUsRUFBRTtJQUNULEtBQUssRUFBRSxFQUFFO0lBQ1QsSUFBSSxFQUFFLEVBQUU7SUFDUixrQkFBa0IsRUFBRSxFQUFFO0lBQ3RCLFVBQVUsRUFBRSxFQUFFO0lBQ2QsY0FBYyxFQUFFLEVBQUU7SUFDbEIsTUFBTSxFQUFFLEVBQUU7Q0FDWCxDQUFBO0FBT0QsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFtQjtJQUM1QyxJQUFJLEVBQUUsRUFBRTtJQUNSLEtBQUssRUFBRSxFQUFFO0lBQ1QsWUFBWSxFQUFFLEVBQUU7Q0FDakIsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBbUI7SUFDNUMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixTQUFTLEVBQUUsT0FBTztDQUNuQixDQUFBO0FBT0QsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFvQjtJQUM5QyxNQUFNLEVBQUUsT0FBTztJQUNmLFFBQVEsRUFBRSxTQUFTO0NBQ3BCLENBQUE7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQUVqQixNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBYTtRQUNsRCxNQUFNLENBQUMsR0FBUSxFQUFFLENBQUE7UUFDakIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxDQUFDLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDbEcsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakQsSUFBSSxJ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LENBQUMsQ0FBQyxDQUFBO1FBRTlHLElBQUkseUJBQXlCLEdBQUcsQ0FBQztZQUMvQixRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyx5QkFBeUIsQ0FBQTtRQUV4RCxRQUFRLENBQUMsU0FBUyxDQUFDLHlCQUF5QixHQUFHLHlCQUF5QixDQUFBO1FBRXhFLFFBQVEsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQTtRQUNyRSxRQUFRLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUE7UUFDekUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUE7UUFFM0QsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBTSxDQUFDLENBQUE7UUFFNUQsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFBO0lBQzNCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b0NsaWVudCwgb1VzZXJSZWZlcmVuY2V9IGZyb20gJy4uL29iamVjdHMvb0NsaWVudCc7XG5pbXBvcnQge2NDb25la3RhUmVjdXJyZW50LCBpQ29uZWt0YVJlY3VycmVudCwgaUNvbmVrdGFTb3VyY2VzfSBmcm9tICcuLi9vYmplY3RzL29Db25la3RhJztcbmltcG9ydCB7b0NvbnRyYWN0fSBmcm9tICcuLi9vYmplY3RzL29Db250cmFjdCc7XG5pbXBvcnQge2NDb250cmFjdH0gZnJvbSAnLi9VdGlsQ29udHJhY3QnO1xuaW1wb3J0IHtlQ2xpZW50U3RhdHVzLCB0eUNsaWVudENvbnRyYWN0fSBmcm9tICcuLi9vYmplY3RzL29HbG9iYWwnO1xuaW1wb3J0IHtJRENBY2NvdW50LCBJRENDbGllbnR9IGZyb20gJy4vVXRpbER5bmFtaUNvcmUnO1xuaW1wb3J0IHtvRmluYW5jaWFsfSBmcm9tICcuLi9vYmplY3RzL29GaW5hbmNpYWwnO1xuXG5leHBvcnQgY29uc3QgY0NsaWVudDogb0NsaWVudCA9IHtcbiAgaWQ6IFwiXCIsXG4gIG5hbWU6IFwiXCIsXG4gIHVzZXJuYW1lOiBcIlwiLFxuICBlbWFpbDogXCJcIixcbiAgcGhvbmU6IFwiXCIsXG4gIGN1cnA6IFwiXCIsXG4gIGNvbnRyYWN0X3RlbXBvcmFyeTogXCJcIixcbiAgY29uZWt0YV9pZDogXCJcIixcbiAgdXNlclJlZmVyZW5jZXM6IFtdLFxuICBzdGF0dXM6IFwiXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBvQ2xpZW50Q29uZWt0YSB7XG4gIHJhdmNyZWRpdDogb0NsaWVudDtcbiAgY29uZWt0YTogaUNvbmVrdGFSZWN1cnJlbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBjVXNlclJlZmVyZW5jZTogb1VzZXJSZWZlcmVuY2UgPSB7XG4gIG5hbWU6IFwiXCIsXG4gIHBob25lOiBcIlwiLFxuICByZWxhdGlvbnNoaXA6IFwiXCJcbn1cblxuZXhwb3J0IGNvbnN0IGNDbGllbnRDb25la3RhOiBvQ2xpZW50Q29uZWt0YSA9IHtcbiAgY29uZWt0YTogY0NvbmVrdGFSZWN1cnJlbnQsXG4gIHJhdmNyZWRpdDogY0NsaWVudFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIGlDbGllbnRDb250cmFjdCB7XG4gIGNsaWVudDogb0NsaWVudDtcbiAgY29udHJhY3Q6IG9Db250cmFjdDtcbn1cblxuZXhwb3J0IGNvbnN0IGNDbGllbnRDb250cmFjdDogaUNsaWVudENvbnRyYWN0ID0ge1xuICBjbGllbnQ6IGNDbGllbnQsXG4gIGNvbnRyYWN0OiBjQ29udHJhY3QsXG59XG5cbmV4cG9ydCBjbGFzcyBGYWN0b3J5Q2xpZW50IHtcblxuICBwdWJsaWMgc3RhdGljIENyZWF0ZUNsaWVudFRvQ29uZWt0YU9iaihkYXRhOiBvQ2xpZW50KSB7XG4gICAgY29uc3QgbzogYW55ID0ge31cbiAgICBpZiAoZGF0YS5uYW1lICYmIGRhdGEubmFtZS5sZW5ndGggPiAwKSBvLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgaWYgKGRhdGEudXNlcm5hbWUgJiYgZGF0YS5uYW1lLmxlbmd0aCA+IDApIG8udXNlcm5hbWUgPSBkYXRhLnVzZXJuYW1lO1xuICAgIGlmIChkYXRhLmVtYWlsICYmIGRhdGEuZW1haWwubGVuZ3RoID4gMCkgby5lbWFpbCA9IGRhdGEuZW1haWw7XG4gICAgaWYgKGRhdGEucGhvbmUgJiYgZGF0YS5waG9uZS5sZW5ndGggPiAwKSBvLnBob25lID0gU3RyaW5nKGRhdGEucGhvbmUpO1xuICAgIGlmIChkYXRhLmN1cnAgJiYgZGF0YS5jdXJwLmxlbmd0aCA+IDApIG8uY3VycCA9IGRhdGEuY3VycDtcbiAgICBpZiAoZGF0YS51c2VyUmVmZXJlbmNlcyAmJiBkYXRhLnVzZXJSZWZlcmVuY2VzLmxlbmd0aCA+IDApIG8udXNlclJlZmVyZW5jZXMgPSBkYXRhLnVzZXJSZWZlcmVuY2VzO1xuICAgIGlmIChkYXRhLmNvbnRyYWN0KSBvLmNvbnRyYWN0ID0gZGF0YS5jb250cmFjdDtcbiAgICBpZiAoZGF0YS5jcmVhdGVkQXQpIG8uY3JlYXRlZEF0ID0gZGF0YS5jcmVhdGVkQXQ7XG4gICAgaWYgKGRhdGEubGFzdExvZ2luKSBvLmxhc3RMb2dpbiA9IGRhdGEubGFzdExvZ2luO1xuICAgIGlmIChkYXRhLmNvbmVrdGFfaWQpIG8uY29uZWt0YV9pZCA9IGRhdGEuY29uZWt0YV9pZDtcblxuICAgIHJldHVybiBvXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIENyZWF0ZUNsaWVudEZyb21Gb3JtT2JqKGRhdGE6IGFueSwgY2xpZW50Pzogb0NsaWVudCk6IG9DbGllbnQge1xuICAgIGNvbnN0IG86IG9DbGllbnQgPSB7XG4gICAgICBpZDogXCJcIixcbiAgICAgIG5hbWU6IGRhdGFbXCJjbGllbnRcIl1bMF0ubmFtZSxcbiAgICAgIHVzZXJuYW1lOiBkYXRhW1wiYXV0aFwiXVswXS51c2VybmFtZSxcbiAgICAgIHBhc3N3b3JkOiBkYXRhW1wiYXV0aFwiXVswXS5wYXNzd29yZCxcbiAgICAgIGVtYWlsOiBkYXRhW1wiY2xpZW50XCJdWzBdLmVtYWlsLFxuICAgICAgcGhvbmU6IFN0cmluZyhkYXRhW1wiY2xpZW50XCJdWzBdLnBob25lKSxcbiAgICAgIGN1cnA6IGRhdGFbXCJjbGllbnRcIl1bMF0uY3VycCxcbiAgICAgIHVzZXJSZWZlcmVuY2VzOiBkYXRhW1wiY2xpZW50XCJdWzBdLnVzZXJSZWZlcmVuY2VzLFxuICAgICAgc3RhdHVzOiBlQ2xpZW50U3RhdHVzLkFDVElWRVxuICAgIH1cblxuICAgIGlmIChjbGllbnQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoY2xpZW50LmR5bmFtaWNfaWQpIG8uZHluYW1pY19pZCA9IGNsaWVudC5keW5hbWljX2lkO1xuICAgICAgaWYgKGNsaWVudC5keW5hbWljX2FjY291bnQpIG8uZHluYW1pY19hY2NvdW50ID0gY2xpZW50LmR5bmFtaWNfYWNjb3VudDtcbiAgICAgIGlmIChjbGllbnQuY29uZWt0YV9pZCkgby5jb25la3RhX2lkID0gY2xpZW50LmNvbmVrdGFfaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgQ3JlYXRlQ2xpZW50Q29uZWt0YU9iaihkYXRhOiBvQ2xpZW50LCBmaW5hbERhdGU6IG51bWJlcikge1xuICAgIGNvbnN0IHNvdXJjZXM6IGlDb25la3RhU291cmNlcyA9IHtcbiAgICAgIHR5cGU6IFwib3h4b19yZWN1cnJlbnRcIixcbiAgICAgIGV4cGlyZXNfYXQ6IGZpbmFsRGF0ZVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogZGF0YS5uYW1lLFxuICAgICAgZW1haWw6IGRhdGEuZW1haWwsXG4gICAgICBwaG9uZTogZGF0YS5waG9uZSxcbiAgICAgIGNvbnRyYWN0OiBkYXRhLmNvbnRyYWN0X3RlbXBvcmFyeSxcbiAgICAgIGNsaWVudF9pZDogZGF0YS5pZCxcbiAgICAgIHBheW1lbnRfc291cmNlczogW3NvdXJjZXNdXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBNYXBwZXJDb25la3RhQ2xpZW50KFxuICAgIGNsaWVudDogb0NsaWVudCxcbiAgICBjb25la3RhOiBpQ29uZWt0YVJlY3VycmVudCxcbiAgKTogaUNsaWVudENvbnRyYWN0IHtcbiAgICBjb25zdCBvOiBvQ2xpZW50ID0gY2xpZW50XG5cbiAgICBvLm5hbWUgPSBjb25la3RhLm5hbWVcbiAgICBvLmVtYWlsID0gY29uZWt0YS5lbWFpbFxuICAgIG8ucGhvbmUgPSBjb25la3RhLnBob25lXG4gICAgby5jb25la3RhX2lkID0gY29uZWt0YS5pZFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNsaWVudDogbyxcbiAgICAgIGNvbnRyYWN0OiBjQ29udHJhY3RcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIE1hcHBlclR5cGVDb250Q2xpX0NsaWVudChfY2xpZW50OiB0eUNsaWVudENvbnRyYWN0KTogb0NsaWVudCB7XG4gICAgY29uc3QgY2xpZW50OiBvQ2xpZW50ID0ge1xuICAgICAgaWQ6IF9jbGllbnQuaWQsXG4gICAgICBuYW1lOiBfY2xpZW50Lm5hbWUsXG4gICAgICB1c2VybmFtZTogX2NsaWVudC51c2VybmFtZSxcbiAgICAgIGVtYWlsOiBfY2xpZW50LmVtYWlsLFxuICAgICAgcGhvbmU6IF9jbGllbnQucGhvbmUsXG4gICAgICBjdXJwOiBfY2xpZW50LmN1cnAsXG4gICAgICB1c2VyUmVmZXJlbmNlczogX2NsaWVudC51c2VyUmVmZXJlbmNlcyxcbiAgICAgIHN0YXR1czogX2NsaWVudC5zdGF0dXMsXG4gICAgICBjb250cmFjdDogX2NsaWVudC5jb250cmFjdCxcbiAgICAgIHJlZmVyZW5jZTogX2NsaWVudC5yZWZlcmVuY2UsXG4gICAgICByZWZlcmVuY2VzOiBfY2xpZW50LnJlZmVyZW5jZXMsXG4gICAgICBjb25la3RhX2lkOiBfY2xpZW50LmNvbmVrdGFfaWQsXG4gICAgICBkeW5hbWljX2FjY291bnQ6IF9jbGllbnQuZHluYW1pY19hY2NvdW50LFxuICAgICAgdG9rZW46IF9jbGllbnQudG9rZW4sXG4gICAgICBjb250cmFjdF90ZW1wb3Jhcnk6IF9jbGllbnQuY29udHJhY3RfdGVtcG9yYXJ5LFxuICAgICAgbGFzdExvZ2luOiBfY2xpZW50Lmxhc3RMb2dpbixcbiAgICAgIGR5bmFtaWNfaWQ6IF9jbGllbnQuZHluYW1pY19pZCxcbiAgICAgIGNyZWF0ZWRBdDogX2NsaWVudC5jcmVhdGVkQXQsXG4gICAgICBwYXltZW50czogX2NsaWVudC5wYXltZW50cyxcbiAgICAgIHBhc3N3b3JkOiBfY2xpZW50LnBhc3N3b3JkLFxuICAgICAgY29udHJhY3RVcmw6IF9jbGllbnQuY29udHJhY3RVcmwsXG4gICAgICBkeW5hbWljX3JlZjogX2NsaWVudC5keW5hbWljX3JlZixcbiAgICAgIGV4aXN0czogX2NsaWVudC5leGlzdHMsXG4gICAgICBwYXNzcG9ydF9pZDogX2NsaWVudC5wYXNzcG9ydF9pZCxcbiAgICB9XG5cbiAgICByZXR1cm4gY2xpZW50XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIE1hcHBlckR5bmFtaWNDbGllbnQoXG4gICAgZHluYW1pYzogSURDQ2xpZW50LFxuICAgIGNsaWVudDogb0NsaWVudCxcbiAgICBjb250cmFjdDogb0NvbnRyYWN0LFxuICAgIGNsaWVudER5bj86IElEQ0NsaWVudCxcbiAgICBhY2NvdW50PzogSURDQWNjb3VudCxcbiAgKTogaUNsaWVudENvbnRyYWN0IHtcbiAgICAvLyBjb25zdCBvOiB0eUNsaWVudENvbnRyYWN0ID0gY1R5Q2xpZW50Q29udHJhY3RcblxuICAgIC8qIENsaWVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICBjbGllbnQudXNlcm5hbWUgPSBgJHtkeW5hbWljLnBpaS5uYW1lfSAke2R5bmFtaWMucGlpLm1vdGhlcmxhc3RuYW1lfSAke2R5bmFtaWMucGlpLmxhc3RuYW1lfWBcbiAgICBjbGllbnQucGhvbmUgPSBkeW5hbWljLnBpaS5waG9uZSBhcyBzdHJpbmdcbiAgICBjbGllbnQuZHluYW1pY19pZCA9IGR5bmFtaWMuaWRcbiAgICBjbGllbnQuY3VycCA9IGR5bmFtaWMucGlpLmN1cnBcbiAgICBjbGllbnQuZW1haWwgPSBkeW5hbWljLnBpaS5lbWFpbFxuXG4gICAgaWYgKGFjY291bnQpXG4gICAgICBjbGllbnQuZHluYW1pY19hY2NvdW50ID0gYWNjb3VudC5pZFxuXG4gICAgLyogQXV0aCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuICAgIC8qIERldmljZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAgIGNvbnRyYWN0LmRldmljZS5JTUVJID0gY2xpZW50RHluIS5waWkuaW1laVxuICAgIGNvbnRyYWN0LmRldmljZS5kZXZpY2UgPSBjbGllbnREeW4hLnBpaS5tb2RlbFxuXG4gICAgLyogQ29udHJhY3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gICAgY29udHJhY3QuYnkgPSBjbGllbnREeW4hLnBpaS5zZWxsZXJfbmFtZVxuXG4gICAgaWYgKGNsaWVudER5biEucGlpLmZvdG9ncmFmaWFfZGVsX2NsaWVudGVfY29uX2VsX2VxdWlwbyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9QaG90byA9IGNsaWVudER5biEucGlpLmZvdG9ncmFmaWFfZGVsX2NsaWVudGVfY29uX2VsX2VxdWlwbyFcbiAgICAgIGlmIChvUGhvdG8gIT0gXCJcIikge1xuICAgICAgICBjb25zdCBfcGhvdG8gPSBKU09OLnBhcnNlKG9QaG90bylcbiAgICAgICAgaWYgKF9waG90bylcbiAgICAgICAgICBjb250cmFjdC5waG90byA9IF9waG90b1swXS51cmxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb250cmFjdC5hZGRyZXNzLnN0YXRlID0gZHluYW1pYy5waWkuc3RhdGVcbiAgICBjb250cmFjdC5hZGRyZXNzLmNpdHkgPSBkeW5hbWljLnBpaS5jaXR5XG4gICAgY29udHJhY3QuYWRkcmVzcy5zdHJlZXQgPSBkeW5hbWljLnBpaS5zdHJlZXRcbiAgICBjb250cmFjdC5hZGRyZXNzLmV4dCA9IGR5bmFtaWMucGlpLm51bV9leHQgYXMgc3RyaW5nXG4gICAgY29udHJhY3QuYWRkcmVzcy56aXAgPSBkeW5hbWljLnBpaS56aXBjb2RlIGFzIHN0cmluZ1xuICAgIGNvbnRyYWN0LmFkZHJlc3MubmVpZ2hib3IgPSBkeW5hbWljLnBpaS5jb2xvbnlcblxuICAgIC8qIEZpbmFuY2lhbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICBjb250cmFjdC5keW5hbWljQWNjb3VudCA9IE51bWJlcihhY2NvdW50Py5pZClcblxuICAgIGlmIChhY2NvdW50Py5jb25maWcuaW5zdGFsbG1lbnRzKSB7XG4gICAgICBjb250cmFjdC5maW5hbmNpYWwuZGVhZGxpbmVzID0ge1xuICAgICAgICB3ZWVrczogYWNjb3VudC5jb25maWcuaW5zdGFsbG1lbnRzLFxuICAgICAgICBpbnRlcmVzdDogMFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhY2NvdW50Py5wcm9wZXJ0aWVzLmV4cGVjdGVkX2Rpc2J1cnNlZClcbiAgICAgIGNvbnRyYWN0LmZpbmFuY2lhbC50b3RhbCA9IGFjY291bnQ/LnByb3BlcnRpZXMuZXhwZWN0ZWRfZGlzYnVyc2VkXG5cbiAgICBpZiAoYWNjb3VudD8ucHJvcGVydGllcy5wcmluY2lwYWxfZGlzYnVyc2VkKVxuICAgICAgY29udHJhY3QuZmluYW5jaWFsLmZpbmFuY2VkID0gYWNjb3VudD8ucHJvcGVydGllcy5wcmluY2lwYWxfZGlzYnVyc2VkXG5cbiAgICBpZiAoYWNjb3VudD8ucHJvcGVydGllcy5hbW91bnRfY29tbWlzc2lvbl9vcGVuaW5nKSB7XG4gICAgICBjb250cmFjdC5maW5hbmNpYWwuaW5pdGlhbCA9IGFjY291bnQ/LnByb3BlcnRpZXMuYW1vdW50X2NvbW1pc3Npb25fb3BlbmluZ1xuICAgICAgY29udHJhY3QuZmluYW5jaWFsLmFtb3VudF9jb21taXNzaW9uX29wZW5pbmcgPSBhY2NvdW50Py5wcm9wZXJ0aWVzLmFtb3VudF9jb21taXNzaW9uX29wZW5pbmdcbiAgICB9XG5cbiAgICBjb250cmFjdC5maW5hbmNpYWwuaW50ZXJlc3RfcmF0ZSA9IE51bWJlcihjbGllbnREeW4hLnBpaS5pbnRlcmVzdF9yYXRlKVxuICAgIGNvbnRyYWN0LmZpbmFuY2lhbC5pbnRlcmVzdF9hcnJlYXJzID0gYWNjb3VudD8uY29uZmlnLmludGVyZXN0X2FycmVhcnNcbiAgICBjb250cmFjdC5maW5hbmNpYWwuY29tbWlzc2lvbl9vcGVuaW5nID0gYWNjb3VudD8uY29uZmlnLmNvbW1pc3Npb25fb3BlbmluZ1xuICAgIGNvbnRyYWN0LmZpbmFuY2lhbC5jcmVkaXRfdHlwZSA9IGFjY291bnQ/LmNvbmZpZy5jcmVkaXRfdHlwZVxuXG4gICAgY29udHJhY3QuZmluYW5jaWFsLnByaW5jaXBhbF9kaXNidXJzZWQgPSBhY2NvdW50Py5wcm9wZXJ0aWVzLnByaW5jaXBhbF9kaXNidXJzZWRcbiAgICBjb250cmFjdC5maW5hbmNpYWwuZXhwZWN0ZWRfZGlzYnVyc2VkID0gYWNjb3VudD8ucHJvcGVydGllcy5leHBlY3RlZF9kaXNidXJzZWRcblxuICAgIGNvbnRyYWN0LmZpbmFuY2lhbC53ZWVrbHlQYXltZW50ID0gTnVtYmVyKGNsaWVudER5biEucGlpLmFtb3VudF9ieV9wZXJpb2QpXG5cbiAgICByZXR1cm4ge1xuICAgICAgY2xpZW50OiBjbGllbnQsXG4gICAgICBjb250cmFjdDogY29udHJhY3QsXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBNYXBwZXJGaW5hbmNpYWxDb250cmFjdChcbiAgICBjb250cmFjdDogb0NvbnRyYWN0LFxuICAgIGFjY291bnQ6IElEQ0FjY291bnQsXG4gICk6IG9GaW5hbmNpYWwge1xuXG4gICAgY29udHJhY3QuZHluYW1pY0FjY291bnQgPSBOdW1iZXIoYWNjb3VudC5pZClcblxuICAgIGlmIChhY2NvdW50LmNvbmZpZy5pbnN0YWxsbWVudHMpIHtcbiAgICAgIGNvbnRyYWN0LmZpbmFuY2lhbC5kZWFkbGluZXMgPSB7XG4gICAgICAgIHdlZWtzOiBhY2NvdW50LmNvbmZpZy5pbnN0YWxsbWVudHMsXG4gICAgICAgIGludGVyZXN0OiAwXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdG90YWwgPVxuICAgICAgYWNjb3VudC5jb25maWcuZmluYW5jZWRfYW1vdW50ICE9IHVuZGVmaW5lZCA/IGFjY291bnQuY29uZmlnLmZpbmFuY2VkX2Ftb3VudCA6IDBcblxuICAgIGlmICh0b3RhbCA+IDApXG4gICAgICBjb250cmFjdC5maW5hbmNpYWwudG90YWwgPSB0b3RhbFxuXG4gICAgLy8gaWYgKGFjY291bnQucHJvcGVydGllcy5leHBlY3RlZF9kaXNidXJzZWQpXG4gICAgY29uc3QgZXhwZWN0ZWRfZGlzYnVyc2VkID1cbiAgICAgIGFjY291bnQucHJvcGVydGllcy5leHBlY3RlZF9kaXNidXJzZWQgIT0gdW5kZWZpbmVkID8gYWNjb3VudC5wcm9wZXJ0aWVzLmV4cGVjdGVkX2Rpc2J1cnNlZCA6IDBcblxuICAgIGlmIChleHBlY3RlZF9kaXNidXJzZWQgPiAwKSBjb250cmFjdC5maW5hbmNpYWwudG90YWwgPSBleHBlY3RlZF9kaXNidXJzZWRcbiAgICBjb250cmFjdC5maW5hbmNpYWwuZXhwZWN0ZWRfZGlzYnVyc2VkID0gZXhwZWN0ZWRfZGlzYnVyc2VkXG5cbiAgICBjb250cmFjdC5maW5hbmNpYWwuaW50ZXJlc3RfcmF0ZSA9IGFjY291bnQuY29uZmlnLmludGVyZXN0X3JhdGVcbiAgICBjb250cmFjdC5maW5hbmNpYWwuaW50ZXJlc3RfYXJyZWFycyA9IGFjY291bnQuY29uZmlnLmludGVyZXN0X2FycmVhcnNcblxuICAgIC8vIGlmIChhY2NvdW50LnByb3BlcnRpZXMucHJpbmNpcGFsX2Rpc2J1cnNlZClcbiAgICBpZiAoYWNjb3VudC5wcm9wZXJ0aWVzLnByaW5jaXBhbF9kaXNidXJzZWQgPiAwKVxuICAgICAgY29udHJhY3QuZmluYW5jaWFsLmZpbmFuY2VkID0gYWNjb3VudC5wcm9wZXJ0aWVzLnByaW5jaXBhbF9kaXNidXJzZWRcblxuICAgIGNvbnRyYWN0LmZpbmFuY2lhbC5wcmluY2lwYWxfZGlzYnVyc2VkID0gYWNjb3VudC5wcm9wZXJ0aWVzLnByaW5jaXBhbF9kaXNidXJzZWRcblxuICAgIGNvbnN0IGFtb3VudF9jb21taXNzaW9uX29wZW5pbmcgPVxuICAgICAgYWNjb3VudC5wcm9wZXJ0aWVzLmFtb3VudF9jb21taXNzaW9uX29wZW5pbmcgIT0gdW5kZWZpbmVkID8gYWNjb3VudC5wcm9wZXJ0aWVzLmFtb3VudF9jb21taXNzaW9uX29wZW5pbmcgOiAwXG5cbiAgICBpZiAoYW1vdW50X2NvbW1pc3Npb25fb3BlbmluZyA+IDApXG4gICAgICBjb250cmFjdC5maW5hbmNpYWwuaW5pdGlhbCA9IGFtb3VudF9jb21taXNzaW9uX29wZW5pbmdcblxuICAgIGNvbnRyYWN0LmZpbmFuY2lhbC5hbW91bnRfY29tbWlzc2lvbl9vcGVuaW5nID0gYW1vdW50X2NvbW1pc3Npb25fb3BlbmluZ1xuXG4gICAgY29udHJhY3QuZmluYW5jaWFsLmludGVyZXN0X2FycmVhcnMgPSBhY2NvdW50LmNvbmZpZy5pbnRlcmVzdF9hcnJlYXJzXG4gICAgY29udHJhY3QuZmluYW5jaWFsLmNvbW1pc3Npb25fb3BlbmluZyA9IGFjY291bnQuY29uZmlnLmNvbW1pc3Npb25fb3BlbmluZ1xuICAgIGNvbnRyYWN0LmZpbmFuY2lhbC5jcmVkaXRfdHlwZSA9IGFjY291bnQuY29uZmlnLmNyZWRpdF90eXBlXG5cbiAgICBjb250cmFjdC5maW5hbmNpYWwuY2xhYmUgPSBTdHJpbmcoYWNjb3VudC5wcm9wZXJ0aWVzLmNsYWJlISlcblxuICAgIHJldHVybiBjb250cmFjdC5maW5hbmNpYWxcbiAgfVxufVxuIl19
|