@coti-io/coti-contracts 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +3 -115
- package/contracts/mocks/README.md +1 -1
- package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +105 -280
- package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +83 -187
- package/contracts/mocks/utils/mpc/{Comparison1Tests.Contract.sol → Comparison1TestsContract.sol} +67 -115
- package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +68 -116
- package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +69 -164
- package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +70 -52
- package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +270 -0
- package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +102 -0
- package/contracts/mocks/utils/mpc/README.md +12 -12
- package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +54 -211
- package/contracts/mocks/utils/mpc/TransferTestsContract.sol +162 -640
- package/contracts/onboard/AccountOnboard.sol +3 -3
- package/contracts/utils/mpc/MpcCore.sol +2835 -988
- package/contracts/utils/mpc/MpcInterface.sol +6 -4
- package/hardhat.config.ts +8 -5
- package/package.json +2 -2
- package/test/utils/accounts.ts +1 -1
- package/test/utils/mpc/Precompile.test.ts +26 -37
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.ts +30 -10
- package/typechain-types/contracts/mocks/utils/mpc/BitwiseTestsContract.ts +39 -5
- package/typechain-types/contracts/mocks/utils/mpc/Comparison1TestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison2TestsContract.ts +39 -5
- package/typechain-types/contracts/mocks/utils/mpc/MinMaxTestsContract.ts +25 -5
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.ts +62 -0
- package/typechain-types/contracts/mocks/utils/mpc/MiscellaneousTestsContract.ts +396 -0
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.ts +221 -0
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract.ts +11 -8
- package/typechain-types/contracts/mocks/utils/mpc/TransferScalarTestsContract.ts +15 -15
- package/typechain-types/contracts/mocks/utils/mpc/TransferTestsContract.ts +15 -15
- package/typechain-types/contracts/mocks/utils/mpc/index.ts +3 -6
- package/typechain-types/contracts/onboard/AccountOnboard.ts +9 -4
- package/typechain-types/contracts/utils/mpc/MpcCore.ts +84 -0
- package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +81 -40
- package/typechain-types/contracts/utils/mpc/index.ts +1 -0
- package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract__factory.ts +387 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract__factory.ts +388 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +20 -7
- package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +28 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +387 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +28 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +15 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +66 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +424 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +289 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract__factory.ts +19 -3
- package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +4 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +4 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +3 -4
- package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +8 -2
- package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +77 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +124 -61
- package/typechain-types/factories/contracts/utils/mpc/index.ts +1 -0
- package/typechain-types/hardhat.d.ts +26 -26
- package/typechain-types/index.ts +8 -8
- package/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.sol +0 -448
- package/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol +0 -81
- package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +0 -311
package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts
ADDED
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import {
|
|
5
|
+
Contract,
|
|
6
|
+
ContractFactory,
|
|
7
|
+
ContractTransactionResponse,
|
|
8
|
+
Interface,
|
|
9
|
+
} from "ethers";
|
|
10
|
+
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
|
|
11
|
+
import type { NonPayableOverrides } from "../../../../../common";
|
|
12
|
+
import type {
|
|
13
|
+
Comparison1TestsContract,
|
|
14
|
+
Comparison1TestsContractInterface,
|
|
15
|
+
} from "../../../../../contracts/mocks/utils/mpc/Comparison1TestsContract";
|
|
16
|
+
|
|
17
|
+
const _abi = [
|
|
18
|
+
{
|
|
19
|
+
inputs: [
|
|
20
|
+
{
|
|
21
|
+
components: [
|
|
22
|
+
{
|
|
23
|
+
internalType: "gtBool",
|
|
24
|
+
name: "res16_16",
|
|
25
|
+
type: "uint256",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
internalType: "gtBool",
|
|
29
|
+
name: "res8_16",
|
|
30
|
+
type: "uint256",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
internalType: "gtBool",
|
|
34
|
+
name: "res16_8",
|
|
35
|
+
type: "uint256",
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
internalType: "struct Comparison1TestsContract.Check16",
|
|
39
|
+
name: "check16",
|
|
40
|
+
type: "tuple",
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
name: "decryptAndCompareResults16",
|
|
44
|
+
outputs: [
|
|
45
|
+
{
|
|
46
|
+
internalType: "bool",
|
|
47
|
+
name: "",
|
|
48
|
+
type: "bool",
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
stateMutability: "nonpayable",
|
|
52
|
+
type: "function",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
inputs: [
|
|
56
|
+
{
|
|
57
|
+
components: [
|
|
58
|
+
{
|
|
59
|
+
internalType: "gtBool",
|
|
60
|
+
name: "res32_32",
|
|
61
|
+
type: "uint256",
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
internalType: "gtBool",
|
|
65
|
+
name: "res8_32",
|
|
66
|
+
type: "uint256",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
internalType: "gtBool",
|
|
70
|
+
name: "res32_8",
|
|
71
|
+
type: "uint256",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
internalType: "gtBool",
|
|
75
|
+
name: "res16_32",
|
|
76
|
+
type: "uint256",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
internalType: "gtBool",
|
|
80
|
+
name: "res32_16",
|
|
81
|
+
type: "uint256",
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
internalType: "struct Comparison1TestsContract.Check32",
|
|
85
|
+
name: "check32",
|
|
86
|
+
type: "tuple",
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
name: "decryptAndCompareResults32",
|
|
90
|
+
outputs: [
|
|
91
|
+
{
|
|
92
|
+
internalType: "bool",
|
|
93
|
+
name: "",
|
|
94
|
+
type: "bool",
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
stateMutability: "nonpayable",
|
|
98
|
+
type: "function",
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
inputs: [
|
|
102
|
+
{
|
|
103
|
+
components: [
|
|
104
|
+
{
|
|
105
|
+
internalType: "gtBool",
|
|
106
|
+
name: "res64_64",
|
|
107
|
+
type: "uint256",
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
internalType: "gtBool",
|
|
111
|
+
name: "res8_64",
|
|
112
|
+
type: "uint256",
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
internalType: "gtBool",
|
|
116
|
+
name: "res64_8",
|
|
117
|
+
type: "uint256",
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
internalType: "gtBool",
|
|
121
|
+
name: "res16_64",
|
|
122
|
+
type: "uint256",
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
internalType: "gtBool",
|
|
126
|
+
name: "res64_16",
|
|
127
|
+
type: "uint256",
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
internalType: "gtBool",
|
|
131
|
+
name: "res32_64",
|
|
132
|
+
type: "uint256",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
internalType: "gtBool",
|
|
136
|
+
name: "res64_32",
|
|
137
|
+
type: "uint256",
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
internalType: "struct Comparison1TestsContract.Check64",
|
|
141
|
+
name: "check64",
|
|
142
|
+
type: "tuple",
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
name: "decryptAndCompareResults64",
|
|
146
|
+
outputs: [
|
|
147
|
+
{
|
|
148
|
+
internalType: "bool",
|
|
149
|
+
name: "",
|
|
150
|
+
type: "bool",
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
stateMutability: "nonpayable",
|
|
154
|
+
type: "function",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
inputs: [],
|
|
158
|
+
name: "getGtResult",
|
|
159
|
+
outputs: [
|
|
160
|
+
{
|
|
161
|
+
internalType: "bool",
|
|
162
|
+
name: "",
|
|
163
|
+
type: "bool",
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
stateMutability: "view",
|
|
167
|
+
type: "function",
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
inputs: [],
|
|
171
|
+
name: "getLeResult",
|
|
172
|
+
outputs: [
|
|
173
|
+
{
|
|
174
|
+
internalType: "bool",
|
|
175
|
+
name: "",
|
|
176
|
+
type: "bool",
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
stateMutability: "view",
|
|
180
|
+
type: "function",
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
inputs: [],
|
|
184
|
+
name: "getLtResult",
|
|
185
|
+
outputs: [
|
|
186
|
+
{
|
|
187
|
+
internalType: "bool",
|
|
188
|
+
name: "",
|
|
189
|
+
type: "bool",
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
stateMutability: "view",
|
|
193
|
+
type: "function",
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
inputs: [
|
|
197
|
+
{
|
|
198
|
+
internalType: "uint8",
|
|
199
|
+
name: "a",
|
|
200
|
+
type: "uint8",
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
internalType: "uint8",
|
|
204
|
+
name: "b",
|
|
205
|
+
type: "uint8",
|
|
206
|
+
},
|
|
207
|
+
],
|
|
208
|
+
name: "gtTest",
|
|
209
|
+
outputs: [
|
|
210
|
+
{
|
|
211
|
+
internalType: "bool",
|
|
212
|
+
name: "",
|
|
213
|
+
type: "bool",
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
stateMutability: "nonpayable",
|
|
217
|
+
type: "function",
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
inputs: [
|
|
221
|
+
{
|
|
222
|
+
internalType: "uint8",
|
|
223
|
+
name: "a",
|
|
224
|
+
type: "uint8",
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
internalType: "uint8",
|
|
228
|
+
name: "b",
|
|
229
|
+
type: "uint8",
|
|
230
|
+
},
|
|
231
|
+
],
|
|
232
|
+
name: "leTest",
|
|
233
|
+
outputs: [
|
|
234
|
+
{
|
|
235
|
+
internalType: "bool",
|
|
236
|
+
name: "",
|
|
237
|
+
type: "bool",
|
|
238
|
+
},
|
|
239
|
+
],
|
|
240
|
+
stateMutability: "nonpayable",
|
|
241
|
+
type: "function",
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
inputs: [
|
|
245
|
+
{
|
|
246
|
+
internalType: "uint8",
|
|
247
|
+
name: "a",
|
|
248
|
+
type: "uint8",
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
internalType: "uint8",
|
|
252
|
+
name: "b",
|
|
253
|
+
type: "uint8",
|
|
254
|
+
},
|
|
255
|
+
],
|
|
256
|
+
name: "ltTest",
|
|
257
|
+
outputs: [
|
|
258
|
+
{
|
|
259
|
+
internalType: "bool",
|
|
260
|
+
name: "",
|
|
261
|
+
type: "bool",
|
|
262
|
+
},
|
|
263
|
+
],
|
|
264
|
+
stateMutability: "nonpayable",
|
|
265
|
+
type: "function",
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
inputs: [
|
|
269
|
+
{
|
|
270
|
+
components: [
|
|
271
|
+
{
|
|
272
|
+
internalType: "gtUint8",
|
|
273
|
+
name: "a8_s",
|
|
274
|
+
type: "uint256",
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
internalType: "gtUint8",
|
|
278
|
+
name: "b8_s",
|
|
279
|
+
type: "uint256",
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
internalType: "gtUint16",
|
|
283
|
+
name: "a16_s",
|
|
284
|
+
type: "uint256",
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
internalType: "gtUint16",
|
|
288
|
+
name: "b16_s",
|
|
289
|
+
type: "uint256",
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
internalType: "gtUint32",
|
|
293
|
+
name: "a32_s",
|
|
294
|
+
type: "uint256",
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
internalType: "gtUint32",
|
|
298
|
+
name: "b32_s",
|
|
299
|
+
type: "uint256",
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
internalType: "gtUint64",
|
|
303
|
+
name: "a64_s",
|
|
304
|
+
type: "uint256",
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
internalType: "gtUint64",
|
|
308
|
+
name: "b64_s",
|
|
309
|
+
type: "uint256",
|
|
310
|
+
},
|
|
311
|
+
],
|
|
312
|
+
internalType: "struct Comparison1TestsContract.AllGTCastingValues",
|
|
313
|
+
name: "castingValues",
|
|
314
|
+
type: "tuple",
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
internalType: "uint8",
|
|
318
|
+
name: "a",
|
|
319
|
+
type: "uint8",
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
internalType: "uint8",
|
|
323
|
+
name: "b",
|
|
324
|
+
type: "uint8",
|
|
325
|
+
},
|
|
326
|
+
],
|
|
327
|
+
name: "setPublicValues",
|
|
328
|
+
outputs: [],
|
|
329
|
+
stateMutability: "nonpayable",
|
|
330
|
+
type: "function",
|
|
331
|
+
},
|
|
332
|
+
] as const;
|
|
333
|
+
|
|
334
|
+
const _bytecode =
|
|
335
|
+
"0x608060405234801561001057600080fd5b506156af80620000216000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80637d2e0f48116100665780637d2e0f481461016f57806380f937bc1461018d5780638b6e7a8c146101bd578063acb38169146101ed578063ebb571fd1461021d5761009e565b806308c90f0d146100a357806329875348146100d35780632e544aa0146100f15780632e5950eb14610121578063791175491461013f575b600080fd5b6100bd60048036038101906100b89190614467565b610239565b6040516100ca91906144c2565b60405180910390f35b6100db61074a565b6040516100e891906144c2565b60405180910390f35b61010b60048036038101906101069190614608565b610760565b60405161011891906144c2565b60405180910390f35b6101296107e8565b60405161013691906144c2565b60405180910390f35b61015960048036038101906101549190614467565b6107fe565b60405161016691906144c2565b60405180910390f35b610177610d10565b60405161018491906144c2565b60405180910390f35b6101a760048036038101906101a291906146e9565b610d26565b6040516101b491906144c2565b60405180910390f35b6101d760048036038101906101d29190614467565b610e1a565b6040516101e491906144c2565b60405180910390f35b610207600480360381019061020291906147a2565b61132c565b60405161021491906144c2565b60405180910390f35b61023760048036038101906102329190614949565b6113ea565b005b600061024361434d565b61024b614392565b6102536143b3565b61025b6143e2565b6102668488886113ea565b600061028261027d86600001518760200151611491565b611528565b9050806000806101000a81548160ff0219169083151502179055506102af856040015186606001516115cf565b8460000181815250506102ca85600001518660600151611666565b8460200181815250506102e5856040015186602001516116fe565b84604001818152505060006102f985610760565b905081151581151514610341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610338906149fc565b60405180910390fd5b61035386608001518760a00151611796565b84600001818152505061036e86600001518760a0015161182d565b846020018181525050610389866080015187602001516118c5565b8460400181815250506103a486604001518760a0015161195d565b8460600181815250506103bf866080015187606001516119f5565b84608001818152505060006103d38561132c565b90508015158315151461041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041290614a68565b60405180910390fd5b61042d8760c001518860e00151611a8d565b84600001818152505061044887600001518860e00151611b24565b8460200181815250506104638760c001518860200151611bbc565b84604001818152505061047e87604001518860e00151611c54565b8460600181815250506104998760c001518860600151611cec565b8460800181815250506104b487608001518860e00151611d84565b8460a00181815250506104cf8760c001518860a00151611e1c565b8460c001818152505060006104e385610d26565b90508015158415151461052b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052290614ad4565b60405180910390fd5b61054161053c8c8a60200151611eb4565b611528565b151584151514801561056b575061056461055f89600001518c611f4e565b611528565b1515841515145b6105aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a190614b66565b60405180910390fd5b6105c36105be8c60ff168a60600151611fe8565b611528565b15158415151480156105f057506105e96105e489604001518c60ff16612083565b611528565b1515841515145b61062f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062690614bf8565b60405180910390fd5b6106486106438c60ff168a60a0015161211e565b611528565b1515841515148015610675575061066e61066989608001518c60ff166121bb565b611528565b1515841515145b6106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab90614c8a565b60405180910390fd5b6106cd6106c88c60ff168a60e00151612258565b611528565b15158415151480156106fa57506106f36106ee8960c001518c60ff166122f9565b611528565b1515841515145b610739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073090614d1c565b60405180910390fd5b839850505050505050505092915050565b60008060019054906101000a900460ff16905090565b6000806107708360000151611528565b905061077f8360200151611528565b15158115151480156107a057506107998360400151611528565b1515811515145b6107df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d690614dd4565b60405180910390fd5b80915050919050565b60008060029054906101000a900460ff16905090565b600061080861434d565b610810614392565b6108186143b3565b6108206143e2565b61082b8488886113ea565b60006108476108428660000151876020015161239a565b611528565b905080600060016101000a81548160ff02191690831515021790555061087585604001518660600151612431565b846000018181525050610890856000015186606001516124c8565b8460200181815250506108ab85604001518660200151612560565b84604001818152505060006108bf85610760565b905081151581151514610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fe90614e40565b60405180910390fd5b61091986608001518760a001516125f8565b84600001818152505061093486600001518760a0015161268f565b84602001818152505061094f86608001518760200151612727565b84604001818152505061096a86604001518760a001516127bf565b84606001818152505061098586608001518760600151612857565b84608001818152505060006109998561132c565b9050801515831515146109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d890614eac565b60405180910390fd5b6109f38760c001518860e001516128ef565b846000018181525050610a0e87600001518860e00151612986565b846020018181525050610a298760c001518860200151612a1e565b846040018181525050610a4487604001518860e00151612ab6565b846060018181525050610a5f8760c001518860600151612b4e565b846080018181525050610a7a87608001518860e00151612be6565b8460a0018181525050610a958760c001518860a00151612c7e565b8460c00181815250506000610aa985610d26565b905080151584151514610af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae890614f18565b60405180910390fd5b610b07610b028c8a60200151612d16565b611528565b1515841515148015610b315750610b2a610b2589600001518c612db0565b611528565b1515841515145b610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6790614faa565b60405180910390fd5b610b89610b848c60ff168a60600151612e4a565b611528565b1515841515148015610bb65750610baf610baa89604001518c60ff16612ee5565b611528565b1515841515145b610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec9061503c565b60405180910390fd5b610c0e610c098c60ff168a60a00151612f80565b611528565b1515841515148015610c3b5750610c34610c2f89608001518c60ff1661301d565b611528565b1515841515145b610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c71906150ce565b60405180910390fd5b610c93610c8e8c60ff168a60e001516130ba565b611528565b1515841515148015610cc05750610cb9610cb48960c001518c60ff1661315b565b611528565b1515841515145b610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf690615160565b60405180910390fd5b839850505050505050505092915050565b60008060009054906101000a900460ff16905090565b600080610d368360000151611528565b9050610d458360200151611528565b1515811515148015610d665750610d5f8360400151611528565b1515811515145b8015610d815750610d7a8360800151611528565b1515811515145b8015610d9c5750610d958360600151611528565b1515811515145b8015610db75750610db08360c00151611528565b1515811515145b8015610dd25750610dcb8360a00151611528565b1515811515145b610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890614dd4565b60405180910390fd5b80915050919050565b6000610e2461434d565b610e2c614392565b610e346143b3565b610e3c6143e2565b610e478488886113ea565b6000610e63610e5e866000015187602001516131fc565b611528565b905080600060026101000a81548160ff021916908315150217905550610e9185604001518660600151613293565b846000018181525050610eac8560000151866060015161332a565b846020018181525050610ec7856040015186602001516133c2565b8460400181815250506000610edb85610760565b905081151581151514610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a906151cc565b60405180910390fd5b610f3586608001518760a0015161345a565b846000018181525050610f5086600001518760a001516134f1565b846020018181525050610f6b86608001518760200151613589565b846040018181525050610f8686604001518760a00151613621565b846060018181525050610fa1866080015187606001516136b9565b8460800181815250506000610fb58561132c565b905080151583151514610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490615238565b60405180910390fd5b61100f8760c001518860e00151613751565b84600001818152505061102a87600001518860e001516137e8565b8460200181815250506110458760c001518860200151613880565b84604001818152505061106087604001518860e00151613918565b84606001818152505061107b8760c0015188606001516139b0565b84608001818152505061109687608001518860e00151613a48565b8460a00181815250506110b18760c001518860a00151613ae0565b8460c001818152505060006110c585610d26565b90508015158415151461110d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611104906152a4565b60405180910390fd5b61112361111e8c8a60200151613b78565b611528565b151584151514801561114d575061114661114189600001518c613c12565b611528565b1515841515145b61118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390615336565b60405180910390fd5b6111a56111a08c60ff168a60600151613cac565b611528565b15158415151480156111d257506111cb6111c689604001518c60ff16613d47565b611528565b1515841515145b611211576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611208906153c8565b60405180910390fd5b61122a6112258c60ff168a60a00151613de2565b611528565b1515841515148015611257575061125061124b89608001518c60ff16613e7f565b611528565b1515841515145b611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d9061545a565b60405180910390fd5b6112af6112aa8c60ff168a60e00151613f1c565b611528565b15158415151480156112dc57506112d56112d08960c001518c60ff16613fbd565b611528565b1515841515145b61131b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611312906154ec565b60405180910390fd5b839850505050505050505092915050565b60008061133c8360000151611528565b905061134b8360200151611528565b151581151514801561136c57506113658360400151611528565b1515811515145b801561138757506113808360800151611528565b1515811515145b80156113a2575061139b8360600151611528565b1515811515145b6113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d890614dd4565b60405180910390fd5b80915050919050565b6113f38261405e565b8360000181815250506114058161405e565b83602001818152505061141a8260ff166140ff565b83604001818152505061142f8160ff166140ff565b8360600181815250506114448260ff166141a1565b8360800181815250506114598160ff166141a1565b8360a001818152505061146e8260ff16614245565b8360c00181815250506114838160ff16614245565b8360e0018181525050505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e6114bd60018060006142ec565b85856040518463ffffffff1660e01b81526004016114dd93929190615556565b6020604051808303816000875af11580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152091906155b9565b905092915050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616000600481111561155c5761155b6155e6565b5b60f81b856040518363ffffffff1660e01b815260040161157d929190615650565b6020604051808303816000875af115801561159c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c091906155b9565b90506000811415915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e6115fb60028060006142ec565b85856040518463ffffffff1660e01b815260040161161b93929190615556565b6020604051808303816000875af115801561163a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165e91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e6116936001600260006142ec565b85856040518463ffffffff1660e01b81526004016116b393929190615556565b6020604051808303816000875af11580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f691906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e61172b6002600160006142ec565b85856040518463ffffffff1660e01b815260040161174b93929190615556565b6020604051808303816000875af115801561176a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178e91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e6117c260038060006142ec565b85856040518463ffffffff1660e01b81526004016117e293929190615556565b6020604051808303816000875af1158015611801573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182591906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e61185a6001600360006142ec565b85856040518463ffffffff1660e01b815260040161187a93929190615556565b6020604051808303816000875af1158015611899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bd91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e6118f26003600160006142ec565b85856040518463ffffffff1660e01b815260040161191293929190615556565b6020604051808303816000875af1158015611931573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195591906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e61198a6002600360006142ec565b85856040518463ffffffff1660e01b81526004016119aa93929190615556565b6020604051808303816000875af11580156119c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ed91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611a226003600260006142ec565b85856040518463ffffffff1660e01b8152600401611a4293929190615556565b6020604051808303816000875af1158015611a61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8591906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611ab960048060006142ec565b85856040518463ffffffff1660e01b8152600401611ad993929190615556565b6020604051808303816000875af1158015611af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1c91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611b516001600460006142ec565b85856040518463ffffffff1660e01b8152600401611b7193929190615556565b6020604051808303816000875af1158015611b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb491906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611be96004600160006142ec565b85856040518463ffffffff1660e01b8152600401611c0993929190615556565b6020604051808303816000875af1158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611c816002600460006142ec565b85856040518463ffffffff1660e01b8152600401611ca193929190615556565b6020604051808303816000875af1158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce491906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611d196004600260006142ec565b85856040518463ffffffff1660e01b8152600401611d3993929190615556565b6020604051808303816000875af1158015611d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7c91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611db16003600460006142ec565b85856040518463ffffffff1660e01b8152600401611dd193929190615556565b6020604051808303816000875af1158015611df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1491906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611e496004600360006142ec565b85856040518463ffffffff1660e01b8152600401611e6993929190615556565b6020604051808303816000875af1158015611e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eac91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611ee060018060016142ec565b8560ff16856040518463ffffffff1660e01b8152600401611f0393929190615556565b6020604051808303816000875af1158015611f22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4691906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e611f7a60018060026142ec565b858560ff166040518463ffffffff1660e01b8152600401611f9d93929190615556565b6020604051808303816000875af1158015611fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe091906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e61201460028060016142ec565b8561ffff16856040518463ffffffff1660e01b815260040161203893929190615556565b6020604051808303816000875af1158015612057573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207b91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e6120af60028060026142ec565b858561ffff166040518463ffffffff1660e01b81526004016120d393929190615556565b6020604051808303816000875af11580156120f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211691906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e61214a60038060016142ec565b8563ffffffff16856040518463ffffffff1660e01b815260040161217093929190615556565b6020604051808303816000875af115801561218f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b391906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e6121e760038060026142ec565b858563ffffffff166040518463ffffffff1660e01b815260040161220d93929190615556565b6020604051808303816000875af115801561222c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225091906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e61228460048060016142ec565b8567ffffffffffffffff16856040518463ffffffff1660e01b81526004016122ae93929190615556565b6020604051808303816000875af11580156122cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f191906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636d82e45e61232560048060026142ec565b858567ffffffffffffffff166040518463ffffffff1660e01b815260040161234f93929190615556565b6020604051808303816000875af115801561236e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239291906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c6123c660018060006142ec565b85856040518463ffffffff1660e01b81526004016123e693929190615556565b6020604051808303816000875af1158015612405573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242991906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c61245d60028060006142ec565b85856040518463ffffffff1660e01b815260040161247d93929190615556565b6020604051808303816000875af115801561249c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c091906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c6124f56001600260006142ec565b85856040518463ffffffff1660e01b815260040161251593929190615556565b6020604051808303816000875af1158015612534573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255891906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c61258d6002600160006142ec565b85856040518463ffffffff1660e01b81526004016125ad93929190615556565b6020604051808303816000875af11580156125cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f091906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c61262460038060006142ec565b85856040518463ffffffff1660e01b815260040161264493929190615556565b6020604051808303816000875af1158015612663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268791906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c6126bc6001600360006142ec565b85856040518463ffffffff1660e01b81526004016126dc93929190615556565b6020604051808303816000875af11580156126fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271f91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c6127546003600160006142ec565b85856040518463ffffffff1660e01b815260040161277493929190615556565b6020604051808303816000875af1158015612793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b791906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c6127ec6002600360006142ec565b85856040518463ffffffff1660e01b815260040161280c93929190615556565b6020604051808303816000875af115801561282b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284f91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c6128846003600260006142ec565b85856040518463ffffffff1660e01b81526004016128a493929190615556565b6020604051808303816000875af11580156128c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e791906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c61291b60048060006142ec565b85856040518463ffffffff1660e01b815260040161293b93929190615556565b6020604051808303816000875af115801561295a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297e91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c6129b36001600460006142ec565b85856040518463ffffffff1660e01b81526004016129d393929190615556565b6020604051808303816000875af11580156129f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1691906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612a4b6004600160006142ec565b85856040518463ffffffff1660e01b8152600401612a6b93929190615556565b6020604051808303816000875af1158015612a8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aae91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612ae36002600460006142ec565b85856040518463ffffffff1660e01b8152600401612b0393929190615556565b6020604051808303816000875af1158015612b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4691906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612b7b6004600260006142ec565b85856040518463ffffffff1660e01b8152600401612b9b93929190615556565b6020604051808303816000875af1158015612bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bde91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612c136003600460006142ec565b85856040518463ffffffff1660e01b8152600401612c3393929190615556565b6020604051808303816000875af1158015612c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7691906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612cab6004600360006142ec565b85856040518463ffffffff1660e01b8152600401612ccb93929190615556565b6020604051808303816000875af1158015612cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d0e91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612d4260018060016142ec565b8560ff16856040518463ffffffff1660e01b8152600401612d6593929190615556565b6020604051808303816000875af1158015612d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da891906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612ddc60018060026142ec565b858560ff166040518463ffffffff1660e01b8152600401612dff93929190615556565b6020604051808303816000875af1158015612e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4291906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612e7660028060016142ec565b8561ffff16856040518463ffffffff1660e01b8152600401612e9a93929190615556565b6020604051808303816000875af1158015612eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612edd91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612f1160028060026142ec565b858561ffff166040518463ffffffff1660e01b8152600401612f3593929190615556565b6020604051808303816000875af1158015612f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7891906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c612fac60038060016142ec565b8563ffffffff16856040518463ffffffff1660e01b8152600401612fd293929190615556565b6020604051808303816000875af1158015612ff1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301591906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c61304960038060026142ec565b858563ffffffff166040518463ffffffff1660e01b815260040161306f93929190615556565b6020604051808303816000875af115801561308e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b291906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c6130e660048060016142ec565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161311093929190615556565b6020604051808303816000875af115801561312f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315391906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663145fca2c61318760048060026142ec565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016131b193929190615556565b6020604051808303816000875af11580156131d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f491906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd14869361322860018060006142ec565b85856040518463ffffffff1660e01b815260040161324893929190615556565b6020604051808303816000875af1158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd1486936132bf60028060006142ec565b85856040518463ffffffff1660e01b81526004016132df93929190615556565b6020604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061332291906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd1486936133576001600260006142ec565b85856040518463ffffffff1660e01b815260040161337793929190615556565b6020604051808303816000875af1158015613396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ba91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd1486936133ef6002600160006142ec565b85856040518463ffffffff1660e01b815260040161340f93929190615556565b6020604051808303816000875af115801561342e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345291906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd14869361348660038060006142ec565b85856040518463ffffffff1660e01b81526004016134a693929190615556565b6020604051808303816000875af11580156134c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e991906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd14869361351e6001600360006142ec565b85856040518463ffffffff1660e01b815260040161353e93929190615556565b6020604051808303816000875af115801561355d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358191906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd1486936135b66003600160006142ec565b85856040518463ffffffff1660e01b81526004016135d693929190615556565b6020604051808303816000875af11580156135f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361991906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd14869361364e6002600360006142ec565b85856040518463ffffffff1660e01b815260040161366e93929190615556565b6020604051808303816000875af115801561368d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b191906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd1486936136e66003600260006142ec565b85856040518463ffffffff1660e01b815260040161370693929190615556565b6020604051808303816000875af1158015613725573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061374991906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd14869361377d60048060006142ec565b85856040518463ffffffff1660e01b815260040161379d93929190615556565b6020604051808303816000875af11580156137bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137e091906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd1486936138156001600460006142ec565b85856040518463ffffffff1660e01b815260040161383593929190615556565b6020604051808303816000875af1158015613854573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387891906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd1486936138ad6004600160006142ec565b85856040518463ffffffff1660e01b81526004016138cd93929190615556565b6020604051808303816000875af11580156138ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061391091906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd1486936139456002600460006142ec565b85856040518463ffffffff1660e01b815260040161396593929190615556565b6020604051808303816000875af1158015613984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139a891906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd1486936139dd6004600260006142ec565b85856040518463ffffffff1660e01b81526004016139fd93929190615556565b6020604051808303816000875af1158015613a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a4091906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613a756003600460006142ec565b85856040518463ffffffff1660e01b8152600401613a9593929190615556565b6020604051808303816000875af1158015613ab4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ad891906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613b0d6004600360006142ec565b85856040518463ffffffff1660e01b8152600401613b2d93929190615556565b6020604051808303816000875af1158015613b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b7091906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613ba460018060016142ec565b8560ff16856040518463ffffffff1660e01b8152600401613bc793929190615556565b6020604051808303816000875af1158015613be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0a91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613c3e60018060026142ec565b858560ff166040518463ffffffff1660e01b8152600401613c6193929190615556565b6020604051808303816000875af1158015613c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca491906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613cd860028060016142ec565b8561ffff16856040518463ffffffff1660e01b8152600401613cfc93929190615556565b6020604051808303816000875af1158015613d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d3f91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613d7360028060026142ec565b858561ffff166040518463ffffffff1660e01b8152600401613d9793929190615556565b6020604051808303816000875af1158015613db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dda91906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613e0e60038060016142ec565b8563ffffffff16856040518463ffffffff1660e01b8152600401613e3493929190615556565b6020604051808303816000875af1158015613e53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e7791906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613eab60038060026142ec565b858563ffffffff166040518463ffffffff1660e01b8152600401613ed193929190615556565b6020604051808303816000875af1158015613ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1491906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613f4860048060016142ec565b8567ffffffffffffffff16856040518463ffffffff1660e01b8152600401613f7293929190615556565b6020604051808303816000875af1158015613f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fb591906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663dd148693613fe960048060026142ec565b858567ffffffffffffffff166040518463ffffffff1660e01b815260040161401393929190615556565b6020604051808303816000875af1158015614032573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405691906155b9565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060016004811115614091576140906155e6565b5b60f81b8460ff166040518363ffffffff1660e01b81526004016140b5929190615650565b6020604051808303816000875af11580156140d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140f891906155b9565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060026004811115614132576141316155e6565b5b60f81b8461ffff166040518363ffffffff1660e01b8152600401614157929190615650565b6020604051808303816000875af1158015614176573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061419a91906155b9565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600360048111156141d4576141d36155e6565b5b60f81b8463ffffffff166040518363ffffffff1660e01b81526004016141fb929190615650565b6020604051808303816000875af115801561421a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061423e91906155b9565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600480811115614277576142766155e6565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016142a2929190615650565b6020604051808303816000875af11580156142c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e591906155b9565b9050919050565b6000816002811115614301576143006155e6565b5b60ff166008846004811115614319576143186155e6565b5b61ffff16901b61ffff166010866004811115614338576143376155e6565b5b62ffffff16901b171760e81b90509392505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600060ff82169050919050565b6144448161442e565b811461444f57600080fd5b50565b6000813590506144618161443b565b92915050565b6000806040838503121561447e5761447d614429565b5b600061448c85828601614452565b925050602061449d85828601614452565b9150509250929050565b60008115159050919050565b6144bc816144a7565b82525050565b60006020820190506144d760008301846144b3565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61452b826144e2565b810181811067ffffffffffffffff8211171561454a576145496144f3565b5b80604052505050565b600061455d61441f565b90506145698282614522565b919050565b6000819050919050565b6145818161456e565b811461458c57600080fd5b50565b60008135905061459e81614578565b92915050565b6000606082840312156145ba576145b96144dd565b5b6145c46060614553565b905060006145d48482850161458f565b60008301525060206145e88482850161458f565b60208301525060406145fc8482850161458f565b60408301525092915050565b60006060828403121561461e5761461d614429565b5b600061462c848285016145a4565b91505092915050565b600060e0828403121561464b5761464a6144dd565b5b61465560e0614553565b905060006146658482850161458f565b60008301525060206146798482850161458f565b602083015250604061468d8482850161458f565b60408301525060606146a18482850161458f565b60608301525060806146b58482850161458f565b60808301525060a06146c98482850161458f565b60a08301525060c06146dd8482850161458f565b60c08301525092915050565b600060e082840312156146ff576146fe614429565b5b600061470d84828501614635565b91505092915050565b600060a0828403121561472c5761472b6144dd565b5b61473660a0614553565b905060006147468482850161458f565b600083015250602061475a8482850161458f565b602083015250604061476e8482850161458f565b60408301525060606147828482850161458f565b60608301525060806147968482850161458f565b60808301525092915050565b600060a082840312156147b8576147b7614429565b5b60006147c684828501614716565b91505092915050565b6147d88161456e565b81146147e357600080fd5b50565b6000813590506147f5816147cf565b92915050565b6148048161456e565b811461480f57600080fd5b50565b600081359050614821816147fb565b92915050565b6148308161456e565b811461483b57600080fd5b50565b60008135905061484d81614827565b92915050565b61485c8161456e565b811461486757600080fd5b50565b60008135905061487981614853565b92915050565b60006101008284031215614896576148956144dd565b5b6148a1610100614553565b905060006148b1848285016147e6565b60008301525060206148c5848285016147e6565b60208301525060406148d984828501614812565b60408301525060606148ed84828501614812565b60608301525060806149018482850161483e565b60808301525060a06149158482850161483e565b60a08301525060c06149298482850161486a565b60c08301525060e061493d8482850161486a565b60e08301525092915050565b6000806000610140848603121561496357614962614429565b5b60006149718682870161487f565b93505061010061498386828701614452565b92505061012061499586828701614452565b9150509250925092565b600082825260208201905092915050565b7f6774546573743a2063617374203136206661696c656400000000000000000000600082015250565b60006149e660168361499f565b91506149f1826149b0565b602082019050919050565b60006020820190508181036000830152614a15816149d9565b9050919050565b7f6774546573743a2063617374203332206661696c656400000000000000000000600082015250565b6000614a5260168361499f565b9150614a5d82614a1c565b602082019050919050565b60006020820190508181036000830152614a8181614a45565b9050919050565b7f6774546573743a2063617374203634206661696c656400000000000000000000600082015250565b6000614abe60168361499f565b9150614ac982614a88565b602082019050919050565b60006020820190508181036000830152614aed81614ab1565b9050919050565b7f6774546573743a2074657374203820626974732077697468207363616c61722060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b6000614b5060268361499f565b9150614b5b82614af4565b604082019050919050565b60006020820190508181036000830152614b7f81614b43565b9050919050565b7f6774546573743a207465737420313620626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000614be260278361499f565b9150614bed82614b86565b604082019050919050565b60006020820190508181036000830152614c1181614bd5565b9050919050565b7f6774546573743a207465737420333220626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000614c7460278361499f565b9150614c7f82614c18565b604082019050919050565b60006020820190508181036000830152614ca381614c67565b9050919050565b7f6774546573743a207465737420363420626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000614d0660278361499f565b9150614d1182614caa565b604082019050919050565b60006020820190508181036000830152614d3581614cf9565b9050919050565b7f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960008201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260208201527f6573756c74730000000000000000000000000000000000000000000000000000604082015250565b6000614dbe60468361499f565b9150614dc982614d3c565b606082019050919050565b60006020820190508181036000830152614ded81614db1565b9050919050565b7f6c65546573743a2063617374203136206661696c656400000000000000000000600082015250565b6000614e2a60168361499f565b9150614e3582614df4565b602082019050919050565b60006020820190508181036000830152614e5981614e1d565b9050919050565b7f6c65546573743a2063617374203332206661696c656400000000000000000000600082015250565b6000614e9660168361499f565b9150614ea182614e60565b602082019050919050565b60006020820190508181036000830152614ec581614e89565b9050919050565b7f6c65546573743a2063617374203634206661696c656400000000000000000000600082015250565b6000614f0260168361499f565b9150614f0d82614ecc565b602082019050919050565b60006020820190508181036000830152614f3181614ef5565b9050919050565b7f6c65546573743a2074657374203820626974732077697468207363616c61722060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b6000614f9460268361499f565b9150614f9f82614f38565b604082019050919050565b60006020820190508181036000830152614fc381614f87565b9050919050565b7f6c65546573743a207465737420313620626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b600061502660278361499f565b915061503182614fca565b604082019050919050565b6000602082019050818103600083015261505581615019565b9050919050565b7f6c65546573743a207465737420333220626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b60006150b860278361499f565b91506150c38261505c565b604082019050919050565b600060208201905081810360008301526150e7816150ab565b9050919050565b7f6c65546573743a207465737420363420626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b600061514a60278361499f565b9150615155826150ee565b604082019050919050565b600060208201905081810360008301526151798161513d565b9050919050565b7f6c6574546573743a2063617374203136206661696c6564000000000000000000600082015250565b60006151b660178361499f565b91506151c182615180565b602082019050919050565b600060208201905081810360008301526151e5816151a9565b9050919050565b7f6c6574546573743a2063617374203332206661696c6564000000000000000000600082015250565b600061522260178361499f565b915061522d826151ec565b602082019050919050565b6000602082019050818103600083015261525181615215565b9050919050565b7f6c6574546573743a2063617374203634206661696c6564000000000000000000600082015250565b600061528e60178361499f565b915061529982615258565b602082019050919050565b600060208201905081810360008301526152bd81615281565b9050919050565b7f6c6574546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b600061532060278361499f565b915061532b826152c4565b604082019050919050565b6000602082019050818103600083015261534f81615313565b9050919050565b7f6c6574546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006153b260288361499f565b91506153bd82615356565b604082019050919050565b600060208201905081810360008301526153e1816153a5565b9050919050565b7f6c6574546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061544460288361499f565b915061544f826153e8565b604082019050919050565b6000602082019050818103600083015261547381615437565b9050919050565b7f6c6574546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006154d660288361499f565b91506154e18261547a565b604082019050919050565b60006020820190508181036000830152615505816154c9565b9050919050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b6155418161550c565b82525050565b6155508161456e565b82525050565b600060608201905061556b6000830186615538565b6155786020830185615547565b6155856040830184615547565b949350505050565b6155968161456e565b81146155a157600080fd5b50565b6000815190506155b38161558d565b92915050565b6000602082840312156155cf576155ce614429565b5b60006155dd848285016155a4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61564a81615615565b82525050565b60006040820190506156656000830185615641565b6156726020830184615547565b939250505056fea26469706673582212201e28dc3f17982ee0788f6aff18c7d18e47db88256da1a59466d02c500ab0c69664736f6c63430008140033";
|
|
336
|
+
|
|
337
|
+
type Comparison1TestsContractConstructorParams =
|
|
338
|
+
| [signer?: Signer]
|
|
339
|
+
| ConstructorParameters<typeof ContractFactory>;
|
|
340
|
+
|
|
341
|
+
const isSuperArgs = (
|
|
342
|
+
xs: Comparison1TestsContractConstructorParams
|
|
343
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
344
|
+
|
|
345
|
+
export class Comparison1TestsContract__factory extends ContractFactory {
|
|
346
|
+
constructor(...args: Comparison1TestsContractConstructorParams) {
|
|
347
|
+
if (isSuperArgs(args)) {
|
|
348
|
+
super(...args);
|
|
349
|
+
} else {
|
|
350
|
+
super(_abi, _bytecode, args[0]);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
override getDeployTransaction(
|
|
355
|
+
overrides?: NonPayableOverrides & { from?: string }
|
|
356
|
+
): Promise<ContractDeployTransaction> {
|
|
357
|
+
return super.getDeployTransaction(overrides || {});
|
|
358
|
+
}
|
|
359
|
+
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
|
|
360
|
+
return super.deploy(overrides || {}) as Promise<
|
|
361
|
+
Comparison1TestsContract & {
|
|
362
|
+
deploymentTransaction(): ContractTransactionResponse;
|
|
363
|
+
}
|
|
364
|
+
>;
|
|
365
|
+
}
|
|
366
|
+
override connect(
|
|
367
|
+
runner: ContractRunner | null
|
|
368
|
+
): Comparison1TestsContract__factory {
|
|
369
|
+
return super.connect(runner) as Comparison1TestsContract__factory;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
static readonly bytecode = _bytecode;
|
|
373
|
+
static readonly abi = _abi;
|
|
374
|
+
static createInterface(): Comparison1TestsContractInterface {
|
|
375
|
+
return new Interface(_abi) as Comparison1TestsContractInterface;
|
|
376
|
+
}
|
|
377
|
+
static connect(
|
|
378
|
+
address: string,
|
|
379
|
+
runner?: ContractRunner | null
|
|
380
|
+
): Comparison1TestsContract {
|
|
381
|
+
return new Contract(
|
|
382
|
+
address,
|
|
383
|
+
_abi,
|
|
384
|
+
runner
|
|
385
|
+
) as unknown as Comparison1TestsContract;
|
|
386
|
+
}
|
|
387
|
+
}
|