基础项目
0 parents
Showing
53 changed files
with
3787 additions
and
0 deletions
.mini-ide/project-ide.json
0 → 100644
app.js
0 → 100644
1 | const fetchApi = require('./http/fetch-api.js'); | ||
2 | const api = require('./http/api'); | ||
3 | const config = require('./config'); | ||
4 | const router = require('./router/index'); | ||
5 | const storage = require('./utils/stroage'); | ||
6 | const util = require('./utils/util'); | ||
7 | const func = require('./utils/func'); | ||
8 | // console.log('api.login:', api.login) | ||
9 | |||
10 | // console.log('fetchApi:',fetchApi) | ||
11 | // console.log('fetchApi.get:',fetchApi.fetch) | ||
12 | |||
13 | App({ | ||
14 | get: fetchApi.fetchMethod, | ||
15 | post: (params) => { | ||
16 | params.method = 'post'; | ||
17 | return fetchApi.fetchMethod(params); | ||
18 | }, | ||
19 | delete: (params) => { | ||
20 | params.method = 'DELETE'; | ||
21 | return fetchApi.fetchMethod(params); | ||
22 | }, | ||
23 | uploadFile: fetchApi.uploadFile, // 单文件上传 | ||
24 | uploadFileMultiple: fetchApi.uploadFileMultiple, // 多文件上传, | ||
25 | api: api, | ||
26 | config: config, | ||
27 | router: router, | ||
28 | storage: storage, | ||
29 | util: util, | ||
30 | func: func, | ||
31 | tapData: util.getBindtapData, | ||
32 | globalData: { | ||
33 | userInfo: null, | ||
34 | profile: null, | ||
35 | wxcode: storage.getItem("wxcode"), | ||
36 | ui: { | ||
37 | colorUI: "#409EFF", | ||
38 | colorDanger: "#EE0A24" | ||
39 | }, | ||
40 | invitationCode: "", | ||
41 | statusBarHeight: 0, | ||
42 | }, | ||
43 | onLaunch(options) { | ||
44 | // 第一次打开 | ||
45 | // options.query == {number:1} | ||
46 | console.info('App onLaunch'); | ||
47 | }, | ||
48 | onShow(options) { | ||
49 | // 从后台被 scheme 重新打开 | ||
50 | // options.query == {number:1} | ||
51 | }, | ||
52 | |||
53 | /** | ||
54 | * 封装toast | ||
55 | * @returns | ||
56 | */ | ||
57 | toast(title, opt = { | ||
58 | icon: 'none' | ||
59 | }) { | ||
60 | let data = opt; | ||
61 | data.title = title | ||
62 | my.showToast({ | ||
63 | content: title | ||
64 | }) | ||
65 | return; | ||
66 | }, | ||
67 | }); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
app.json
0 → 100644
components/demo-item/demo-item.acss
0 → 100755
File mode changed
components/demo-item/demo-item.axml
0 → 100644
components/demo-item/demo-item.js
0 → 100644
components/demo-item/demo-item.json
0 → 100644
components/form/form.acss
0 → 100755
1 | .form-comp { | ||
2 | background: url('/images/form/form-bg-1.png') center no-repeat; | ||
3 | background-size: 100% 100%; | ||
4 | width: 723rpx; | ||
5 | height: 691rpx; | ||
6 | padding-top: 60rpx; | ||
7 | box-sizing: border-box; | ||
8 | text-align: center; | ||
9 | } | ||
10 | |||
11 | .form-comp-2 { | ||
12 | background: url('/images/form/form-bg-2.png') center no-repeat; | ||
13 | background-size: 100% 100%; | ||
14 | width: 723rpx; | ||
15 | height: 1021rpx; | ||
16 | } | ||
17 | |||
18 | .form-comp .number { | ||
19 | font-size: 52rpx; | ||
20 | font-weight: bold; | ||
21 | letter-spacing: 1.29rpx; | ||
22 | color: #131313; | ||
23 | } | ||
24 | |||
25 | .form-comp .tit { | ||
26 | font-size: 40rpx; | ||
27 | font-weight: bold; | ||
28 | text-align: center; | ||
29 | color: #ff027c; | ||
30 | margin: 14rpx auto 0; | ||
31 | } | ||
32 | |||
33 | .form-comp .tips { | ||
34 | font-size: 23rpx; | ||
35 | font-weight: 600; | ||
36 | color: #727272; | ||
37 | margin: 14rpx auto 0; | ||
38 | } | ||
39 | |||
40 | .form { | ||
41 | margin: 32rpx auto 0; | ||
42 | } | ||
43 | |||
44 | .form-item { | ||
45 | width: 647rpx; | ||
46 | height: 86rpx; | ||
47 | border-radius: 16rpx; | ||
48 | border: solid 1rpx #787878; | ||
49 | background-color: #fcf8ff; | ||
50 | margin: 0 auto 24rpx; | ||
51 | padding: 0 32rpx; | ||
52 | box-sizing: border-box; | ||
53 | display: flex; | ||
54 | align-items: center; | ||
55 | justify-content: space-between; | ||
56 | text-align: left; | ||
57 | } | ||
58 | |||
59 | .form-item .label { | ||
60 | display: flex; | ||
61 | width: 150rpx; | ||
62 | font-weight: bold; | ||
63 | font-size: 32rpx; | ||
64 | } | ||
65 | |||
66 | .form-item .label .requrie { | ||
67 | color: #f00; | ||
68 | font-weight: 500; | ||
69 | } | ||
70 | |||
71 | .form-item .ipt { | ||
72 | background-color: transparent; | ||
73 | flex: 1; | ||
74 | font-size: 28rpx; | ||
75 | } | ||
76 | |||
77 | .form-comp .submit-btn { | ||
78 | background: url('/images/form/submit-btn.png') center no-repeat; | ||
79 | background-size: 100% 100%; | ||
80 | width: 630rpx; | ||
81 | height: 102rpx; | ||
82 | margin: 40rpx auto 0; | ||
83 | } | ||
84 | |||
85 | .form-comp .submit-tips { | ||
86 | margin: 20rpx auto 0; | ||
87 | font-size: 23rpx; | ||
88 | font-weight: 600; | ||
89 | text-align: center; | ||
90 | color: #727272; | ||
91 | } | ||
92 | |||
93 | .form-comp .func {} | ||
94 | |||
95 | .form-comp .func .icon { | ||
96 | background: url('/images/form/icon-question.png') center no-repeat; | ||
97 | background-size: 100% 100%; | ||
98 | width: 30rpx; | ||
99 | height: 30rpx; | ||
100 | } | ||
101 | |||
102 | |||
103 | .untouch { | ||
104 | pointer-events: none; | ||
105 | } | ||
106 | |||
107 | .ani-heart { | ||
108 | animation: ani-heart-key 1.2s linear infinite; | ||
109 | } | ||
110 | |||
111 | @keyframes ani-heart-key { | ||
112 | 0% { | ||
113 | transform: scale(1); | ||
114 | } | ||
115 | |||
116 | 50% { | ||
117 | transform: scale(1.04); | ||
118 | } | ||
119 | |||
120 | 100% { | ||
121 | transform: scale(1); | ||
122 | } | ||
123 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
components/form/form.axml
0 → 100644
1 | <view class="form-comp {{!fold ? 'form-comp-2' : ''}}"> | ||
2 | <view class="number"> | ||
3 | {{item.mobile}} | ||
4 | </view> | ||
5 | <view class="tit"> | ||
6 | {{item && item.featureName || '发财旺运'}} | ||
7 | </view> | ||
8 | <view class="tips"> | ||
9 | 请如实填写以下信息,以便我们及时为您送达 | ||
10 | </view> | ||
11 | <view class="form"> | ||
12 | <view class="form-item"> | ||
13 | <view class="label"> | ||
14 | 姓 名 | ||
15 | <view class="requrie"> | ||
16 | * | ||
17 | </view> | ||
18 | </view> | ||
19 | <input | ||
20 | onBlur="onBlur" | ||
21 | onInput="inputEdit" | ||
22 | data-name="queryForm.name" | ||
23 | value="{{queryForm.name}}" | ||
24 | class="ipt" | ||
25 | placeholder="请输入姓名 (已加密)" | ||
26 | /> | ||
27 | </view> | ||
28 | |||
29 | <view class="form-item"> | ||
30 | <view class="label"> | ||
31 | 联系电话 | ||
32 | <view class="requrie"> | ||
33 | * | ||
34 | </view> | ||
35 | </view> | ||
36 | <input | ||
37 | onBlur="onBlur" | ||
38 | onInput="inputEdit" | ||
39 | data-name="queryForm.mobilePhone" | ||
40 | value="{{queryForm.mobilePhone}}" | ||
41 | class="ipt" | ||
42 | placeholder="请输入联系电话,并保持畅通" | ||
43 | type="number" | ||
44 | /> | ||
45 | </view> | ||
46 | |||
47 | <block a:if="{{ !fold}}"> | ||
48 | |||
49 | <view class="form-item"> | ||
50 | <view class="label"> | ||
51 | 身份证 | ||
52 | <view class="requrie"> | ||
53 | * | ||
54 | </view> | ||
55 | </view> | ||
56 | <input | ||
57 | onInput="inputEdit" | ||
58 | data-name="queryForm.identNo" | ||
59 | value="{{queryForm.identNo}}" | ||
60 | class="ipt" | ||
61 | placeholder="请输入身份证号 (已加密)" | ||
62 | type="idcard" | ||
63 | /> | ||
64 | </view> | ||
65 | |||
66 | <view class="form-item" onTap="onPickerArea"> | ||
67 | <view class="label"> | ||
68 | 所在地区 | ||
69 | <view class="requrie"> | ||
70 | * | ||
71 | </view> | ||
72 | </view> | ||
73 | <input value="{{areaStr}}" class="ipt untouch" placeholder="请选择省/市/区" /> | ||
74 | </view> | ||
75 | |||
76 | <view class="form-item"> | ||
77 | <input | ||
78 | onInput="inputEdit" | ||
79 | data-name="queryForm.address" | ||
80 | value="{{queryForm.address}}" | ||
81 | class="ipt" | ||
82 | placeholder="请输入详细地址 (*街道*小区*门牌号)" | ||
83 | /> | ||
84 | <view class="func"> | ||
85 | <view onTap="onAddressTips" class="icon icon-question"> | ||
86 | |||
87 | </view> | ||
88 | </view> | ||
89 | </view> | ||
90 | </block> | ||
91 | |||
92 | </view> | ||
93 | <view onTap="onSubmit" class="submit-btn ani-heart"></view> | ||
94 | <view class="submit-tips"> | ||
95 | 请保持联系号码畅通,我们可能随时与您联系 | ||
96 | </view> | ||
97 | </view> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
components/form/form.js
0 → 100644
1 | let app = getApp(); | ||
2 | |||
3 | // 联通专属 | ||
4 | import area from '/const/area-lt'; | ||
5 | |||
6 | Component({ | ||
7 | mixins: [], | ||
8 | data: { | ||
9 | queryForm: { | ||
10 | selectMobilePhone: "", // 从父组件中传入 | ||
11 | name: "", // 姓名 | ||
12 | mobilePhone: "", // 用户手机号 | ||
13 | identNo: "", // 证件号 | ||
14 | province: "", // 省 | ||
15 | provinceCode: "", // 省编号 | ||
16 | city: "", // 市 | ||
17 | cityCode: "", // 市编号 | ||
18 | district: "", // 区 | ||
19 | districtCode: "", // 区编号 | ||
20 | address: "", // 收货地址 | ||
21 | }, | ||
22 | areaStr: "", | ||
23 | |||
24 | fold: true | ||
25 | }, | ||
26 | |||
27 | props: { | ||
28 | item: { | ||
29 | type: Object, | ||
30 | value: null, | ||
31 | }, | ||
32 | |||
33 | // 发送自定义事件 onChange 貌似为固定值 | ||
34 | onChange(data) {}, | ||
35 | }, | ||
36 | didMount() { | ||
37 | // console.log("area:", area); | ||
38 | // let res = app.func.addressToTree(area); | ||
39 | // console.log("res:", res); | ||
40 | }, | ||
41 | didUpdate() {}, | ||
42 | didUnmount() {}, | ||
43 | methods: { | ||
44 | onBlur() { | ||
45 | if (this.data.queryForm.name && this.data.queryForm.mobilePhone) { | ||
46 | this.setData({ | ||
47 | fold: false, | ||
48 | }) | ||
49 | } | ||
50 | }, | ||
51 | |||
52 | // 封装 my.multiLevelSelect | ||
53 | // - 对于传入的数据,只向底层接口传递 name 和 subList | ||
54 | // - 对于选中的结果,替换成对应的完整数据条目再回调 | ||
55 | multiLevelSelect({ | ||
56 | title, | ||
57 | list, | ||
58 | success, | ||
59 | fail, | ||
60 | complete | ||
61 | }) { | ||
62 | const clean = ({ | ||
63 | name, | ||
64 | subList | ||
65 | }) => { | ||
66 | return { | ||
67 | name, | ||
68 | subList: subList && subList.map(clean) | ||
69 | }; | ||
70 | }; | ||
71 | const lookup = (array, index, pool) => { | ||
72 | if (array && index < array.length) { | ||
73 | array[index] = pool.filter(x => x.name === array[index].name)[0]; | ||
74 | lookup(array, index + 1, array[index].subList); | ||
75 | delete array[index].subList; // 方便回调中的 my.alert 演示。真实代码请删除此行,避免副作用 | ||
76 | } | ||
77 | }; | ||
78 | const wrap = func => | ||
79 | func && | ||
80 | (res => { | ||
81 | res.success && lookup(res.result, 0, list); | ||
82 | func(res); | ||
83 | }); | ||
84 | return my.multiLevelSelect({ | ||
85 | title, | ||
86 | list: list.map(clean), | ||
87 | success: wrap(success), | ||
88 | fail, | ||
89 | complete: wrap(complete), | ||
90 | }); | ||
91 | }, | ||
92 | |||
93 | // 选择地址 | ||
94 | onPickerArea() { | ||
95 | let areas = app.func.addressToTree(area); | ||
96 | console.log("areas:", areas); | ||
97 | |||
98 | let updateList = [] | ||
99 | areas.forEach(element => { | ||
100 | if (element.id == "440000") { | ||
101 | updateList.push(element); | ||
102 | } | ||
103 | }); | ||
104 | this.multiLevelSelect({ | ||
105 | title: '请选择所在地区', | ||
106 | list: updateList, | ||
107 | success: res => { | ||
108 | |||
109 | let region = res.result; | ||
110 | console.log(region) | ||
111 | this.setData({ | ||
112 | 'queryForm.province': region[0].name, | ||
113 | 'queryForm.city': region[1].name, | ||
114 | 'queryForm.district': region[2].name, | ||
115 | |||
116 | 'queryForm.provinceCode': region[0].id, | ||
117 | 'queryForm.cityCode': region[1].id, | ||
118 | 'queryForm.districtCode': region[2].id, | ||
119 | 'areaStr': region[0].name + region[1].name + region[2].name | ||
120 | }) | ||
121 | }, | ||
122 | fail: error => { | ||
123 | // console.error('multiLevelSelect fail: ', JSON.stringify(error)); | ||
124 | }, | ||
125 | }); | ||
126 | }, | ||
127 | // 显示地址tips | ||
128 | onAddressTips() { | ||
129 | my.showToast({ | ||
130 | content: "请输入详细准确的地址,字数不少于4字(例如:**街身份证* 道…),且不能包含特殊符号(例如:? !/0等,可以输入小写-号)" | ||
131 | }) | ||
132 | }, | ||
133 | |||
134 | |||
135 | /** | ||
136 | * input绑定 | ||
137 | * 多输入文本绑定 | ||
138 | * 在input/texarea中设置 data-name="属性值即可" | ||
139 | */ | ||
140 | inputEdit(e) { | ||
141 | let dataset = e.currentTarget.dataset; | ||
142 | let value = e.detail.value; | ||
143 | let name = dataset.name; | ||
144 | this.setData({ | ||
145 | [name]: value | ||
146 | }); | ||
147 | }, | ||
148 | |||
149 | /** | ||
150 | * 检查表单 | ||
151 | */ | ||
152 | checkSubmit() { | ||
153 | return new Promise((resolve, reject) => { | ||
154 | |||
155 | let { | ||
156 | name, | ||
157 | mobilePhone, | ||
158 | identNo, | ||
159 | district, | ||
160 | address | ||
161 | } = this.data.queryForm; | ||
162 | |||
163 | console.log("this.data.queryForm:", this.data.queryForm); | ||
164 | |||
165 | if (!name) { | ||
166 | app.toast("请输入姓名") | ||
167 | return; | ||
168 | } | ||
169 | |||
170 | if (!app.util.checkMobile(mobilePhone)) { | ||
171 | app.toast("请输入正确的手机号码") | ||
172 | return; | ||
173 | } | ||
174 | |||
175 | if (!app.util.checkIdentNo(identNo)) { | ||
176 | app.toast("请输入正确的身份证号码") | ||
177 | return; | ||
178 | } | ||
179 | |||
180 | if (!district) { | ||
181 | app.toast("请选择所在地区") | ||
182 | return; | ||
183 | } | ||
184 | |||
185 | if (!address) { | ||
186 | app.toast("请输入详细地址") | ||
187 | return; | ||
188 | } | ||
189 | |||
190 | resolve(this.data.queryForm) | ||
191 | }); | ||
192 | }, | ||
193 | |||
194 | /** | ||
195 | * 提交表单 | ||
196 | */ | ||
197 | onSubmit() { | ||
198 | this.checkSubmit().then((params) => { | ||
199 | params.selectMobilePhone = this.props.item.mobile; | ||
200 | console.log("params:", params) | ||
201 | |||
202 | my.showLoading({ | ||
203 | content: '稍等片刻,订单提交中', | ||
204 | mask: true | ||
205 | }); | ||
206 | |||
207 | app.post({ | ||
208 | url: app.api.createOrder, | ||
209 | data: params, | ||
210 | }).then((result) => { | ||
211 | // 发送自定义事件 onChange 貌似为固定值 | ||
212 | this.props.onChange({ | ||
213 | name: "_evt_submit_complete" | ||
214 | }) | ||
215 | my.hideLoading(); | ||
216 | }).catch((err) => { | ||
217 | my.hideLoading(); | ||
218 | }); | ||
219 | }); | ||
220 | }, | ||
221 | }, | ||
222 | }); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
components/form/form.json
0 → 100644
components/succ/succ.acss
0 → 100755
1 | .succ-comp { | ||
2 | background: url('/images/form/form-bg-succ.png') center no-repeat; | ||
3 | background-size: 100% 100%; | ||
4 | width: 723rpx; | ||
5 | height: 620rpx; | ||
6 | padding-top: 104rpx; | ||
7 | box-sizing: border-box; | ||
8 | text-align: center; | ||
9 | } | ||
10 | |||
11 | .succ-comp .icon-succ { | ||
12 | background: url('/images/form/icon-succ.png') center no-repeat; | ||
13 | background-size: 100% 100%; | ||
14 | width: 231rpx; | ||
15 | height: 231rpx; | ||
16 | margin: 0 auto 0; | ||
17 | } | ||
18 | |||
19 | .succ-comp .tit { | ||
20 | font-size: 53rpx; | ||
21 | font-weight: 800; | ||
22 | text-align: center; | ||
23 | color: #ff027c; | ||
24 | margin: 36rpx auto 0; | ||
25 | } | ||
26 | |||
27 | .succ-comp .tips { | ||
28 | font-size: 23rpx; | ||
29 | font-weight: 600; | ||
30 | text-align: center; | ||
31 | color: #727272; | ||
32 | margin: 16rpx auto 0; | ||
33 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
components/succ/succ.axml
0 → 100644
components/succ/succ.js
0 → 100644
components/succ/succ.json
0 → 100644
config.js
0 → 100644
const/area-lt.js
0 → 100644
This diff could not be displayed because it is too large.
const/area-new.js
0 → 100644
This diff could not be displayed because it is too large.
const/area.js
0 → 100644
This diff could not be displayed because it is too large.
const/index.js
0 → 100644
1 | module.exports = { | ||
2 | mobile_list: [{ | ||
3 | "mobile": "13119547324", | ||
4 | "advanceLimit": "0", | ||
5 | "niceFlag": "0", | ||
6 | "monthFeeLimit": "0", | ||
7 | "groupFlag": "1", | ||
8 | "niceRule": "0", | ||
9 | "monthLimit": "0", | ||
10 | "tailNumTag": "1", | ||
11 | "featureType": "0", | ||
12 | "featureNameIndex": "0", | ||
13 | "highLightNums": "0", | ||
14 | "topHighLightNums": "0" | ||
15 | }, { | ||
16 | "mobile": "13073040282", | ||
17 | "advanceLimit": "0", | ||
18 | "niceFlag": "0", | ||
19 | "monthFeeLimit": "0", | ||
20 | "groupFlag": "1", | ||
21 | "niceRule": "0", | ||
22 | "monthLimit": "0", | ||
23 | "tailNumTag": "0", | ||
24 | "featureType": "0", | ||
25 | "featureNameIndex": "0", | ||
26 | "highLightNums": "0", | ||
27 | "topHighLightNums": "0" | ||
28 | }, { | ||
29 | "mobile": "13128274236", | ||
30 | "advanceLimit": "0", | ||
31 | "niceFlag": "0", | ||
32 | "monthFeeLimit": "0", | ||
33 | "groupFlag": "1", | ||
34 | "niceRule": "0", | ||
35 | "monthLimit": "0", | ||
36 | "tailNumTag": "1", | ||
37 | "featureType": "0", | ||
38 | "featureNameIndex": "0", | ||
39 | "highLightNums": "0", | ||
40 | "topHighLightNums": "0" | ||
41 | }, { | ||
42 | "mobile": "13242759852", | ||
43 | "advanceLimit": "0", | ||
44 | "niceFlag": "0", | ||
45 | "monthFeeLimit": "0", | ||
46 | "groupFlag": "1", | ||
47 | "niceRule": "0", | ||
48 | "monthLimit": "0", | ||
49 | "tailNumTag": "0", | ||
50 | "featureType": "0", | ||
51 | "featureNameIndex": "0", | ||
52 | "highLightNums": "0", | ||
53 | "topHighLightNums": "0" | ||
54 | }, { | ||
55 | "mobile": "17665189597", | ||
56 | "advanceLimit": "0", | ||
57 | "niceFlag": "0", | ||
58 | "monthFeeLimit": "0", | ||
59 | "groupFlag": "1", | ||
60 | "niceRule": "0", | ||
61 | "monthLimit": "0", | ||
62 | "tailNumTag": "0", | ||
63 | "featureType": "0", | ||
64 | "featureNameIndex": "0", | ||
65 | "highLightNums": "0", | ||
66 | "topHighLightNums": "0" | ||
67 | }, { | ||
68 | "mobile": "17675655724", | ||
69 | "advanceLimit": "0", | ||
70 | "niceFlag": "0", | ||
71 | "monthFeeLimit": "0", | ||
72 | "groupFlag": "1", | ||
73 | "niceRule": "0", | ||
74 | "monthLimit": "0", | ||
75 | "tailNumTag": "1", | ||
76 | "featureType": "0", | ||
77 | "featureNameIndex": "0", | ||
78 | "highLightNums": "0", | ||
79 | "topHighLightNums": "0" | ||
80 | }, { | ||
81 | "mobile": "13054406916", | ||
82 | "advanceLimit": "0", | ||
83 | "niceFlag": "0", | ||
84 | "monthFeeLimit": "0", | ||
85 | "groupFlag": "1", | ||
86 | "niceRule": "0", | ||
87 | "monthLimit": "0", | ||
88 | "tailNumTag": "0", | ||
89 | "featureType": "0", | ||
90 | "featureNameIndex": "0", | ||
91 | "highLightNums": "0", | ||
92 | "topHighLightNums": "0" | ||
93 | }, { | ||
94 | "mobile": "18664614305", | ||
95 | "advanceLimit": "0", | ||
96 | "niceFlag": "0", | ||
97 | "monthFeeLimit": "0", | ||
98 | "groupFlag": "1", | ||
99 | "niceRule": "0", | ||
100 | "monthLimit": "0", | ||
101 | "tailNumTag": "1", | ||
102 | "featureType": "0", | ||
103 | "featureNameIndex": "0", | ||
104 | "highLightNums": "0", | ||
105 | "topHighLightNums": "0" | ||
106 | }, { | ||
107 | "mobile": "18578616846", | ||
108 | "advanceLimit": "0", | ||
109 | "niceFlag": "0", | ||
110 | "monthFeeLimit": "0", | ||
111 | "groupFlag": "1", | ||
112 | "niceRule": "0", | ||
113 | "monthLimit": "0", | ||
114 | "tailNumTag": "1", | ||
115 | "featureType": "0", | ||
116 | "featureNameIndex": "0", | ||
117 | "highLightNums": "0", | ||
118 | "topHighLightNums": "0" | ||
119 | }, { | ||
120 | "mobile": "17620889471", | ||
121 | "advanceLimit": "0", | ||
122 | "niceFlag": "0", | ||
123 | "monthFeeLimit": "0", | ||
124 | "groupFlag": "1", | ||
125 | "niceRule": "0", | ||
126 | "monthLimit": "0", | ||
127 | "tailNumTag": "1", | ||
128 | "featureType": "0", | ||
129 | "featureNameIndex": "0", | ||
130 | "highLightNums": "0", | ||
131 | "topHighLightNums": "0" | ||
132 | }, { | ||
133 | "mobile": "15521461525", | ||
134 | "advanceLimit": "0", | ||
135 | "niceFlag": "0", | ||
136 | "monthFeeLimit": "0", | ||
137 | "groupFlag": "1", | ||
138 | "niceRule": "0", | ||
139 | "monthLimit": "0", | ||
140 | "tailNumTag": "0", | ||
141 | "featureType": "0", | ||
142 | "featureNameIndex": "0", | ||
143 | "highLightNums": "0", | ||
144 | "topHighLightNums": "0" | ||
145 | }, { | ||
146 | "mobile": "18565342175", | ||
147 | "advanceLimit": "0", | ||
148 | "niceFlag": "0", | ||
149 | "monthFeeLimit": "0", | ||
150 | "groupFlag": "1", | ||
151 | "niceRule": "0", | ||
152 | "monthLimit": "0", | ||
153 | "tailNumTag": "0", | ||
154 | "featureType": "0", | ||
155 | "featureNameIndex": "0", | ||
156 | "highLightNums": "0", | ||
157 | "topHighLightNums": "0" | ||
158 | }, { | ||
159 | "mobile": "18680455719", | ||
160 | "advanceLimit": "0", | ||
161 | "niceFlag": "0", | ||
162 | "monthFeeLimit": "0", | ||
163 | "groupFlag": "1", | ||
164 | "niceRule": "0", | ||
165 | "monthLimit": "0", | ||
166 | "tailNumTag": "0", | ||
167 | "featureType": "0", | ||
168 | "featureNameIndex": "0", | ||
169 | "highLightNums": "0", | ||
170 | "topHighLightNums": "0" | ||
171 | }, { | ||
172 | "mobile": "13016041484", | ||
173 | "advanceLimit": "0", | ||
174 | "niceFlag": "0", | ||
175 | "monthFeeLimit": "0", | ||
176 | "groupFlag": "1", | ||
177 | "niceRule": "0", | ||
178 | "monthLimit": "0", | ||
179 | "tailNumTag": "1", | ||
180 | "featureType": "0", | ||
181 | "featureNameIndex": "0", | ||
182 | "highLightNums": "0", | ||
183 | "topHighLightNums": "0" | ||
184 | }, { | ||
185 | "mobile": "18565294572", | ||
186 | "advanceLimit": "0", | ||
187 | "niceFlag": "0", | ||
188 | "monthFeeLimit": "0", | ||
189 | "groupFlag": "1", | ||
190 | "niceRule": "0", | ||
191 | "monthLimit": "0", | ||
192 | "tailNumTag": "1", | ||
193 | "featureType": "0", | ||
194 | "featureNameIndex": "0", | ||
195 | "highLightNums": "0", | ||
196 | "topHighLightNums": "0" | ||
197 | }, { | ||
198 | "mobile": "18565540294", | ||
199 | "advanceLimit": "0", | ||
200 | "niceFlag": "0", | ||
201 | "monthFeeLimit": "0", | ||
202 | "groupFlag": "1", | ||
203 | "niceRule": "0", | ||
204 | "monthLimit": "0", | ||
205 | "tailNumTag": "1", | ||
206 | "featureType": "0", | ||
207 | "featureNameIndex": "0", | ||
208 | "highLightNums": "0", | ||
209 | "topHighLightNums": "0" | ||
210 | }, { | ||
211 | "mobile": "13104899683", | ||
212 | "advanceLimit": "0", | ||
213 | "niceFlag": "0", | ||
214 | "monthFeeLimit": "0", | ||
215 | "groupFlag": "1", | ||
216 | "niceRule": "0", | ||
217 | "monthLimit": "0", | ||
218 | "tailNumTag": "0", | ||
219 | "featureType": "0", | ||
220 | "featureNameIndex": "0", | ||
221 | "highLightNums": "0", | ||
222 | "topHighLightNums": "0" | ||
223 | }, { | ||
224 | "mobile": "17512957634", | ||
225 | "advanceLimit": "0", | ||
226 | "niceFlag": "0", | ||
227 | "monthFeeLimit": "0", | ||
228 | "groupFlag": "1", | ||
229 | "niceRule": "0", | ||
230 | "monthLimit": "0", | ||
231 | "tailNumTag": "1", | ||
232 | "featureType": "0", | ||
233 | "featureNameIndex": "0", | ||
234 | "highLightNums": "0", | ||
235 | "topHighLightNums": "0" | ||
236 | }, { | ||
237 | "mobile": "17688475935", | ||
238 | "advanceLimit": "0", | ||
239 | "niceFlag": "0", | ||
240 | "monthFeeLimit": "0", | ||
241 | "groupFlag": "1", | ||
242 | "niceRule": "0", | ||
243 | "monthLimit": "0", | ||
244 | "tailNumTag": "0", | ||
245 | "featureType": "0", | ||
246 | "featureNameIndex": "0", | ||
247 | "highLightNums": "0", | ||
248 | "topHighLightNums": "0" | ||
249 | }, { | ||
250 | "mobile": "13247526160", | ||
251 | "advanceLimit": "0", | ||
252 | "niceFlag": "0", | ||
253 | "monthFeeLimit": "0", | ||
254 | "groupFlag": "1", | ||
255 | "niceRule": "0", | ||
256 | "monthLimit": "0", | ||
257 | "tailNumTag": "0", | ||
258 | "featureType": "0", | ||
259 | "featureNameIndex": "0", | ||
260 | "highLightNums": "0", | ||
261 | "topHighLightNums": "0" | ||
262 | }, { | ||
263 | "mobile": "17675796215", | ||
264 | "advanceLimit": "0", | ||
265 | "niceFlag": "0", | ||
266 | "monthFeeLimit": "0", | ||
267 | "groupFlag": "1", | ||
268 | "niceRule": "0", | ||
269 | "monthLimit": "0", | ||
270 | "tailNumTag": "0", | ||
271 | "featureType": "0", | ||
272 | "featureNameIndex": "0", | ||
273 | "highLightNums": "0", | ||
274 | "topHighLightNums": "0" | ||
275 | }, { | ||
276 | "mobile": "17675704363", | ||
277 | "advanceLimit": "0", | ||
278 | "niceFlag": "0", | ||
279 | "monthFeeLimit": "0", | ||
280 | "groupFlag": "1", | ||
281 | "niceRule": "0", | ||
282 | "monthLimit": "0", | ||
283 | "tailNumTag": "1", | ||
284 | "featureType": "0", | ||
285 | "featureNameIndex": "0", | ||
286 | "highLightNums": "0", | ||
287 | "topHighLightNums": "0" | ||
288 | }, { | ||
289 | "mobile": "16624627325", | ||
290 | "advanceLimit": "0", | ||
291 | "niceFlag": "0", | ||
292 | "monthFeeLimit": "0", | ||
293 | "groupFlag": "1", | ||
294 | "niceRule": "0", | ||
295 | "monthLimit": "0", | ||
296 | "tailNumTag": "0", | ||
297 | "featureType": "0", | ||
298 | "featureNameIndex": "0", | ||
299 | "highLightNums": "0", | ||
300 | "topHighLightNums": "0" | ||
301 | }, { | ||
302 | "mobile": "17520426507", | ||
303 | "advanceLimit": "0", | ||
304 | "niceFlag": "0", | ||
305 | "monthFeeLimit": "0", | ||
306 | "groupFlag": "1", | ||
307 | "niceRule": "0", | ||
308 | "monthLimit": "0", | ||
309 | "tailNumTag": "0", | ||
310 | "featureType": "0", | ||
311 | "featureNameIndex": "0", | ||
312 | "highLightNums": "0", | ||
313 | "topHighLightNums": "0" | ||
314 | }, { | ||
315 | "mobile": "17512901165", | ||
316 | "advanceLimit": "0", | ||
317 | "niceFlag": "0", | ||
318 | "monthFeeLimit": "0", | ||
319 | "groupFlag": "1", | ||
320 | "niceRule": "0", | ||
321 | "monthLimit": "0", | ||
322 | "tailNumTag": "0", | ||
323 | "featureType": "0", | ||
324 | "featureNameIndex": "0", | ||
325 | "highLightNums": "0", | ||
326 | "topHighLightNums": "0" | ||
327 | }, { | ||
328 | "mobile": "16626428409", | ||
329 | "advanceLimit": "0", | ||
330 | "niceFlag": "0", | ||
331 | "monthFeeLimit": "0", | ||
332 | "groupFlag": "1", | ||
333 | "niceRule": "0", | ||
334 | "monthLimit": "0", | ||
335 | "tailNumTag": "1", | ||
336 | "featureType": "0", | ||
337 | "featureNameIndex": "0", | ||
338 | "highLightNums": "0", | ||
339 | "topHighLightNums": "0" | ||
340 | }, { | ||
341 | "mobile": "16624796186", | ||
342 | "advanceLimit": "0", | ||
343 | "niceFlag": "0", | ||
344 | "monthFeeLimit": "0", | ||
345 | "groupFlag": "1", | ||
346 | "niceRule": "0", | ||
347 | "monthLimit": "0", | ||
348 | "tailNumTag": "0", | ||
349 | "featureType": "0", | ||
350 | "featureNameIndex": "0", | ||
351 | "highLightNums": "0", | ||
352 | "topHighLightNums": "0" | ||
353 | }, { | ||
354 | "mobile": "18565040337", | ||
355 | "advanceLimit": "0", | ||
356 | "niceFlag": "0", | ||
357 | "monthFeeLimit": "0", | ||
358 | "groupFlag": "1", | ||
359 | "niceRule": "0", | ||
360 | "monthLimit": "0", | ||
361 | "tailNumTag": "0", | ||
362 | "featureType": "0", | ||
363 | "featureNameIndex": "0", | ||
364 | "highLightNums": "0", | ||
365 | "topHighLightNums": "0" | ||
366 | }, { | ||
367 | "mobile": "18520656402", | ||
368 | "advanceLimit": "0", | ||
369 | "niceFlag": "0", | ||
370 | "monthFeeLimit": "0", | ||
371 | "groupFlag": "1", | ||
372 | "niceRule": "0", | ||
373 | "monthLimit": "0", | ||
374 | "tailNumTag": "1", | ||
375 | "featureType": "0", | ||
376 | "featureNameIndex": "0", | ||
377 | "highLightNums": "0", | ||
378 | "topHighLightNums": "0" | ||
379 | }, { | ||
380 | "mobile": "13247525587", | ||
381 | "advanceLimit": "0", | ||
382 | "niceFlag": "0", | ||
383 | "monthFeeLimit": "0", | ||
384 | "groupFlag": "1", | ||
385 | "niceRule": "0", | ||
386 | "monthLimit": "0", | ||
387 | "tailNumTag": "0", | ||
388 | "featureType": "0", | ||
389 | "featureNameIndex": "0", | ||
390 | "highLightNums": "0", | ||
391 | "topHighLightNums": "0" | ||
392 | }, { | ||
393 | "mobile": "18594078544", | ||
394 | "advanceLimit": "0", | ||
395 | "niceFlag": "0", | ||
396 | "monthFeeLimit": "0", | ||
397 | "groupFlag": "1", | ||
398 | "niceRule": "0", | ||
399 | "monthLimit": "0", | ||
400 | "tailNumTag": "1", | ||
401 | "featureType": "0", | ||
402 | "featureNameIndex": "0", | ||
403 | "highLightNums": "0", | ||
404 | "topHighLightNums": "0" | ||
405 | }, { | ||
406 | "mobile": "18675840537", | ||
407 | "advanceLimit": "0", | ||
408 | "niceFlag": "0", | ||
409 | "monthFeeLimit": "0", | ||
410 | "groupFlag": "1", | ||
411 | "niceRule": "0", | ||
412 | "monthLimit": "0", | ||
413 | "tailNumTag": "0", | ||
414 | "featureType": "0", | ||
415 | "featureNameIndex": "0", | ||
416 | "highLightNums": "0", | ||
417 | "topHighLightNums": "0" | ||
418 | }, { | ||
419 | "mobile": "13242710694", | ||
420 | "advanceLimit": "0", | ||
421 | "niceFlag": "0", | ||
422 | "monthFeeLimit": "0", | ||
423 | "groupFlag": "1", | ||
424 | "niceRule": "0", | ||
425 | "monthLimit": "0", | ||
426 | "tailNumTag": "1", | ||
427 | "featureType": "0", | ||
428 | "featureNameIndex": "0", | ||
429 | "highLightNums": "0", | ||
430 | "topHighLightNums": "0" | ||
431 | }, { | ||
432 | "mobile": "18529435709", | ||
433 | "advanceLimit": "0", | ||
434 | "niceFlag": "0", | ||
435 | "monthFeeLimit": "0", | ||
436 | "groupFlag": "1", | ||
437 | "niceRule": "0", | ||
438 | "monthLimit": "0", | ||
439 | "tailNumTag": "0", | ||
440 | "featureType": "0", | ||
441 | "featureNameIndex": "0", | ||
442 | "highLightNums": "0", | ||
443 | "topHighLightNums": "0" | ||
444 | }, { | ||
445 | "mobile": "13054498145", | ||
446 | "advanceLimit": "0", | ||
447 | "niceFlag": "0", | ||
448 | "monthFeeLimit": "0", | ||
449 | "groupFlag": "1", | ||
450 | "niceRule": "0", | ||
451 | "monthLimit": "0", | ||
452 | "tailNumTag": "1", | ||
453 | "featureType": "0", | ||
454 | "featureNameIndex": "0", | ||
455 | "highLightNums": "0", | ||
456 | "topHighLightNums": "0" | ||
457 | }, { | ||
458 | "mobile": "13249146495", | ||
459 | "advanceLimit": "0", | ||
460 | "niceFlag": "0", | ||
461 | "monthFeeLimit": "0", | ||
462 | "groupFlag": "1", | ||
463 | "niceRule": "0", | ||
464 | "monthLimit": "0", | ||
465 | "tailNumTag": "1", | ||
466 | "featureType": "0", | ||
467 | "featureNameIndex": "0", | ||
468 | "highLightNums": "0", | ||
469 | "topHighLightNums": "0" | ||
470 | }, { | ||
471 | "mobile": "13060850657", | ||
472 | "advanceLimit": "0", | ||
473 | "niceFlag": "0", | ||
474 | "monthFeeLimit": "0", | ||
475 | "groupFlag": "1", | ||
476 | "niceRule": "0", | ||
477 | "monthLimit": "0", | ||
478 | "tailNumTag": "0", | ||
479 | "featureType": "0", | ||
480 | "featureNameIndex": "0", | ||
481 | "highLightNums": "0", | ||
482 | "topHighLightNums": "0" | ||
483 | }, { | ||
484 | "mobile": "16620437214", | ||
485 | "advanceLimit": "0", | ||
486 | "niceFlag": "0", | ||
487 | "monthFeeLimit": "0", | ||
488 | "groupFlag": "1", | ||
489 | "niceRule": "0", | ||
490 | "monthLimit": "0", | ||
491 | "tailNumTag": "1", | ||
492 | "featureType": "0", | ||
493 | "featureNameIndex": "0", | ||
494 | "highLightNums": "0", | ||
495 | "topHighLightNums": "0" | ||
496 | }, { | ||
497 | "mobile": "17612086458", | ||
498 | "advanceLimit": "0", | ||
499 | "niceFlag": "0", | ||
500 | "monthFeeLimit": "0", | ||
501 | "groupFlag": "1", | ||
502 | "niceRule": "0", | ||
503 | "monthLimit": "0", | ||
504 | "tailNumTag": "1", | ||
505 | "featureType": "0", | ||
506 | "featureNameIndex": "0", | ||
507 | "highLightNums": "0", | ||
508 | "topHighLightNums": "0" | ||
509 | }, { | ||
510 | "mobile": "13119576845", | ||
511 | "advanceLimit": "0", | ||
512 | "niceFlag": "0", | ||
513 | "monthFeeLimit": "0", | ||
514 | "groupFlag": "1", | ||
515 | "niceRule": "0", | ||
516 | "monthLimit": "0", | ||
517 | "tailNumTag": "1", | ||
518 | "featureType": "0", | ||
519 | "featureNameIndex": "0", | ||
520 | "highLightNums": "0", | ||
521 | "topHighLightNums": "0" | ||
522 | }, { | ||
523 | "mobile": "17512955903", | ||
524 | "advanceLimit": "0", | ||
525 | "niceFlag": "0", | ||
526 | "monthFeeLimit": "0", | ||
527 | "groupFlag": "1", | ||
528 | "niceRule": "0", | ||
529 | "monthLimit": "0", | ||
530 | "tailNumTag": "0", | ||
531 | "featureType": "0", | ||
532 | "featureNameIndex": "0", | ||
533 | "highLightNums": "0", | ||
534 | "topHighLightNums": "0" | ||
535 | }, { | ||
536 | "mobile": "17520439204", | ||
537 | "advanceLimit": "0", | ||
538 | "niceFlag": "0", | ||
539 | "monthFeeLimit": "0", | ||
540 | "groupFlag": "1", | ||
541 | "niceRule": "0", | ||
542 | "monthLimit": "0", | ||
543 | "tailNumTag": "1", | ||
544 | "featureType": "0", | ||
545 | "featureNameIndex": "0", | ||
546 | "highLightNums": "0", | ||
547 | "topHighLightNums": "0" | ||
548 | }, { | ||
549 | "mobile": "17512957141", | ||
550 | "advanceLimit": "0", | ||
551 | "niceFlag": "0", | ||
552 | "monthFeeLimit": "0", | ||
553 | "groupFlag": "1", | ||
554 | "niceRule": "0", | ||
555 | "monthLimit": "0", | ||
556 | "tailNumTag": "1", | ||
557 | "featureType": "0", | ||
558 | "featureNameIndex": "0", | ||
559 | "highLightNums": "0", | ||
560 | "topHighLightNums": "0" | ||
561 | }, { | ||
562 | "mobile": "13058434817", | ||
563 | "advanceLimit": "0", | ||
564 | "niceFlag": "0", | ||
565 | "monthFeeLimit": "0", | ||
566 | "groupFlag": "1", | ||
567 | "niceRule": "0", | ||
568 | "monthLimit": "0", | ||
569 | "tailNumTag": "1", | ||
570 | "featureType": "0", | ||
571 | "featureNameIndex": "0", | ||
572 | "highLightNums": "0", | ||
573 | "topHighLightNums": "0" | ||
574 | }, { | ||
575 | "mobile": "18565437442", | ||
576 | "advanceLimit": "0", | ||
577 | "niceFlag": "0", | ||
578 | "monthFeeLimit": "0", | ||
579 | "groupFlag": "1", | ||
580 | "niceRule": "0", | ||
581 | "monthLimit": "0", | ||
582 | "tailNumTag": "1", | ||
583 | "featureType": "0", | ||
584 | "featureNameIndex": "0", | ||
585 | "highLightNums": "0", | ||
586 | "topHighLightNums": "0" | ||
587 | }, { | ||
588 | "mobile": "13172030570", | ||
589 | "advanceLimit": "0", | ||
590 | "niceFlag": "0", | ||
591 | "monthFeeLimit": "0", | ||
592 | "groupFlag": "1", | ||
593 | "niceRule": "0", | ||
594 | "monthLimit": "0", | ||
595 | "tailNumTag": "0", | ||
596 | "featureType": "0", | ||
597 | "featureNameIndex": "0", | ||
598 | "highLightNums": "0", | ||
599 | "topHighLightNums": "0" | ||
600 | }, { | ||
601 | "mobile": "13246887624", | ||
602 | "advanceLimit": "0", | ||
603 | "niceFlag": "0", | ||
604 | "monthFeeLimit": "0", | ||
605 | "groupFlag": "1", | ||
606 | "niceRule": "0", | ||
607 | "monthLimit": "0", | ||
608 | "tailNumTag": "1", | ||
609 | "featureType": "0", | ||
610 | "featureNameIndex": "0", | ||
611 | "highLightNums": "0", | ||
612 | "topHighLightNums": "0" | ||
613 | }, { | ||
614 | "mobile": "13244810785", | ||
615 | "advanceLimit": "0", | ||
616 | "niceFlag": "0", | ||
617 | "monthFeeLimit": "0", | ||
618 | "groupFlag": "1", | ||
619 | "niceRule": "0", | ||
620 | "monthLimit": "0", | ||
621 | "tailNumTag": "0", | ||
622 | "featureType": "0", | ||
623 | "featureNameIndex": "0", | ||
624 | "highLightNums": "0", | ||
625 | "topHighLightNums": "0" | ||
626 | }, { | ||
627 | "mobile": "17620146260", | ||
628 | "advanceLimit": "0", | ||
629 | "niceFlag": "0", | ||
630 | "monthFeeLimit": "0", | ||
631 | "groupFlag": "1", | ||
632 | "niceRule": "0", | ||
633 | "monthLimit": "0", | ||
634 | "tailNumTag": "0", | ||
635 | "featureType": "0", | ||
636 | "featureNameIndex": "0", | ||
637 | "highLightNums": "0", | ||
638 | "topHighLightNums": "0" | ||
639 | }, { | ||
640 | "mobile": "13246883454", | ||
641 | "advanceLimit": "0", | ||
642 | "niceFlag": "0", | ||
643 | "monthFeeLimit": "0", | ||
644 | "groupFlag": "1", | ||
645 | "niceRule": "0", | ||
646 | "monthLimit": "0", | ||
647 | "tailNumTag": "1", | ||
648 | "featureType": "0", | ||
649 | "featureNameIndex": "0", | ||
650 | "highLightNums": "0", | ||
651 | "topHighLightNums": "0" | ||
652 | }, { | ||
653 | "mobile": "18565318409", | ||
654 | "advanceLimit": "0", | ||
655 | "niceFlag": "0", | ||
656 | "monthFeeLimit": "0", | ||
657 | "groupFlag": "1", | ||
658 | "niceRule": "0", | ||
659 | "monthLimit": "0", | ||
660 | "tailNumTag": "1", | ||
661 | "featureType": "0", | ||
662 | "featureNameIndex": "0", | ||
663 | "highLightNums": "0", | ||
664 | "topHighLightNums": "0" | ||
665 | }, { | ||
666 | "mobile": "18664704760", | ||
667 | "advanceLimit": "0", | ||
668 | "niceFlag": "0", | ||
669 | "monthFeeLimit": "0", | ||
670 | "groupFlag": "1", | ||
671 | "niceRule": "0", | ||
672 | "monthLimit": "0", | ||
673 | "tailNumTag": "1", | ||
674 | "featureType": "0", | ||
675 | "featureNameIndex": "0", | ||
676 | "highLightNums": "0", | ||
677 | "topHighLightNums": "0" | ||
678 | }, { | ||
679 | "mobile": "18565107102", | ||
680 | "advanceLimit": "0", | ||
681 | "niceFlag": "0", | ||
682 | "monthFeeLimit": "0", | ||
683 | "groupFlag": "1", | ||
684 | "niceRule": "0", | ||
685 | "monthLimit": "0", | ||
686 | "tailNumTag": "0", | ||
687 | "featureType": "0", | ||
688 | "featureNameIndex": "0", | ||
689 | "highLightNums": "0", | ||
690 | "topHighLightNums": "0" | ||
691 | }, { | ||
692 | "mobile": "13060814412", | ||
693 | "advanceLimit": "0", | ||
694 | "niceFlag": "0", | ||
695 | "monthFeeLimit": "0", | ||
696 | "groupFlag": "1", | ||
697 | "niceRule": "0", | ||
698 | "monthLimit": "0", | ||
699 | "tailNumTag": "1", | ||
700 | "featureType": "0", | ||
701 | "featureNameIndex": "0", | ||
702 | "highLightNums": "0", | ||
703 | "topHighLightNums": "0" | ||
704 | }, { | ||
705 | "mobile": "16620498273", | ||
706 | "advanceLimit": "0", | ||
707 | "niceFlag": "0", | ||
708 | "monthFeeLimit": "0", | ||
709 | "groupFlag": "1", | ||
710 | "niceRule": "0", | ||
711 | "monthLimit": "0", | ||
712 | "tailNumTag": "0", | ||
713 | "featureType": "0", | ||
714 | "featureNameIndex": "0", | ||
715 | "highLightNums": "0", | ||
716 | "topHighLightNums": "0" | ||
717 | }, { | ||
718 | "mobile": "17665051443", | ||
719 | "advanceLimit": "0", | ||
720 | "niceFlag": "0", | ||
721 | "monthFeeLimit": "0", | ||
722 | "groupFlag": "1", | ||
723 | "niceRule": "0", | ||
724 | "monthLimit": "0", | ||
725 | "tailNumTag": "1", | ||
726 | "featureType": "0", | ||
727 | "featureNameIndex": "0", | ||
728 | "highLightNums": "0", | ||
729 | "topHighLightNums": "0" | ||
730 | }, { | ||
731 | "mobile": "13076804579", | ||
732 | "advanceLimit": "0", | ||
733 | "niceFlag": "0", | ||
734 | "monthFeeLimit": "0", | ||
735 | "groupFlag": "1", | ||
736 | "niceRule": "0", | ||
737 | "monthLimit": "0", | ||
738 | "tailNumTag": "1", | ||
739 | "featureType": "0", | ||
740 | "featureNameIndex": "0", | ||
741 | "highLightNums": "0", | ||
742 | "topHighLightNums": "0" | ||
743 | }, { | ||
744 | "mobile": "13242757826", | ||
745 | "advanceLimit": "0", | ||
746 | "niceFlag": "0", | ||
747 | "monthFeeLimit": "0", | ||
748 | "groupFlag": "1", | ||
749 | "niceRule": "0", | ||
750 | "monthLimit": "0", | ||
751 | "tailNumTag": "0", | ||
752 | "featureType": "0", | ||
753 | "featureNameIndex": "0", | ||
754 | "highLightNums": "0", | ||
755 | "topHighLightNums": "0" | ||
756 | }, { | ||
757 | "mobile": "16624748414", | ||
758 | "advanceLimit": "0", | ||
759 | "niceFlag": "0", | ||
760 | "monthFeeLimit": "0", | ||
761 | "groupFlag": "1", | ||
762 | "niceRule": "0", | ||
763 | "monthLimit": "0", | ||
764 | "tailNumTag": "1", | ||
765 | "featureType": "0", | ||
766 | "featureNameIndex": "0", | ||
767 | "highLightNums": "0", | ||
768 | "topHighLightNums": "0" | ||
769 | }, { | ||
770 | "mobile": "17665029813", | ||
771 | "advanceLimit": "0", | ||
772 | "niceFlag": "0", | ||
773 | "monthFeeLimit": "0", | ||
774 | "groupFlag": "1", | ||
775 | "niceRule": "0", | ||
776 | "monthLimit": "0", | ||
777 | "tailNumTag": "0", | ||
778 | "featureType": "0", | ||
779 | "featureNameIndex": "0", | ||
780 | "highLightNums": "0", | ||
781 | "topHighLightNums": "0" | ||
782 | }, { | ||
783 | "mobile": "16620449170", | ||
784 | "advanceLimit": "0", | ||
785 | "niceFlag": "0", | ||
786 | "monthFeeLimit": "0", | ||
787 | "groupFlag": "1", | ||
788 | "niceRule": "0", | ||
789 | "monthLimit": "0", | ||
790 | "tailNumTag": "0", | ||
791 | "featureType": "0", | ||
792 | "featureNameIndex": "0", | ||
793 | "highLightNums": "0", | ||
794 | "topHighLightNums": "0" | ||
795 | }, { | ||
796 | "mobile": "13265385430", | ||
797 | "advanceLimit": "0", | ||
798 | "niceFlag": "0", | ||
799 | "monthFeeLimit": "0", | ||
800 | "groupFlag": "1", | ||
801 | "niceRule": "0", | ||
802 | "monthLimit": "0", | ||
803 | "tailNumTag": "1", | ||
804 | "featureType": "0", | ||
805 | "featureNameIndex": "0", | ||
806 | "highLightNums": "0", | ||
807 | "topHighLightNums": "0" | ||
808 | }, { | ||
809 | "mobile": "15626014075", | ||
810 | "advanceLimit": "0", | ||
811 | "niceFlag": "0", | ||
812 | "monthFeeLimit": "0", | ||
813 | "groupFlag": "1", | ||
814 | "niceRule": "0", | ||
815 | "monthLimit": "0", | ||
816 | "tailNumTag": "1", | ||
817 | "featureType": "0", | ||
818 | "featureNameIndex": "0", | ||
819 | "highLightNums": "0", | ||
820 | "topHighLightNums": "0" | ||
821 | }, { | ||
822 | "mobile": "13202543574", | ||
823 | "advanceLimit": "0", | ||
824 | "niceFlag": "0", | ||
825 | "monthFeeLimit": "0", | ||
826 | "groupFlag": "1", | ||
827 | "niceRule": "0", | ||
828 | "monthLimit": "0", | ||
829 | "tailNumTag": "1", | ||
830 | "featureType": "0", | ||
831 | "featureNameIndex": "0", | ||
832 | "highLightNums": "0", | ||
833 | "topHighLightNums": "0" | ||
834 | }, { | ||
835 | "mobile": "17620157286", | ||
836 | "advanceLimit": "0", | ||
837 | "niceFlag": "0", | ||
838 | "monthFeeLimit": "0", | ||
839 | "groupFlag": "1", | ||
840 | "niceRule": "0", | ||
841 | "monthLimit": "0", | ||
842 | "tailNumTag": "0", | ||
843 | "featureType": "0", | ||
844 | "featureNameIndex": "0", | ||
845 | "highLightNums": "0", | ||
846 | "topHighLightNums": "0" | ||
847 | }, { | ||
848 | "mobile": "18602050294", | ||
849 | "advanceLimit": "0", | ||
850 | "niceFlag": "0", | ||
851 | "monthFeeLimit": "0", | ||
852 | "groupFlag": "1", | ||
853 | "niceRule": "0", | ||
854 | "monthLimit": "0", | ||
855 | "tailNumTag": "1", | ||
856 | "featureType": "0", | ||
857 | "featureNameIndex": "0", | ||
858 | "highLightNums": "0", | ||
859 | "topHighLightNums": "0" | ||
860 | }, { | ||
861 | "mobile": "16620178309", | ||
862 | "advanceLimit": "0", | ||
863 | "niceFlag": "0", | ||
864 | "monthFeeLimit": "0", | ||
865 | "groupFlag": "1", | ||
866 | "niceRule": "0", | ||
867 | "monthLimit": "0", | ||
868 | "tailNumTag": "0", | ||
869 | "featureType": "0", | ||
870 | "featureNameIndex": "0", | ||
871 | "highLightNums": "0", | ||
872 | "topHighLightNums": "0" | ||
873 | }, { | ||
874 | "mobile": "17620018303", | ||
875 | "advanceLimit": "0", | ||
876 | "niceFlag": "0", | ||
877 | "monthFeeLimit": "0", | ||
878 | "groupFlag": "1", | ||
879 | "niceRule": "0", | ||
880 | "monthLimit": "0", | ||
881 | "tailNumTag": "0", | ||
882 | "featureType": "0", | ||
883 | "featureNameIndex": "0", | ||
884 | "highLightNums": "0", | ||
885 | "topHighLightNums": "0" | ||
886 | }, { | ||
887 | "mobile": "16624650163", | ||
888 | "advanceLimit": "0", | ||
889 | "niceFlag": "0", | ||
890 | "monthFeeLimit": "0", | ||
891 | "groupFlag": "1", | ||
892 | "niceRule": "0", | ||
893 | "monthLimit": "0", | ||
894 | "tailNumTag": "0", | ||
895 | "featureType": "0", | ||
896 | "featureNameIndex": "0", | ||
897 | "highLightNums": "0", | ||
898 | "topHighLightNums": "0" | ||
899 | }, { | ||
900 | "mobile": "17620745149", | ||
901 | "advanceLimit": "0", | ||
902 | "niceFlag": "0", | ||
903 | "monthFeeLimit": "0", | ||
904 | "groupFlag": "1", | ||
905 | "niceRule": "0", | ||
906 | "monthLimit": "0", | ||
907 | "tailNumTag": "1", | ||
908 | "featureType": "0", | ||
909 | "featureNameIndex": "0", | ||
910 | "highLightNums": "0", | ||
911 | "topHighLightNums": "0" | ||
912 | }, { | ||
913 | "mobile": "18664605549", | ||
914 | "advanceLimit": "0", | ||
915 | "niceFlag": "0", | ||
916 | "monthFeeLimit": "0", | ||
917 | "groupFlag": "1", | ||
918 | "niceRule": "0", | ||
919 | "monthLimit": "0", | ||
920 | "tailNumTag": "1", | ||
921 | "featureType": "0", | ||
922 | "featureNameIndex": "0", | ||
923 | "highLightNums": "0", | ||
924 | "topHighLightNums": "0" | ||
925 | }, { | ||
926 | "mobile": "13126489375", | ||
927 | "advanceLimit": "0", | ||
928 | "niceFlag": "0", | ||
929 | "monthFeeLimit": "0", | ||
930 | "groupFlag": "1", | ||
931 | "niceRule": "0", | ||
932 | "monthLimit": "0", | ||
933 | "tailNumTag": "0", | ||
934 | "featureType": "0", | ||
935 | "featureNameIndex": "0", | ||
936 | "highLightNums": "0", | ||
937 | "topHighLightNums": "0" | ||
938 | }, { | ||
939 | "mobile": "18664612895", | ||
940 | "advanceLimit": "0", | ||
941 | "niceFlag": "0", | ||
942 | "monthFeeLimit": "0", | ||
943 | "groupFlag": "1", | ||
944 | "niceRule": "0", | ||
945 | "monthLimit": "0", | ||
946 | "tailNumTag": "0", | ||
947 | "featureType": "0", | ||
948 | "featureNameIndex": "0", | ||
949 | "highLightNums": "0", | ||
950 | "topHighLightNums": "0" | ||
951 | }, { | ||
952 | "mobile": "18578637645", | ||
953 | "advanceLimit": "0", | ||
954 | "niceFlag": "0", | ||
955 | "monthFeeLimit": "0", | ||
956 | "groupFlag": "1", | ||
957 | "niceRule": "0", | ||
958 | "monthLimit": "0", | ||
959 | "tailNumTag": "1", | ||
960 | "featureType": "0", | ||
961 | "featureNameIndex": "0", | ||
962 | "highLightNums": "0", | ||
963 | "topHighLightNums": "0" | ||
964 | }, { | ||
965 | "mobile": "13247511364", | ||
966 | "advanceLimit": "0", | ||
967 | "niceFlag": "0", | ||
968 | "monthFeeLimit": "0", | ||
969 | "groupFlag": "1", | ||
970 | "niceRule": "0", | ||
971 | "monthLimit": "0", | ||
972 | "tailNumTag": "1", | ||
973 | "featureType": "0", | ||
974 | "featureNameIndex": "0", | ||
975 | "highLightNums": "0", | ||
976 | "topHighLightNums": "0" | ||
977 | }, { | ||
978 | "mobile": "17665700263", | ||
979 | "advanceLimit": "0", | ||
980 | "niceFlag": "0", | ||
981 | "monthFeeLimit": "0", | ||
982 | "groupFlag": "1", | ||
983 | "niceRule": "0", | ||
984 | "monthLimit": "0", | ||
985 | "tailNumTag": "0", | ||
986 | "featureType": "0", | ||
987 | "featureNameIndex": "0", | ||
988 | "highLightNums": "0", | ||
989 | "topHighLightNums": "0" | ||
990 | }, { | ||
991 | "mobile": "13143699350", | ||
992 | "advanceLimit": "0", | ||
993 | "niceFlag": "0", | ||
994 | "monthFeeLimit": "0", | ||
995 | "groupFlag": "1", | ||
996 | "niceRule": "0", | ||
997 | "monthLimit": "0", | ||
998 | "tailNumTag": "0", | ||
999 | "featureType": "0", | ||
1000 | "featureNameIndex": "0", | ||
1001 | "highLightNums": "0", | ||
1002 | "topHighLightNums": "0" | ||
1003 | }, { | ||
1004 | "mobile": "15521453596", | ||
1005 | "advanceLimit": "0", | ||
1006 | "niceFlag": "0", | ||
1007 | "monthFeeLimit": "0", | ||
1008 | "groupFlag": "1", | ||
1009 | "niceRule": "0", | ||
1010 | "monthLimit": "0", | ||
1011 | "tailNumTag": "0", | ||
1012 | "featureType": "0", | ||
1013 | "featureNameIndex": "0", | ||
1014 | "highLightNums": "0", | ||
1015 | "topHighLightNums": "0" | ||
1016 | }, { | ||
1017 | "mobile": "13246864546", | ||
1018 | "advanceLimit": "0", | ||
1019 | "niceFlag": "0", | ||
1020 | "monthFeeLimit": "0", | ||
1021 | "groupFlag": "1", | ||
1022 | "niceRule": "0", | ||
1023 | "monthLimit": "0", | ||
1024 | "tailNumTag": "1", | ||
1025 | "featureType": "0", | ||
1026 | "featureNameIndex": "0", | ||
1027 | "highLightNums": "0", | ||
1028 | "topHighLightNums": "0" | ||
1029 | }, { | ||
1030 | "mobile": "16624612763", | ||
1031 | "advanceLimit": "0", | ||
1032 | "niceFlag": "0", | ||
1033 | "monthFeeLimit": "0", | ||
1034 | "groupFlag": "1", | ||
1035 | "niceRule": "0", | ||
1036 | "monthLimit": "0", | ||
1037 | "tailNumTag": "0", | ||
1038 | "featureType": "0", | ||
1039 | "featureNameIndex": "0", | ||
1040 | "highLightNums": "0", | ||
1041 | "topHighLightNums": "0" | ||
1042 | }, { | ||
1043 | "mobile": "16620094489", | ||
1044 | "advanceLimit": "0", | ||
1045 | "niceFlag": "0", | ||
1046 | "monthFeeLimit": "0", | ||
1047 | "groupFlag": "1", | ||
1048 | "niceRule": "0", | ||
1049 | "monthLimit": "0", | ||
1050 | "tailNumTag": "1", | ||
1051 | "featureType": "0", | ||
1052 | "featureNameIndex": "0", | ||
1053 | "highLightNums": "0", | ||
1054 | "topHighLightNums": "0" | ||
1055 | }, { | ||
1056 | "mobile": "18520480944", | ||
1057 | "advanceLimit": "0", | ||
1058 | "niceFlag": "0", | ||
1059 | "monthFeeLimit": "0", | ||
1060 | "groupFlag": "1", | ||
1061 | "niceRule": "0", | ||
1062 | "monthLimit": "0", | ||
1063 | "tailNumTag": "1", | ||
1064 | "featureType": "0", | ||
1065 | "featureNameIndex": "0", | ||
1066 | "highLightNums": "0", | ||
1067 | "topHighLightNums": "0" | ||
1068 | }, { | ||
1069 | "mobile": "13242736592", | ||
1070 | "advanceLimit": "0", | ||
1071 | "niceFlag": "0", | ||
1072 | "monthFeeLimit": "0", | ||
1073 | "groupFlag": "1", | ||
1074 | "niceRule": "0", | ||
1075 | "monthLimit": "0", | ||
1076 | "tailNumTag": "0", | ||
1077 | "featureType": "0", | ||
1078 | "featureNameIndex": "0", | ||
1079 | "highLightNums": "0", | ||
1080 | "topHighLightNums": "0" | ||
1081 | }, { | ||
1082 | "mobile": "17512823954", | ||
1083 | "advanceLimit": "0", | ||
1084 | "niceFlag": "0", | ||
1085 | "monthFeeLimit": "0", | ||
1086 | "groupFlag": "1", | ||
1087 | "niceRule": "0", | ||
1088 | "monthLimit": "0", | ||
1089 | "tailNumTag": "1", | ||
1090 | "featureType": "0", | ||
1091 | "featureNameIndex": "0", | ||
1092 | "highLightNums": "0", | ||
1093 | "topHighLightNums": "0" | ||
1094 | }, { | ||
1095 | "mobile": "13242753956", | ||
1096 | "advanceLimit": "0", | ||
1097 | "niceFlag": "0", | ||
1098 | "monthFeeLimit": "0", | ||
1099 | "groupFlag": "1", | ||
1100 | "niceRule": "0", | ||
1101 | "monthLimit": "0", | ||
1102 | "tailNumTag": "0", | ||
1103 | "featureType": "0", | ||
1104 | "featureNameIndex": "0", | ||
1105 | "highLightNums": "0", | ||
1106 | "topHighLightNums": "0" | ||
1107 | }, { | ||
1108 | "mobile": "18594076414", | ||
1109 | "advanceLimit": "0", | ||
1110 | "niceFlag": "0", | ||
1111 | "monthFeeLimit": "0", | ||
1112 | "groupFlag": "1", | ||
1113 | "niceRule": "0", | ||
1114 | "monthLimit": "0", | ||
1115 | "tailNumTag": "1", | ||
1116 | "featureType": "0", | ||
1117 | "featureNameIndex": "0", | ||
1118 | "highLightNums": "0", | ||
1119 | "topHighLightNums": "0" | ||
1120 | }, { | ||
1121 | "mobile": "15622729204", | ||
1122 | "advanceLimit": "0", | ||
1123 | "niceFlag": "0", | ||
1124 | "monthFeeLimit": "0", | ||
1125 | "groupFlag": "1", | ||
1126 | "niceRule": "0", | ||
1127 | "monthLimit": "0", | ||
1128 | "tailNumTag": "1", | ||
1129 | "featureType": "0", | ||
1130 | "featureNameIndex": "0", | ||
1131 | "highLightNums": "0", | ||
1132 | "topHighLightNums": "0" | ||
1133 | }, { | ||
1134 | "mobile": "18565143142", | ||
1135 | "advanceLimit": "0", | ||
1136 | "niceFlag": "0", | ||
1137 | "monthFeeLimit": "0", | ||
1138 | "groupFlag": "1", | ||
1139 | "niceRule": "0", | ||
1140 | "monthLimit": "0", | ||
1141 | "tailNumTag": "1", | ||
1142 | "featureType": "0", | ||
1143 | "featureNameIndex": "0", | ||
1144 | "highLightNums": "0", | ||
1145 | "topHighLightNums": "0" | ||
1146 | }, { | ||
1147 | "mobile": "17512964719", | ||
1148 | "advanceLimit": "0", | ||
1149 | "niceFlag": "0", | ||
1150 | "monthFeeLimit": "0", | ||
1151 | "groupFlag": "1", | ||
1152 | "niceRule": "0", | ||
1153 | "monthLimit": "0", | ||
1154 | "tailNumTag": "1", | ||
1155 | "featureType": "0", | ||
1156 | "featureNameIndex": "0", | ||
1157 | "highLightNums": "0", | ||
1158 | "topHighLightNums": "0" | ||
1159 | }, { | ||
1160 | "mobile": "18664847096", | ||
1161 | "advanceLimit": "0", | ||
1162 | "niceFlag": "0", | ||
1163 | "monthFeeLimit": "0", | ||
1164 | "groupFlag": "1", | ||
1165 | "niceRule": "0", | ||
1166 | "monthLimit": "0", | ||
1167 | "tailNumTag": "0", | ||
1168 | "featureType": "0", | ||
1169 | "featureNameIndex": "0", | ||
1170 | "highLightNums": "0", | ||
1171 | "topHighLightNums": "0" | ||
1172 | }, { | ||
1173 | "mobile": "17620836402", | ||
1174 | "advanceLimit": "0", | ||
1175 | "niceFlag": "0", | ||
1176 | "monthFeeLimit": "0", | ||
1177 | "groupFlag": "1", | ||
1178 | "niceRule": "0", | ||
1179 | "monthLimit": "0", | ||
1180 | "tailNumTag": "1", | ||
1181 | "featureType": "0", | ||
1182 | "featureNameIndex": "0", | ||
1183 | "highLightNums": "0", | ||
1184 | "topHighLightNums": "0" | ||
1185 | }, { | ||
1186 | "mobile": "16620490338", | ||
1187 | "advanceLimit": "0", | ||
1188 | "niceFlag": "0", | ||
1189 | "monthFeeLimit": "0", | ||
1190 | "groupFlag": "1", | ||
1191 | "niceRule": "0", | ||
1192 | "monthLimit": "0", | ||
1193 | "tailNumTag": "0", | ||
1194 | "featureType": "0", | ||
1195 | "featureNameIndex": "0", | ||
1196 | "highLightNums": "0", | ||
1197 | "topHighLightNums": "0" | ||
1198 | }, { | ||
1199 | "mobile": "18520659724", | ||
1200 | "advanceLimit": "0", | ||
1201 | "niceFlag": "0", | ||
1202 | "monthFeeLimit": "0", | ||
1203 | "groupFlag": "1", | ||
1204 | "niceRule": "0", | ||
1205 | "monthLimit": "0", | ||
1206 | "tailNumTag": "1", | ||
1207 | "featureType": "0", | ||
1208 | "featureNameIndex": "0", | ||
1209 | "highLightNums": "0", | ||
1210 | "topHighLightNums": "0" | ||
1211 | }, { | ||
1212 | "mobile": "18520781483", | ||
1213 | "advanceLimit": "0", | ||
1214 | "niceFlag": "0", | ||
1215 | "monthFeeLimit": "0", | ||
1216 | "groupFlag": "1", | ||
1217 | "niceRule": "0", | ||
1218 | "monthLimit": "0", | ||
1219 | "tailNumTag": "1", | ||
1220 | "featureType": "0", | ||
1221 | "featureNameIndex": "0", | ||
1222 | "highLightNums": "0", | ||
1223 | "topHighLightNums": "0" | ||
1224 | }, { | ||
1225 | "mobile": "17512872961", | ||
1226 | "advanceLimit": "0", | ||
1227 | "niceFlag": "0", | ||
1228 | "monthFeeLimit": "0", | ||
1229 | "groupFlag": "1", | ||
1230 | "niceRule": "0", | ||
1231 | "monthLimit": "0", | ||
1232 | "tailNumTag": "0", | ||
1233 | "featureType": "0", | ||
1234 | "featureNameIndex": "0", | ||
1235 | "highLightNums": "0", | ||
1236 | "topHighLightNums": "0" | ||
1237 | }, { | ||
1238 | "mobile": "13249154270", | ||
1239 | "advanceLimit": "0", | ||
1240 | "niceFlag": "0", | ||
1241 | "monthFeeLimit": "0", | ||
1242 | "groupFlag": "1", | ||
1243 | "niceRule": "0", | ||
1244 | "monthLimit": "0", | ||
1245 | "tailNumTag": "1", | ||
1246 | "featureType": "0", | ||
1247 | "featureNameIndex": "0", | ||
1248 | "highLightNums": "0", | ||
1249 | "topHighLightNums": "0" | ||
1250 | }, { | ||
1251 | "mobile": "16626414401", | ||
1252 | "advanceLimit": "0", | ||
1253 | "niceFlag": "0", | ||
1254 | "monthFeeLimit": "0", | ||
1255 | "groupFlag": "1", | ||
1256 | "niceRule": "0", | ||
1257 | "monthLimit": "0", | ||
1258 | "tailNumTag": "1", | ||
1259 | "featureType": "0", | ||
1260 | "featureNameIndex": "0", | ||
1261 | "highLightNums": "0", | ||
1262 | "topHighLightNums": "0" | ||
1263 | }, { | ||
1264 | "mobile": "18520238894", | ||
1265 | "advanceLimit": "0", | ||
1266 | "niceFlag": "0", | ||
1267 | "monthFeeLimit": "0", | ||
1268 | "groupFlag": "1", | ||
1269 | "niceRule": "0", | ||
1270 | "monthLimit": "0", | ||
1271 | "tailNumTag": "1", | ||
1272 | "featureType": "0", | ||
1273 | "featureNameIndex": "0", | ||
1274 | "highLightNums": "0", | ||
1275 | "topHighLightNums": "0" | ||
1276 | }, { | ||
1277 | "mobile": "17675604259", | ||
1278 | "advanceLimit": "0", | ||
1279 | "niceFlag": "0", | ||
1280 | "monthFeeLimit": "0", | ||
1281 | "groupFlag": "1", | ||
1282 | "niceRule": "0", | ||
1283 | "monthLimit": "0", | ||
1284 | "tailNumTag": "1", | ||
1285 | "featureType": "0", | ||
1286 | "featureNameIndex": "0", | ||
1287 | "highLightNums": "0", | ||
1288 | "topHighLightNums": "0" | ||
1289 | }, { | ||
1290 | "mobile": "16626409289", | ||
1291 | "advanceLimit": "0", | ||
1292 | "niceFlag": "0", | ||
1293 | "monthFeeLimit": "0", | ||
1294 | "groupFlag": "1", | ||
1295 | "niceRule": "0", | ||
1296 | "monthLimit": "0", | ||
1297 | "tailNumTag": "0", | ||
1298 | "featureType": "0", | ||
1299 | "featureNameIndex": "0", | ||
1300 | "highLightNums": "0", | ||
1301 | "topHighLightNums": "0" | ||
1302 | }] | ||
1303 | }; | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
env/index.js
0 → 100644
1 | /** | ||
2 | * BASE_API:api统一请求域名。(当前项目业务) | ||
3 | * API_PREFIX:请求业务词头前缀,项目划分 | ||
4 | * COMMON_API:平台通用请求域名。(单/多文件上传,省市区联查,场景二维码/小程序码等) | ||
5 | * IMG:oss图片地址前缀,用于访问 | ||
6 | * OSS_PATH:上传文件路径,用于上传 例如:'/weapp/xxx/' | ||
7 | * MODULE_CODE:后端给出 | ||
8 | * RSA_PUBLIC_KEY:公钥 | ||
9 | * AES_IV:偏移量 | ||
10 | * IS_POST_ENC:post方法是否开启自动开启加密 | ||
11 | */ | ||
12 | |||
13 | |||
14 | module.exports = { | ||
15 | dev: { | ||
16 | BASE_API: 'https://prettyapi.kdao.xin', | ||
17 | // BASE_API: 'https://prettyapi.letterbelieve.com', | ||
18 | // BASE_API: 'https://bizapi.kdao.xin', | ||
19 | API_PREFIX: '/zwPrettyNumApi', | ||
20 | COMMON_API: 'https://bizapi.kdao.xin', | ||
21 | IMG: 'https://cdn.kdao.xin/cdn/images', | ||
22 | OSS_PATH: '', | ||
23 | MODULE_CODE: 'd00b70ed26ed4f1291eb870662270e77', | ||
24 | RSA_PUBLIC_KEY: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq4U9ZijHk0bsHh5YvsQu7E9l/S9sqRLlbLhxmcgoTCcH5nO3S4//VZ/Ns2sxRwSWrsCxGr+tIPXBofJErGf3teqxAspca/1pjaWGB3fQ44Q0+OPwv1l7vWgn81tdMIMizjHu31vrUTlcL9UDHfoLB9vht3mtrYsc7xTi8MnHlkWx+VZv8uS06sLRJqCBiIzZcdB30szCjNtcSm1A2sV4EnBzqCQnR4/0Bd33UVRVdJLFcez5OfKqTi3HS65adf6U8LjOdw5rE+NNPNJmggVGlWVRyw9MSkjbYS9W4lpGul22rIKODkLFnqEtW8VcG/1dFCka1ykMADOII+YXr6GDHQIDAQAB', | ||
25 | AES_IV: 'ce102d54b198462c', | ||
26 | IS_POST_ENC: true, | ||
27 | }, | ||
28 | prod: { | ||
29 | BASE_API: 'https://prettyapi.kdao.xin', | ||
30 | // BASE_API: 'https://prettyapi.letterbelieve.com', | ||
31 | // BASE_API: 'https://bizapi.kdao.xin', | ||
32 | API_PREFIX: '/zwPrettyNumApi', | ||
33 | COMMON_API: 'https://bizapi.kdao.xin', | ||
34 | IMG: 'https://cdn.kdao.xin/cdn/images', | ||
35 | OSS_PATH: '', | ||
36 | MODULE_CODE: 'd00b70ed26ed4f1291eb870662270e77', | ||
37 | RSA_PUBLIC_KEY: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq4U9ZijHk0bsHh5YvsQu7E9l/S9sqRLlbLhxmcgoTCcH5nO3S4//VZ/Ns2sxRwSWrsCxGr+tIPXBofJErGf3teqxAspca/1pjaWGB3fQ44Q0+OPwv1l7vWgn81tdMIMizjHu31vrUTlcL9UDHfoLB9vht3mtrYsc7xTi8MnHlkWx+VZv8uS06sLRJqCBiIzZcdB30szCjNtcSm1A2sV4EnBzqCQnR4/0Bd33UVRVdJLFcez5OfKqTi3HS65adf6U8LjOdw5rE+NNPNJmggVGlWVRyw9MSkjbYS9W4lpGul22rIKODkLFnqEtW8VcG/1dFCka1ykMADOII+YXr6GDHQIDAQAB', | ||
38 | AES_IV: 'ce102d54b198462c', | ||
39 | IS_POST_ENC: true, | ||
40 | } | ||
41 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
http/api.js
0 → 100644
1 | module.exports = { | ||
2 | |||
3 | config: "/front/mallApi/configs", //会员配置 | ||
4 | login: '/front/userApi/login', // 登录 | ||
5 | wxLogin: "/front/userApi/code2session", // wx小程序登录 | ||
6 | profile: "/front/userApi/profile", // profile | ||
7 | |||
8 | profile: "/front/userApi/profile", // profile | ||
9 | |||
10 | // 1、这个接口一次查询会返回100个号码。 | ||
11 | // 2、后台限制了这个接口从联通获取号码的次数(5)次。多次调用后,如果超过次数,会默认以query = '' 返回结果。相同查询条件的结果会缓存起来,二次查询的结果是相同的。 | ||
12 | // 3、建议前台缓存返回的结果,翻页、AABB+组合需要前端自行做正则匹配。匹配结果不足时,可以从缓存中随机抽取号码补齐。 | ||
13 | // 4、缓存返回结果的时候做好去重操作 | ||
14 | selectNum: "/front/selectNum", // 选号 | ||
15 | |||
16 | createOrder: "/front/createOrder", // 下单 | ||
17 | |||
18 | /** | ||
19 | * 通用接口 | ||
20 | * 请求时 "mode"传"custom" | ||
21 | */ | ||
22 | areaQuery: 'https://api.k.wxpai.cn/bizproxy/kdapi/area', // post 区域查询 | ||
23 | |||
24 | // 文件上传 | ||
25 | uploadFile: '/common/upload', // 上传图片通用接口(需要后端协同开通用接口,目前没有通用接口) | ||
26 | // uploadFile: "/admin/upload", // 上传图片 | ||
27 | wxQrcodeCreate: '/open/wx/qrcode/create', //生成小程序码(需要后端协同开通用接口,目前没有通用接口) | ||
28 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
http/fetch-api.js
0 → 100644
1 | let config = require('./../config'); | ||
2 | let Storage = require('./../utils/stroage'); | ||
3 | let util = require('./../utils/util'); | ||
4 | let Router = require('./../router/index'); | ||
5 | let Encrypt = require('./../utils/enc/enc'); | ||
6 | let api = require('./api'); | ||
7 | const errMsg = '服务异常,请稍后重试'; | ||
8 | |||
9 | /** | ||
10 | * 重新获取 sessionId | ||
11 | * 1.重新获取wxcode, | ||
12 | * 2.调用login方法,传wxcode,给后端重新换取js_session | ||
13 | * @returns | ||
14 | */ | ||
15 | function login() { | ||
16 | return new Promise((resolve, reject) => { | ||
17 | // my.login({ | ||
18 | // success: (res) => { | ||
19 | |||
20 | let res = { | ||
21 | code: util.uuid() | ||
22 | } | ||
23 | |||
24 | let baseUrl = config.NET_CONFIG.BASE_API + config.NET_CONFIG.API_PREFIX; | ||
25 | let header = { | ||
26 | '-kd-platform-env': config.ENV, | ||
27 | '-kd-platform-module': config.NET_CONFIG.MODULE_CODE | ||
28 | } | ||
29 | |||
30 | |||
31 | let app = getApp(); | ||
32 | let globalData = app && app.globalData || null | ||
33 | let data = { | ||
34 | code: res.code, | ||
35 | miniproChannel: globalData.channelCode || "", | ||
36 | channelCode: globalData.channelCode || "", | ||
37 | parentMemberCode: globalData.parentMemberCode || "", | ||
38 | platform: "minipro", | ||
39 | }; | ||
40 | |||
41 | data = Encrypt.makeEncrypt(data); | ||
42 | my.request({ | ||
43 | // url: baseUrl + api.wxLogin, | ||
44 | url: baseUrl + api.login, | ||
45 | sid: false, | ||
46 | data: data, | ||
47 | method: 'POST', | ||
48 | header: header, | ||
49 | success: (res) => { | ||
50 | let { | ||
51 | code, | ||
52 | content | ||
53 | } = res.data; | ||
54 | if (code == 200 && content.sessionId) { | ||
55 | Storage.setItem('sessionId', content.sessionId); // 保存新的sessionId | ||
56 | resolve(); | ||
57 | } else { | ||
58 | reject(); | ||
59 | } | ||
60 | } | ||
61 | }) | ||
62 | // } | ||
63 | // }); | ||
64 | |||
65 | }); | ||
66 | } | ||
67 | |||
68 | |||
69 | /** | ||
70 | * 检查并埋下sessionId | ||
71 | * @param {*} sid 接口是否需要sessionId | ||
72 | * @returns | ||
73 | */ | ||
74 | function checkSessionId(sid) { | ||
75 | return new Promise((resolve, reject) => { | ||
76 | let sessionId = Storage.getItem('sessionId'); | ||
77 | if (sid) { | ||
78 | // 拥有sessionId | ||
79 | if (sessionId) { | ||
80 | resolve(); | ||
81 | } else { | ||
82 | // 重新获取 sessionId | ||
83 | login().then((result) => { | ||
84 | resolve(); | ||
85 | }).catch((err) => { | ||
86 | reject(); | ||
87 | }); | ||
88 | } | ||
89 | } else { | ||
90 | // 不需要 sessionId 忽略 | ||
91 | resolve(); | ||
92 | } | ||
93 | }); | ||
94 | } | ||
95 | |||
96 | |||
97 | |||
98 | function fetchMethod(val) { | ||
99 | let params = Object.assign({ | ||
100 | loading: false, | ||
101 | toast: true, | ||
102 | sid: true, | ||
103 | mode: "", | ||
104 | url: "", | ||
105 | data: null, | ||
106 | method: "GET", | ||
107 | enc: false | ||
108 | }, val); | ||
109 | let promise = new Promise((resolve, reject) => { | ||
110 | checkSessionId(params.sid).then(() => { | ||
111 | doRequest(params).then((result) => { | ||
112 | resolve(result); | ||
113 | }).catch((err) => { | ||
114 | // 404 或 403 错误码的时候需要重新拉一次 | ||
115 | if (err.code == 404 || err.code == 403) { | ||
116 | login().then((loginRes) => { | ||
117 | doRequest(params).then((result2) => { | ||
118 | resolve(result2); | ||
119 | }); | ||
120 | }).catch((err) => {}); | ||
121 | } else { | ||
122 | reject(err) | ||
123 | } | ||
124 | }); | ||
125 | }); | ||
126 | }); | ||
127 | return promise; | ||
128 | } | ||
129 | |||
130 | |||
131 | /** | ||
132 | * 做实际请求 | ||
133 | * @param {*} params | ||
134 | * @returns | ||
135 | */ | ||
136 | function doRequest(params) { | ||
137 | return new Promise((resolve, reject) => { | ||
138 | let { | ||
139 | loading, | ||
140 | toast, | ||
141 | mode, | ||
142 | url, | ||
143 | data, | ||
144 | method, | ||
145 | responseType, | ||
146 | enc | ||
147 | } = params; | ||
148 | let baseUrl = config.NET_CONFIG.BASE_API + config.NET_CONFIG.API_PREFIX; | ||
149 | |||
150 | // 使用通用接口前缀 | ||
151 | if (mode == "common") baseUrl = config.NET_CONFIG.COMMON_API; | ||
152 | // 自定义前缀,即不使用前缀 | ||
153 | if (mode == "custom") baseUrl = ""; | ||
154 | if (loading && mode != 'log') my.showLoading({ | ||
155 | content: '加载中', | ||
156 | mask: true | ||
157 | }); | ||
158 | |||
159 | // 判断是否开启post方法默认加密 | ||
160 | if (config.NET_CONFIG.IS_POST_ENC && (method == "post" || method == "POST")) { | ||
161 | enc = true; | ||
162 | } | ||
163 | if (enc) data = Encrypt.makeEncrypt(data); | ||
164 | |||
165 | // 设置请求头 | ||
166 | let header = { | ||
167 | '-kd-platform-env': config.ENV, | ||
168 | '-kd-platform-module': config.NET_CONFIG.MODULE_CODE, | ||
169 | 'sessionId': Storage.getItem("sessionId") | ||
170 | } | ||
171 | |||
172 | my.request({ | ||
173 | url: baseUrl + url, //请求地址 | ||
174 | data: data, //自定义参数 | ||
175 | method: method || 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT | ||
176 | header: header, | ||
177 | responseType: responseType, | ||
178 | success: (result) => { | ||
179 | // 日志上传不需要处理结果 | ||
180 | if (mode == 'log') return; | ||
181 | let res = result.data; | ||
182 | if (responseType == "arraybuffer") { | ||
183 | if (loading) my.hideLoading(); | ||
184 | resolve(res) | ||
185 | } else if (res.code === 200) { | ||
186 | if (loading) my.hideLoading(); | ||
187 | resolve(res.content); | ||
188 | } else { | ||
189 | my.hideLoading(); | ||
190 | // 404 不需要toast | ||
191 | if (toast && res.code != 404) { | ||
192 | my.showToast({ | ||
193 | content: res.errMsg || errMsg, | ||
194 | icon: 'none' | ||
195 | }) | ||
196 | } | ||
197 | reject(res); | ||
198 | } | ||
199 | }, | ||
200 | fail: (err) => { | ||
201 | my.hideLoading(); | ||
202 | } | ||
203 | }); | ||
204 | }); | ||
205 | } | ||
206 | |||
207 | |||
208 | |||
209 | // -------- 业务接口 Start -------- | ||
210 | |||
211 | /** | ||
212 | * 上传文件到恪道 | ||
213 | * @param {*} filePath 图片地址 | ||
214 | * @param {*} subPath 上传目录 (此参数为空则使用 oss目录) | ||
215 | */ | ||
216 | function uploadFile(filePath, subPath) { | ||
217 | return new Promise((resolve, reject) => { | ||
218 | if (!subPath && !config.NET_CONFIG.OSS_PATH) { | ||
219 | throw new Error('请配置上传目录 !'); | ||
220 | reject(); | ||
221 | return; | ||
222 | } | ||
223 | my.uploadFile({ | ||
224 | |||
225 | url: config.NET_CONFIG.BASE_API + config.NET_CONFIG.API_PREFIX + api.uploadFile, | ||
226 | filePath: filePath, | ||
227 | name: 'file', | ||
228 | header: { | ||
229 | 'content-type': 'multipart/form-data', | ||
230 | '-kd-platform-env': config.ENV, | ||
231 | '-kd-platform-module': config.NET_CONFIG.MODULE_CODE, | ||
232 | }, | ||
233 | formData: { | ||
234 | subPath: subPath || config.NET_CONFIG.OSS_PATH | ||
235 | }, | ||
236 | success(res) { | ||
237 | let result = JSON.parse(res.data).content; | ||
238 | resolve(result); | ||
239 | }, | ||
240 | fail() { | ||
241 | reject() | ||
242 | }, | ||
243 | complete() {} | ||
244 | }) | ||
245 | }); | ||
246 | } | ||
247 | |||
248 | |||
249 | /** | ||
250 | * 上传多个文件到服务器 | ||
251 | * urlList 需要上传的图片地址 (my.chooseImage 的 paths列表) | ||
252 | * | ||
253 | */ | ||
254 | function uploadFileMultiple(filePathList, subPath) { | ||
255 | return new Promise((resolve, reject) => { | ||
256 | if (!subPath && !config.NET_CONFIG.OSS_PATH) { | ||
257 | throw new Error('请配置上传目录 !'); | ||
258 | reject(); | ||
259 | return; | ||
260 | } | ||
261 | console.log("config.NET_CONFIG.COMMON_API + api.uploadFile:", config.NET_CONFIG.COMMON_API + api.uploadFile); | ||
262 | my.showLoading({ | ||
263 | content: `加载中` | ||
264 | }) | ||
265 | console.log("filePathList:", filePathList); | ||
266 | if (filePathList && filePathList.length > 0) { | ||
267 | let promiseList = []; | ||
268 | filePathList.forEach(element => { | ||
269 | let promiseItem = new Promise((resolve2, reject2) => { | ||
270 | uploadFile(element, subPath).then((result2) => { | ||
271 | resolve2(result2) | ||
272 | }).catch((err) => { | ||
273 | reject2(); | ||
274 | }); | ||
275 | }); | ||
276 | promiseList.push(promiseItem); | ||
277 | }); | ||
278 | console.log("promiseList:", promiseList); | ||
279 | Promise.all(promiseList).then(uploadFiles => { | ||
280 | my.hideLoading() | ||
281 | resolve(uploadFiles) | ||
282 | }, reason => { | ||
283 | my.hideLoading() | ||
284 | reject(); | ||
285 | }); | ||
286 | } else { | ||
287 | my.hideLoading() | ||
288 | resolve([]); | ||
289 | } | ||
290 | }); | ||
291 | } | ||
292 | |||
293 | module.exports = { | ||
294 | fetchMethod, | ||
295 | uploadFile, | ||
296 | uploadFileMultiple | ||
297 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
images/form/form-bg-1.png
0 → 100644
14.1 KB
images/form/form-bg-2.png
0 → 100644
16.1 KB
images/form/form-bg-succ.png
0 → 100644
13.8 KB
images/form/icon-question.png
0 → 100644
899 Bytes
images/form/icon-succ.png
0 → 100644
16.3 KB
images/form/submit-btn.png
0 → 100644
18.2 KB
images/index/index-bg-1.png
0 → 100644
132 KB
images/index/index-bg-2.png
0 → 100644
498 KB
images/index/number-item-bg.png
0 → 100644
6.67 KB
images/index/page-btn-next.png
0 → 100644
4.12 KB
images/index/page-btn-prev.png
0 → 100644
4 KB
images/index/search-icon.png
0 → 100644
506 Bytes
images/index/search-wrap-bg.png
0 → 100644
4.03 KB
mini.project.json
0 → 100644
pages/demo/demo.acss
0 → 100644
File mode changed
pages/demo/demo.axml
0 → 100644
pages/demo/demo.js
0 → 100644
1 | Page({ | ||
2 | onLoad(query) { | ||
3 | // 页面加载 | ||
4 | console.info(`Page onLoad with query: ${JSON.stringify(query)}`); | ||
5 | }, | ||
6 | onReady() { | ||
7 | // 页面加载完成 | ||
8 | }, | ||
9 | onShow() { | ||
10 | // 页面显示 | ||
11 | }, | ||
12 | onHide() { | ||
13 | // 页面隐藏 | ||
14 | }, | ||
15 | onUnload() { | ||
16 | // 页面被关闭 | ||
17 | }, | ||
18 | onTitleClick() { | ||
19 | // 标题被点击 | ||
20 | }, | ||
21 | onPullDownRefresh() { | ||
22 | // 页面被下拉 | ||
23 | }, | ||
24 | onReachBottom() { | ||
25 | // 页面被拉到底部 | ||
26 | }, | ||
27 | onShareAppMessage() { | ||
28 | // 返回自定义分享信息 | ||
29 | return { | ||
30 | title: 'My App', | ||
31 | desc: 'My App description', | ||
32 | path: 'pages/index/index', | ||
33 | }; | ||
34 | }, | ||
35 | }); |
pages/demo/demo.json
0 → 100644
1 | {} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
pages/index/index.acss
0 → 100644
1 | .top-space { | ||
2 | height: 0; | ||
3 | } | ||
4 | |||
5 | .page { | ||
6 | font-size: 0; | ||
7 | padding-bottom: 124rpx; | ||
8 | } | ||
9 | |||
10 | .main { | ||
11 | /* font-size: 28rpx; */ | ||
12 | } | ||
13 | |||
14 | .ebg { | ||
15 | font-size: 0; | ||
16 | width: 750rpx; | ||
17 | position: relative; | ||
18 | z-index: 11; | ||
19 | } | ||
20 | |||
21 | .table { | ||
22 | width: 750rpx; | ||
23 | height: 1120rpx; | ||
24 | background-image: linear-gradient(to top, #ede9ff, #d6c0ff); | ||
25 | box-sizing: border-box; | ||
26 | margin: 0px auto 0; | ||
27 | } | ||
28 | |||
29 | .func-wrap { | ||
30 | background: url('/images/index/search-wrap-bg.png') center no-repeat; | ||
31 | background-size: 100% 100%; | ||
32 | width: 701rpx; | ||
33 | height: 311rpx; | ||
34 | margin: 0 auto; | ||
35 | box-sizing: border-box; | ||
36 | padding-top: 60rpx; | ||
37 | } | ||
38 | |||
39 | .search-wrap { | ||
40 | width: 608rpx; | ||
41 | height: 58rpx; | ||
42 | border-radius: 16rpx; | ||
43 | border: solid 1rpx #905cff; | ||
44 | background-color: #fcf8ff; | ||
45 | margin: 0 auto 0; | ||
46 | display: flex; | ||
47 | justify-content: space-between; | ||
48 | align-items: center; | ||
49 | padding: 0rpx 0rpx 0rpx 19rpx; | ||
50 | } | ||
51 | |||
52 | .search-icon { | ||
53 | background: url('/images/index/search-icon.png') center no-repeat; | ||
54 | background-size: 100% 100%; | ||
55 | width: 32rpx; | ||
56 | height: 32rpx; | ||
57 | /* margin: 0rpx 19rpx 0rpx 12rpx; */ | ||
58 | } | ||
59 | |||
60 | .search-input { | ||
61 | flex: 1; | ||
62 | background-color: transparent; | ||
63 | padding: 0 12rpx; | ||
64 | box-sizing: border-box; | ||
65 | } | ||
66 | |||
67 | .search-btn { | ||
68 | width: 153rpx; | ||
69 | height: 58rpx; | ||
70 | line-height: 58rpx; | ||
71 | border-radius: 16rpx; | ||
72 | background-image: linear-gradient(to top, #be8bff, #7934ff); | ||
73 | text-align: center; | ||
74 | color: #fff; | ||
75 | font-weight: bold; | ||
76 | font-size: 30rpx; | ||
77 | } | ||
78 | |||
79 | .tag-list { | ||
80 | width: 614rpx; | ||
81 | margin: 21rpx auto 0; | ||
82 | display: flex; | ||
83 | flex-wrap: wrap; | ||
84 | } | ||
85 | |||
86 | .tag-list :nth-child(4n) { | ||
87 | margin-right: 0rpx; | ||
88 | } | ||
89 | |||
90 | .tag-item { | ||
91 | width: 140rpx; | ||
92 | height: 49rpx; | ||
93 | line-height: 50rpx; | ||
94 | border-radius: 21rpx; | ||
95 | text-align: center; | ||
96 | color: #fff; | ||
97 | font-weight: bold; | ||
98 | background-image: linear-gradient(to top, #be8bff, #7934ff); | ||
99 | margin-right: 18rpx; | ||
100 | margin-bottom: 11rpx; | ||
101 | font-size: 28rpx; | ||
102 | } | ||
103 | |||
104 | .tag-item-act { | ||
105 | background-image: linear-gradient(to top, #ff0072, #ff00a2); | ||
106 | } | ||
107 | |||
108 | /* 号码 */ | ||
109 | .number-wrap { | ||
110 | margin: 24rpx auto 0; | ||
111 | padding: 0 16rpx; | ||
112 | box-sizing: border-box; | ||
113 | position: relative; | ||
114 | z-index: 21; | ||
115 | height: 660rpx; | ||
116 | } | ||
117 | |||
118 | .number-list { | ||
119 | display: flex; | ||
120 | align-items: center; | ||
121 | justify-content: space-between; | ||
122 | flex-wrap: wrap; | ||
123 | /* max-height: 660rpx; */ | ||
124 | /* height: 660rpx; */ | ||
125 | overflow-y: hidden; | ||
126 | } | ||
127 | |||
128 | .number-item { | ||
129 | width: 341rpx; | ||
130 | height: 114rpx; | ||
131 | background: url('/images/index/number-item-bg.png') center no-repeat; | ||
132 | background-size: 100% 100%; | ||
133 | margin: 0 9rpx 18rpx; | ||
134 | font-size: 48rpx; | ||
135 | color: #fff; | ||
136 | font-weight: bold; | ||
137 | box-sizing: border-box; | ||
138 | text-align: center; | ||
139 | padding-top: 8rpx; | ||
140 | } | ||
141 | |||
142 | .number-item .text { | ||
143 | font-size: 48rpx; | ||
144 | color: #fff; | ||
145 | } | ||
146 | |||
147 | .number-item .highlight { | ||
148 | color: #fcff04; | ||
149 | } | ||
150 | |||
151 | .page-btn-wrap { | ||
152 | margin: 26rpx auto 0; | ||
153 | |||
154 | display: flex; | ||
155 | align-items: center; | ||
156 | justify-content: center; | ||
157 | } | ||
158 | |||
159 | .page-btn { | ||
160 | width: 184rpx; | ||
161 | height: 69rpx; | ||
162 | margin: 0 8px; | ||
163 | } | ||
164 | |||
165 | .btn-prev { | ||
166 | background: url('/images/index/page-btn-prev.png') center no-repeat; | ||
167 | background-size: 100% 100%; | ||
168 | } | ||
169 | |||
170 | .btn-next { | ||
171 | background: url('/images/index/page-btn-next.png') center no-repeat; | ||
172 | background-size: 100% 100%; | ||
173 | } | ||
174 | |||
175 | |||
176 | /* 弹窗框 */ | ||
177 | .popup { | ||
178 | position: fixed; | ||
179 | z-index: 1001; | ||
180 | top: 0; | ||
181 | left: 0; | ||
182 | width: 100vw; | ||
183 | height: 100vh; | ||
184 | display: flex; | ||
185 | justify-content: center; | ||
186 | align-items: center; | ||
187 | } | ||
188 | |||
189 | .popup .popup-mask { | ||
190 | position: fixed; | ||
191 | width: 100vw; | ||
192 | height: 100vh; | ||
193 | background-color: #000000; | ||
194 | opacity: .7; | ||
195 | } | ||
196 | |||
197 | .popup .dialog { | ||
198 | position: relative; | ||
199 | } | ||
200 | |||
201 | text { | ||
202 | color: #333; | ||
203 | font-size: 30rpx; | ||
204 | } | ||
205 | |||
206 | .highlight { | ||
207 | color: red; | ||
208 | } | ||
209 | |||
210 | .bot-btn { | ||
211 | background: url('/images/form/submit-btn.png') center no-repeat; | ||
212 | background-size: 100% 100%; | ||
213 | width: 630rpx; | ||
214 | height: 102rpx; | ||
215 | |||
216 | position: fixed; | ||
217 | left: 0; | ||
218 | right: 0; | ||
219 | bottom: 40rpx; | ||
220 | margin: auto; | ||
221 | z-index: 111; | ||
222 | } | ||
223 | |||
224 | |||
225 | .ani-heart { | ||
226 | animation: ani-heart-key 1.2s linear infinite; | ||
227 | } | ||
228 | |||
229 | @keyframes ani-heart-key { | ||
230 | 0% { | ||
231 | transform: scale(1); | ||
232 | } | ||
233 | |||
234 | 50% { | ||
235 | transform: scale(1.04); | ||
236 | } | ||
237 | |||
238 | 100% { | ||
239 | transform: scale(1); | ||
240 | } | ||
241 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
pages/index/index.axml
0 → 100644
1 | <view class="page"> | ||
2 | <view class="app__bgc bgc"></view> | ||
3 | <view class="app__bg bg"></view> | ||
4 | <view class="app__content main"> | ||
5 | <view class="top-space"></view> | ||
6 | <image class="ebg" mode="widthFix" src="/images/index/index-bg-1.png" /> | ||
7 | <view class="content"> | ||
8 | <view class="table"> | ||
9 | <view class="func-wrap"> | ||
10 | <view class="search-wrap"> | ||
11 | <view class="search-icon"></view> | ||
12 | <input | ||
13 | onInput="inputEdit" | ||
14 | onConfirm="onSearchConfirm" | ||
15 | data-name="queryForm.query" | ||
16 | value="{{queryForm.query}}" | ||
17 | class="search-input" | ||
18 | placeholder="请输入您喜欢的数字" | ||
19 | type="number" | ||
20 | /> | ||
21 | <view onTap="onSearch" class="search-btn"> | ||
22 | 搜 索 | ||
23 | </view> | ||
24 | </view> | ||
25 | <view class="tag-list"> | ||
26 | <view | ||
27 | a:for="{{ tagList }}" | ||
28 | onTap="onTagItem" | ||
29 | data-data="{{item}}" | ||
30 | data-index="{{index}}" | ||
31 | class="tag-item {{ tagIndex == index ? 'tag-item-act' : '' }}" | ||
32 | style="font-size: {{ item.fontSize || 28 }}rpx;" | ||
33 | > | ||
34 | {{item.name}} | ||
35 | </view> | ||
36 | </view> | ||
37 | </view> | ||
38 | |||
39 | <view class="number-wrap"> | ||
40 | <view class="number-list"> | ||
41 | <view | ||
42 | a:for="{{ numberList }}" | ||
43 | onTap="onNumberItem" | ||
44 | data-data="{{item}}" | ||
45 | data-index="{{index}}" | ||
46 | class="number-item" | ||
47 | > | ||
48 | <text a:for="{{ item.numberDisplayList }}" class="text {{item.highlight ? 'highlight' : ''}}"> | ||
49 | {{item.number}} | ||
50 | </text> | ||
51 | </view> | ||
52 | </view> | ||
53 | </view> | ||
54 | |||
55 | <view class="page-btn-wrap"> | ||
56 | <view onTap="onPagePrev" class="page-btn btn-prev"> | ||
57 | |||
58 | </view> | ||
59 | <view onTap="onPageNext" class="page-btn btn-next"> | ||
60 | |||
61 | </view> | ||
62 | </view> | ||
63 | </view> | ||
64 | </view> | ||
65 | <image class="ebg" mode="widthFix" src="/images/index/index-bg-2.png" /> | ||
66 | <view a:if="{{ shortCutVisible }}" onTap="toTop" class="bot-btn ani-heart"></view> | ||
67 | </view> | ||
68 | </view> | ||
69 | |||
70 | <view hidden="{{ !formVisible }}" class="popup"> | ||
71 | <view catchTap="onHideMask" class="popup-mask"></view> | ||
72 | <view class="dialog"> | ||
73 | <form-comp item="{{curNumberItem}}" onChange="evtcomp"></form-comp> | ||
74 | </view> | ||
75 | </view> | ||
76 | |||
77 | <view a:if="{{ succVisible }}" class="popup"> | ||
78 | <view catchTap="onHideMask" class="popup-mask"></view> | ||
79 | <view class="dialog"> | ||
80 | <succ-comp></succ-comp> | ||
81 | </view> | ||
82 | </view> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
pages/index/index.js
0 → 100644
1 | let app = getApp(); | ||
2 | |||
3 | // import { | ||
4 | // mobile_list | ||
5 | // } from '/const/index'; | ||
6 | |||
7 | |||
8 | // import { | ||
9 | // areas | ||
10 | // } from '/const/area-new'; | ||
11 | |||
12 | Page({ | ||
13 | |||
14 | data: { | ||
15 | queryForm: { | ||
16 | query: "", | ||
17 | }, | ||
18 | |||
19 | formVisible: false, | ||
20 | succVisible: false, | ||
21 | shortCutVisible: false, | ||
22 | |||
23 | tagIndex: 0, | ||
24 | tagList: [{ | ||
25 | name: "推荐", | ||
26 | val: "", | ||
27 | }, | ||
28 | { | ||
29 | name: "AAA+", | ||
30 | val: "AAA+", | ||
31 | }, | ||
32 | { | ||
33 | name: "AABB+", | ||
34 | val: "AABB+", | ||
35 | }, | ||
36 | { | ||
37 | name: "ABAB+", | ||
38 | val: "ABAB+", | ||
39 | }, | ||
40 | { | ||
41 | name: "ABBA", | ||
42 | val: "ABBA", | ||
43 | }, | ||
44 | { | ||
45 | name: "ABCAB", | ||
46 | val: "ABCAB", | ||
47 | }, | ||
48 | { | ||
49 | name: "ABCD", | ||
50 | val: "ABCD", | ||
51 | }, | ||
52 | { | ||
53 | name: "尾号6/8/9", | ||
54 | val: "LAST689", | ||
55 | fontSize: 26 | ||
56 | }, | ||
57 | ], | ||
58 | |||
59 | page: 1, | ||
60 | size: 10, | ||
61 | totalPages: 0, | ||
62 | |||
63 | // 总号码池 | ||
64 | numberPool: [], | ||
65 | // 命中池 | ||
66 | targetNumberList: [], | ||
67 | // 号码列表,当前展示号码 | ||
68 | numberList: [], | ||
69 | // 当前选择号码 | ||
70 | curNumberItem: null, | ||
71 | }, | ||
72 | onLoad(query) { | ||
73 | |||
74 | this.initData(); | ||
75 | |||
76 | // let area = {}; | ||
77 | // let province_list = {}; | ||
78 | // let city_list = {}; | ||
79 | // let county_list = {}; | ||
80 | // areas.forEach(element => { | ||
81 | // province_list[element[0]] = element[1] | ||
82 | // city_list[element[2]] = element[3] | ||
83 | // county_list[element[4]] = element[5] | ||
84 | // }); | ||
85 | // area.province_list = province_list; | ||
86 | // area.city_list = city_list; | ||
87 | // area.county_list = county_list; | ||
88 | // console.log(area); | ||
89 | |||
90 | }, | ||
91 | async initData() { | ||
92 | let numberPool = await this.getSelectNumberList(); | ||
93 | app.func.sortByLength(numberPool) | ||
94 | this.data.targetNumberList = numberPool; | ||
95 | this.data.page = 1; | ||
96 | this.refreshPage(); | ||
97 | |||
98 | |||
99 | // let beautyResAAA = app.func.checkBeautyNumberAAA('15014443959'); | ||
100 | // console.log("beautyResAAA:", beautyResAAA); | ||
101 | |||
102 | // let beautyResAABB = app.func.checkBeautyNumberAABB('15011337986'); | ||
103 | // console.log("beautyResAABB:", beautyResAABB); | ||
104 | |||
105 | // let beautyResABAB = app.func.checkBeautyNumberABAB('15056563959'); | ||
106 | // console.log("beautyResABAB:", beautyResABAB); | ||
107 | |||
108 | // let beautyResABBA = app.func.checkBeautyNumberABBA('15056653959'); | ||
109 | // console.log("beautyResABBA:", beautyResABBA); | ||
110 | |||
111 | // let beautyResABCAB = app.func.checkBeautyNumberABCAB('15056756959'); | ||
112 | // console.log("beautyResABCAB:", beautyResABCAB); | ||
113 | |||
114 | // let beautyResABCD = app.func.checkBeautyNumberABCD('15054323959'); | ||
115 | // console.log("beautyResABCD:", beautyResABCD); | ||
116 | |||
117 | // let beautyResLast = app.func.checkBeautyNumberLast('15054323959'); | ||
118 | // console.log("beautyResLast:", beautyResLast); | ||
119 | }, | ||
120 | |||
121 | // 页面滚动 | ||
122 | onPageScroll(e) { | ||
123 | let shortCutVisible = e.scrollTop > 700; | ||
124 | this.setData({ | ||
125 | shortCutVisible | ||
126 | }); | ||
127 | }, | ||
128 | |||
129 | toTop() { | ||
130 | console.log("toTop"); | ||
131 | my.pageScrollTo({ | ||
132 | scrollTop: 0, | ||
133 | duration: 300 | ||
134 | }) | ||
135 | }, | ||
136 | |||
137 | async onSearch() { | ||
138 | let numberPool = await this.getSelectNumberList(); | ||
139 | this.setData({ | ||
140 | tagIndex: 0 | ||
141 | }) | ||
142 | // numberPool = app.util.shuffleArray(numberPool); | ||
143 | this.data.targetNumberList = numberPool; | ||
144 | this.data.page = 1; | ||
145 | this.refreshPage(); | ||
146 | }, | ||
147 | |||
148 | onSearchConfirm() { | ||
149 | this.onSearch(); | ||
150 | }, | ||
151 | |||
152 | /** | ||
153 | * 获取 | ||
154 | */ | ||
155 | async getSelectNumberList() { | ||
156 | let res = await app.get({ | ||
157 | url: app.api.selectNum, | ||
158 | data: this.data.queryForm, | ||
159 | loading: true, | ||
160 | }); | ||
161 | // console.log(res); | ||
162 | let funcList = [ | ||
163 | app.func.checkBeautyNumberAAA, | ||
164 | app.func.checkBeautyNumberAABB, | ||
165 | app.func.checkBeautyNumberABAB, | ||
166 | app.func.checkBeautyNumberABBA, | ||
167 | app.func.checkBeautyNumberABCAB, | ||
168 | app.func.checkBeautyNumberABCD, | ||
169 | app.func.checkBeautyNumberLast, | ||
170 | ] | ||
171 | |||
172 | res.forEach(element => { | ||
173 | element.beautyList = [] | ||
174 | element.beautyObj = {} | ||
175 | funcList.forEach(funElement => { | ||
176 | let beautyRes = funElement(element.mobile); | ||
177 | if (beautyRes.beautyNum) { | ||
178 | element.beautyList.push(beautyRes); | ||
179 | element.beautyObj[beautyRes.type] = beautyRes; | ||
180 | } | ||
181 | }); | ||
182 | }); | ||
183 | |||
184 | let numberPool = res.concat(this.data.numberPool); | ||
185 | numberPool = app.util.uniqueArray(numberPool); | ||
186 | this.data.numberPool = numberPool; | ||
187 | return numberPool; | ||
188 | }, | ||
189 | |||
190 | // 点击标签 | ||
191 | onTagItem(evt) { | ||
192 | let item = app.tapData(evt); | ||
193 | let index = app.tapData(evt, "index"); | ||
194 | this.setData({ | ||
195 | queryForm: { | ||
196 | query: "", | ||
197 | }, | ||
198 | tagIndex: index, | ||
199 | }) | ||
200 | |||
201 | let numberPool = this.data.numberPool; | ||
202 | numberPool = app.util.shuffleArray(numberPool); | ||
203 | |||
204 | if (item.val) { | ||
205 | let targetNumberList = [] | ||
206 | numberPool.forEach(element => { | ||
207 | if (element.beautyObj[item.val]) { | ||
208 | targetNumberList.push(element); | ||
209 | } | ||
210 | }); | ||
211 | |||
212 | targetNumberList = targetNumberList.concat(numberPool); | ||
213 | targetNumberList = app.util.uniqueArray(targetNumberList); | ||
214 | this.data.targetNumberList = targetNumberList; | ||
215 | } else { | ||
216 | |||
217 | // app.func.sortByLength(numberPool) | ||
218 | this.data.targetNumberList = numberPool; | ||
219 | } | ||
220 | |||
221 | this.data.page = 1; | ||
222 | this.refreshPage(); | ||
223 | }, | ||
224 | |||
225 | /** | ||
226 | * 点击号码 | ||
227 | */ | ||
228 | onNumberItem(evt) { | ||
229 | let item = app.tapData(evt); | ||
230 | item.featureName = app.func.getFeatureName(item.mobile) | ||
231 | this.setData({ | ||
232 | curNumberItem: item, | ||
233 | formVisible: true, | ||
234 | }) | ||
235 | }, | ||
236 | |||
237 | |||
238 | // 上一页 | ||
239 | onPagePrev() { | ||
240 | this.data.page--; | ||
241 | if (this.data.page < 1) { | ||
242 | this.data.page = this.data.totalPages; | ||
243 | // return; | ||
244 | }; | ||
245 | this.refreshPage(); | ||
246 | }, | ||
247 | // 下一页 | ||
248 | onPageNext() { | ||
249 | this.data.page++; | ||
250 | |||
251 | if (this.data.page > this.data.totalPages) { | ||
252 | this.data.page = 1; | ||
253 | // return; | ||
254 | } | ||
255 | this.refreshPage(); | ||
256 | }, | ||
257 | |||
258 | refreshPage() { | ||
259 | let listObj = app.util.paginateArray(this.data.targetNumberList, this.data.page, this.data.pageSize); | ||
260 | let curTag = this.data.tagList[this.data.tagIndex]; | ||
261 | let curTagVal = curTag.val; | ||
262 | let list = listObj.list; | ||
263 | |||
264 | let query = this.data.queryForm.query; | ||
265 | /** | ||
266 | * 高亮数字 | ||
267 | * | ||
268 | * 1、如果query中有值,按query的值 | ||
269 | * 2、如果标签有值,按标签 | ||
270 | * 3、如果都没有,随机显示靓号 | ||
271 | */ | ||
272 | list.forEach(element => { | ||
273 | |||
274 | let beautyObj = null; | ||
275 | |||
276 | if (query) { | ||
277 | beautyObj = { | ||
278 | beautyNum: query, | ||
279 | index: element.mobile.indexOf(query), | ||
280 | len: query.length, | ||
281 | type: "query", | ||
282 | } | ||
283 | } else if (element.beautyObj[curTagVal]) { | ||
284 | beautyObj = element.beautyObj[curTagVal]; | ||
285 | } else { | ||
286 | // 默认靓号提示 | ||
287 | let len = element.beautyList.length; | ||
288 | if (len) { | ||
289 | beautyObj = element.beautyList[Math.floor(Math.random() * len)] || null | ||
290 | } | ||
291 | } | ||
292 | |||
293 | let numberDisplayList = [] | ||
294 | element.mobile.split("").forEach((ele, index) => { | ||
295 | let numberObj = { | ||
296 | number: ele, | ||
297 | highlight: beautyObj && index >= beautyObj.index && index <= beautyObj.index + beautyObj.len - 1, | ||
298 | } | ||
299 | numberDisplayList.push(numberObj); | ||
300 | }); | ||
301 | element.numberDisplayList = numberDisplayList; | ||
302 | }); | ||
303 | |||
304 | this.setData({ | ||
305 | numberList: list, | ||
306 | totalPages: listObj.totalPages, | ||
307 | }) | ||
308 | }, | ||
309 | |||
310 | |||
311 | /** | ||
312 | * input绑定 | ||
313 | * 多输入文本绑定 | ||
314 | * 在input/texarea中设置 data-name="属性值即可" | ||
315 | */ | ||
316 | inputEdit(e) { | ||
317 | let dataset = e.currentTarget.dataset; | ||
318 | let value = e.detail.value; | ||
319 | let name = dataset.name; | ||
320 | this.setData({ | ||
321 | [name]: value | ||
322 | }); | ||
323 | }, | ||
324 | |||
325 | |||
326 | evtcomp(evt) { | ||
327 | console.log("evtcomp evt:", evt) | ||
328 | let { | ||
329 | name, | ||
330 | data | ||
331 | } = evt; | ||
332 | // console.log("name:", name) | ||
333 | switch (name) { | ||
334 | case "_evt_hide": | ||
335 | this.hideMask(); | ||
336 | break; | ||
337 | case "_evt_submit_complete": | ||
338 | this.setData({ | ||
339 | formVisible: false, | ||
340 | succVisible: true, | ||
341 | }) | ||
342 | break; | ||
343 | } | ||
344 | }, | ||
345 | |||
346 | |||
347 | // 关闭蒙层 | ||
348 | onHideMask() { | ||
349 | this.setData({ | ||
350 | formVisible: false, | ||
351 | succVisible: false, | ||
352 | }) | ||
353 | }, | ||
354 | |||
355 | onShareAppMessage() { | ||
356 | // 返回自定义分享信息 | ||
357 | return { | ||
358 | title: '', | ||
359 | desc: '', | ||
360 | path: '', | ||
361 | }; | ||
362 | }, | ||
363 | }); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
pages/index/index.json
0 → 100644
router/index.js
0 → 100644
1 | const routerPath = { | ||
2 | index: '/pages/index/index', | ||
3 | |||
4 | expCommon: '/pages/exp-common/exp-common', | ||
5 | expBus: '/pages/exp-bus/exp-bus', | ||
6 | expForm: '/pages/exp-form/exp-form', | ||
7 | article: '/pages/artcle/article', | ||
8 | |||
9 | example: '/pages/example/example', | ||
10 | more: '/pages/more/more', | ||
11 | } | ||
12 | |||
13 | function parse(data) { | ||
14 | let tempArr = []; | ||
15 | for (let key in data) { | ||
16 | tempArr.push(key + '=' + encodeURIComponent(data[key])); | ||
17 | } | ||
18 | return tempArr.join('&'); | ||
19 | } | ||
20 | |||
21 | function push(path, option = {}) { | ||
22 | if (typeof path == 'string') { | ||
23 | option.path = path; //兼容无参数路径 | ||
24 | } else { | ||
25 | if (path.name) { | ||
26 | path.path = path.name; | ||
27 | } | ||
28 | option = path; | ||
29 | } | ||
30 | // console.log("option:", option); | ||
31 | // 配置key值找到对应path | ||
32 | let url = routerPath[option.path] || routerPath['index']; | ||
33 | // console.log("url:", url); | ||
34 | // 读取传入的配置参数 | ||
35 | let { | ||
36 | query = {}, openType = 'navigate', duration = 0 | ||
37 | } = option; | ||
38 | // json 转换为 字符串拼接参数 | ||
39 | let params = parse(query) | ||
40 | // console.log("params:", params); | ||
41 | if (params) { | ||
42 | url = url + '?' + params; | ||
43 | } | ||
44 | // 是否需要延时跳转 | ||
45 | duration ? setTimeout(() => { | ||
46 | to(openType, url); | ||
47 | }, duration) : to(openType, url); | ||
48 | } | ||
49 | |||
50 | function to(openType, url) { | ||
51 | let obj = { | ||
52 | url | ||
53 | }; | ||
54 | |||
55 | if (openType == 'redirect') { | ||
56 | my.redirectTo(obj); | ||
57 | } else if (openType == 'reLaunch') { | ||
58 | my.reLaunch(obj); | ||
59 | } else if (openType == 'switchTab') { | ||
60 | my.switchTab(obj); | ||
61 | } else if (openType == 'back') { | ||
62 | my.navigateBack({ | ||
63 | delta: 1 | ||
64 | }); | ||
65 | } else { | ||
66 | my.navigateTo(obj); | ||
67 | } | ||
68 | } | ||
69 | |||
70 | module.exports = { | ||
71 | parse, | ||
72 | push, | ||
73 | to | ||
74 | } |
utils/enc/crypto-js.min.js
0 → 100644
1 | !function(t,r){"object"==typeof exports?module.exports=exports=r():"function"==typeof define&&define.amd?define([],r):t.CryptoJS=r()}(this,function(){var t=t||function(t,r){var e=Object.create||function(){function t(){}return function(r){var e;return t.prototype=r,e=new t,t.prototype=null,e}}(),i={},n=i.lib={},o=n.Base=function(){return{extend:function(t){var r=e(this);return t&&r.mixIn(t),r.hasOwnProperty("init")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],e!=r?this.sigBytes=e:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var r=this.words,e=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o<n;o++){var s=e[o>>>2]>>>24-o%4*8&255;r[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var o=0;o<n;o+=4)r[i+o>>>2]=e[o>>>2];return this.sigBytes+=n,this},clamp:function(){var r=this.words,e=this.sigBytes;r[e>>>2]&=4294967295<<32-e%4*8,r.length=t.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(r){for(var e,i=[],n=function(r){var r=r,e=987654321,i=4294967295;return function(){e=36969*(65535&e)+(e>>16)&i,r=18e3*(65535&r)+(r>>16)&i;var n=(e<<16)+r&i;return n/=4294967296,n+=.5,n*(t.random()>.5?1:-1)}},o=0;o<r;o+=4){var a=n(4294967296*(e||t.random()));e=987654071*a(),i.push(4294967296*a()|0)}return new s.init(i,r)}}),a=i.enc={},c=a.Hex={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n<e;n++){var o=r[n>>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var r=t.length,e=[],i=0;i<r;i+=2)e[i>>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(e,r/2)}},h=a.Latin1={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n<e;n++){var o=r[n>>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var r=t.length,e=[],i=0;i<r;i++)e[i>>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(e,r)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},f=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(r){var e=this._data,i=e.words,n=e.sigBytes,o=this.blockSize,a=4*o,c=n/a;c=r?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var h=c*o,l=t.min(4*h,n);if(h){for(var f=0;f<h;f+=o)this._doProcessBlock(i,f);var u=i.splice(0,h);e.sigBytes-=l}return new s.init(u,l)},clone:function(){var t=o.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0}),u=(n.Hasher=f.extend({cfg:o.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){f.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},blockSize:16,_createHelper:function(t){return function(r,e){return new t.init(e).finalize(r)}},_createHmacHelper:function(t){return function(r,e){return new u.HMAC.init(t,e).finalize(r)}}}),i.algo={});return i}(Math);return function(){function r(t,r,e){for(var i=[],o=0,s=0;s<r;s++)if(s%4){var a=e[t.charCodeAt(s-1)]<<s%4*2,c=e[t.charCodeAt(s)]>>>6-s%4*2;i[o>>>2]|=(a|c)<<24-o%4*8,o++}return n.create(i,o)}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Base64={stringify:function(t){var r=t.words,e=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o<e;o+=3)for(var s=r[o>>>2]>>>24-o%4*8&255,a=r[o+1>>>2]>>>24-(o+1)%4*8&255,c=r[o+2>>>2]>>>24-(o+2)%4*8&255,h=s<<16|a<<8|c,l=0;l<4&&o+.75*l<e;l++)n.push(i.charAt(h>>>6*(3-l)&63));var f=i.charAt(64);if(f)for(;n.length%4;)n.push(f);return n.join("")},parse:function(t){var e=t.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o<i.length;o++)n[i.charCodeAt(o)]=o}var s=i.charAt(64);if(s){var a=t.indexOf(s);a!==-1&&(e=a)}return r(t,e,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(r){function e(t,r,e,i,n,o,s){var a=t+(r&e|~r&i)+n+s;return(a<<o|a>>>32-o)+r}function i(t,r,e,i,n,o,s){var a=t+(r&i|e&~i)+n+s;return(a<<o|a>>>32-o)+r}function n(t,r,e,i,n,o,s){var a=t+(r^e^i)+n+s;return(a<<o|a>>>32-o)+r}function o(t,r,e,i,n,o,s){var a=t+(e^(r|~i))+n+s;return(a<<o|a>>>32-o)+r}var s=t,a=s.lib,c=a.WordArray,h=a.Hasher,l=s.algo,f=[];!function(){for(var t=0;t<64;t++)f[t]=4294967296*r.abs(r.sin(t+1))|0}();var u=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var s=0;s<16;s++){var a=r+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],u=t[r+1],d=t[r+2],v=t[r+3],p=t[r+4],_=t[r+5],y=t[r+6],g=t[r+7],B=t[r+8],w=t[r+9],k=t[r+10],S=t[r+11],m=t[r+12],x=t[r+13],b=t[r+14],H=t[r+15],z=h[0],A=h[1],C=h[2],D=h[3];z=e(z,A,C,D,l,7,f[0]),D=e(D,z,A,C,u,12,f[1]),C=e(C,D,z,A,d,17,f[2]),A=e(A,C,D,z,v,22,f[3]),z=e(z,A,C,D,p,7,f[4]),D=e(D,z,A,C,_,12,f[5]),C=e(C,D,z,A,y,17,f[6]),A=e(A,C,D,z,g,22,f[7]),z=e(z,A,C,D,B,7,f[8]),D=e(D,z,A,C,w,12,f[9]),C=e(C,D,z,A,k,17,f[10]),A=e(A,C,D,z,S,22,f[11]),z=e(z,A,C,D,m,7,f[12]),D=e(D,z,A,C,x,12,f[13]),C=e(C,D,z,A,b,17,f[14]),A=e(A,C,D,z,H,22,f[15]),z=i(z,A,C,D,u,5,f[16]),D=i(D,z,A,C,y,9,f[17]),C=i(C,D,z,A,S,14,f[18]),A=i(A,C,D,z,l,20,f[19]),z=i(z,A,C,D,_,5,f[20]),D=i(D,z,A,C,k,9,f[21]),C=i(C,D,z,A,H,14,f[22]),A=i(A,C,D,z,p,20,f[23]),z=i(z,A,C,D,w,5,f[24]),D=i(D,z,A,C,b,9,f[25]),C=i(C,D,z,A,v,14,f[26]),A=i(A,C,D,z,B,20,f[27]),z=i(z,A,C,D,x,5,f[28]),D=i(D,z,A,C,d,9,f[29]),C=i(C,D,z,A,g,14,f[30]),A=i(A,C,D,z,m,20,f[31]),z=n(z,A,C,D,_,4,f[32]),D=n(D,z,A,C,B,11,f[33]),C=n(C,D,z,A,S,16,f[34]),A=n(A,C,D,z,b,23,f[35]),z=n(z,A,C,D,u,4,f[36]),D=n(D,z,A,C,p,11,f[37]),C=n(C,D,z,A,g,16,f[38]),A=n(A,C,D,z,k,23,f[39]),z=n(z,A,C,D,x,4,f[40]),D=n(D,z,A,C,l,11,f[41]),C=n(C,D,z,A,v,16,f[42]),A=n(A,C,D,z,y,23,f[43]),z=n(z,A,C,D,w,4,f[44]),D=n(D,z,A,C,m,11,f[45]),C=n(C,D,z,A,H,16,f[46]),A=n(A,C,D,z,d,23,f[47]),z=o(z,A,C,D,l,6,f[48]),D=o(D,z,A,C,g,10,f[49]),C=o(C,D,z,A,b,15,f[50]),A=o(A,C,D,z,_,21,f[51]),z=o(z,A,C,D,m,6,f[52]),D=o(D,z,A,C,v,10,f[53]),C=o(C,D,z,A,k,15,f[54]),A=o(A,C,D,z,u,21,f[55]),z=o(z,A,C,D,B,6,f[56]),D=o(D,z,A,C,H,10,f[57]),C=o(C,D,z,A,y,15,f[58]),A=o(A,C,D,z,x,21,f[59]),z=o(z,A,C,D,p,6,f[60]),D=o(D,z,A,C,S,10,f[61]),C=o(C,D,z,A,d,15,f[62]),A=o(A,C,D,z,w,21,f[63]),h[0]=h[0]+z|0,h[1]=h[1]+A|0,h[2]=h[2]+C|0,h[3]=h[3]+D|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32;var o=r.floor(i/4294967296),s=i;e[(n+64>>>9<<4)+15]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[(n+64>>>9<<4)+14]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(e.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});s.MD5=h._createHelper(u),s.HmacMD5=h._createHmacHelper(u)}(Math),function(){var r=t,e=r.lib,i=e.WordArray,n=e.Hasher,o=r.algo,s=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],a=e[3],c=e[4],h=0;h<80;h++){if(h<16)s[h]=0|t[r+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+s[h];f+=h<20?(n&o|~n&a)+1518500249:h<40?(n^o^a)+1859775393:h<60?(n&o|n&a|o&a)-1894007588:(n^o^a)-899497514,c=a,a=o,o=n<<30|n>>>2,n=i,i=f}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+a|0,e[4]=e[4]+c|0},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=Math.floor(e/4294967296),r[(i+64>>>9<<4)+15]=e,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});r.SHA1=n._createHelper(a),r.HmacSHA1=n._createHmacHelper(a)}(),function(r){var e=t,i=e.lib,n=i.WordArray,o=i.Hasher,s=e.algo,a=[],c=[];!function(){function t(t){for(var e=r.sqrt(t),i=2;i<=e;i++)if(!(t%i))return!1;return!0}function e(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)t(i)&&(n<8&&(a[n]=e(r.pow(i,.5))),c[n]=e(r.pow(i,1/3)),n++),i++}();var h=[],l=s.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5],f=e[6],u=e[7],d=0;d<64;d++){if(d<16)h[d]=0|t[r+d];else{var v=h[d-15],p=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,_=h[d-2],y=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;h[d]=p+h[d-7]+y+h[d-16]}var g=a&l^~a&f,B=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),k=(a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25),S=u+k+g+c[d]+h[d],m=w+B;u=f,f=l,l=a,a=s+S|0,s=o,o=n,n=i,i=S+m|0}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+s|0,e[4]=e[4]+a|0,e[5]=e[5]+l|0,e[6]=e[6]+f|0,e[7]=e[7]+u|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=r.floor(i/4294967296),e[(n+64>>>9<<4)+15]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function r(t){return t<<8&4278255360|t>>>8&16711935}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Utf16=o.Utf16BE={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n<e;n+=2){var o=r[n>>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var r=t.length,e=[],i=0;i<r;i++)e[i>>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(e,2*r)}};o.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o<i;o+=2){var s=r(e[o>>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var e=t.length,i=[],o=0;o<e;o++)i[o>>>1]|=r(t.charCodeAt(o)<<16-o%2*16);return n.create(i,2*e)}}}(),function(){if("function"==typeof ArrayBuffer){var r=t,e=r.lib,i=e.WordArray,n=i.init,o=i.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,e=[],i=0;i<r;i++)e[i>>>2]|=t[i]<<24-i%4*8;n.call(this,e,r)}else n.apply(this,arguments)};o.prototype=i}}(),function(r){function e(t,r,e){return t^r^e}function i(t,r,e){return t&r|~t&e}function n(t,r,e){return(t|~r)^e}function o(t,r,e){return t&e|r&~e}function s(t,r,e){return t^(r|~e)}function a(t,r){return t<<r|t>>>32-r}var c=t,h=c.lib,l=h.WordArray,f=h.Hasher,u=c.algo,d=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),v=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),p=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),_=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=u.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var c=0;c<16;c++){var h=r+c,l=t[h];t[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var f,u,B,w,k,S,m,x,b,H,z=this._hash.words,A=y.words,C=g.words,D=d.words,R=v.words,E=p.words,M=_.words;S=f=z[0],m=u=z[1],x=B=z[2],b=w=z[3],H=k=z[4];for(var F,c=0;c<80;c+=1)F=f+t[r+D[c]]|0,F+=c<16?e(u,B,w)+A[0]:c<32?i(u,B,w)+A[1]:c<48?n(u,B,w)+A[2]:c<64?o(u,B,w)+A[3]:s(u,B,w)+A[4],F|=0,F=a(F,E[c]),F=F+k|0,f=k,k=w,w=a(B,10),B=u,u=F,F=S+t[r+R[c]]|0,F+=c<16?s(m,x,b)+C[0]:c<32?o(m,x,b)+C[1]:c<48?n(m,x,b)+C[2]:c<64?i(m,x,b)+C[3]:e(m,x,b)+C[4],F|=0,F=a(F,M[c]),F=F+H|0,S=H,H=b,b=a(x,10),x=m,m=F;F=z[1]+B+b|0,z[1]=z[2]+w+H|0,z[2]=z[3]+k+S|0,z[3]=z[4]+f+m|0,z[4]=z[0]+u+x|0,z[0]=F},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t.sigBytes=4*(r.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}});c.RIPEMD160=f._createHelper(B),c.HmacRIPEMD160=f._createHmacHelper(B)}(Math),function(){var r=t,e=r.lib,i=e.Base,n=r.enc,o=n.Utf8,s=r.algo;s.HMAC=i.extend({init:function(t,r){t=this._hasher=new t.init,"string"==typeof r&&(r=o.parse(r));var e=t.blockSize,i=4*e;r.sigBytes>i&&(r=t.finalize(r)),r.clamp();for(var n=this._oKey=r.clone(),s=this._iKey=r.clone(),a=n.words,c=s.words,h=0;h<e;h++)a[h]^=1549556828,c[h]^=909522486;n.sigBytes=s.sigBytes=i,this.reset()},reset:function(){var t=this._hasher;t.reset(),t.update(this._iKey)},update:function(t){return this._hasher.update(t),this},finalize:function(t){var r=this._hasher,e=r.finalize(t);r.reset();var i=r.finalize(this._oKey.clone().concat(e));return i}})}(),function(){var r=t,e=r.lib,i=e.Base,n=e.WordArray,o=r.algo,s=o.SHA1,a=o.HMAC,c=o.PBKDF2=i.extend({cfg:i.extend({keySize:4,hasher:s,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,r){for(var e=this.cfg,i=a.create(e.hasher,t),o=n.create(),s=n.create([1]),c=o.words,h=s.words,l=e.keySize,f=e.iterations;c.length<l;){var u=i.update(r).finalize(s);i.reset();for(var d=u.words,v=d.length,p=u,_=1;_<f;_++){p=i.finalize(p),i.reset();for(var y=p.words,g=0;g<v;g++)d[g]^=y[g]}o.concat(u),h[0]++}return o.sigBytes=4*l,o}});r.PBKDF2=function(t,r,e){return c.create(e).compute(t,r)}}(),function(){var r=t,e=r.lib,i=e.Base,n=e.WordArray,o=r.algo,s=o.MD5,a=o.EvpKDF=i.extend({cfg:i.extend({keySize:4,hasher:s,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,r){for(var e=this.cfg,i=e.hasher.create(),o=n.create(),s=o.words,a=e.keySize,c=e.iterations;s.length<a;){h&&i.update(h);var h=i.update(t).finalize(r);i.reset();for(var l=1;l<c;l++)h=i.finalize(h),i.reset();o.concat(h)}return o.sigBytes=4*a,o}});r.EvpKDF=function(t,r,e){return a.create(e).compute(t,r)}}(),function(){var r=t,e=r.lib,i=e.WordArray,n=r.algo,o=n.SHA256,s=n.SHA224=o.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=o._doFinalize.call(this);return t.sigBytes-=4,t}});r.SHA224=o._createHelper(s),r.HmacSHA224=o._createHmacHelper(s)}(),function(r){var e=t,i=e.lib,n=i.Base,o=i.WordArray,s=e.x64={};s.Word=n.extend({init:function(t,r){this.high=t,this.low=r}}),s.WordArray=n.extend({init:function(t,e){t=this.words=t||[],e!=r?this.sigBytes=e:this.sigBytes=8*t.length},toX32:function(){for(var t=this.words,r=t.length,e=[],i=0;i<r;i++){var n=t[i];e.push(n.high),e.push(n.low)}return o.create(e,this.sigBytes)},clone:function(){for(var t=n.clone.call(this),r=t.words=this.words.slice(0),e=r.length,i=0;i<e;i++)r[i]=r[i].clone();return t}})}(),function(r){var e=t,i=e.lib,n=i.WordArray,o=i.Hasher,s=e.x64,a=s.Word,c=e.algo,h=[],l=[],f=[];!function(){for(var t=1,r=0,e=0;e<24;e++){h[t+5*r]=(e+1)*(e+2)/2%64;var i=r%5,n=(2*t+3*r)%5;t=i,r=n}for(var t=0;t<5;t++)for(var r=0;r<5;r++)l[t+5*r]=r+(2*t+3*r)%5*5;for(var o=1,s=0;s<24;s++){for(var c=0,u=0,d=0;d<7;d++){if(1&o){var v=(1<<d)-1;v<32?u^=1<<v:c^=1<<v-32}128&o?o=o<<1^113:o<<=1}f[s]=a.create(c,u)}}();var u=[];!function(){for(var t=0;t<25;t++)u[t]=a.create()}();var d=c.SHA3=o.extend({cfg:o.cfg.extend({outputLength:512}),_doReset:function(){for(var t=this._state=[],r=0;r<25;r++)t[r]=new a.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(t,r){for(var e=this._state,i=this.blockSize/2,n=0;n<i;n++){var o=t[r+2*n],s=t[r+2*n+1];o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8);var a=e[n];a.high^=s,a.low^=o}for(var c=0;c<24;c++){for(var d=0;d<5;d++){for(var v=0,p=0,_=0;_<5;_++){var a=e[d+5*_];v^=a.high,p^=a.low}var y=u[d];y.high=v,y.low=p}for(var d=0;d<5;d++)for(var g=u[(d+4)%5],B=u[(d+1)%5],w=B.high,k=B.low,v=g.high^(w<<1|k>>>31),p=g.low^(k<<1|w>>>31),_=0;_<5;_++){var a=e[d+5*_];a.high^=v,a.low^=p}for(var S=1;S<25;S++){var a=e[S],m=a.high,x=a.low,b=h[S];if(b<32)var v=m<<b|x>>>32-b,p=x<<b|m>>>32-b;else var v=x<<b-32|m>>>64-b,p=m<<b-32|x>>>64-b;var H=u[l[S]];H.high=v,H.low=p}var z=u[0],A=e[0];z.high=A.high,z.low=A.low;for(var d=0;d<5;d++)for(var _=0;_<5;_++){var S=d+5*_,a=e[S],C=u[S],D=u[(d+1)%5+5*_],R=u[(d+2)%5+5*_];a.high=C.high^~D.high&R.high,a.low=C.low^~D.low&R.low}var a=e[0],E=f[c];a.high^=E.high,a.low^=E.low}},_doFinalize:function(){var t=this._data,e=t.words,i=(8*this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;e[i>>>5]|=1<<24-i%32,e[(r.ceil((i+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l<c;l++){var f=s[l],u=f.high,d=f.low;u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new n.init(h,a)},clone:function(){for(var t=o.clone.call(this),r=t._state=this._state.slice(0),e=0;e<25;e++)r[e]=r[e].clone();return t}});e.SHA3=o._createHelper(d),e.HmacSHA3=o._createHmacHelper(d)}(Math),function(){function r(){return s.create.apply(s,arguments)}var e=t,i=e.lib,n=i.Hasher,o=e.x64,s=o.Word,a=o.WordArray,c=e.algo,h=[r(1116352408,3609767458),r(1899447441,602891725),r(3049323471,3964484399),r(3921009573,2173295548),r(961987163,4081628472),r(1508970993,3053834265),r(2453635748,2937671579),r(2870763221,3664609560),r(3624381080,2734883394),r(310598401,1164996542),r(607225278,1323610764),r(1426881987,3590304994),r(1925078388,4068182383),r(2162078206,991336113),r(2614888103,633803317),r(3248222580,3479774868),r(3835390401,2666613458),r(4022224774,944711139),r(264347078,2341262773),r(604807628,2007800933),r(770255983,1495990901),r(1249150122,1856431235),r(1555081692,3175218132),r(1996064986,2198950837),r(2554220882,3999719339),r(2821834349,766784016),r(2952996808,2566594879),r(3210313671,3203337956),r(3336571891,1034457026),r(3584528711,2466948901),r(113926993,3758326383),r(338241895,168717936),r(666307205,1188179964),r(773529912,1546045734),r(1294757372,1522805485),r(1396182291,2643833823),r(1695183700,2343527390),r(1986661051,1014477480),r(2177026350,1206759142),r(2456956037,344077627),r(2730485921,1290863460),r(2820302411,3158454273),r(3259730800,3505952657),r(3345764771,106217008),r(3516065817,3606008344),r(3600352804,1432725776),r(4094571909,1467031594),r(275423344,851169720),r(430227734,3100823752),r(506948616,1363258195),r(659060556,3750685593),r(883997877,3785050280),r(958139571,3318307427),r(1322822218,3812723403),r(1537002063,2003034995),r(1747873779,3602036899),r(1955562222,1575990012),r(2024104815,1125592928),r(2227730452,2716904306),r(2361852424,442776044),r(2428436474,593698344),r(2756734187,3733110249),r(3204031479,2999351573),r(3329325298,3815920427),r(3391569614,3928383900),r(3515267271,566280711),r(3940187606,3454069534),r(4118630271,4000239992),r(116418474,1914138554),r(174292421,2731055270),r(289380356,3203993006),r(460393269,320620315),r(685471733,587496836),r(852142971,1086792851),r(1017036298,365543100),r(1126000580,2618297676),r(1288033470,3409855158),r(1501505948,4234509866),r(1607167915,987167468),r(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=r()}();var f=c.SHA512=n.extend({_doReset:function(){this._hash=new a.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],c=e[5],f=e[6],u=e[7],d=i.high,v=i.low,p=n.high,_=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=a.high,S=a.low,m=c.high,x=c.low,b=f.high,H=f.low,z=u.high,A=u.low,C=d,D=v,R=p,E=_,M=y,F=g,P=B,W=w,O=k,U=S,I=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var Z=l[T];if(T<16)var q=Z.high=0|t[r+2*T],G=Z.low=0|t[r+2*T+1];else{var J=l[T-15],$=J.high,Q=J.low,V=($>>>1|Q<<31)^($>>>8|Q<<24)^$>>>7,Y=(Q>>>1|$<<31)^(Q>>>8|$<<24)^(Q>>>7|$<<25),tt=l[T-2],rt=tt.high,et=tt.low,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^rt>>>6,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^(et>>>6|rt<<26),ot=l[T-7],st=ot.high,at=ot.low,ct=l[T-16],ht=ct.high,lt=ct.low,G=Y+at,q=V+st+(G>>>0<Y>>>0?1:0),G=G+nt,q=q+it+(G>>>0<nt>>>0?1:0),G=G+lt,q=q+ht+(G>>>0<lt>>>0?1:0);Z.high=q,Z.low=G}var ft=O&I^~O&X,ut=U&K^~U&L,dt=C&R^C&M^R&M,vt=D&E^D&F^E&F,pt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),_t=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),yt=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),gt=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),Bt=h[T],wt=Bt.high,kt=Bt.low,St=N+gt,mt=j+yt+(St>>>0<N>>>0?1:0),St=St+ut,mt=mt+ft+(St>>>0<ut>>>0?1:0),St=St+kt,mt=mt+wt+(St>>>0<kt>>>0?1:0),St=St+G,mt=mt+q+(St>>>0<G>>>0?1:0),xt=_t+vt,bt=pt+dt+(xt>>>0<_t>>>0?1:0);j=X,N=L,X=I,L=K,I=O,K=U,U=W+St|0,O=P+mt+(U>>>0<W>>>0?1:0)|0,P=M,W=F,M=R,F=E,R=C,E=D,D=St+xt|0,C=mt+bt+(D>>>0<St>>>0?1:0)|0}v=i.low=v+D,i.high=d+C+(v>>>0<D>>>0?1:0),_=n.low=_+E,n.high=p+R+(_>>>0<E>>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0<F>>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0<W>>>0?1:0),S=a.low=S+U,a.high=k+O+(S>>>0<U>>>0?1:0),x=c.low=x+K,c.high=m+I+(x>>>0<K>>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0<L>>>0?1:0),A=u.low=A+N,u.high=z+j+(A>>>0<N>>>0?1:0)},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+128>>>10<<5)+30]=Math.floor(e/4294967296),r[(i+128>>>10<<5)+31]=e,t.sigBytes=4*r.length,this._process();var n=this._hash.toX32();return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=n._createHelper(f),e.HmacSHA512=n._createHmacHelper(f)}(),function(){var r=t,e=r.x64,i=e.Word,n=e.WordArray,o=r.algo,s=o.SHA512,a=o.SHA384=s.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=16,t}});r.SHA384=s._createHelper(a),r.HmacSHA384=s._createHmacHelper(a)}(),t.lib.Cipher||function(r){var e=t,i=e.lib,n=i.Base,o=i.WordArray,s=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo,l=h.EvpKDF,f=i.Cipher=s.extend({cfg:n.extend(),createEncryptor:function(t,r){return this.create(this._ENC_XFORM_MODE,t,r)},createDecryptor:function(t,r){return this.create(this._DEC_XFORM_MODE,t,r)},init:function(t,r,e){this.cfg=this.cfg.extend(e),this._xformMode=t,this._key=r,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?m:w}return function(r){return{encrypt:function(e,i,n){return t(i).encrypt(r,e,i,n)},decrypt:function(e,i,n){return t(i).decrypt(r,e,i,n)}}}}()}),u=(i.StreamCipher=f.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),e.mode={}),d=i.BlockCipherMode=n.extend({createEncryptor:function(t,r){return this.Encryptor.create(t,r)},createDecryptor:function(t,r){return this.Decryptor.create(t,r)},init:function(t,r){this._cipher=t,this._iv=r}}),v=u.CBC=function(){function t(t,e,i){var n=this._iv;if(n){var o=n;this._iv=r}else var o=this._prevBlock;for(var s=0;s<i;s++)t[e+s]^=o[s]}var e=d.extend();return e.Encryptor=e.extend({processBlock:function(r,e){var i=this._cipher,n=i.blockSize;t.call(this,r,e,n),i.encryptBlock(r,e),this._prevBlock=r.slice(e,e+n)}}),e.Decryptor=e.extend({processBlock:function(r,e){var i=this._cipher,n=i.blockSize,o=r.slice(e,e+n);i.decryptBlock(r,e),t.call(this,r,e,n),this._prevBlock=o}}),e}(),p=e.pad={},_=p.Pkcs7={pad:function(t,r){for(var e=4*r,i=e-t.sigBytes%e,n=i<<24|i<<16|i<<8|i,s=[],a=0;a<i;a+=4)s.push(n);var c=o.create(s,i);t.concat(c)},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},y=(i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:v,padding:_}),reset:function(){f.reset.call(this);var t=this.cfg,r=t.iv,e=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=e.createEncryptor;else{var i=e.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,r&&r.words):(this._mode=i.call(e,this,r&&r.words),this._mode.__creator=i)},_doProcessBlock:function(t,r){this._mode.processBlock(t,r)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var r=this._process(!0)}else{var r=this._process(!0);t.unpad(r)}return r},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=e.format={},B=g.OpenSSL={stringify:function(t){var r=t.ciphertext,e=t.salt;if(e)var i=o.create([1398893684,1701076831]).concat(e).concat(r);else var i=r;return i.toString(c)},parse:function(t){var r=c.parse(t),e=r.words;if(1398893684==e[0]&&1701076831==e[1]){var i=o.create(e.slice(2,4));e.splice(0,4),r.sigBytes-=16}return y.create({ciphertext:r,salt:i})}},w=i.SerializableCipher=n.extend({cfg:n.extend({format:B}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=t.createEncryptor(e,i),o=n.finalize(r),s=n.cfg;return y.create({ciphertext:o,key:e,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=t.createDecryptor(e,i).finalize(r.ciphertext);return n},_parse:function(t,r){return"string"==typeof t?r.parse(t,this):t}}),k=e.kdf={},S=k.OpenSSL={execute:function(t,r,e,i){i||(i=o.random(8));var n=l.create({keySize:r+e}).compute(t,i),s=o.create(n.words.slice(r),4*e);return n.sigBytes=4*r,y.create({key:n,iv:s,salt:i})}},m=i.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:S}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=i.kdf.execute(e,t.keySize,t.ivSize);i.iv=n.iv;var o=w.encrypt.call(this,t,r,n.key,i);return o.mixIn(n),o},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=i.kdf.execute(e,t.keySize,t.ivSize,r.salt);i.iv=n.iv;var o=w.decrypt.call(this,t,r,n.key,i);return o}})}(),t.mode.CFB=function(){function r(t,r,e,i){var n=this._iv;if(n){var o=n.slice(0);this._iv=void 0}else var o=this._prevBlock;i.encryptBlock(o,0);for(var s=0;s<e;s++)t[r+s]^=o[s]}var e=t.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize;r.call(this,t,e,n,i),this._prevBlock=t.slice(e,e+n)}}),e.Decryptor=e.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,o=t.slice(e,e+n);r.call(this,t,e,n,i),this._prevBlock=o}}),e}(),t.mode.ECB=function(){var r=t.lib.BlockCipherMode.extend();return r.Encryptor=r.extend({processBlock:function(t,r){this._cipher.encryptBlock(t,r)}}),r.Decryptor=r.extend({processBlock:function(t,r){this._cipher.decryptBlock(t,r)}}),r}(),t.pad.AnsiX923={pad:function(t,r){var e=t.sigBytes,i=4*r,n=i-e%i,o=e+n-1;t.clamp(),t.words[o>>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso10126={pad:function(r,e){var i=4*e,n=i-r.sigBytes%i;r.concat(t.lib.WordArray.random(n-1)).concat(t.lib.WordArray.create([n<<24],1))},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso97971={pad:function(r,e){r.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(r,e)},unpad:function(r){t.pad.ZeroPadding.unpad(r),r.sigBytes--}},t.mode.OFB=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),e.encryptBlock(o,0);for(var s=0;s<i;s++)t[r+s]^=o[s]}});return r.Decryptor=e,r}(),t.pad.NoPadding={pad:function(){},unpad:function(){}},function(r){var e=t,i=e.lib,n=i.CipherParams,o=e.enc,s=o.Hex,a=e.format;a.Hex={stringify:function(t){return t.ciphertext.toString(s)},parse:function(t){var r=s.parse(t);return n.create({ciphertext:r})}}}(),function(){var r=t,e=r.lib,i=e.BlockCipher,n=r.algo,o=[],s=[],a=[],c=[],h=[],l=[],f=[],u=[],d=[],v=[];!function(){for(var t=[],r=0;r<256;r++)r<128?t[r]=r<<1:t[r]=r<<1^283;for(var e=0,i=0,r=0;r<256;r++){var n=i^i<<1^i<<2^i<<3^i<<4;n=n>>>8^255&n^99,o[e]=n,s[n]=e;var p=t[e],_=t[p],y=t[_],g=257*t[n]^16843008*n;a[e]=g<<24|g>>>8,c[e]=g<<16|g>>>16,h[e]=g<<8|g>>>24,l[e]=g;var g=16843009*y^65537*_^257*p^16843008*e;f[n]=g<<24|g>>>8,u[n]=g<<16|g>>>16,d[n]=g<<8|g>>>24,v[n]=g,e?(e=p^t[t[t[y^p]]],i^=t[t[i]]):e=i=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,r=t.words,e=t.sigBytes/4,i=this._nRounds=e+6,n=4*(i+1),s=this._keySchedule=[],a=0;a<n;a++)if(a<e)s[a]=r[a];else{var c=s[a-1];a%e?e>6&&a%e==4&&(c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c]):(c=c<<8|c>>>24,c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c],c^=p[a/e|0]<<24),s[a]=s[a-e]^c}for(var h=this._invKeySchedule=[],l=0;l<n;l++){var a=n-l;if(l%4)var c=s[a];else var c=s[a-4];l<4||a<=4?h[l]=c:h[l]=f[o[c>>>24]]^u[o[c>>>16&255]]^d[o[c>>>8&255]]^v[o[255&c]]}}},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._keySchedule,a,c,h,l,o)},decryptBlock:function(t,r){var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e,this._doCryptBlock(t,r,this._invKeySchedule,f,u,d,v,s);var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e},_doCryptBlock:function(t,r,e,i,n,o,s,a){for(var c=this._nRounds,h=t[r]^e[0],l=t[r+1]^e[1],f=t[r+2]^e[2],u=t[r+3]^e[3],d=4,v=1;v<c;v++){var p=i[h>>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^e[d++],_=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^e[d++],y=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^e[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^e[d++];h=p,l=_,f=y,u=g}var p=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^e[d++],_=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^e[d++],y=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^e[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^e[d++];t[r]=p,t[r+1]=_,t[r+2]=y,t[r+3]=g},keySize:8});r.AES=i._createHelper(_)}(),function(){function r(t,r){var e=(this._lBlock>>>t^this._rBlock)&r;this._rBlock^=e,this._lBlock^=e<<t}function e(t,r){var e=(this._rBlock>>>t^this._lBlock)&r;this._lBlock^=e,this._rBlock^=e<<t; | ||
2 | }var i=t,n=i.lib,o=n.WordArray,s=n.BlockCipher,a=i.algo,c=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],h=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],l=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],f=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],u=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],d=a.DES=s.extend({_doReset:function(){for(var t=this._key,r=t.words,e=[],i=0;i<56;i++){var n=c[i]-1;e[i]=r[n>>>5]>>>31-n%32&1}for(var o=this._subKeys=[],s=0;s<16;s++){for(var a=o[s]=[],f=l[s],i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+f)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+f)%28]<<31-i%6;a[0]=a[0]<<1|a[0]>>>31;for(var i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}for(var u=this._invSubKeys=[],i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._subKeys)},decryptBlock:function(t,r){this._doCryptBlock(t,r,this._invSubKeys)},_doCryptBlock:function(t,i,n){this._lBlock=t[i],this._rBlock=t[i+1],r.call(this,4,252645135),r.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),r.call(this,1,1431655765);for(var o=0;o<16;o++){for(var s=n[o],a=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=f[l][((c^s[l])&u[l])>>>0];this._lBlock=c,this._rBlock=a^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,r.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),r.call(this,16,65535),r.call(this,4,252645135),t[i]=this._lBlock,t[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=s._createHelper(d);var v=a.TripleDES=s.extend({_doReset:function(){var t=this._key,r=t.words;this._des1=d.createEncryptor(o.create(r.slice(0,2))),this._des2=d.createEncryptor(o.create(r.slice(2,4))),this._des3=d.createEncryptor(o.create(r.slice(4,6)))},encryptBlock:function(t,r){this._des1.encryptBlock(t,r),this._des2.decryptBlock(t,r),this._des3.encryptBlock(t,r)},decryptBlock:function(t,r){this._des3.decryptBlock(t,r),this._des2.encryptBlock(t,r),this._des1.decryptBlock(t,r)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=s._createHelper(v)}(),function(){function r(){for(var t=this._S,r=this._i,e=this._j,i=0,n=0;n<4;n++){r=(r+1)%256,e=(e+t[r])%256;var o=t[r];t[r]=t[e],t[e]=o,i|=t[(t[r]+t[e])%256]<<24-8*n}return this._i=r,this._j=e,i}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=o.RC4=n.extend({_doReset:function(){for(var t=this._key,r=t.words,e=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%e,a=r[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=r.call(this)},keySize:8,ivSize:0});e.RC4=n._createHelper(s);var a=o.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)r.call(this)}});e.RC4Drop=n._createHelper(a)}(),t.mode.CTRGladman=function(){function r(t){if(255===(t>>24&255)){var r=t>>16&255,e=t>>8&255,i=255&t;255===r?(r=0,255===e?(e=0,255===i?i=0:++i):++e):++r,t=0,t+=r<<16,t+=e<<8,t+=i}else t+=1<<24;return t}function e(t){return 0===(t[0]=r(t[0]))&&(t[1]=r(t[1])),t}var i=t.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),e(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c<n;c++)t[r+c]^=a[c]}});return i.Decryptor=n,i}(),function(){function r(){for(var t=this._X,r=this._C,e=0;e<8;e++)a[e]=r[e];r[0]=r[0]+1295307597+this._b|0,r[1]=r[1]+3545052371+(r[0]>>>0<a[0]>>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0<a[1]>>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0<a[2]>>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0<a[3]>>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0<a[4]>>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0<a[5]>>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0<a[6]>>>0?1:0)|0,this._b=r[7]>>>0<a[7]>>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)r.call(this);for(var i=0;i<8;i++)o[i]^=n[i+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;o[0]^=h,o[1]^=f,o[2]^=l,o[3]^=u,o[4]^=h,o[5]^=f,o[6]^=l,o[7]^=u;for(var i=0;i<4;i++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.Rabbit=n._createHelper(h)}(),t.mode.CTR=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);e.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a<i;a++)t[r+a]^=s[a]}});return r.Decryptor=e,r}(),function(){function r(){for(var t=this._X,r=this._C,e=0;e<8;e++)a[e]=r[e];r[0]=r[0]+1295307597+this._b|0,r[1]=r[1]+3545052371+(r[0]>>>0<a[0]>>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0<a[1]>>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0<a[2]>>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0<a[3]>>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0<a[4]>>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0<a[5]>>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0<a[6]>>>0?1:0)|0,this._b=r[7]>>>0<a[7]>>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var o=0;o<4;o++)r.call(this);for(var o=0;o<8;o++)n[o]^=i[o+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u;for(var o=0;o<4;o++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.RabbitLegacy=n._createHelper(h)}(),t.pad.ZeroPadding={pad:function(t,r){var e=4*r;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var r=t.words,e=t.sigBytes-1;!(r[e>>>2]>>>24-e%4*8&255);)e--;t.sigBytes=e+1}},t}); | ||
3 | //# sourceMappingURL=crypto-js.min.js.map | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
utils/enc/enc.js
0 → 100644
1 | const config = require('./../../config'); | ||
2 | const CryptoJS = require('./crypto-js.min'); | ||
3 | const Encrypt = require('./jsencrypt.min'); | ||
4 | |||
5 | var rsa = new Encrypt.JSEncrypt(); | ||
6 | |||
7 | function makeEncrypt(param) { | ||
8 | |||
9 | let key = config.NET_CONFIG.RSA_PUBLIC_KEY; // 公钥 | ||
10 | let iv = config.NET_CONFIG.AES_IV; // 偏移量 | ||
11 | |||
12 | rsa.setPublicKey(key); | ||
13 | let chars = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(","); | ||
14 | |||
15 | function randomAesKey() { | ||
16 | let res = ""; | ||
17 | for (let i = 0; i < 16; i++) { | ||
18 | let id = Math.ceil(Math.random() * (chars.length - 1)); | ||
19 | res += chars[id]; | ||
20 | } | ||
21 | 1 | ||
22 | return res; | ||
23 | }; | ||
24 | |||
25 | function encryptContent(obj) { | ||
26 | let aesKey = randomAesKey(); | ||
27 | let key = CryptoJS.enc.Utf8.parse(aesKey); | ||
28 | let ivR = CryptoJS.enc.Utf8.parse(iv); | ||
29 | var encrypted = CryptoJS.AES.encrypt(JSON.stringify(obj), key, { | ||
30 | iv: ivR, | ||
31 | mode: CryptoJS.mode.CBC, | ||
32 | padding: CryptoJS.pad.Pkcs7 | ||
33 | }); | ||
34 | let content = encrypted.toString(); //返回的是base64格式的密文 | ||
35 | let securityKey = rsa.encrypt(aesKey); | ||
36 | |||
37 | let result = { | ||
38 | k: securityKey, | ||
39 | v: content | ||
40 | }; | ||
41 | return result; | ||
42 | }; | ||
43 | let data = encryptContent(param) | ||
44 | return data; | ||
45 | } | ||
46 | |||
47 | module.exports = { | ||
48 | makeEncrypt | ||
49 | } |
utils/enc/jsencrypt.min.js
0 → 100755
1 | !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.JSEncrypt={})}(this,function(t){"use strict";var e="0123456789abcdefghijklmnopqrstuvwxyz";function a(t){return e.charAt(t)}function i(t,e){return t&e}function u(t,e){return t|e}function r(t,e){return t^e}function n(t,e){return t&~e}function s(t){if(0==t)return-1;var e=0;return 0==(65535&t)&&(t>>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function o(t){for(var e=0;0!=t;)t&=t-1,++e;return e}var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function c(t){var e,i,r="";for(e=0;e+3<=t.length;e+=3)i=parseInt(t.substring(e,e+3),16),r+=h.charAt(i>>6)+h.charAt(63&i);for(e+1==t.length?(i=parseInt(t.substring(e,e+1),16),r+=h.charAt(i<<2)):e+2==t.length&&(i=parseInt(t.substring(e,e+2),16),r+=h.charAt(i>>2)+h.charAt((3&i)<<4));0<(3&r.length);)r+="=";return r}function f(t){var e,i="",r=0,n=0;for(e=0;e<t.length&&"="!=t.charAt(e);++e){var s=h.indexOf(t.charAt(e));s<0||(0==r?(i+=a(s>>2),n=3&s,r=1):1==r?(i+=a(n<<2|s>>4),n=15&s,r=2):2==r?(i+=a(n),i+=a(s>>2),n=3&s,r=3):(i+=a(n<<2|s>>4),i+=a(15&s),r=0))}return 1==r&&(i+=a(n<<2)),i}var l,p=function(t,e){return(p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(t,e)};var g,d=function(t){var e;if(void 0===l){var i="0123456789ABCDEF",r=" \f\n\r\t \u2028\u2029";for(l={},e=0;e<16;++e)l[i.charAt(e)]=e;for(i=i.toLowerCase(),e=10;e<16;++e)l[i.charAt(e)]=e;for(e=0;e<r.length;++e)l[r.charAt(e)]=-1}var n=[],s=0,o=0;for(e=0;e<t.length;++e){var h=t.charAt(e);if("="==h)break;if(-1!=(h=l[h])){if(void 0===h)throw new Error("Illegal character at offset "+e);s|=h,2<=++o?(n[n.length]=s,o=s=0):s<<=4}}if(o)throw new Error("Hex encoding incomplete: 4 bits missing");return n},v={decode:function(t){var e;if(void 0===g){var i="= \f\n\r\t \u2028\u2029";for(g=Object.create(null),e=0;e<64;++e)g["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)]=e;for(e=0;e<i.length;++e)g[i.charAt(e)]=-1}var r=[],n=0,s=0;for(e=0;e<t.length;++e){var o=t.charAt(e);if("="==o)break;if(-1!=(o=g[o])){if(void 0===o)throw new Error("Illegal character at offset "+e);n|=o,4<=++s?(r[r.length]=n>>16,r[r.length]=n>>8&255,r[r.length]=255&n,s=n=0):n<<=6}}switch(s){case 1:throw new Error("Base64 encoding incomplete: at least 2 bits missing");case 2:r[r.length]=n>>10;break;case 3:r[r.length]=n>>16,r[r.length]=n>>8&255}return r},re:/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,unarmor:function(t){var e=v.re.exec(t);if(e)if(e[1])t=e[1];else{if(!e[2])throw new Error("RegExp out of sync");t=e[2]}return v.decode(t)}},m=1e13,y=function(){function t(t){this.buf=[+t||0]}return t.prototype.mulAdd=function(t,e){var i,r,n=this.buf,s=n.length;for(i=0;i<s;++i)(r=n[i]*t+e)<m?e=0:r-=(e=0|r/m)*m,n[i]=r;0<e&&(n[i]=e)},t.prototype.sub=function(t){var e,i,r=this.buf,n=r.length;for(e=0;e<n;++e)(i=r[e]-t)<0?(i+=m,t=1):t=0,r[e]=i;for(;0===r[r.length-1];)r.pop()},t.prototype.toString=function(t){if(10!=(t||10))throw new Error("only base 10 is supported");for(var e=this.buf,i=e[e.length-1].toString(),r=e.length-2;0<=r;--r)i+=(m+e[r]).toString().substring(1);return i},t.prototype.valueOf=function(){for(var t=this.buf,e=0,i=t.length-1;0<=i;--i)e=e*m+t[i];return e},t.prototype.simplify=function(){var t=this.buf;return 1==t.length?t[0]:this},t}(),b="…",T=/^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/,S=/^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;function E(t,e){return t.length>e&&(t=t.substring(0,e)+b),t}var w,D=function(){function i(t,e){this.hexDigits="0123456789ABCDEF",t instanceof i?(this.enc=t.enc,this.pos=t.pos):(this.enc=t,this.pos=e)}return i.prototype.get=function(t){if(void 0===t&&(t=this.pos++),t>=this.enc.length)throw new Error("Requesting byte offset "+t+" on a stream of length "+this.enc.length);return"string"==typeof this.enc?this.enc.charCodeAt(t):this.enc[t]},i.prototype.hexByte=function(t){return this.hexDigits.charAt(t>>4&15)+this.hexDigits.charAt(15&t)},i.prototype.hexDump=function(t,e,i){for(var r="",n=t;n<e;++n)if(r+=this.hexByte(this.get(n)),!0!==i)switch(15&n){case 7:r+=" ";break;case 15:r+="\n";break;default:r+=" "}return r},i.prototype.isASCII=function(t,e){for(var i=t;i<e;++i){var r=this.get(i);if(r<32||176<r)return!1}return!0},i.prototype.parseStringISO=function(t,e){for(var i="",r=t;r<e;++r)i+=String.fromCharCode(this.get(r));return i},i.prototype.parseStringUTF=function(t,e){for(var i="",r=t;r<e;){var n=this.get(r++);i+=n<128?String.fromCharCode(n):191<n&&n<224?String.fromCharCode((31&n)<<6|63&this.get(r++)):String.fromCharCode((15&n)<<12|(63&this.get(r++))<<6|63&this.get(r++))}return i},i.prototype.parseStringBMP=function(t,e){for(var i,r,n="",s=t;s<e;)i=this.get(s++),r=this.get(s++),n+=String.fromCharCode(i<<8|r);return n},i.prototype.parseTime=function(t,e,i){var r=this.parseStringISO(t,e),n=(i?T:S).exec(r);return n?(i&&(n[1]=+n[1],n[1]+=+n[1]<70?2e3:1900),r=n[1]+"-"+n[2]+"-"+n[3]+" "+n[4],n[5]&&(r+=":"+n[5],n[6]&&(r+=":"+n[6],n[7]&&(r+="."+n[7]))),n[8]&&(r+=" UTC","Z"!=n[8]&&(r+=n[8],n[9]&&(r+=":"+n[9]))),r):"Unrecognized time: "+r},i.prototype.parseInteger=function(t,e){for(var i,r=this.get(t),n=127<r,s=n?255:0,o="";r==s&&++t<e;)r=this.get(t);if(0===(i=e-t))return n?-1:0;if(4<i){for(o=r,i<<=3;0==(128&(+o^s));)o=+o<<1,--i;o="("+i+" bit)\n"}n&&(r-=256);for(var h=new y(r),a=t+1;a<e;++a)h.mulAdd(256,this.get(a));return o+h.toString()},i.prototype.parseBitString=function(t,e,i){for(var r=this.get(t),n="("+((e-t-1<<3)-r)+" bit)\n",s="",o=t+1;o<e;++o){for(var h=this.get(o),a=o==e-1?r:0,u=7;a<=u;--u)s+=h>>u&1?"1":"0";if(s.length>i)return n+E(s,i)}return n+s},i.prototype.parseOctetString=function(t,e,i){if(this.isASCII(t,e))return E(this.parseStringISO(t,e),i);var r=e-t,n="("+r+" byte)\n";(i/=2)<r&&(e=t+i);for(var s=t;s<e;++s)n+=this.hexByte(this.get(s));return i<r&&(n+=b),n},i.prototype.parseOID=function(t,e,i){for(var r="",n=new y,s=0,o=t;o<e;++o){var h=this.get(o);if(n.mulAdd(128,127&h),s+=7,!(128&h)){if(""===r)if((n=n.simplify())instanceof y)n.sub(80),r="2."+n.toString();else{var a=n<80?n<40?0:1:2;r=a+"."+(n-40*a)}else r+="."+n.toString();if(r.length>i)return E(r,i);n=new y,s=0}}return 0<s&&(r+=".incomplete"),r},i}(),x=function(){function c(t,e,i,r,n){if(!(r instanceof R))throw new Error("Invalid tag value.");this.stream=t,this.header=e,this.length=i,this.tag=r,this.sub=n}return c.prototype.typeName=function(){switch(this.tag.tagClass){case 0:switch(this.tag.tagNumber){case 0:return"EOC";case 1:return"BOOLEAN";case 2:return"INTEGER";case 3:return"BIT_STRING";case 4:return"OCTET_STRING";case 5:return"NULL";case 6:return"OBJECT_IDENTIFIER";case 7:return"ObjectDescriptor";case 8:return"EXTERNAL";case 9:return"REAL";case 10:return"ENUMERATED";case 11:return"EMBEDDED_PDV";case 12:return"UTF8String";case 16:return"SEQUENCE";case 17:return"SET";case 18:return"NumericString";case 19:return"PrintableString";case 20:return"TeletexString";case 21:return"VideotexString";case 22:return"IA5String";case 23:return"UTCTime";case 24:return"GeneralizedTime";case 25:return"GraphicString";case 26:return"VisibleString";case 27:return"GeneralString";case 28:return"UniversalString";case 30:return"BMPString"}return"Universal_"+this.tag.tagNumber.toString();case 1:return"Application_"+this.tag.tagNumber.toString();case 2:return"["+this.tag.tagNumber.toString()+"]";case 3:return"Private_"+this.tag.tagNumber.toString()}},c.prototype.content=function(t){if(void 0===this.tag)return null;void 0===t&&(t=1/0);var e=this.posContent(),i=Math.abs(this.length);if(!this.tag.isUniversal())return null!==this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);switch(this.tag.tagNumber){case 1:return 0===this.stream.get(e)?"false":"true";case 2:return this.stream.parseInteger(e,e+i);case 3:return this.sub?"("+this.sub.length+" elem)":this.stream.parseBitString(e,e+i,t);case 4:return this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);case 6:return this.stream.parseOID(e,e+i,t);case 16:case 17:return null!==this.sub?"("+this.sub.length+" elem)":"(no elem)";case 12:return E(this.stream.parseStringUTF(e,e+i),t);case 18:case 19:case 20:case 21:case 22:case 26:return E(this.stream.parseStringISO(e,e+i),t);case 30:return E(this.stream.parseStringBMP(e,e+i),t);case 23:case 24:return this.stream.parseTime(e,e+i,23==this.tag.tagNumber)}return null},c.prototype.toString=function(){return this.typeName()+"@"+this.stream.pos+"[header:"+this.header+",length:"+this.length+",sub:"+(null===this.sub?"null":this.sub.length)+"]"},c.prototype.toPrettyString=function(t){void 0===t&&(t="");var e=t+this.typeName()+" @"+this.stream.pos;if(0<=this.length&&(e+="+"),e+=this.length,this.tag.tagConstructed?e+=" (constructed)":!this.tag.isUniversal()||3!=this.tag.tagNumber&&4!=this.tag.tagNumber||null===this.sub||(e+=" (encapsulates)"),e+="\n",null!==this.sub){t+=" ";for(var i=0,r=this.sub.length;i<r;++i)e+=this.sub[i].toPrettyString(t)}return e},c.prototype.posStart=function(){return this.stream.pos},c.prototype.posContent=function(){return this.stream.pos+this.header},c.prototype.posEnd=function(){return this.stream.pos+this.header+Math.abs(this.length)},c.prototype.toHexString=function(){return this.stream.hexDump(this.posStart(),this.posEnd(),!0)},c.decodeLength=function(t){var e=t.get(),i=127&e;if(i==e)return i;if(6<i)throw new Error("Length over 48 bits not supported at position "+(t.pos-1));if(0===i)return null;for(var r=e=0;r<i;++r)e=256*e+t.get();return e},c.prototype.getHexStringValue=function(){var t=this.toHexString(),e=2*this.header,i=2*this.length;return t.substr(e,i)},c.decode=function(t){var r;r=t instanceof D?t:new D(t,0);var e=new D(r),i=new R(r),n=c.decodeLength(r),s=r.pos,o=s-e.pos,h=null,a=function(){var t=[];if(null!==n){for(var e=s+n;r.pos<e;)t[t.length]=c.decode(r);if(r.pos!=e)throw new Error("Content size is not correct for container starting at offset "+s)}else try{for(;;){var i=c.decode(r);if(i.tag.isEOC())break;t[t.length]=i}n=s-r.pos}catch(t){throw new Error("Exception while decoding undefined length content: "+t)}return t};if(i.tagConstructed)h=a();else if(i.isUniversal()&&(3==i.tagNumber||4==i.tagNumber))try{if(3==i.tagNumber&&0!=r.get())throw new Error("BIT STRINGs with unused bits cannot encapsulate.");h=a();for(var u=0;u<h.length;++u)if(h[u].tag.isEOC())throw new Error("EOC is not supposed to be actual content.")}catch(t){h=null}if(null===h){if(null===n)throw new Error("We can't skip over an invalid tag with undefined length at offset "+s);r.pos=s+Math.abs(n)}return new c(e,o,n,i,h)},c}(),R=function(){function t(t){var e=t.get();if(this.tagClass=e>>6,this.tagConstructed=0!=(32&e),this.tagNumber=31&e,31==this.tagNumber){for(var i=new y;e=t.get(),i.mulAdd(128,127&e),128&e;);this.tagNumber=i.simplify()}}return t.prototype.isUniversal=function(){return 0===this.tagClass},t.prototype.isEOC=function(){return 0===this.tagClass&&0===this.tagNumber},t}(),B=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],A=(1<<26)/B[B.length-1],O=function(){function b(t,e,i){null!=t&&("number"==typeof t?this.fromNumber(t,e,i):null==e&&"string"!=typeof t?this.fromString(t,256):this.fromString(t,e))}return b.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var i,r=(1<<e)-1,n=!1,s="",o=this.t,h=this.DB-o*this.DB%e;if(0<o--)for(h<this.DB&&0<(i=this[o]>>h)&&(n=!0,s=a(i));0<=o;)h<e?(i=(this[o]&(1<<h)-1)<<e-h,i|=this[--o]>>(h+=this.DB-e)):(i=this[o]>>(h-=e)&r,h<=0&&(h+=this.DB,--o)),0<i&&(n=!0),n&&(s+=a(i));return n?s:"0"},b.prototype.negate=function(){var t=M();return b.ZERO.subTo(this,t),t},b.prototype.abs=function(){return this.s<0?this.negate():this},b.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var i=this.t;if(0!=(e=i-t.t))return this.s<0?-e:e;for(;0<=--i;)if(0!=(e=this[i]-t[i]))return e;return 0},b.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+U(this[this.t-1]^this.s&this.DM)},b.prototype.mod=function(t){var e=M();return this.abs().divRemTo(t,null,e),this.s<0&&0<e.compareTo(b.ZERO)&&t.subTo(e,e),e},b.prototype.modPowInt=function(t,e){var i;return i=t<256||e.isEven()?new I(e):new N(e),this.exp(t,i)},b.prototype.clone=function(){var t=M();return this.copyTo(t),t},b.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},b.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24},b.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},b.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},b.prototype.toByteArray=function(){var t=this.t,e=[];e[0]=this.s;var i,r=this.DB-t*this.DB%8,n=0;if(0<t--)for(r<this.DB&&(i=this[t]>>r)!=(this.s&this.DM)>>r&&(e[n++]=i|this.s<<this.DB-r);0<=t;)r<8?(i=(this[t]&(1<<r)-1)<<8-r,i|=this[--t]>>(r+=this.DB-8)):(i=this[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),0!=(128&i)&&(i|=-256),0==n&&(128&this.s)!=(128&i)&&++n,(0<n||i!=this.s)&&(e[n++]=i);return e},b.prototype.equals=function(t){return 0==this.compareTo(t)},b.prototype.min=function(t){return this.compareTo(t)<0?this:t},b.prototype.max=function(t){return 0<this.compareTo(t)?this:t},b.prototype.and=function(t){var e=M();return this.bitwiseTo(t,i,e),e},b.prototype.or=function(t){var e=M();return this.bitwiseTo(t,u,e),e},b.prototype.xor=function(t){var e=M();return this.bitwiseTo(t,r,e),e},b.prototype.andNot=function(t){var e=M();return this.bitwiseTo(t,n,e),e},b.prototype.not=function(){for(var t=M(),e=0;e<this.t;++e)t[e]=this.DM&~this[e];return t.t=this.t,t.s=~this.s,t},b.prototype.shiftLeft=function(t){var e=M();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e},b.prototype.shiftRight=function(t){var e=M();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e},b.prototype.getLowestSetBit=function(){for(var t=0;t<this.t;++t)if(0!=this[t])return t*this.DB+s(this[t]);return this.s<0?this.t*this.DB:-1},b.prototype.bitCount=function(){for(var t=0,e=this.s&this.DM,i=0;i<this.t;++i)t+=o(this[i]^e);return t},b.prototype.testBit=function(t){var e=Math.floor(t/this.DB);return e>=this.t?0!=this.s:0!=(this[e]&1<<t%this.DB)},b.prototype.setBit=function(t){return this.changeBit(t,u)},b.prototype.clearBit=function(t){return this.changeBit(t,n)},b.prototype.flipBit=function(t){return this.changeBit(t,r)},b.prototype.add=function(t){var e=M();return this.addTo(t,e),e},b.prototype.subtract=function(t){var e=M();return this.subTo(t,e),e},b.prototype.multiply=function(t){var e=M();return this.multiplyTo(t,e),e},b.prototype.divide=function(t){var e=M();return this.divRemTo(t,e,null),e},b.prototype.remainder=function(t){var e=M();return this.divRemTo(t,null,e),e},b.prototype.divideAndRemainder=function(t){var e=M(),i=M();return this.divRemTo(t,e,i),[e,i]},b.prototype.modPow=function(t,e){var i,r,n=t.bitLength(),s=F(1);if(n<=0)return s;i=n<18?1:n<48?3:n<144?4:n<768?5:6,r=n<8?new I(e):e.isEven()?new P(e):new N(e);var o=[],h=3,a=i-1,u=(1<<i)-1;if(o[1]=r.convert(this),1<i){var c=M();for(r.sqrTo(o[1],c);h<=u;)o[h]=M(),r.mulTo(c,o[h-2],o[h]),h+=2}var f,l,p=t.t-1,g=!0,d=M();for(n=U(t[p])-1;0<=p;){for(a<=n?f=t[p]>>n-a&u:(f=(t[p]&(1<<n+1)-1)<<a-n,0<p&&(f|=t[p-1]>>this.DB+n-a)),h=i;0==(1&f);)f>>=1,--h;if((n-=h)<0&&(n+=this.DB,--p),g)o[f].copyTo(s),g=!1;else{for(;1<h;)r.sqrTo(s,d),r.sqrTo(d,s),h-=2;0<h?r.sqrTo(s,d):(l=s,s=d,d=l),r.mulTo(d,o[f],s)}for(;0<=p&&0==(t[p]&1<<n);)r.sqrTo(s,d),l=s,s=d,d=l,--n<0&&(n=this.DB-1,--p)}return r.revert(s)},b.prototype.modInverse=function(t){var e=t.isEven();if(this.isEven()&&e||0==t.signum())return b.ZERO;for(var i=t.clone(),r=this.clone(),n=F(1),s=F(0),o=F(0),h=F(1);0!=i.signum();){for(;i.isEven();)i.rShiftTo(1,i),e?(n.isEven()&&s.isEven()||(n.addTo(this,n),s.subTo(t,s)),n.rShiftTo(1,n)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;r.isEven();)r.rShiftTo(1,r),e?(o.isEven()&&h.isEven()||(o.addTo(this,o),h.subTo(t,h)),o.rShiftTo(1,o)):h.isEven()||h.subTo(t,h),h.rShiftTo(1,h);0<=i.compareTo(r)?(i.subTo(r,i),e&&n.subTo(o,n),s.subTo(h,s)):(r.subTo(i,r),e&&o.subTo(n,o),h.subTo(s,h))}return 0!=r.compareTo(b.ONE)?b.ZERO:0<=h.compareTo(t)?h.subtract(t):h.signum()<0?(h.addTo(t,h),h.signum()<0?h.add(t):h):h},b.prototype.pow=function(t){return this.exp(t,new V)},b.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),i=t.s<0?t.negate():t.clone();if(e.compareTo(i)<0){var r=e;e=i,i=r}var n=e.getLowestSetBit(),s=i.getLowestSetBit();if(s<0)return e;for(n<s&&(s=n),0<s&&(e.rShiftTo(s,e),i.rShiftTo(s,i));0<e.signum();)0<(n=e.getLowestSetBit())&&e.rShiftTo(n,e),0<(n=i.getLowestSetBit())&&i.rShiftTo(n,i),0<=e.compareTo(i)?(e.subTo(i,e),e.rShiftTo(1,e)):(i.subTo(e,i),i.rShiftTo(1,i));return 0<s&&i.lShiftTo(s,i),i},b.prototype.isProbablePrime=function(t){var e,i=this.abs();if(1==i.t&&i[0]<=B[B.length-1]){for(e=0;e<B.length;++e)if(i[0]==B[e])return!0;return!1}if(i.isEven())return!1;for(e=1;e<B.length;){for(var r=B[e],n=e+1;n<B.length&&r<A;)r*=B[n++];for(r=i.modInt(r);e<n;)if(r%B[e++]==0)return!1}return i.millerRabin(t)},b.prototype.copyTo=function(t){for(var e=this.t-1;0<=e;--e)t[e]=this[e];t.t=this.t,t.s=this.s},b.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,0<t?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},b.prototype.fromString=function(t,e){var i;if(16==e)i=4;else if(8==e)i=3;else if(256==e)i=8;else if(2==e)i=1;else if(32==e)i=5;else{if(4!=e)return void this.fromRadix(t,e);i=2}this.t=0,this.s=0;for(var r=t.length,n=!1,s=0;0<=--r;){var o=8==i?255&+t[r]:C(t,r);o<0?"-"==t.charAt(r)&&(n=!0):(n=!1,0==s?this[this.t++]=o:s+i>this.DB?(this[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this[this.t++]=o>>this.DB-s):this[this.t-1]|=o<<s,(s+=i)>=this.DB&&(s-=this.DB))}8==i&&0!=(128&+t[0])&&(this.s=-1,0<s&&(this[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),n&&b.ZERO.subTo(this,this)},b.prototype.clamp=function(){for(var t=this.s&this.DM;0<this.t&&this[this.t-1]==t;)--this.t},b.prototype.dlShiftTo=function(t,e){var i;for(i=this.t-1;0<=i;--i)e[i+t]=this[i];for(i=t-1;0<=i;--i)e[i]=0;e.t=this.t+t,e.s=this.s},b.prototype.drShiftTo=function(t,e){for(var i=t;i<this.t;++i)e[i-t]=this[i];e.t=Math.max(this.t-t,0),e.s=this.s},b.prototype.lShiftTo=function(t,e){for(var i=t%this.DB,r=this.DB-i,n=(1<<r)-1,s=Math.floor(t/this.DB),o=this.s<<i&this.DM,h=this.t-1;0<=h;--h)e[h+s+1]=this[h]>>r|o,o=(this[h]&n)<<i;for(h=s-1;0<=h;--h)e[h]=0;e[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()},b.prototype.rShiftTo=function(t,e){e.s=this.s;var i=Math.floor(t/this.DB);if(i>=this.t)e.t=0;else{var r=t%this.DB,n=this.DB-r,s=(1<<r)-1;e[0]=this[i]>>r;for(var o=i+1;o<this.t;++o)e[o-i-1]|=(this[o]&s)<<n,e[o-i]=this[o]>>r;0<r&&(e[this.t-i-1]|=(this.s&s)<<n),e.t=this.t-i,e.clamp()}},b.prototype.subTo=function(t,e){for(var i=0,r=0,n=Math.min(t.t,this.t);i<n;)r+=this[i]-t[i],e[i++]=r&this.DM,r>>=this.DB;if(t.t<this.t){for(r-=t.s;i<this.t;)r+=this[i],e[i++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;i<t.t;)r-=t[i],e[i++]=r&this.DM,r>>=this.DB;r-=t.s}e.s=r<0?-1:0,r<-1?e[i++]=this.DV+r:0<r&&(e[i++]=r),e.t=i,e.clamp()},b.prototype.multiplyTo=function(t,e){var i=this.abs(),r=t.abs(),n=i.t;for(e.t=n+r.t;0<=--n;)e[n]=0;for(n=0;n<r.t;++n)e[n+i.t]=i.am(0,r[n],e,n,0,i.t);e.s=0,e.clamp(),this.s!=t.s&&b.ZERO.subTo(e,e)},b.prototype.squareTo=function(t){for(var e=this.abs(),i=t.t=2*e.t;0<=--i;)t[i]=0;for(i=0;i<e.t-1;++i){var r=e.am(i,e[i],t,2*i,0,1);(t[i+e.t]+=e.am(i+1,2*e[i],t,2*i+1,r,e.t-i-1))>=e.DV&&(t[i+e.t]-=e.DV,t[i+e.t+1]=1)}0<t.t&&(t[t.t-1]+=e.am(i,e[i],t,2*i,0,1)),t.s=0,t.clamp()},b.prototype.divRemTo=function(t,e,i){var r=t.abs();if(!(r.t<=0)){var n=this.abs();if(n.t<r.t)return null!=e&&e.fromInt(0),void(null!=i&&this.copyTo(i));null==i&&(i=M());var s=M(),o=this.s,h=t.s,a=this.DB-U(r[r.t-1]);0<a?(r.lShiftTo(a,s),n.lShiftTo(a,i)):(r.copyTo(s),n.copyTo(i));var u=s.t,c=s[u-1];if(0!=c){var f=c*(1<<this.F1)+(1<u?s[u-2]>>this.F2:0),l=this.FV/f,p=(1<<this.F1)/f,g=1<<this.F2,d=i.t,v=d-u,m=null==e?M():e;for(s.dlShiftTo(v,m),0<=i.compareTo(m)&&(i[i.t++]=1,i.subTo(m,i)),b.ONE.dlShiftTo(u,m),m.subTo(s,s);s.t<u;)s[s.t++]=0;for(;0<=--v;){var y=i[--d]==c?this.DM:Math.floor(i[d]*l+(i[d-1]+g)*p);if((i[d]+=s.am(0,y,i,v,0,u))<y)for(s.dlShiftTo(v,m),i.subTo(m,i);i[d]<--y;)i.subTo(m,i)}null!=e&&(i.drShiftTo(u,e),o!=h&&b.ZERO.subTo(e,e)),i.t=u,i.clamp(),0<a&&i.rShiftTo(a,i),o<0&&b.ZERO.subTo(i,i)}}},b.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return 0<(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)?this.DV-e:-e},b.prototype.isEven=function(){return 0==(0<this.t?1&this[0]:this.s)},b.prototype.exp=function(t,e){if(4294967295<t||t<1)return b.ONE;var i=M(),r=M(),n=e.convert(this),s=U(t)-1;for(n.copyTo(i);0<=--s;)if(e.sqrTo(i,r),0<(t&1<<s))e.mulTo(r,n,i);else{var o=i;i=r,r=o}return e.revert(i)},b.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},b.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||36<t)return"0";var e=this.chunkSize(t),i=Math.pow(t,e),r=F(i),n=M(),s=M(),o="";for(this.divRemTo(r,n,s);0<n.signum();)o=(i+s.intValue()).toString(t).substr(1)+o,n.divRemTo(r,n,s);return s.intValue().toString(t)+o},b.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var i=this.chunkSize(e),r=Math.pow(e,i),n=!1,s=0,o=0,h=0;h<t.length;++h){var a=C(t,h);a<0?"-"==t.charAt(h)&&0==this.signum()&&(n=!0):(o=e*o+a,++s>=i&&(this.dMultiply(r),this.dAddOffset(o,0),o=s=0))}0<s&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(o,0)),n&&b.ZERO.subTo(this,this)},b.prototype.fromNumber=function(t,e,i){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,i),this.testBit(t-1)||this.bitwiseTo(b.ONE.shiftLeft(t-1),u,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(b.ONE.shiftLeft(t-1),this);else{var r=[],n=7&t;r.length=1+(t>>3),e.nextBytes(r),0<n?r[0]&=(1<<n)-1:r[0]=0,this.fromString(r,256)}},b.prototype.bitwiseTo=function(t,e,i){var r,n,s=Math.min(t.t,this.t);for(r=0;r<s;++r)i[r]=e(this[r],t[r]);if(t.t<this.t){for(n=t.s&this.DM,r=s;r<this.t;++r)i[r]=e(this[r],n);i.t=this.t}else{for(n=this.s&this.DM,r=s;r<t.t;++r)i[r]=e(n,t[r]);i.t=t.t}i.s=e(this.s,t.s),i.clamp()},b.prototype.changeBit=function(t,e){var i=b.ONE.shiftLeft(t);return this.bitwiseTo(i,e,i),i},b.prototype.addTo=function(t,e){for(var i=0,r=0,n=Math.min(t.t,this.t);i<n;)r+=this[i]+t[i],e[i++]=r&this.DM,r>>=this.DB;if(t.t<this.t){for(r+=t.s;i<this.t;)r+=this[i],e[i++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;i<t.t;)r+=t[i],e[i++]=r&this.DM,r>>=this.DB;r+=t.s}e.s=r<0?-1:0,0<r?e[i++]=r:r<-1&&(e[i++]=this.DV+r),e.t=i,e.clamp()},b.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},b.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},b.prototype.multiplyLowerTo=function(t,e,i){var r=Math.min(this.t+t.t,e);for(i.s=0,i.t=r;0<r;)i[--r]=0;for(var n=i.t-this.t;r<n;++r)i[r+this.t]=this.am(0,t[r],i,r,0,this.t);for(n=Math.min(t.t,e);r<n;++r)this.am(0,t[r],i,r,0,e-r);i.clamp()},b.prototype.multiplyUpperTo=function(t,e,i){--e;var r=i.t=this.t+t.t-e;for(i.s=0;0<=--r;)i[r]=0;for(r=Math.max(e-this.t,0);r<t.t;++r)i[this.t+r-e]=this.am(e-r,t[r],i,0,0,this.t+r-e);i.clamp(),i.drShiftTo(1,i)},b.prototype.modInt=function(t){if(t<=0)return 0;var e=this.DV%t,i=this.s<0?t-1:0;if(0<this.t)if(0==e)i=this[0]%t;else for(var r=this.t-1;0<=r;--r)i=(e*i+this[r])%t;return i},b.prototype.millerRabin=function(t){var e=this.subtract(b.ONE),i=e.getLowestSetBit();if(i<=0)return!1;var r=e.shiftRight(i);B.length<(t=t+1>>1)&&(t=B.length);for(var n=M(),s=0;s<t;++s){n.fromInt(B[Math.floor(Math.random()*B.length)]);var o=n.modPow(r,this);if(0!=o.compareTo(b.ONE)&&0!=o.compareTo(e)){for(var h=1;h++<i&&0!=o.compareTo(e);)if(0==(o=o.modPowInt(2,this)).compareTo(b.ONE))return!1;if(0!=o.compareTo(e))return!1}}return!0},b.prototype.square=function(){var t=M();return this.squareTo(t),t},b.prototype.gcda=function(t,e){var i=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(i.compareTo(r)<0){var n=i;i=r,r=n}var s=i.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)e(i);else{s<o&&(o=s),0<o&&(i.rShiftTo(o,i),r.rShiftTo(o,r));var h=function(){0<(s=i.getLowestSetBit())&&i.rShiftTo(s,i),0<(s=r.getLowestSetBit())&&r.rShiftTo(s,r),0<=i.compareTo(r)?(i.subTo(r,i),i.rShiftTo(1,i)):(r.subTo(i,r),r.rShiftTo(1,r)),0<i.signum()?setTimeout(h,0):(0<o&&r.lShiftTo(o,r),setTimeout(function(){e(r)},0))};setTimeout(h,10)}},b.prototype.fromNumberAsync=function(t,e,i,r){if("number"==typeof e)if(t<2)this.fromInt(1);else{this.fromNumber(t,i),this.testBit(t-1)||this.bitwiseTo(b.ONE.shiftLeft(t-1),u,this),this.isEven()&&this.dAddOffset(1,0);var n=this,s=function(){n.dAddOffset(2,0),n.bitLength()>t&&n.subTo(b.ONE.shiftLeft(t-1),n),n.isProbablePrime(e)?setTimeout(function(){r()},0):setTimeout(s,0)};setTimeout(s,0)}else{var o=[],h=7&t;o.length=1+(t>>3),e.nextBytes(o),0<h?o[0]&=(1<<h)-1:o[0]=0,this.fromString(o,256)}},b}(),V=function(){function t(){}return t.prototype.convert=function(t){return t},t.prototype.revert=function(t){return t},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i)},t.prototype.sqrTo=function(t,e){t.squareTo(e)},t}(),I=function(){function t(t){this.m=t}return t.prototype.convert=function(t){return t.s<0||0<=t.compareTo(this.m)?t.mod(this.m):t},t.prototype.revert=function(t){return t},t.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}(),N=function(){function t(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}return t.prototype.convert=function(t){var e=M();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&0<e.compareTo(O.ZERO)&&this.m.subTo(e,e),e},t.prototype.revert=function(t){var e=M();return t.copyTo(e),this.reduce(e),e},t.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e<this.m.t;++e){var i=32767&t[e],r=i*this.mpl+((i*this.mph+(t[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(t[i=e+this.m.t]+=this.m.am(0,r,t,e,0,this.m.t);t[i]>=t.DV;)t[i]-=t.DV,t[++i]++}t.clamp(),t.drShiftTo(this.m.t,t),0<=t.compareTo(this.m)&&t.subTo(this.m,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}(),P=function(){function t(t){this.m=t,this.r2=M(),this.q3=M(),O.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t)}return t.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=M();return t.copyTo(e),this.reduce(e),e},t.prototype.revert=function(t){return t},t.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);0<=t.compareTo(this.m);)t.subTo(this.m,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}();function M(){return new O(null)}function q(t,e){return new O(t,e)}(O.prototype.am=function(t,e,i,r,n,s){for(var o=16383&e,h=e>>14;0<=--s;){var a=16383&this[t],u=this[t++]>>14,c=h*a+u*o;n=((a=o*a+((16383&c)<<14)+i[r]+n)>>28)+(c>>14)+h*u,i[r++]=268435455&a}return n},w=28),O.prototype.DB=w,O.prototype.DM=(1<<w)-1,O.prototype.DV=1<<w;O.prototype.FV=Math.pow(2,52),O.prototype.F1=52-w,O.prototype.F2=2*w-52;var j,L,H=[];for(j="0".charCodeAt(0),L=0;L<=9;++L)H[j++]=L;for(j="a".charCodeAt(0),L=10;L<36;++L)H[j++]=L;for(j="A".charCodeAt(0),L=10;L<36;++L)H[j++]=L;function C(t,e){var i=H[t.charCodeAt(e)];return null==i?-1:i}function F(t){var e=M();return e.fromInt(t),e}function U(t){var e,i=1;return 0!=(e=t>>>16)&&(t=e,i+=16),0!=(e=t>>8)&&(t=e,i+=8),0!=(e=t>>4)&&(t=e,i+=4),0!=(e=t>>2)&&(t=e,i+=2),0!=(e=t>>1)&&(t=e,i+=1),i}O.ZERO=F(0),O.ONE=F(1);var K=function(){function t(){this.i=0,this.j=0,this.S=[]}return t.prototype.init=function(t){var e,i,r;for(e=0;e<256;++e)this.S[e]=e;for(e=i=0;e<256;++e)i=i+this.S[e]+t[e%t.length]&255,r=this.S[e],this.S[e]=this.S[i],this.S[i]=r;this.i=0,this.j=0},t.prototype.next=function(){var t;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,t=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=t,this.S[t+this.S[this.i]&255]},t}();var k,_,z=256,Z=null;if(null==Z){Z=[];var G=void(_=0);var grm = function (array) { for (var i = 0, l = array.length; i < l; i++) { array[i] = Math.floor(Math.random() * 256); } return array; }; var z = new Uint32Array(256);grm(z);var Y=function(t){if(this.count=this.count||0,256<=this.count||z<=_)return;try{var e=t.x+t.y;Z[_++]=255&e,this.count+=1}catch(t){}};}function J(){if(null==k){for(k=new K;_<z;){var t=Math.floor(65536*Math.random());Z[_++]=255&t}for(k.init(Z),_=0;_<Z.length;++_)Z[_]=0;_=0}return k.next()}var X=function(){function t(){}return t.prototype.nextBytes=function(t){for(var e=0;e<t.length;++e)t[e]=J()},t}();var Q=function(){function t(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}return t.prototype.doPublic=function(t){return t.modPowInt(this.e,this.n)},t.prototype.doPrivate=function(t){if(null==this.p||null==this.q)return t.modPow(this.d,this.n);for(var e=t.mod(this.p).modPow(this.dmp1,this.p),i=t.mod(this.q).modPow(this.dmq1,this.q);e.compareTo(i)<0;)e=e.add(this.p);return e.subtract(i).multiply(this.coeff).mod(this.p).multiply(this.q).add(i)},t.prototype.setPublic=function(t,e){null!=t&&null!=e&&0<t.length&&0<e.length?(this.n=q(t,16),this.e=parseInt(e,16)):console.error("Invalid RSA public key")},t.prototype.encrypt=function(t){var e=function(t,e){if(e<t.length+11)return console.error("Message too long for RSA"),null;for(var i=[],r=t.length-1;0<=r&&0<e;){var n=t.charCodeAt(r--);n<128?i[--e]=n:127<n&&n<2048?(i[--e]=63&n|128,i[--e]=n>>6|192):(i[--e]=63&n|128,i[--e]=n>>6&63|128,i[--e]=n>>12|224)}i[--e]=0;for(var s=new X,o=[];2<e;){for(o[0]=0;0==o[0];)s.nextBytes(o);i[--e]=o[0]}return i[--e]=2,i[--e]=0,new O(i)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var i=this.doPublic(e);if(null==i)return null;var r=i.toString(16);return 0==(1&r.length)?r:"0"+r},t.prototype.setPrivate=function(t,e,i){null!=t&&null!=e&&0<t.length&&0<e.length?(this.n=q(t,16),this.e=parseInt(e,16),this.d=q(i,16)):console.error("Invalid RSA private key")},t.prototype.setPrivateEx=function(t,e,i,r,n,s,o,h){null!=t&&null!=e&&0<t.length&&0<e.length?(this.n=q(t,16),this.e=parseInt(e,16),this.d=q(i,16),this.p=q(r,16),this.q=q(n,16),this.dmp1=q(s,16),this.dmq1=q(o,16),this.coeff=q(h,16)):console.error("Invalid RSA private key")},t.prototype.generate=function(t,e){var i=new X,r=t>>1;this.e=parseInt(e,16);for(var n=new O(e,16);;){for(;this.p=new O(t-r,1,i),0!=this.p.subtract(O.ONE).gcd(n).compareTo(O.ONE)||!this.p.isProbablePrime(10););for(;this.q=new O(r,1,i),0!=this.q.subtract(O.ONE).gcd(n).compareTo(O.ONE)||!this.q.isProbablePrime(10););if(this.p.compareTo(this.q)<=0){var s=this.p;this.p=this.q,this.q=s}var o=this.p.subtract(O.ONE),h=this.q.subtract(O.ONE),a=o.multiply(h);if(0==a.gcd(n).compareTo(O.ONE)){this.n=this.p.multiply(this.q),this.d=n.modInverse(a),this.dmp1=this.d.mod(o),this.dmq1=this.d.mod(h),this.coeff=this.q.modInverse(this.p);break}}},t.prototype.decrypt=function(t){var e=q(t,16),i=this.doPrivate(e);return null==i?null:function(t,e){var i=t.toByteArray(),r=0;for(;r<i.length&&0==i[r];)++r;if(i.length-r!=e-1||2!=i[r])return null;++r;for(;0!=i[r];)if(++r>=i.length)return null;var n="";for(;++r<i.length;){var s=255&i[r];s<128?n+=String.fromCharCode(s):191<s&&s<224?(n+=String.fromCharCode((31&s)<<6|63&i[r+1]),++r):(n+=String.fromCharCode((15&s)<<12|(63&i[r+1])<<6|63&i[r+2]),r+=2)}return n}(i,this.n.bitLength()+7>>3)},t.prototype.generateAsync=function(t,e,n){var s=new X,o=t>>1;this.e=parseInt(e,16);var h=new O(e,16),a=this,u=function(){var e=function(){if(a.p.compareTo(a.q)<=0){var t=a.p;a.p=a.q,a.q=t}var e=a.p.subtract(O.ONE),i=a.q.subtract(O.ONE),r=e.multiply(i);0==r.gcd(h).compareTo(O.ONE)?(a.n=a.p.multiply(a.q),a.d=h.modInverse(r),a.dmp1=a.d.mod(e),a.dmq1=a.d.mod(i),a.coeff=a.q.modInverse(a.p),setTimeout(function(){n()},0)):setTimeout(u,0)},i=function(){a.q=M(),a.q.fromNumberAsync(o,1,s,function(){a.q.subtract(O.ONE).gcda(h,function(t){0==t.compareTo(O.ONE)&&a.q.isProbablePrime(10)?setTimeout(e,0):setTimeout(i,0)})})},r=function(){a.p=M(),a.p.fromNumberAsync(t-o,1,s,function(){a.p.subtract(O.ONE).gcda(h,function(t){0==t.compareTo(O.ONE)&&a.p.isProbablePrime(10)?setTimeout(i,0):setTimeout(r,0)})})};setTimeout(r,0)};setTimeout(u,0)},t.prototype.sign=function(t,e,i){var r=function(t,e){if(e<t.length+22)return console.error("Message too long for RSA"),null;for(var i=e-t.length-6,r="",n=0;n<i;n+=2)r+="ff";return q("0001"+r+"00"+t,16)}((W[i]||"")+e(t).toString(),this.n.bitLength()/4);if(null==r)return null;var n=this.doPrivate(r);if(null==n)return null;var s=n.toString(16);return 0==(1&s.length)?s:"0"+s},t.prototype.verify=function(t,e,i){var r=q(e,16),n=this.doPublic(r);return null==n?null:function(t){for(var e in W)if(W.hasOwnProperty(e)){var i=W[e],r=i.length;if(t.substr(0,r)==i)return t.substr(r)}return t}(n.toString(16).replace(/^1f+00/,""))==i(t).toString()},t}();var W={md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",ripemd160:"3021300906052b2403020105000414"};var tt={};tt.lang={extend:function(t,e,i){if(!e||!t)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var r=function(){};if(r.prototype=e.prototype,t.prototype=new r,(t.prototype.constructor=t).superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e),i){var n;for(n in i)t.prototype[n]=i[n];var s=function(){},o=["toString","valueOf"];s(t.prototype,i)}}};var et={};void 0!==et.asn1&&et.asn1||(et.asn1={}),et.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e="0"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if("-"!=e.substr(0,1))e.length%2==1?e="0"+e:e.match(/^[0-7]/)||(e="00"+e);else{var i=e.substr(1).length;i%2==1?i+=1:e.match(/^[0-7]/)||(i+=2);for(var r="",n=0;n<i;n++)r+="f";e=new O(r,16).xor(t).add(O.ONE).toString(16).replace(/^-/,"")}return e},this.getPEMStringFromHex=function(t,e){return hextopem(t,e)},this.newObject=function(t){var e=et.asn1,i=e.DERBoolean,r=e.DERInteger,n=e.DERBitString,s=e.DEROctetString,o=e.DERNull,h=e.DERObjectIdentifier,a=e.DEREnumerated,u=e.DERUTF8String,c=e.DERNumericString,f=e.DERPrintableString,l=e.DERTeletexString,p=e.DERIA5String,g=e.DERUTCTime,d=e.DERGeneralizedTime,v=e.DERSequence,m=e.DERSet,y=e.DERTaggedObject,b=e.ASN1Util.newObject,T=Object.keys(t);if(1!=T.length)throw"key of param shall be only one.";var S=T[0];if(-1==":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:".indexOf(":"+S+":"))throw"undefined key: "+S;if("bool"==S)return new i(t[S]);if("int"==S)return new r(t[S]);if("bitstr"==S)return new n(t[S]);if("octstr"==S)return new s(t[S]);if("null"==S)return new o(t[S]);if("oid"==S)return new h(t[S]);if("enum"==S)return new a(t[S]);if("utf8str"==S)return new u(t[S]);if("numstr"==S)return new c(t[S]);if("prnstr"==S)return new f(t[S]);if("telstr"==S)return new l(t[S]);if("ia5str"==S)return new p(t[S]);if("utctime"==S)return new g(t[S]);if("gentime"==S)return new d(t[S]);if("seq"==S){for(var E=t[S],w=[],D=0;D<E.length;D++){var x=b(E[D]);w.push(x)}return new v({array:w})}if("set"==S){for(E=t[S],w=[],D=0;D<E.length;D++){x=b(E[D]);w.push(x)}return new m({array:w})}if("tag"==S){var R=t[S];if("[object Array]"===Object.prototype.toString.call(R)&&3==R.length){var B=b(R[2]);return new y({tag:R[0],explicit:R[1],obj:B})}var A={};if(void 0!==R.explicit&&(A.explicit=R.explicit),void 0!==R.tag&&(A.tag=R.tag),void 0===R.obj)throw"obj shall be specified for 'tag'.";return A.obj=b(R.obj),new y(A)}},this.jsonToASN1HEX=function(t){return this.newObject(t).getEncodedHex()}},et.asn1.ASN1Util.oidHexToInt=function(t){for(var e="",i=parseInt(t.substr(0,2),16),r=(e=Math.floor(i/40)+"."+i%40,""),n=2;n<t.length;n+=2){var s=("00000000"+parseInt(t.substr(n,2),16).toString(2)).slice(-8);if(r+=s.substr(1,7),"0"==s.substr(0,1))e=e+"."+new O(r,2).toString(10),r=""}return e},et.asn1.ASN1Util.oidIntToHex=function(t){var h=function(t){var e=t.toString(16);return 1==e.length&&(e="0"+e),e},e=function(t){var e="",i=new O(t,10).toString(2),r=7-i.length%7;7==r&&(r=0);for(var n="",s=0;s<r;s++)n+="0";i=n+i;for(s=0;s<i.length-1;s+=7){var o=i.substr(s,7);s!=i.length-7&&(o="1"+o),e+=h(parseInt(o,2))}return e};if(!t.match(/^[0-9.]+$/))throw"malformed oid string: "+t;var i="",r=t.split("."),n=40*parseInt(r[0])+parseInt(r[1]);i+=h(n),r.splice(0,2);for(var s=0;s<r.length;s++)i+=e(r[s]);return i},et.asn1.ASN1Object=function(){this.getLengthHexFromValue=function(){if(void 0===this.hV||null==this.hV)throw"this.hV is null or undefined.";if(this.hV.length%2==1)throw"value hex must be even length: n="+"".length+",v="+this.hV;var t=this.hV.length/2,e=t.toString(16);if(e.length%2==1&&(e="0"+e),t<128)return e;var i=e.length/2;if(15<i)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+i).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""}},et.asn1.DERAbstractString=function(t){et.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(this.s)},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},tt.lang.extend(et.asn1.DERAbstractString,et.asn1.ASN1Object),et.asn1.DERAbstractTime=function(t){et.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(t){return utc=t.getTime()+6e4*t.getTimezoneOffset(),new Date(utc)},this.formatDate=function(t,e,i){var r=this.zeroPadding,n=this.localDateToUTC(t),s=String(n.getFullYear());"utc"==e&&(s=s.substr(2,2));var o=s+r(String(n.getMonth()+1),2)+r(String(n.getDate()),2)+r(String(n.getHours()),2)+r(String(n.getMinutes()),2)+r(String(n.getSeconds()),2);if(!0===i){var h=n.getMilliseconds();if(0!=h){var a=r(String(h),3);o=o+"."+(a=a.replace(/[0]+$/,""))}}return o+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(t)},this.setByDateValue=function(t,e,i,r,n,s){var o=new Date(Date.UTC(t,e-1,i,r,n,s,0));this.setByDate(o)},this.getFreshValueHex=function(){return this.hV}},tt.lang.extend(et.asn1.DERAbstractTime,et.asn1.ASN1Object),et.asn1.DERAbstractStructured=function(t){et.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},tt.lang.extend(et.asn1.DERAbstractStructured,et.asn1.ASN1Object),et.asn1.DERBoolean=function(){et.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV="0101ff"},tt.lang.extend(et.asn1.DERBoolean,et.asn1.ASN1Object),et.asn1.DERInteger=function(t){et.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=et.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new O(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},tt.lang.extend(et.asn1.DERInteger,et.asn1.ASN1Object),et.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=et.asn1.ASN1Util.newObject(t.obj);t.hex="00"+e.getEncodedHex()}et.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7<t)throw"unused bits shall be from 0 to 7: u = "+t;var i="0"+t;this.hTLV=null,this.isModified=!0,this.hV=i+e},this.setByBinaryString=function(t){var e=8-(t=t.replace(/0+$/,"")).length%8;8==e&&(e=0);for(var i=0;i<=e;i++)t+="0";var r="";for(i=0;i<t.length-1;i+=8){var n=t.substr(i,8),s=parseInt(n,2).toString(16);1==s.length&&(s="0"+s),r+=s}this.hTLV=null,this.isModified=!0,this.hV="0"+e+r},this.setByBooleanArray=function(t){for(var e="",i=0;i<t.length;i++)1==t[i]?e+="1":e+="0";this.setByBinaryString(e)},this.newFalseArray=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=!1;return e},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t&&t.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(t):void 0!==t.hex?this.setHexValueIncludingUnusedBits(t.hex):void 0!==t.bin?this.setByBinaryString(t.bin):void 0!==t.array&&this.setByBooleanArray(t.array))},tt.lang.extend(et.asn1.DERBitString,et.asn1.ASN1Object),et.asn1.DEROctetString=function(t){if(void 0!==t&&void 0!==t.obj){var e=et.asn1.ASN1Util.newObject(t.obj);t.hex=e.getEncodedHex()}et.asn1.DEROctetString.superclass.constructor.call(this,t),this.hT="04"},tt.lang.extend(et.asn1.DEROctetString,et.asn1.DERAbstractString),et.asn1.DERNull=function(){et.asn1.DERNull.superclass.constructor.call(this),this.hT="05",this.hTLV="0500"},tt.lang.extend(et.asn1.DERNull,et.asn1.ASN1Object),et.asn1.DERObjectIdentifier=function(t){var h=function(t){var e=t.toString(16);return 1==e.length&&(e="0"+e),e},s=function(t){var e="",i=new O(t,10).toString(2),r=7-i.length%7;7==r&&(r=0);for(var n="",s=0;s<r;s++)n+="0";i=n+i;for(s=0;s<i.length-1;s+=7){var o=i.substr(s,7);s!=i.length-7&&(o="1"+o),e+=h(parseInt(o,2))}return e};et.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT="06",this.setValueHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueOidString=function(t){if(!t.match(/^[0-9.]+$/))throw"malformed oid string: "+t;var e="",i=t.split("."),r=40*parseInt(i[0])+parseInt(i[1]);e+=h(r),i.splice(0,2);for(var n=0;n<i.length;n++)e+=s(i[n]);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.setValueName=function(t){var e=et.asn1.x509.OID.name2oid(t);if(""===e)throw"DERObjectIdentifier oidName undefined: "+t;this.setValueOidString(e)},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?t.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(t):this.setValueName(t):void 0!==t.oid?this.setValueOidString(t.oid):void 0!==t.hex?this.setValueHex(t.hex):void 0!==t.name&&this.setValueName(t.name))},tt.lang.extend(et.asn1.DERObjectIdentifier,et.asn1.ASN1Object),et.asn1.DEREnumerated=function(t){et.asn1.DEREnumerated.superclass.constructor.call(this),this.hT="0a",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=et.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new O(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},tt.lang.extend(et.asn1.DEREnumerated,et.asn1.ASN1Object),et.asn1.DERUTF8String=function(t){et.asn1.DERUTF8String.superclass.constructor.call(this,t),this.hT="0c"},tt.lang.extend(et.asn1.DERUTF8String,et.asn1.DERAbstractString),et.asn1.DERNumericString=function(t){et.asn1.DERNumericString.superclass.constructor.call(this,t),this.hT="12"},tt.lang.extend(et.asn1.DERNumericString,et.asn1.DERAbstractString),et.asn1.DERPrintableString=function(t){et.asn1.DERPrintableString.superclass.constructor.call(this,t),this.hT="13"},tt.lang.extend(et.asn1.DERPrintableString,et.asn1.DERAbstractString),et.asn1.DERTeletexString=function(t){et.asn1.DERTeletexString.superclass.constructor.call(this,t),this.hT="14"},tt.lang.extend(et.asn1.DERTeletexString,et.asn1.DERAbstractString),et.asn1.DERIA5String=function(t){et.asn1.DERIA5String.superclass.constructor.call(this,t),this.hT="16"},tt.lang.extend(et.asn1.DERIA5String,et.asn1.DERAbstractString),et.asn1.DERUTCTime=function(t){et.asn1.DERUTCTime.superclass.constructor.call(this,t),this.hT="17",this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,"utc"),this.hV=stohex(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"utc"),this.hV=stohex(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):"string"==typeof t&&t.match(/^[0-9]{12}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date))},tt.lang.extend(et.asn1.DERUTCTime,et.asn1.DERAbstractTime),et.asn1.DERGeneralizedTime=function(t){et.asn1.DERGeneralizedTime.superclass.constructor.call(this,t),this.hT="18",this.withMillis=!1,this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):"string"==typeof t&&t.match(/^[0-9]{14}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date),!0===t.millis&&(this.withMillis=!0))},tt.lang.extend(et.asn1.DERGeneralizedTime,et.asn1.DERAbstractTime),et.asn1.DERSequence=function(t){et.asn1.DERSequence.superclass.constructor.call(this,t),this.hT="30",this.getFreshValueHex=function(){for(var t="",e=0;e<this.asn1Array.length;e++){t+=this.asn1Array[e].getEncodedHex()}return this.hV=t,this.hV}},tt.lang.extend(et.asn1.DERSequence,et.asn1.DERAbstractStructured),et.asn1.DERSet=function(t){et.asn1.DERSet.superclass.constructor.call(this,t),this.hT="31",this.sortFlag=!0,this.getFreshValueHex=function(){for(var t=new Array,e=0;e<this.asn1Array.length;e++){var i=this.asn1Array[e];t.push(i.getEncodedHex())}return 1==this.sortFlag&&t.sort(),this.hV=t.join(""),this.hV},void 0!==t&&void 0!==t.sortflag&&0==t.sortflag&&(this.sortFlag=!1)},tt.lang.extend(et.asn1.DERSet,et.asn1.DERAbstractStructured),et.asn1.DERTaggedObject=function(t){et.asn1.DERTaggedObject.superclass.constructor.call(this),this.hT="a0",this.hV="",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(t,e,i){this.hT=e,this.isExplicit=t,this.asn1Object=i,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=i.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,e),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.tag&&(this.hT=t.tag),void 0!==t.explicit&&(this.isExplicit=t.explicit),void 0!==t.obj&&(this.asn1Object=t.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))},tt.lang.extend(et.asn1.DERTaggedObject,et.asn1.ASN1Object);var it=function(i){function r(t){var e=i.call(this)||this;return t&&("string"==typeof t?e.parseKey(t):(r.hasPrivateKeyProperty(t)||r.hasPublicKeyProperty(t))&&e.parsePropertiesFrom(t)),e}return function(t,e){function i(){this.constructor=t}p(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}(r,i),r.prototype.parseKey=function(t){try{var e=0,i=0,r=/^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/.test(t)?d(t):v.unarmor(t),n=x.decode(r);if(3===n.sub.length&&(n=n.sub[2].sub[0]),9===n.sub.length){e=n.sub[1].getHexStringValue(),this.n=q(e,16),i=n.sub[2].getHexStringValue(),this.e=parseInt(i,16);var s=n.sub[3].getHexStringValue();this.d=q(s,16);var o=n.sub[4].getHexStringValue();this.p=q(o,16);var h=n.sub[5].getHexStringValue();this.q=q(h,16);var a=n.sub[6].getHexStringValue();this.dmp1=q(a,16);var u=n.sub[7].getHexStringValue();this.dmq1=q(u,16);var c=n.sub[8].getHexStringValue();this.coeff=q(c,16)}else{if(2!==n.sub.length)return!1;var f=n.sub[1].sub[0];e=f.sub[0].getHexStringValue(),this.n=q(e,16),i=f.sub[1].getHexStringValue(),this.e=parseInt(i,16)}return!0}catch(t){return!1}},r.prototype.getPrivateBaseKey=function(){var t={array:[new et.asn1.DERInteger({int:0}),new et.asn1.DERInteger({bigint:this.n}),new et.asn1.DERInteger({int:this.e}),new et.asn1.DERInteger({bigint:this.d}),new et.asn1.DERInteger({bigint:this.p}),new et.asn1.DERInteger({bigint:this.q}),new et.asn1.DERInteger({bigint:this.dmp1}),new et.asn1.DERInteger({bigint:this.dmq1}),new et.asn1.DERInteger({bigint:this.coeff})]};return new et.asn1.DERSequence(t).getEncodedHex()},r.prototype.getPrivateBaseKeyB64=function(){return c(this.getPrivateBaseKey())},r.prototype.getPublicBaseKey=function(){var t=new et.asn1.DERSequence({array:[new et.asn1.DERObjectIdentifier({oid:"1.2.840.113549.1.1.1"}),new et.asn1.DERNull]}),e=new et.asn1.DERSequence({array:[new et.asn1.DERInteger({bigint:this.n}),new et.asn1.DERInteger({int:this.e})]}),i=new et.asn1.DERBitString({hex:"00"+e.getEncodedHex()});return new et.asn1.DERSequence({array:[t,i]}).getEncodedHex()},r.prototype.getPublicBaseKeyB64=function(){return c(this.getPublicBaseKey())},r.wordwrap=function(t,e){if(!t)return t;var i="(.{1,"+(e=e||64)+"})( +|$\n?)|(.{1,"+e+"})";return t.match(RegExp(i,"g")).join("\n")},r.prototype.getPrivateKey=function(){var t="-----BEGIN RSA PRIVATE KEY-----\n";return t+=r.wordwrap(this.getPrivateBaseKeyB64())+"\n",t+="-----END RSA PRIVATE KEY-----"},r.prototype.getPublicKey=function(){var t="-----BEGIN PUBLIC KEY-----\n";return t+=r.wordwrap(this.getPublicBaseKeyB64())+"\n",t+="-----END PUBLIC KEY-----"},r.hasPublicKeyProperty=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")},r.hasPrivateKeyProperty=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")&&t.hasOwnProperty("d")&&t.hasOwnProperty("p")&&t.hasOwnProperty("q")&&t.hasOwnProperty("dmp1")&&t.hasOwnProperty("dmq1")&&t.hasOwnProperty("coeff")},r.prototype.parsePropertiesFrom=function(t){this.n=t.n,this.e=t.e,t.hasOwnProperty("d")&&(this.d=t.d,this.p=t.p,this.q=t.q,this.dmp1=t.dmp1,this.dmq1=t.dmq1,this.coeff=t.coeff)},r}(Q),rt=function(){function t(t){t=t||{},this.default_key_size=parseInt(t.default_key_size,10)||1024,this.default_public_exponent=t.default_public_exponent||"010001",this.log=t.log||!1,this.key=null}return t.prototype.setKey=function(t){this.log&&this.key&&console.warn("A key was already set, overriding existing."),this.key=new it(t)},t.prototype.setPrivateKey=function(t){this.setKey(t)},t.prototype.setPublicKey=function(t){this.setKey(t)},t.prototype.decrypt=function(t){try{return this.getKey().decrypt(f(t))}catch(t){return!1}},t.prototype.encrypt=function(t){try{return c(this.getKey().encrypt(t))}catch(t){return!1}},t.prototype.sign=function(t,e,i){try{return c(this.getKey().sign(t,e,i))}catch(t){return!1}},t.prototype.verify=function(t,e,i){try{return this.getKey().verify(t,f(e),i)}catch(t){return!1}},t.prototype.getKey=function(t){if(!this.key){if(this.key=new it,t&&"[object Function]"==={}.toString.call(t))return void this.key.generateAsync(this.default_key_size,this.default_public_exponent,t);this.key.generate(this.default_key_size,this.default_public_exponent)}return this.key},t.prototype.getPrivateKey=function(){return this.getKey().getPrivateKey()},t.prototype.getPrivateKeyB64=function(){return this.getKey().getPrivateBaseKeyB64()},t.prototype.getPublicKey=function(){return this.getKey().getPublicKey()},t.prototype.getPublicKeyB64=function(){return this.getKey().getPublicBaseKeyB64()},t.version="3.0.0-rc.1",t}();t.JSEncrypt=rt,t.default=rt,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
utils/func.js
0 → 100644
1 | // 不命中统一返回 | ||
2 | const NOT_MATCH_OBJ = { | ||
3 | beautyNum: "", | ||
4 | index: -1, | ||
5 | len: 0 | ||
6 | } | ||
7 | |||
8 | // 验证AABB | ||
9 | export function checkBeautyNumberAAA(phone) { | ||
10 | var reg = new RegExp('(.)\\1{2}', "g"); | ||
11 | if (phone.match(reg) != null) { | ||
12 | var result = phone.match(reg)[0].toString(); | ||
13 | return { | ||
14 | beautyNum: result, | ||
15 | index: phone.indexOf(result), | ||
16 | len: result.length, | ||
17 | type: "AAA+", | ||
18 | } | ||
19 | } | ||
20 | return NOT_MATCH_OBJ | ||
21 | } | ||
22 | |||
23 | // 验证AABB | ||
24 | export function checkBeautyNumberAABB(phone) { | ||
25 | var reg = new RegExp("(\\d)\\1((?!\\1)\\d)\\2", "g"); | ||
26 | if (phone.match(reg) != null) { | ||
27 | var result = phone.match(reg)[0].toString(); | ||
28 | return { | ||
29 | beautyNum: result, | ||
30 | index: phone.indexOf(result), | ||
31 | len: result.length, | ||
32 | type: "AABB+", | ||
33 | } | ||
34 | } | ||
35 | return NOT_MATCH_OBJ | ||
36 | } | ||
37 | |||
38 | // 验证ABAB | ||
39 | export function checkBeautyNumberABAB(phone) { | ||
40 | var reg = new RegExp("(\\d)((?!\\1)\\d)\\1\\2", "g"); | ||
41 | if (phone.match(reg) != null) { | ||
42 | var result = phone.match(reg)[0].toString(); | ||
43 | return { | ||
44 | beautyNum: result, | ||
45 | index: phone.indexOf(result), | ||
46 | len: result.length, | ||
47 | type: "ABAB+" | ||
48 | } | ||
49 | } | ||
50 | return NOT_MATCH_OBJ | ||
51 | } | ||
52 | |||
53 | |||
54 | // 验证AABB | ||
55 | export function checkBeautyNumberABBA(phone) { | ||
56 | var reg = new RegExp("(\\d)((?!\\1)\\d)\\2[\\d]", "g"); | ||
57 | if (phone.match(reg) != null) { | ||
58 | var result = phone.match(reg)[0].toString(); | ||
59 | if (result.substring(0, 1) == result.substring(3, 4)) { | ||
60 | return { | ||
61 | beautyNum: result, | ||
62 | index: phone.indexOf(result), | ||
63 | len: result.length, | ||
64 | type: "ABBA" | ||
65 | } | ||
66 | } | ||
67 | } | ||
68 | return NOT_MATCH_OBJ | ||
69 | } | ||
70 | |||
71 | |||
72 | // 验证ABCAB | ||
73 | export function checkBeautyNumberABCAB(phone) { | ||
74 | var reg = new RegExp("(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\\d{3}", "g"); | ||
75 | if (phone.match(reg) != null) { | ||
76 | var result = phone.match(reg)[0].toString(); | ||
77 | if (result.substring(0, 2) == result.substring(3, 5)) { | ||
78 | return { | ||
79 | beautyNum: result, | ||
80 | index: phone.indexOf(result), | ||
81 | len: result.length, | ||
82 | type: "ABCAB" | ||
83 | } | ||
84 | } | ||
85 | } | ||
86 | return NOT_MATCH_OBJ | ||
87 | } | ||
88 | |||
89 | |||
90 | |||
91 | // 验证ABCD | ||
92 | export function checkBeautyNumberABCD(phone) { | ||
93 | var reg = new RegExp("(?:0123|1234|2345|3456|4567|5678|6789|7890|0987|9876|8765|7654|6543|5432|4321|3210)\\d", "g"); | ||
94 | if (phone.match(reg) != null) { | ||
95 | var result = phone.match(reg)[0].toString() | ||
96 | result = result.substring(0, 4); | ||
97 | return { | ||
98 | beautyNum: result, | ||
99 | index: phone.indexOf(result), | ||
100 | len: result.length, | ||
101 | type: "ABCD" | ||
102 | } | ||
103 | } | ||
104 | return NOT_MATCH_OBJ | ||
105 | } | ||
106 | |||
107 | |||
108 | // // 最后一位是6/8/9 | ||
109 | export function checkBeautyNumberLast(phone) { | ||
110 | const reg = new RegExp("\\d+[689]$"); | ||
111 | if (phone.match(reg) != null) { | ||
112 | return { | ||
113 | beautyNum: phone.slice(-1), | ||
114 | index: phone.length - 1, | ||
115 | len: 1, | ||
116 | type: "LAST689" | ||
117 | } | ||
118 | } | ||
119 | return NOT_MATCH_OBJ | ||
120 | } | ||
121 | |||
122 | // 获取吉祥口号 | ||
123 | export function getFeatureName(mobile) { | ||
124 | let featureName = { | ||
125 | 0: "寓意圆满", | ||
126 | 1: "大吉大利", | ||
127 | 2: "成双成对", | ||
128 | 3: "三生万物", | ||
129 | 4: "四季来财", | ||
130 | 5: "五福临门", | ||
131 | 6: "六六大顺", | ||
132 | 7: "升职加薪", | ||
133 | 8: "发财旺运", | ||
134 | 9: "富贵长久" | ||
135 | } | ||
136 | let num = mobile.slice(-1); | ||
137 | let result = featureName[num + '']; | ||
138 | return result; | ||
139 | } | ||
140 | |||
141 | export function sortByLength(array) { | ||
142 | array.sort((a, b) => a.beautyList.length > 0 ? -1 : 1); | ||
143 | } | ||
144 | |||
145 | // 支付宝省市区结构 | ||
146 | export function addressToTree(address) { | ||
147 | let districtssheng = address.province_list; | ||
148 | let districtsShi = address.city_list; | ||
149 | let districtsQu = address.county_list; | ||
150 | let newArrSheng = []; | ||
151 | for (var i in districtssheng) { | ||
152 | // 第一层循环遍历出省份 | ||
153 | let districtsShengObj = {} | ||
154 | districtsShengObj.id = i | ||
155 | districtsShengObj.name = districtssheng[i] | ||
156 | let newArrShi = [] | ||
157 | for (var s in districtsShi) { | ||
158 | //第二层循环出市 | ||
159 | if (i.substring(0, 2) === s.substring(0, 2)) { | ||
160 | // 以城市编码的前两位作为匹配项 | ||
161 | let shiobj = {}; | ||
162 | shiobj.id = s | ||
163 | shiobj.name = districtsShi[s] | ||
164 | let newArrQU = [] | ||
165 | for (var q in districtsQu) { | ||
166 | //第三层循环遍历出区 | ||
167 | if (s.substring(0, 4) == q.substring(0, 4)) { | ||
168 | //市与区以编码的前四位作为匹配 | ||
169 | let quobj = {}; | ||
170 | quobj.id = q | ||
171 | quobj.name = districtsQu[q] | ||
172 | newArrQU.push(quobj); | ||
173 | shiobj.subList = newArrQU; | ||
174 | } | ||
175 | } | ||
176 | newArrShi.push(shiobj); | ||
177 | districtsShengObj.subList = newArrShi; | ||
178 | //添加到所需的对象里 | ||
179 | } | ||
180 | } | ||
181 | newArrSheng.push(districtsShengObj) // 最后添加到数组里 | ||
182 | } | ||
183 | return newArrSheng; | ||
184 | } |
utils/stroage.js
0 → 100644
1 | function setItem(key, value, module_name) { | ||
2 | // console.log(key,value) | ||
3 | my.setStorageSync({ | ||
4 | key: key, | ||
5 | data: value | ||
6 | }); | ||
7 | |||
8 | // if (module_name) { | ||
9 | // let module_name_info = getItem(module_name) || {}; | ||
10 | // module_name_info[key] = value; | ||
11 | // try { | ||
12 | // my.setStorageSync(module_name, module_name_info); | ||
13 | // } catch (e) { | ||
14 | // my.setStorage({ | ||
15 | // key: module_name, | ||
16 | // data: module_name_info | ||
17 | // }) | ||
18 | // } | ||
19 | // } else { | ||
20 | // try { | ||
21 | // my.setStorageSync(key, value); | ||
22 | // } catch (e) { | ||
23 | // my.setStorage({ | ||
24 | // key: key, | ||
25 | // data: value | ||
26 | // }) | ||
27 | // } | ||
28 | // } | ||
29 | } | ||
30 | |||
31 | function getItem(key, module_name) { | ||
32 | // if (module_name) { | ||
33 | // let val = getItem(module_name); | ||
34 | // if (val) return val[key]; | ||
35 | // return ''; | ||
36 | // } | ||
37 | // return my.getStorageSync(key).data | ||
38 | return my.getStorageSync({ | ||
39 | key: key | ||
40 | }).data; | ||
41 | } | ||
42 | |||
43 | function clear(name) { | ||
44 | name ? my.removeStorageSync(name) : my.clearStorageSync() | ||
45 | } | ||
46 | |||
47 | module.exports = { | ||
48 | setItem, | ||
49 | getItem, | ||
50 | clear | ||
51 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
utils/util.js
0 → 100644
1 | // 正则 | ||
2 | const REGEXPS = { | ||
3 | "mobile": /^1\d{10}$/, | ||
4 | //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 | ||
5 | "identNo": /(^\d{15}$)|(^\d{17}([0-9]|X)$)/, | ||
6 | } | ||
7 | // 验证手机 | ||
8 | function checkMobile(str) { | ||
9 | return REGEXPS.mobile.test(str); | ||
10 | } | ||
11 | |||
12 | // 验证身份证 | ||
13 | function checkIdentNo(num) { | ||
14 | num = num.toUpperCase(); | ||
15 | return REGEXPS.identNo.test(num); | ||
16 | } | ||
17 | |||
18 | // 数组打乱顺序 | ||
19 | function randomSort(a, b) { | ||
20 | return Math.random() > 0.5 ? -1 : 1; | ||
21 | } | ||
22 | |||
23 | function shuffleArray(array) { | ||
24 | for (let i = array.length - 1; i > 0; i--) { | ||
25 | const j = Math.floor(Math.random() * (i + 1)); | ||
26 | [array[i], array[j]] = [array[j], array[i]]; | ||
27 | } | ||
28 | return array; | ||
29 | } | ||
30 | |||
31 | |||
32 | //普通生成uuid | ||
33 | function uuid() { | ||
34 | var s = []; | ||
35 | var hexDigits = "0123456789abcdef"; | ||
36 | for (var i = 0; i < 36; i++) { | ||
37 | s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); | ||
38 | } | ||
39 | s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010 | ||
40 | s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01 | ||
41 | s[8] = s[13] = s[18] = s[23] = "-"; | ||
42 | |||
43 | var uuid = s.join(""); | ||
44 | return uuid; | ||
45 | } | ||
46 | |||
47 | // 数组去重 | ||
48 | function uniqueArray(arr) { | ||
49 | return arr.reduce((result, item) => { | ||
50 | const duplicate = result.find(obj => JSON.stringify(obj) === JSON.stringify(item)); | ||
51 | if (!duplicate) { | ||
52 | result.push(item); | ||
53 | } | ||
54 | return result; | ||
55 | }, []); | ||
56 | } | ||
57 | |||
58 | // 模拟分页 | ||
59 | function paginateArray(arr, page, size = 10) { | ||
60 | const startIndex = (page - 1) * size; | ||
61 | const endIndex = startIndex + size; | ||
62 | const currentPageList = arr.slice(startIndex, endIndex); | ||
63 | const totalPages = Math.ceil(arr.length / size); | ||
64 | |||
65 | return { | ||
66 | list: currentPageList, | ||
67 | totalPages | ||
68 | }; | ||
69 | } | ||
70 | |||
71 | /** | ||
72 | * 链接参数转换为obj | ||
73 | * 入参 完整链接 | ||
74 | * @param {*} url | ||
75 | */ | ||
76 | function param2Obj(url) { | ||
77 | const search = url.split('?')[1] | ||
78 | if (!search) { | ||
79 | return {} | ||
80 | } | ||
81 | return JSON.parse( | ||
82 | '{"' + | ||
83 | decodeURIComponent(search) | ||
84 | .replace(/"/g, '\\"') | ||
85 | .replace(/&/g, '","') | ||
86 | .replace(/=/g, '":"') + | ||
87 | '"}' | ||
88 | ) | ||
89 | } | ||
90 | |||
91 | |||
92 | /** | ||
93 | * 分转元 | ||
94 | * @param {*} fen | ||
95 | * @returns | ||
96 | */ | ||
97 | export const regFenToYuan = (fen) => { | ||
98 | var num = fen; | ||
99 | num = fen * 0.01; | ||
100 | num += ''; | ||
101 | var reg = num.indexOf('.') > -1 ? /(\d{1,3})(?=(?:\d{3})+\.)/g : /(\d{1,3})(?=(?:\d{3})+$)/g; | ||
102 | num = num.replace(reg, '$1'); | ||
103 | num = toDecimal2(num) | ||
104 | return num | ||
105 | }; | ||
106 | |||
107 | /** | ||
108 | * 元转分 | ||
109 | * @param {*} yuan | ||
110 | * @param {*} digit | ||
111 | * @returns | ||
112 | */ | ||
113 | export const regYuanToFen = (yuan, digit = 100) => { | ||
114 | var m = 0, | ||
115 | s1 = yuan.toString(), | ||
116 | s2 = digit.toString(); | ||
117 | try { | ||
118 | m += s1.split(".")[1].length | ||
119 | } catch (e) {} | ||
120 | try { | ||
121 | m += s2.split(".")[1].length | ||
122 | } catch (e) {} | ||
123 | return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) | ||
124 | } | ||
125 | |||
126 | /** | ||
127 | * 强制保留2位小数,如:2,会在2后面补上00.即2.00 | ||
128 | * @param {*} x | ||
129 | * @returns | ||
130 | */ | ||
131 | export const toDecimal2 = (x) => { | ||
132 | var f = parseFloat(x); | ||
133 | if (isNaN(f)) { | ||
134 | return false; | ||
135 | } | ||
136 | var f = Math.round(x * 100) / 100; | ||
137 | var s = f.toString(); | ||
138 | var rs = s.indexOf('.'); | ||
139 | if (rs < 0) { | ||
140 | rs = s.length; | ||
141 | s += '.'; | ||
142 | } | ||
143 | while (s.length <= rs + 2) { | ||
144 | s += '0'; | ||
145 | } | ||
146 | return s; | ||
147 | } | ||
148 | |||
149 | /** | ||
150 | * 格式化数字,不足一位补充0 | ||
151 | * @param {*} n | ||
152 | */ | ||
153 | function formatNumber(n) { | ||
154 | n = n.toString() | ||
155 | return n[1] ? n : '0' + n | ||
156 | } | ||
157 | |||
158 | /** | ||
159 | * 获取屏幕剩余高度 | ||
160 | * useHeight 单位是rpx | ||
161 | * 默认返回单位是rpx 可通过unit参数改为 px | ||
162 | */ | ||
163 | function getLastScreenHeight(useHeight = 0, unit = 'rpx') { | ||
164 | let sysInfo = my.getSystemInfoSync(); | ||
165 | let clientHeight = sysInfo.windowHeight; | ||
166 | // 获取可使用窗口高度 | ||
167 | let clientWidth = sysInfo.windowWidth; | ||
168 | // 算出比例 | ||
169 | let ratio = 750 / clientWidth; | ||
170 | // 算出屏幕高度(单位rpx) | ||
171 | let height = clientHeight * ratio; | ||
172 | // 计算剩余高度 | ||
173 | let lastHeight = height - useHeight; | ||
174 | // 可转换成px | ||
175 | if (unit == 'px') { | ||
176 | lastHeight = lastHeight / 750 * clientWidth | ||
177 | } | ||
178 | return lastHeight; | ||
179 | } | ||
180 | |||
181 | |||
182 | /** | ||
183 | * px转rpx | ||
184 | * @param {*} value | ||
185 | */ | ||
186 | function pxToRpx(value) { | ||
187 | let sysInfo = my.getSystemInfoSync(); | ||
188 | let clientWidth = sysInfo.windowWidth; | ||
189 | let result = value / 750 * clientWidth | ||
190 | return result; | ||
191 | } | ||
192 | |||
193 | |||
194 | // 格式化星期几 | ||
195 | function formatWeek(week) { | ||
196 | let result = ""; | ||
197 | switch (week) { | ||
198 | case 1: | ||
199 | result = "一"; | ||
200 | break; | ||
201 | case 2: | ||
202 | result = "二"; | ||
203 | break; | ||
204 | case 3: | ||
205 | result = "三"; | ||
206 | break; | ||
207 | case 4: | ||
208 | result = "四"; | ||
209 | break; | ||
210 | case 5: | ||
211 | result = "五"; | ||
212 | break; | ||
213 | case 6: | ||
214 | result = "六"; | ||
215 | break; | ||
216 | case 0: | ||
217 | result = "日"; | ||
218 | break; | ||
219 | |||
220 | default: | ||
221 | break; | ||
222 | } | ||
223 | return result; | ||
224 | } | ||
225 | |||
226 | /** | ||
227 | * 格式化日期时间 支持Date和时间戳 | ||
228 | * @param {date} date 日期时间 | ||
229 | * @param {string} fmt 格式,如:'yyyy-MM-dd hh:mm:ss' | ||
230 | */ | ||
231 | function formatDate(date, fmt) { | ||
232 | if (!date) return '-' | ||
233 | // 把-换成/ 避免iOS和安卓真机问题 | ||
234 | |||
235 | if (isNaN(date)) { | ||
236 | var reg = /-/g; | ||
237 | date = date && date.replace(reg, '/'); | ||
238 | } | ||
239 | |||
240 | date = new Date(date) | ||
241 | const o = { | ||
242 | 'M+': date.getMonth() + 1, // 月份 | ||
243 | 'd+': date.getDate(), // 日 | ||
244 | 'h+': date.getHours(), // 小时 | ||
245 | 'm+': date.getMinutes(), // 分 | ||
246 | 's+': date.getSeconds(), // 秒 | ||
247 | 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度 | ||
248 | S: date.getMilliseconds() // 毫秒 | ||
249 | } | ||
250 | if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) | ||
251 | for (const k in o) { | ||
252 | if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) | ||
253 | } | ||
254 | return fmt | ||
255 | } | ||
256 | |||
257 | |||
258 | |||
259 | /** | ||
260 | * 获取点击传值 | ||
261 | * @param {*} evt | ||
262 | * @param {*} key | ||
263 | */ | ||
264 | function getBindtapData(evt, key = "data") { | ||
265 | let keyStr = key || "data"; | ||
266 | return evt.currentTarget.dataset[keyStr]; | ||
267 | } | ||
268 | |||
269 | /** | ||
270 | * 从数组中获取 key未value的对象 | ||
271 | * @param {*} value | ||
272 | * @param {*} key | ||
273 | * @param {*} list | ||
274 | */ | ||
275 | function getObjByListKeyValue(value, key, list) { | ||
276 | let result = null; | ||
277 | list.forEach(element => { | ||
278 | if (element[key + ""] == value) { | ||
279 | result = element; | ||
280 | } | ||
281 | }); | ||
282 | return result; | ||
283 | } | ||
284 | |||
285 | /** | ||
286 | * 获取小程序码 | ||
287 | * path = "/pages/index/index?pa=1" | ||
288 | * @param {*} path | ||
289 | */ | ||
290 | function wxacodeGet(path) { | ||
291 | return " https://api.k.wxpai.cn/bizproxy/mzcfsapi/qrcode/create?path=" + encodeURIComponent(path); | ||
292 | } | ||
293 | |||
294 | /** | ||
295 | * 根据url获取参数 | ||
296 | * @param {*} name | ||
297 | */ | ||
298 | function getQueryByUrl(name, url) { | ||
299 | return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(url) || [, ""])[1].replace(/\+/g, '%20')) || null; | ||
300 | } | ||
301 | |||
302 | |||
303 | /** | ||
304 | * 添加base前缀(my.arrayBufferToBase64方法不提供前缀) | ||
305 | */ | ||
306 | function addBase64Prefix(base64) { | ||
307 | return "data:image/PNG;base64," + base64; | ||
308 | } | ||
309 | |||
310 | |||
311 | /** | ||
312 | * @desc 函数防抖 | ||
313 | * @param func 函数 | ||
314 | * @param wait 延迟执行毫秒数 | ||
315 | * @param immediate true 表立即执行,false 表非立即执行 | ||
316 | */ | ||
317 | let debounceTimeout; | ||
318 | |||
319 | function debounce(func, wait, immediate) { | ||
320 | return function () { | ||
321 | let context = this; | ||
322 | let args = arguments; | ||
323 | |||
324 | if (debounceTimeout) clearTimeout(debounceTimeout); | ||
325 | if (immediate) { | ||
326 | var callNow = !debounceTimeout; | ||
327 | debounceTimeout = setTimeout(() => { | ||
328 | debounceTimeout = null; | ||
329 | }, wait) | ||
330 | if (callNow) func.apply(context, args) | ||
331 | } else { | ||
332 | debounceTimeout = setTimeout(function () { | ||
333 | func.apply(context, args) | ||
334 | }, wait); | ||
335 | } | ||
336 | }(); | ||
337 | } | ||
338 | |||
339 | /** | ||
340 | * @desc 函数节流 | ||
341 | * @param func 函数 | ||
342 | * @param wait 延迟执行毫秒数 | ||
343 | * @param type 1 表时间戳版,2 表定时器版 | ||
344 | * 时间戳版的函数触发是在时间段内开始的时候,而定时器版的函数触发是在时间段内结束的时候。 | ||
345 | */ | ||
346 | let throttleTimeout; | ||
347 | let throttlePrevious; | ||
348 | |||
349 | function throttle(func, wait, type) { | ||
350 | if (type === 1) { | ||
351 | throttlePrevious = 0; | ||
352 | } else if (type === 2) { | ||
353 | throttleTimeout = 0; | ||
354 | } | ||
355 | return function () { | ||
356 | let context = this; | ||
357 | let args = arguments; | ||
358 | if (type === 1) { | ||
359 | let now = Date.now(); | ||
360 | |||
361 | if (now - throttlePrevious > wait) { | ||
362 | func.apply(context, args); | ||
363 | throttlePrevious = now; | ||
364 | } | ||
365 | } else if (type === 2) { | ||
366 | if (!throttleTimeout) { | ||
367 | throttleTimeout = setTimeout(() => { | ||
368 | throttleTimeout = null; | ||
369 | func.apply(context, args) | ||
370 | }, wait) | ||
371 | } | ||
372 | } | ||
373 | }(); | ||
374 | } | ||
375 | |||
376 | |||
377 | module.exports = { | ||
378 | shuffleArray: shuffleArray, | ||
379 | randomSort: randomSort, | ||
380 | uuid: uuid, | ||
381 | uniqueArray: uniqueArray, | ||
382 | paginateArray: paginateArray, | ||
383 | formatDate: formatDate, | ||
384 | formatNumber: formatNumber, | ||
385 | checkMobile: checkMobile, | ||
386 | checkIdentNo: checkIdentNo, | ||
387 | getLastScreenHeight: getLastScreenHeight, | ||
388 | debounce: debounce, | ||
389 | throttle: throttle, | ||
390 | param2Obj: param2Obj, | ||
391 | pxToRpx: pxToRpx, | ||
392 | formatWeek: formatWeek, | ||
393 | getBindtapData: getBindtapData, | ||
394 | wxacodeGet: wxacodeGet, | ||
395 | getObjByListKeyValue: getObjByListKeyValue, | ||
396 | getQueryByUrl: getQueryByUrl, | ||
397 | regFenToYuan: regFenToYuan, | ||
398 | regYuanToFen: regYuanToFen, | ||
399 | toDecimal2: toDecimal2, | ||
400 | addBase64Prefix: addBase64Prefix, | ||
401 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or sign in to post a comment