@magic-xpa/utils 4.1200.0-dev4120.21 → 4.1200.0-dev4120.212
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/magic-xpa-utils.mjs +1222 -72
- package/fesm2022/magic-xpa-utils.mjs.map +1 -1
- package/index.d.ts +3 -0
- package/package.json +2 -4
- package/src/MsgInterface.d.ts +5 -0
- package/src/StrUtil.d.ts +1 -0
- package/src/XMLConstants.d.ts +2 -0
- package/esm2022/index.mjs +0 -27
- package/esm2022/magic-xpa-utils.mjs +0 -2
- package/esm2022/src/Base64.mjs +0 -164
- package/esm2022/src/ChoiceUtils.mjs +0 -79
- package/esm2022/src/Constants.mjs +0 -74
- package/esm2022/src/DateTimeUtils.mjs +0 -54
- package/esm2022/src/DateUtil.mjs +0 -58
- package/esm2022/src/InternalInterface.mjs +0 -341
- package/esm2022/src/JSON_Utils.mjs +0 -7
- package/esm2022/src/Logger.mjs +0 -216
- package/esm2022/src/MagicConstants.mjs +0 -12
- package/esm2022/src/Misc.mjs +0 -98
- package/esm2022/src/MsgInterface.mjs +0 -192
- package/esm2022/src/PICInterface.mjs +0 -60
- package/esm2022/src/PlatformUtils.mjs +0 -11
- package/esm2022/src/Queue.mjs +0 -28
- package/esm2022/src/Randomizer.mjs +0 -34
- package/esm2022/src/RequestInfo.mjs +0 -28
- package/esm2022/src/Rtf.mjs +0 -614
- package/esm2022/src/StorageAttribute.mjs +0 -84
- package/esm2022/src/StrUtil.mjs +0 -453
- package/esm2022/src/SyncExecutionHelper.mjs +0 -21
- package/esm2022/src/UtilDateJpn.mjs +0 -232
- package/esm2022/src/UtilImeJpn.mjs +0 -13
- package/esm2022/src/UtilStrByteMode.mjs +0 -300
- package/esm2022/src/XMLConstants.mjs +0 -169
- package/esm2022/src/Xml/XmlParser.mjs +0 -247
- package/esm2022/src/enums.mjs +0 -1763
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { PICInterface } from "./PICInterface";
|
|
2
|
-
import { UtilStrByteMode } from "./UtilStrByteMode";
|
|
3
|
-
import { NNumber } from "@magic-xpa/mscorelib";
|
|
4
|
-
const MAX_GENGO = 6;
|
|
5
|
-
export class UtilDateJpn {
|
|
6
|
-
static _instance = null;
|
|
7
|
-
static JweekStr = [
|
|
8
|
-
" ", "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"
|
|
9
|
-
];
|
|
10
|
-
static JmonthStr = [
|
|
11
|
-
"", " 1月", " 2月", " 3月", " 4月", " 5月", " 6月", " 7月", " 8月", " 9月", "10月", "11月", "12月"
|
|
12
|
-
];
|
|
13
|
-
static GengoStr = [
|
|
14
|
-
["?", "?", "????"],
|
|
15
|
-
["M", "m", "明治"],
|
|
16
|
-
["T", "t", "大正"],
|
|
17
|
-
["S", "s", "昭和"],
|
|
18
|
-
["H", "h", "平成"],
|
|
19
|
-
["R", "r", "令和"],
|
|
20
|
-
["?", "?", "??"],
|
|
21
|
-
["?", "?", "??"],
|
|
22
|
-
["?", "?", "??"]
|
|
23
|
-
];
|
|
24
|
-
static StartDayOfGengo = [
|
|
25
|
-
[1, 1, 1, 1],
|
|
26
|
-
[1868, 9, 8, 252],
|
|
27
|
-
[1912, 6, 30, 212],
|
|
28
|
-
[1926, 12, 25, 359],
|
|
29
|
-
[1989, 1, 8, 8],
|
|
30
|
-
[2019, 5, 1, 121],
|
|
31
|
-
[0, 0, 0, 0],
|
|
32
|
-
[0, 0, 0, 0],
|
|
33
|
-
[0, 0, 0, 0]
|
|
34
|
-
];
|
|
35
|
-
MaxGengo = MAX_GENGO;
|
|
36
|
-
static getInstance() {
|
|
37
|
-
if (UtilDateJpn._instance === null) {
|
|
38
|
-
UtilDateJpn._instance = new UtilDateJpn();
|
|
39
|
-
}
|
|
40
|
-
return UtilDateJpn._instance;
|
|
41
|
-
}
|
|
42
|
-
static getArrayDow() {
|
|
43
|
-
return UtilDateJpn.JweekStr;
|
|
44
|
-
}
|
|
45
|
-
static getStrDow(intIdx) {
|
|
46
|
-
let flag = intIdx < 0 || 7 < intIdx;
|
|
47
|
-
if (flag) {
|
|
48
|
-
intIdx = 0;
|
|
49
|
-
}
|
|
50
|
-
return UtilDateJpn.JweekStr[intIdx];
|
|
51
|
-
}
|
|
52
|
-
static convertStrMonth(month) {
|
|
53
|
-
let flag = month < 0 || 12 < month;
|
|
54
|
-
if (flag) {
|
|
55
|
-
month = 0;
|
|
56
|
-
}
|
|
57
|
-
return UtilDateJpn.JmonthStr[month];
|
|
58
|
-
}
|
|
59
|
-
date_jpn_year_ofs(intYear, intDoy) {
|
|
60
|
-
let result;
|
|
61
|
-
if (intYear < 1 || intDoy < 1) {
|
|
62
|
-
result = 0;
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
let num = this.MaxGengo - 1;
|
|
66
|
-
while (intYear < UtilDateJpn.StartDayOfGengo[num][0]) {
|
|
67
|
-
num = num - 1;
|
|
68
|
-
}
|
|
69
|
-
if (intYear === UtilDateJpn.StartDayOfGengo[num][0] && intDoy < UtilDateJpn.StartDayOfGengo[num][3]) {
|
|
70
|
-
num = num - 1;
|
|
71
|
-
}
|
|
72
|
-
result = intYear - UtilDateJpn.StartDayOfGengo[num][0] + 1;
|
|
73
|
-
}
|
|
74
|
-
return result;
|
|
75
|
-
}
|
|
76
|
-
date_jpn_yr_2_a(intYear, intDoy, isKanji) {
|
|
77
|
-
let num;
|
|
78
|
-
if (intYear < 1 || intDoy < 1) {
|
|
79
|
-
num = 0;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
num = this.MaxGengo - 1;
|
|
83
|
-
while (intYear < UtilDateJpn.StartDayOfGengo[num][0]) {
|
|
84
|
-
num = num - 1;
|
|
85
|
-
}
|
|
86
|
-
if (intYear === UtilDateJpn.StartDayOfGengo[num][0] && intDoy < UtilDateJpn.StartDayOfGengo[num][3]) {
|
|
87
|
-
num = num - 1;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
let result;
|
|
91
|
-
if (isKanji) {
|
|
92
|
-
result = UtilDateJpn.GengoStr[num][2];
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
result = UtilDateJpn.GengoStr[num][0];
|
|
96
|
-
}
|
|
97
|
-
return result;
|
|
98
|
-
}
|
|
99
|
-
date_jpn_yr_4_a(ucp_str, s_len) {
|
|
100
|
-
let i = this.MaxGengo - 1;
|
|
101
|
-
if (s_len > 0) {
|
|
102
|
-
if (s_len > 1) {
|
|
103
|
-
ucp_str = UtilStrByteMode.leftB(ucp_str, s_len);
|
|
104
|
-
}
|
|
105
|
-
while (i > 0) {
|
|
106
|
-
if (s_len === 1) {
|
|
107
|
-
if (ucp_str === UtilDateJpn.GengoStr[i][0] || ucp_str === UtilDateJpn.GengoStr[i][1]) {
|
|
108
|
-
break;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
if (s_len > 1) {
|
|
113
|
-
let text = UtilStrByteMode.leftB(UtilDateJpn.GengoStr[i][2], s_len);
|
|
114
|
-
if (ucp_str === text) {
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
i = i - 1;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
let result;
|
|
123
|
-
if (i > 0) {
|
|
124
|
-
result = UtilDateJpn.StartDayOfGengo[i][0];
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
const text = ucp_str.substr(0, 1);
|
|
128
|
-
if (text === " " || text === "?") {
|
|
129
|
-
result = 1;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
result = 0;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return result;
|
|
136
|
-
}
|
|
137
|
-
static getEraNameStrInDate(strDate, strPicture, intStartPos) {
|
|
138
|
-
let result = null;
|
|
139
|
-
let intPicIdxOfs = 0;
|
|
140
|
-
let i = intStartPos;
|
|
141
|
-
while (i + intPicIdxOfs < strPicture.length) {
|
|
142
|
-
let intLetters;
|
|
143
|
-
if (strPicture.charCodeAt(i + intPicIdxOfs) === PICInterface.PIC_JY1) {
|
|
144
|
-
intLetters = 1;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
if (strPicture.charCodeAt(i + intPicIdxOfs) === PICInterface.PIC_JY2) {
|
|
148
|
-
intLetters = 1;
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
if (strPicture.charCodeAt(i + intPicIdxOfs) === PICInterface.PIC_JY4) {
|
|
152
|
-
intLetters = 2;
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
if (i < strDate.length) {
|
|
156
|
-
if (!UtilStrByteMode.isHalfWidth(strDate[i]) && UtilStrByteMode.isHalfWidth(strPicture[i + intPicIdxOfs])) {
|
|
157
|
-
intPicIdxOfs = intPicIdxOfs + 1;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
i = i + 1;
|
|
161
|
-
continue;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
result = strDate.substr(i, intLetters);
|
|
166
|
-
break;
|
|
167
|
-
}
|
|
168
|
-
return result;
|
|
169
|
-
}
|
|
170
|
-
static getEraNameLenInPicture(strPicture, intStartPos) {
|
|
171
|
-
let intLetters = 0;
|
|
172
|
-
for (let i = intStartPos; i < strPicture.length; i = i + 1) {
|
|
173
|
-
if (strPicture.charCodeAt(i) === PICInterface.PIC_JY1) {
|
|
174
|
-
intLetters = 1;
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
if (strPicture.charCodeAt(i) === PICInterface.PIC_JY2) {
|
|
178
|
-
intLetters = 2;
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
if (strPicture.charCodeAt(i) === PICInterface.PIC_JY4) {
|
|
182
|
-
intLetters = 4;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
if (intLetters > 0) {
|
|
187
|
-
break;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return intLetters;
|
|
191
|
-
}
|
|
192
|
-
getStartYearOfEra(strDate, strPicture) {
|
|
193
|
-
let eraNameStrInDate = UtilDateJpn.getEraNameStrInDate(strDate, strPicture, 0);
|
|
194
|
-
let result;
|
|
195
|
-
if (eraNameStrInDate === null) {
|
|
196
|
-
result = 0;
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
let eraNameLenInPicture = UtilDateJpn.getEraNameLenInPicture(strPicture, 0);
|
|
200
|
-
if (eraNameLenInPicture === 0) {
|
|
201
|
-
result = 0;
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
let intStartYearOfEra = this.date_jpn_yr_4_a(eraNameStrInDate, eraNameLenInPicture);
|
|
205
|
-
result = intStartYearOfEra;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return result;
|
|
209
|
-
}
|
|
210
|
-
addExtraGengo(strExtraGengo) {
|
|
211
|
-
let strGengoInfo = strExtraGengo.split(';');
|
|
212
|
-
for (let i = 0; i < strGengoInfo.length; i = i + 1) {
|
|
213
|
-
if (strGengoInfo[i].length > 0) {
|
|
214
|
-
let strTok = strGengoInfo[i].split(',');
|
|
215
|
-
if (strTok.length === 3 && strTok[0].length > 0 && strTok[1].length > 0 && strTok[2].length > 0) {
|
|
216
|
-
let strDate = strTok[0].split('/');
|
|
217
|
-
if (strDate.length === 3 && strDate[0].length > 0 && strDate[1].length > 0 && strDate[2].length > 0) {
|
|
218
|
-
UtilDateJpn.GengoStr[MAX_GENGO + i][0] = strTok[2].substr(0, 1);
|
|
219
|
-
UtilDateJpn.GengoStr[MAX_GENGO + i][1] = strTok[2].substr(1, 1);
|
|
220
|
-
UtilDateJpn.GengoStr[MAX_GENGO + i][2] = strTok[2].substr(2);
|
|
221
|
-
UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][0] = NNumber.Parse(strDate[0]);
|
|
222
|
-
UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][1] = NNumber.Parse(strDate[1]);
|
|
223
|
-
UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][2] = NNumber.Parse(strDate[2]);
|
|
224
|
-
UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][3] = NNumber.Parse(strTok[1]);
|
|
225
|
-
this.MaxGengo++;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbERhdGVKcG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91dGlscy9zcmMvVXRpbERhdGVKcG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFN0MsTUFBTSxTQUFTLEdBQVcsQ0FBQyxDQUFDO0FBSTVCLE1BQU0sT0FBTyxXQUFXO0lBUWQsTUFBTSxDQUFDLFNBQVMsR0FBZ0IsSUFBSSxDQUFDO0lBRXJDLE1BQU0sQ0FBQyxRQUFRLEdBQWE7UUFDbEMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUs7S0FDdkQsQ0FBQztJQUNNLE1BQU0sQ0FBQyxTQUFTLEdBQWE7UUFDbkMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSztLQUN2RixDQUFDO0lBQ00sTUFBTSxDQUFDLFFBQVEsR0FBZTtRQUNwQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDO1FBQ2xCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDaEIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQztRQUNoQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDO1FBQ2hCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDaEIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFF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T0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ25HLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNoRSxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDaEUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFFN0QsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDMUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDMUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDMUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDekUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO3FCQUNqQjtpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQSUNJbnRlcmZhY2V9IGZyb20gXCIuL1BJQ0ludGVyZmFjZVwiO1xyXG5pbXBvcnQge1V0aWxTdHJCeXRlTW9kZX0gZnJvbSBcIi4vVXRpbFN0ckJ5dGVNb2RlXCI7XHJcbmltcG9ydCB7Tk51bWJlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5jb25zdCBNQVhfR0VOR086IG51bWJlciA9IDY7XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBVdGlsRGF0ZUpwbiB7XHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEpQTjogSmFwYW5lc2UgZGF0ZSBwaWN0dXJlIHN1cHBvcnRcclxuICAvLy8gICBVdGlsaXR5IENsYXNzIGZvciBKYXBhbmVzZSBkYXRlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPGF1dGhvcj4gIFRvc2hpcm8gTmFrYXlvc2hpIChNU0opXHJcbiAgLy8vIDwvYXV0aG9yPlxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IFV0aWxEYXRlSnBuID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgSndlZWtTdHI6IHN0cmluZ1tdID0gW1xyXG4gICAgXCIgICBcIiwgXCLml6Xmm5zml6VcIiwgXCLmnIjmm5zml6VcIiwgXCLngavmm5zml6VcIiwgXCLmsLTmm5zml6VcIiwgXCLmnKjmm5zml6VcIiwgXCLph5Hmm5zml6VcIiwgXCLlnJ/mm5zml6VcIlxyXG4gIF07XHJcbiAgcHJpdmF0ZSBzdGF0aWMgSm1vbnRoU3RyOiBzdHJpbmdbXSA9IFtcclxuICAgIFwiXCIsIFwiIDHmnIhcIiwgXCIgMuaciFwiLCBcIiAz5pyIXCIsIFwiIDTmnIhcIiwgXCIgNeaciFwiLCBcIiA25pyIXCIsIFwiIDfmnIhcIiwgXCIgOOaciFwiLCBcIiA55pyIXCIsIFwiMTDmnIhcIiwgXCIxMeaciFwiLCBcIjEy5pyIXCJcclxuICBdO1xyXG4gIHByaXZhdGUgc3RhdGljIEdlbmdvU3RyOiBzdHJpbmdbXVtdID0gW1xyXG4gICAgW1wiP1wiLCBcIj9cIiwgXCI/Pz8/XCJdLFxyXG4gICAgW1wiTVwiLCBcIm1cIiwgXCLmmI7msrtcIl0sXHJcbiAgICBbXCJUXCIsIFwidFwiLCBcIuWkp+ato1wiXSxcclxuICAgIFtcIlNcIiwgXCJzXCIsIFwi5pit5ZKMXCJdLFxyXG4gICAgW1wiSFwiLCBcImhcIiwgXCLlubPmiJBcIl0sXHJcbiAgICBbXCJSXCIsIFwiclwiLCBcIuS7pOWSjFwiXSxcclxuICAgIFtcIj9cIiwgXCI/XCIsIFwi77yf77yfXCJdLFxyXG4gICAgW1wiP1wiLCBcIj9cIiwgXCLvvJ/vvJ9cIl0sXHJcbiAgICBbXCI/XCIsIFwiP1wiLCBcIu+8n++8n1wiXVxyXG4gIF07XHJcbiAgcHJpdmF0ZSBzdGF0aWMgU3RhcnREYXlPZkdlbmdvOiBudW1iZXJbXVtdID0gW1xyXG4gICAgWyAgIDEsICAxLCAgMSwgICAxXSxcclxuICAgIFsxODY4LCAgOSwgIDgsIDI1Ml0sXHJcbiAgICBbMTkxMiwgIDYsIDMwLCAyMTJdLFxyXG4gICAgWzE5MjYsIDEyLCAyNSwgMzU5XSxcclxuICAgIFsxOTg5LCAgMSwgIDgsICAgOF0sXHJcbiAgICBbMjAxOSwgIDUsICAxLCAxMjFdLFxyXG4gICAgWzAsICAwLCAwLCAwXSwgLy8gcmVzZXJ2ZSBmb3IgZXh0cmEgZ2VuZ28geCAzXHJcbiAgICBbMCwgIDAsIDAsIDBdLFxyXG4gICAgWzAsICAwLCAwLCAwXVxyXG4gIF07XHJcblxyXG4gIC8vIC0tLS0gZ2VuZ28gKHRoZSBuYW1lIG9mIGFuIGVyYSkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIHByaXZhdGUgTWF4R2VuZ286IG51bWJlciA9IE1BWF9HRU5HTztcclxuXHJcbiAgc3RhdGljIGdldEluc3RhbmNlKCk6IFV0aWxEYXRlSnBuIHtcclxuICAgIGlmIChVdGlsRGF0ZUpwbi5faW5zdGFuY2UgPT09IG51bGwpIHtcclxuICAgICAgVXRpbERhdGVKcG4uX2luc3RhbmNlID0gbmV3IFV0aWxEYXRlSnBuKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gVXRpbERhdGVKcG4uX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldEFycmF5RG93KCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBVdGlsRGF0ZUpwbi5Kd2Vla1N0cjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRTdHJEb3coaW50SWR4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IGZsYWc6IGJvb2xlYW4gPSBpbnRJZHggPCAwIHx8IDcgPCBpbnRJZHg7XHJcbiAgICBpZiAoZmxhZykge1xyXG4gICAgICBpbnRJZHggPSAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFV0aWxEYXRlSnBuLkp3ZWVrU3RyW2ludElkeF07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY29udmVydFN0ck1vbnRoKG1vbnRoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IGZsYWc6IGJvb2xlYW4gPSBtb250aCA8IDAgfHwgMTIgPCBtb250aDtcclxuICAgIGlmIChmbGFnKSB7XHJcbiAgICAgIG1vbnRoID0gMDtcclxuICAgIH1cclxuICAgIHJldHVybiBVdGlsRGF0ZUpwbi5KbW9udGhTdHJbbW9udGhdO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENvbnZlcnQgYSB5ZWFyIChBLkQuKSBpbnRvIEphcGFuZXNlIHllYXIgb2YgYW4gZXJhXHJcbiAgLy8vICAgVGhpcyBtZXRob2QgaXMgbW9kZWxlZCBhZnRlciBcImRhdGVfanBuX3llYXJfb2ZzXCIgZnVuY3Rpb24gaW5cclxuICAvLy8gICBcIlxcbWdsb2NhbFxcanBuXFxqcG5kYXRlX2pwbi5jcHBcIi5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50WWVhcjpcIj55ZWFyIChBLkQuKVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50RG95OlwiPkRPWVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4geWVhciBvZiBhbiBlcmEuXHJcbiAgLy8vICAgaWYgZWl0aGVyIHBhcmFtIGlzIGludmFsaWQsIGl0IHJldHVybnMgMC5cclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIGRhdGVfanBuX3llYXJfb2ZzKGludFllYXI6IG51bWJlciwgaW50RG95OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IHJlc3VsdDogbnVtYmVyO1xyXG4gICAgaWYgKGludFllYXIgPCAxIHx8IGludERveSA8IDEpIHtcclxuICAgICAgcmVzdWx0ID0gMDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgbnVtOiBudW1iZXIgPSB0aGlzLk1heEdlbmdvIC0gMTtcclxuICAgICAgd2hpbGUgKGludFllYXIgPCBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bbnVtXVswXSkge1xyXG4gICAgICAgIG51bSA9IG51bSAtIDE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGludFllYXIgPT09IFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tudW1dWzBdICYmIGludERveSA8IFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tudW1dWzNdKSB7XHJcbiAgICAgICAgbnVtID0gbnVtIC0gMTtcclxuICAgICAgfVxyXG4gICAgICByZXN1bHQgPSBpbnRZZWFyIC0gVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW251bV1bMF0gKyAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDb252ZXJ0IGEgeWVhciAoQS5ELikgaW50byBhIG5hbWUgb2YgYSBKYXBhbmVzZSBlcmFcclxuICAvLy8gICBUaGlzIG1ldGhvZCBpcyBtb2RlbGVkIGFmdGVyIFwiZGF0ZV9qcG5feXJfMl9hXCIgZnVuY3Rpb24gaW5cclxuICAvLy8gICBcIlxcbWdsb2NhbFxcanBuXFxqcG5kYXRlX2pwbi5jcHBcIi5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50WWVhcjpcIj55ZWFyIChBLkQuKVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50RG95OlwiPkRPWVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaXNLYW5qaTpcIj5yZXR1cm4gYSBmdWxsIG5hbWUgKHRydWUpIG9yIHRoZSBmaXJzdCBsZXR0ZXIgKGZhbHNlKS5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IG5hbWUgb2YgYW4gZXJhXHJcbiAgLy8vICAgaWYgZWl0aGVyIHBhcmFtIGlzIGludmFsaWQsIGl0IHJldHVybnMgXCI/XCIuXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBkYXRlX2pwbl95cl8yX2EoaW50WWVhcjogbnVtYmVyLCBpbnREb3k6IG51bWJlciwgaXNLYW5qaTogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBsZXQgbnVtOiBudW1iZXI7XHJcbiAgICBpZiAoaW50WWVhciA8IDEgfHwgaW50RG95IDwgMSkge1xyXG4gICAgICBudW0gPSAwO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIG51bSA9IHRoaXMuTWF4R2VuZ28gLSAxO1xyXG4gICAgICB3aGlsZSAoaW50WWVhciA8IFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tudW1dWzBdKSB7XHJcbiAgICAgICAgbnVtID0gbnVtIC0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW50WWVhciA9PT0gVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW251bV1bMF0gJiYgaW50RG95IDwgVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW251bV1bM10pIHtcclxuICAgICAgICBudW0gPSBudW0gLSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmc7XHJcbiAgICBpZiAoaXNLYW5qaSkge1xyXG4gICAgICByZXN1bHQgPSBVdGlsRGF0ZUpwbi5HZW5nb1N0cltudW1dWzJdO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJlc3VsdCA9IFV0aWxEYXRlSnBuLkdlbmdvU3RyW251bV1bMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEdldCB0aGUgZmlyc3QgeWVhciAoQS5ELikgb2YgYSBzcGVjaWZpZWQgSmFwYW5lc2UgZXJhXHJcbiAgLy8vICAgVGhpcyBtZXRob2QgaXMgbW9kZWxlZCBhZnRlciBcImRhdGVfanBuX3lyXzRfYVwiIGZ1bmN0aW9uIGluXHJcbiAgLy8vICAgXCJcXG1nbG9jYWxcXGpwblxcanBuZGF0ZV9qcG4uY3BwXCIuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInVjcF9zdHI6XCI+bmFtZSBvZiBhIHNwZWNpZmllZCBKYXBhbmVzZSBlcmFcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNfbGVuOlwiPmxlbmd0aCAodGhlIG51bWJlciBvZiBieXRlcykgb2YgdWNwX3N0clxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4geWVhciAoQS5ELilcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgZGF0ZV9qcG5feXJfNF9hKHVjcF9zdHI6IHN0cmluZywgc19sZW46IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgaTogbnVtYmVyID0gdGhpcy5NYXhHZW5nbyAtIDE7XHJcbiAgICBpZiAoc19sZW4gPiAwKSB7XHJcbiAgICAgIGlmIChzX2xlbiA+IDEpIHtcclxuICAgICAgICB1Y3Bfc3RyID0gVXRpbFN0ckJ5dGVNb2RlLmxlZnRCKHVjcF9zdHIsIHNfbGVuKTtcclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAoaSA+IDApIHtcclxuICAgICAgICBpZiAoc19sZW4gPT09IDEpIHtcclxuICAgICAgICAgIGlmICh1Y3Bfc3RyID09PSBVdGlsRGF0ZUpwbi5HZW5nb1N0cltpXVswXSB8fCB1Y3Bfc3RyID09PSBVdGlsRGF0ZUpwbi5HZW5nb1N0cltpXVsxXSkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAoc19sZW4gPiAxKSB7XHJcbiAgICAgICAgICAgIGxldCB0ZXh0OiBzdHJpbmcgPSBVdGlsU3RyQnl0ZU1vZGUubGVmdEIoVXRpbERhdGVKcG4uR2VuZ29TdHJbaV1bMl0sIHNfbGVuKTtcclxuICAgICAgICAgICAgaWYgKHVjcF9zdHIgPT09IHRleHQpIHtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpID0gaSAtIDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCByZXN1bHQ6IG51bWJlcjtcclxuICAgIGlmIChpID4gMCkge1xyXG4gICAgICByZXN1bHQgPSBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29baV1bMF07XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgdGV4dDogc3RyaW5nID0gdWNwX3N0ci5zdWJzdHIoMCwgMSk7XHJcbiAgICAgIGlmICh0ZXh0ID09PSBcIiBcIiB8fCB0ZXh0ID09PSBcIj9cIikge1xyXG4gICAgICAgIHJlc3VsdCA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBHZXQgdGhlIG5hbWUgb2YgYW4gZXJhIGluIGRhdGUgc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0ckRhdGU6XCI+c3RyaW5nIG9mIGlucHV0IHN0ckRhdGVcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clBpY3R1cmU6XCI+c3RyaW5nIG9mIHBpY3R1cmVcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImludFN0YXJ0UG9zOlwiPnN0YXJ0IHBvc2l0aW9uIHRvIHNlYXJjaFxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gbmFtZSBvZiBhbiBlcmFcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgc3RhdGljIGdldEVyYU5hbWVTdHJJbkRhdGUoc3RyRGF0ZTogc3RyaW5nLCBzdHJQaWN0dXJlOiBzdHJpbmcsIGludFN0YXJ0UG9zOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCBpbnRQaWNJZHhPZnM6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgaTogbnVtYmVyID0gaW50U3RhcnRQb3M7XHJcbiAgICB3aGlsZSAoaSArIGludFBpY0lkeE9mcyA8IHN0clBpY3R1cmUubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBpbnRMZXR0ZXJzOiBudW1iZXI7XHJcbiAgICAgIGlmIChzdHJQaWN0dXJlLmNoYXJDb2RlQXQoaSArIGludFBpY0lkeE9mcykgPT09IFBJQ0ludGVyZmFjZS5QSUNfSlkxKSB7XHJcbiAgICAgICAgaW50TGV0dGVycyA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHN0clBpY3R1cmUuY2hhckNvZGVBdChpICsgaW50UGljSWR4T2ZzKSA9PT0gUElDSW50ZXJmYWNlLlBJQ19KWTIpIHtcclxuICAgICAgICAgIGludExldHRlcnMgPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChzdHJQaWN0dXJlLmNoYXJDb2RlQXQoaSArIGludFBpY0lkeE9mcykgPT09IFBJQ0ludGVyZmFjZS5QSUNfSlk0KSB7XHJcbiAgICAgICAgICAgIGludExldHRlcnMgPSAyO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gSWYgXCJzdHJEYXRlXCIgY29udGFpbnMgREJDUywgdGhlIHBvc2l0aW9uIG9mIFwic3RyUGljdHVyZVwiIGhhcyB0byBza2lwIG5leHQgaW5kZXguXHJcbiAgICAgICAgICAgIGlmIChpIDwgc3RyRGF0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBpZiAoIVV0aWxTdHJCeXRlTW9kZS5pc0hhbGZXaWR0aChzdHJEYXRlW2ldKSAmJiBVdGlsU3RyQnl0ZU1vZGUuaXNIYWxmV2lkdGgoc3RyUGljdHVyZVtpICsgaW50UGljSWR4T2ZzXSkpIHtcclxuICAgICAgICAgICAgICAgIGludFBpY0lkeE9mcyA9IGludFBpY0lkeE9mcyArIDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkgPSBpICsgMTtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJlc3VsdCA9IHN0ckRhdGUuc3Vic3RyKGksIGludExldHRlcnMpO1xyXG4gICAgICBicmVhazsgLy8gZXhpdCBsb29wXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEdldCB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lIG9mIGFuIGVyYSBpbiBwaWN0dXJlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clBpY3R1cmVcIj5zdHJpbmcgb2YgcGljdHVyZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50U3RhcnRQb3NcIj5zdGFydCBwb3NpdGlvbiB0byBzZWFyY2hcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGxlbmd0aCBvZiB0aGUgbmFtZSAodGhlIG51bWJlciBvZiBieXRlcylcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgc3RhdGljIGdldEVyYU5hbWVMZW5JblBpY3R1cmUoc3RyUGljdHVyZTogc3RyaW5nLCBpbnRTdGFydFBvczogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBpbnRMZXR0ZXJzOiBudW1iZXIgPSAwO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gaW50U3RhcnRQb3M7IGkgPCBzdHJQaWN0dXJlLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGlmIChzdHJQaWN0dXJlLmNoYXJDb2RlQXQoaSkgPT09IFBJQ0ludGVyZmFjZS5QSUNfSlkxKSB7XHJcbiAgICAgICAgaW50TGV0dGVycyA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHN0clBpY3R1cmUuY2hhckNvZGVBdChpKSA9PT0gUElDSW50ZXJmYWNlLlBJQ19KWTIpIHtcclxuICAgICAgICAgIGludExldHRlcnMgPSAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChzdHJQaWN0dXJlLmNoYXJDb2RlQXQoaSkgPT09IFBJQ0ludGVyZmFjZS5QSUNfSlk0KSB7XHJcbiAgICAgICAgICAgIGludExldHRlcnMgPSA0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoaW50TGV0dGVycyA+IDApIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGludExldHRlcnM7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgR2V0IHRoZSBzdGFydCB5ZWFyIG9mIGFuIGVyYSBpbiBwaWN0dXJlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0ckRhdGU6XCI+c3RyaW5nIG9mIGlucHV0IHN0ckRhdGVcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clBpY3R1cmU6XCI+c3RyaW5nIG9mIHBpY3R1cmVcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHN0YXJ0IHllYXIgb2YgdGhlIGVyYVxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgZ2V0U3RhcnRZZWFyT2ZFcmEoc3RyRGF0ZTogc3RyaW5nLCBzdHJQaWN0dXJlOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgbGV0IGVyYU5hbWVTdHJJbkRhdGU6IHN0cmluZyA9IFV0aWxEYXRlSnBuLmdldEVyYU5hbWVTdHJJbkRhdGUoc3RyRGF0ZSwgc3RyUGljdHVyZSwgMCk7XHJcbiAgICBsZXQgcmVzdWx0OiBudW1iZXI7XHJcbiAgICBpZiAoZXJhTmFtZVN0ckluRGF0ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXN1bHQgPSAwO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBlcmFOYW1lTGVuSW5QaWN0dXJlOiBudW1iZXIgPSBVdGlsRGF0ZUpwbi5nZXRFcmFOYW1lTGVuSW5QaWN0dXJlKHN0clBpY3R1cmUsIDApO1xyXG4gICAgICBpZiAoZXJhTmFtZUxlbkluUGljdHVyZSA9PT0gMCkge1xyXG4gICAgICAgIHJlc3VsdCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IGludFN0YXJ0WWVhck9mRXJhOiBudW1iZXIgPSB0aGlzLmRhdGVfanBuX3lyXzRfYShlcmFOYW1lU3RySW5EYXRlLCBlcmFOYW1lTGVuSW5QaWN0dXJlKTtcclxuICAgICAgICByZXN1bHQgPSBpbnRTdGFydFllYXJPZkVyYTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gQWRkIGV4dHJhIEdlbmdvIGRhdGEgaW50byB0aGUgR2VuZ28gdGFibGVzPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInN0ckV4dHJhR2VuZ286XCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgYWRkRXh0cmFHZW5nbyhzdHJFeHRyYUdlbmdvOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIC8vIGUuZy4gc3RyRXh0cmFHZW5nbyA9IFwiMjAxMi8wNC8wMSwwOTIsQWFBQkNEOzIwMTMvMDQvMDEsMDkxLFd3V1hZWjtcIlxyXG4gICAgbGV0IHN0ckdlbmdvSW5mbzogc3RyaW5nW10gPSBzdHJFeHRyYUdlbmdvLnNwbGl0KCc7Jyk7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc3RyR2VuZ29JbmZvLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGlmIChzdHJHZW5nb0luZm9baV0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBzdHJUb2s6IHN0cmluZ1tdID0gc3RyR2VuZ29JbmZvW2ldLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgaWYgKHN0clRvay5sZW5ndGggPT09IDMgJiYgc3RyVG9rWzBdLmxlbmd0aCA+IDAgJiYgc3RyVG9rWzFdLmxlbmd0aCA+IDAgJiYgc3RyVG9rWzJdLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGxldCBzdHJEYXRlOiBzdHJpbmdbXSA9IHN0clRva1swXS5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgaWYgKHN0ckRhdGUubGVuZ3RoID09PSAzICYmIHN0ckRhdGVbMF0ubGVuZ3RoID4gMCAmJiBzdHJEYXRlWzFdLmxlbmd0aCA+IDAgJiYgc3RyRGF0ZVsyXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIFV0aWxEYXRlSnBuLkdlbmdvU3RyW01BWF9HRU5HTyArIGldWzBdID0gc3RyVG9rWzJdLnN1YnN0cigwLCAxKTsgLy8gc3ltYm9sIG5hbWUgKHVwcGVyIGNhc2UpOiBBXHJcbiAgICAgICAgICAgIFV0aWxEYXRlSnBuLkdlbmdvU3RyW01BWF9HRU5HTyArIGldWzFdID0gc3RyVG9rWzJdLnN1YnN0cigxLCAxKTsgLy8gc3ltYm9sIG5hbWUgKGxvd2VyIGNhc2UpOiBhXHJcbiAgICAgICAgICAgIFV0aWxEYXRlSnBuLkdlbmdvU3RyW01BWF9HRU5HTyArIGldWzJdID0gc3RyVG9rWzJdLnN1YnN0cigyKTsgICAgLy8gZ2VuZ28gbmFtZTogQUJDRFxyXG5cclxuICAgICAgICAgICAgVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW01BWF9HRU5HTyArIGldWzBdID0gTk51bWJlci5QYXJzZShzdHJEYXRlWzBdKTsgICAgLy8gc3RhcnQgeWVhcjogMjAxMlxyXG4gICAgICAgICAgICBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bTUFYX0dFTkdPICsgaV1bMV0gPSBOTnVtYmVyLlBhcnNlKHN0ckRhdGVbMV0pOyAgICAvLyBzdGFydCBtb250aDogNFxyXG4gICAgICAgICAgICBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bTUFYX0dFTkdPICsgaV1bMl0gPSBOTnVtYmVyLlBhcnNlKHN0ckRhdGVbMl0pOyAgICAvLyBzdGFydCBkYXk6IDFcclxuICAgICAgICAgICAgVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW01BWF9HRU5HTyArIGldWzNdID0gTk51bWJlci5QYXJzZShzdHJUb2tbMV0pOyAgICAgLy8gZGF5cyBzaW5jZSBKYW51YXJ5IDE6IDkyXHJcbiAgICAgICAgICAgIHRoaXMuTWF4R2VuZ28rKztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export class UtilImeJpn {
|
|
2
|
-
static IME_ZEN_HIRAGANA_ROMAN = 1;
|
|
3
|
-
static IME_FORCE_OFF = 15;
|
|
4
|
-
static IME_DISABLE = 10;
|
|
5
|
-
ImeAutoOff = false;
|
|
6
|
-
StrImeRead = null;
|
|
7
|
-
isValid(imeMode) {
|
|
8
|
-
return (0 <= imeMode && imeMode <= 9) || imeMode === 15 || imeMode === 10;
|
|
9
|
-
}
|
|
10
|
-
constructor() {
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbEltZUpwbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9VdGlsSW1lSnBuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxVQUFVO0lBRXJCLE1BQU0sQ0FBQyxzQkFBc0IsR0FBVyxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLGFBQWEsR0FBVyxFQUFFLENBQUM7SUFFbEMsTUFBTSxDQUFDLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDaEMsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixVQUFVLEdBQVcsSUFBSSxDQUFDO0lBUTFCLE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLElBQUksT0FBTyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLEtBQUssRUFBRSxJQUFJLE9BQU8sS0FBSyxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVEO0lBRUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8c3VtbWFyeT5KUE46IElNRSBzdXBwb3J0XHJcbi8vLyBVdGlsaXR5IENsYXNzIGZvciBJbnB1dCBNZXRob2QgRWRpdG9yXHJcbi8vLyA8L3N1bW1hcnk+XHJcbi8vLyA8YXV0aG9yPiAgVG9zaGlybyBOYWtheW9zaGkgKE1TSilcclxuLy8vIDwvYXV0aG9yPlxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBVdGlsSW1lSnBuIHtcclxuXHJcbiAgc3RhdGljIElNRV9aRU5fSElSQUdBTkFfUk9NQU46IG51bWJlciA9IDE7XHJcbiAgc3RhdGljIElNRV9GT1JDRV9PRkY6IG51bWJlciA9IDE1OyAvLyBpZiAoSW1lTW9kZSBwcm9wZXJ0eSA9PSAwIGFuZCAocGljdHVyZSBoYXMgSzAgb3IgUElDX1MpKSBvclxyXG4gIC8vIChhdHRyaWJ1dGUgaXMgbm90IGFscGhhLCB1bmljb2RlLCBub3IgYmxvYiksIHNldCBJTUVfRk9SQ0VfT0ZGLlxyXG4gIHN0YXRpYyBJTUVfRElTQUJMRTogbnVtYmVyID0gMTA7ICAgLy8gdG8gY29tcGxldGVseSBkaXNhYmxlIElNRSAoZXZlbiBub3QgYWxsb3dpbmcgdG8gY2hhbmdlIHRoZSBtb2RlKVxyXG4gIEltZUF1dG9PZmY6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBTdHJJbWVSZWFkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+IGNoZWNrIGlmIHRoZSBJTUUgbW9kZSBpcyB3aXRoaW4gdmFsaWQgcmFuZ2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImltZU1vZGVcIj4oSU1FIG1vZGUgaW4gTWFnaWMpXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBib29sXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBpc1ZhbGlkKGltZU1vZGU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICgwIDw9IGltZU1vZGUgJiYgaW1lTW9kZSA8PSA5KSB8fCBpbWVNb2RlID09PSAxNSB8fCBpbWVNb2RlID09PSAxMDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICB9XHJcbn1cclxuIl19
|