@cofhe/mock-contracts 0.1.0 → 0.1.1

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/package.json CHANGED
@@ -1,19 +1,26 @@
1
1
  {
2
2
  "name": "@cofhe/mock-contracts",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Mock smart contracts for testing CoFHE with FHE primitives locally",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
7
7
  "types": "./dist/index.d.ts",
8
8
  "sideEffects": false,
9
9
  "license": "MIT",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/FhenixProtocol/cofhesdk.git",
13
+ "directory": "packages/mock-contracts"
14
+ },
10
15
  "files": [
11
16
  "dist/**",
17
+ "src/**",
12
18
  "contracts/**/*.sol",
13
19
  "foundry/**/*.sol",
14
20
  "test/**/*.sol",
15
21
  "foundry.toml",
16
- "remappings.txt"
22
+ "remappings.txt",
23
+ "CHANGELOG.md"
17
24
  ],
18
25
  "keywords": [
19
26
  "blockchain",
package/src/MockACL.ts ADDED
@@ -0,0 +1,558 @@
1
+ // This file is auto-generated by build-artifacts.ts
2
+ import { type MocksArtifact } from './index';
3
+
4
+ export const MockACLArtifact = {
5
+ "contractName": "MockACL",
6
+ "fixedAddress": "0x0000000000000000000000000000000000000400",
7
+ "abi": [
8
+ {
9
+ "type": "constructor",
10
+ "inputs": [],
11
+ "stateMutability": "nonpayable"
12
+ },
13
+ {
14
+ "type": "function",
15
+ "name": "TASK_MANAGER_ADDRESS_",
16
+ "inputs": [],
17
+ "outputs": [
18
+ {
19
+ "name": "",
20
+ "type": "address",
21
+ "internalType": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "view"
25
+ },
26
+ {
27
+ "type": "function",
28
+ "name": "allow",
29
+ "inputs": [
30
+ {
31
+ "name": "handle",
32
+ "type": "uint256",
33
+ "internalType": "uint256"
34
+ },
35
+ {
36
+ "name": "account",
37
+ "type": "address",
38
+ "internalType": "address"
39
+ },
40
+ {
41
+ "name": "requester",
42
+ "type": "address",
43
+ "internalType": "address"
44
+ }
45
+ ],
46
+ "outputs": [],
47
+ "stateMutability": "nonpayable"
48
+ },
49
+ {
50
+ "type": "function",
51
+ "name": "allowForDecryption",
52
+ "inputs": [
53
+ {
54
+ "name": "handlesList",
55
+ "type": "uint256[]",
56
+ "internalType": "uint256[]"
57
+ },
58
+ {
59
+ "name": "requester",
60
+ "type": "address",
61
+ "internalType": "address"
62
+ }
63
+ ],
64
+ "outputs": [],
65
+ "stateMutability": "nonpayable"
66
+ },
67
+ {
68
+ "type": "function",
69
+ "name": "allowGlobal",
70
+ "inputs": [
71
+ {
72
+ "name": "handle",
73
+ "type": "uint256",
74
+ "internalType": "uint256"
75
+ },
76
+ {
77
+ "name": "requester",
78
+ "type": "address",
79
+ "internalType": "address"
80
+ }
81
+ ],
82
+ "outputs": [],
83
+ "stateMutability": "nonpayable"
84
+ },
85
+ {
86
+ "type": "function",
87
+ "name": "allowTransient",
88
+ "inputs": [
89
+ {
90
+ "name": "handle",
91
+ "type": "uint256",
92
+ "internalType": "uint256"
93
+ },
94
+ {
95
+ "name": "account",
96
+ "type": "address",
97
+ "internalType": "address"
98
+ },
99
+ {
100
+ "name": "requester",
101
+ "type": "address",
102
+ "internalType": "address"
103
+ }
104
+ ],
105
+ "outputs": [],
106
+ "stateMutability": "nonpayable"
107
+ },
108
+ {
109
+ "type": "function",
110
+ "name": "allowedOnBehalf",
111
+ "inputs": [
112
+ {
113
+ "name": "delegatee",
114
+ "type": "address",
115
+ "internalType": "address"
116
+ },
117
+ {
118
+ "name": "handle",
119
+ "type": "uint256",
120
+ "internalType": "uint256"
121
+ },
122
+ {
123
+ "name": "contractAddress",
124
+ "type": "address",
125
+ "internalType": "address"
126
+ },
127
+ {
128
+ "name": "account",
129
+ "type": "address",
130
+ "internalType": "address"
131
+ }
132
+ ],
133
+ "outputs": [
134
+ {
135
+ "name": "",
136
+ "type": "bool",
137
+ "internalType": "bool"
138
+ }
139
+ ],
140
+ "stateMutability": "view"
141
+ },
142
+ {
143
+ "type": "function",
144
+ "name": "allowedTransient",
145
+ "inputs": [
146
+ {
147
+ "name": "handle",
148
+ "type": "uint256",
149
+ "internalType": "uint256"
150
+ },
151
+ {
152
+ "name": "account",
153
+ "type": "address",
154
+ "internalType": "address"
155
+ }
156
+ ],
157
+ "outputs": [
158
+ {
159
+ "name": "",
160
+ "type": "bool",
161
+ "internalType": "bool"
162
+ }
163
+ ],
164
+ "stateMutability": "view"
165
+ },
166
+ {
167
+ "type": "function",
168
+ "name": "cleanTransientStorage",
169
+ "inputs": [],
170
+ "outputs": [],
171
+ "stateMutability": "nonpayable"
172
+ },
173
+ {
174
+ "type": "function",
175
+ "name": "delegateAccount",
176
+ "inputs": [
177
+ {
178
+ "name": "delegatee",
179
+ "type": "address",
180
+ "internalType": "address"
181
+ },
182
+ {
183
+ "name": "delegateeContract",
184
+ "type": "address",
185
+ "internalType": "address"
186
+ }
187
+ ],
188
+ "outputs": [],
189
+ "stateMutability": "nonpayable"
190
+ },
191
+ {
192
+ "type": "function",
193
+ "name": "eip712Domain",
194
+ "inputs": [],
195
+ "outputs": [
196
+ {
197
+ "name": "fields",
198
+ "type": "bytes1",
199
+ "internalType": "bytes1"
200
+ },
201
+ {
202
+ "name": "name",
203
+ "type": "string",
204
+ "internalType": "string"
205
+ },
206
+ {
207
+ "name": "version",
208
+ "type": "string",
209
+ "internalType": "string"
210
+ },
211
+ {
212
+ "name": "chainId",
213
+ "type": "uint256",
214
+ "internalType": "uint256"
215
+ },
216
+ {
217
+ "name": "verifyingContract",
218
+ "type": "address",
219
+ "internalType": "address"
220
+ },
221
+ {
222
+ "name": "salt",
223
+ "type": "bytes32",
224
+ "internalType": "bytes32"
225
+ },
226
+ {
227
+ "name": "extensions",
228
+ "type": "uint256[]",
229
+ "internalType": "uint256[]"
230
+ }
231
+ ],
232
+ "stateMutability": "view"
233
+ },
234
+ {
235
+ "type": "function",
236
+ "name": "exists",
237
+ "inputs": [],
238
+ "outputs": [
239
+ {
240
+ "name": "",
241
+ "type": "bool",
242
+ "internalType": "bool"
243
+ }
244
+ ],
245
+ "stateMutability": "pure"
246
+ },
247
+ {
248
+ "type": "function",
249
+ "name": "getTaskManagerAddress",
250
+ "inputs": [],
251
+ "outputs": [
252
+ {
253
+ "name": "",
254
+ "type": "address",
255
+ "internalType": "address"
256
+ }
257
+ ],
258
+ "stateMutability": "view"
259
+ },
260
+ {
261
+ "type": "function",
262
+ "name": "getVersion",
263
+ "inputs": [],
264
+ "outputs": [
265
+ {
266
+ "name": "",
267
+ "type": "string",
268
+ "internalType": "string"
269
+ }
270
+ ],
271
+ "stateMutability": "pure"
272
+ },
273
+ {
274
+ "type": "function",
275
+ "name": "globalAllowed",
276
+ "inputs": [
277
+ {
278
+ "name": "handle",
279
+ "type": "uint256",
280
+ "internalType": "uint256"
281
+ }
282
+ ],
283
+ "outputs": [
284
+ {
285
+ "name": "",
286
+ "type": "bool",
287
+ "internalType": "bool"
288
+ }
289
+ ],
290
+ "stateMutability": "view"
291
+ },
292
+ {
293
+ "type": "function",
294
+ "name": "hashTypedDataV4",
295
+ "inputs": [
296
+ {
297
+ "name": "structHash",
298
+ "type": "bytes32",
299
+ "internalType": "bytes32"
300
+ }
301
+ ],
302
+ "outputs": [
303
+ {
304
+ "name": "",
305
+ "type": "bytes32",
306
+ "internalType": "bytes32"
307
+ }
308
+ ],
309
+ "stateMutability": "view"
310
+ },
311
+ {
312
+ "type": "function",
313
+ "name": "isAllowed",
314
+ "inputs": [
315
+ {
316
+ "name": "handle",
317
+ "type": "uint256",
318
+ "internalType": "uint256"
319
+ },
320
+ {
321
+ "name": "account",
322
+ "type": "address",
323
+ "internalType": "address"
324
+ }
325
+ ],
326
+ "outputs": [
327
+ {
328
+ "name": "",
329
+ "type": "bool",
330
+ "internalType": "bool"
331
+ }
332
+ ],
333
+ "stateMutability": "view"
334
+ },
335
+ {
336
+ "type": "function",
337
+ "name": "isAllowedForDecryption",
338
+ "inputs": [
339
+ {
340
+ "name": "handle",
341
+ "type": "uint256",
342
+ "internalType": "uint256"
343
+ }
344
+ ],
345
+ "outputs": [
346
+ {
347
+ "name": "",
348
+ "type": "bool",
349
+ "internalType": "bool"
350
+ }
351
+ ],
352
+ "stateMutability": "view"
353
+ },
354
+ {
355
+ "type": "function",
356
+ "name": "isAllowedWithPermission",
357
+ "inputs": [
358
+ {
359
+ "name": "permission",
360
+ "type": "tuple",
361
+ "internalType": "struct Permission",
362
+ "components": [
363
+ {
364
+ "name": "issuer",
365
+ "type": "address",
366
+ "internalType": "address"
367
+ },
368
+ {
369
+ "name": "expiration",
370
+ "type": "uint64",
371
+ "internalType": "uint64"
372
+ },
373
+ {
374
+ "name": "recipient",
375
+ "type": "address",
376
+ "internalType": "address"
377
+ },
378
+ {
379
+ "name": "validatorId",
380
+ "type": "uint256",
381
+ "internalType": "uint256"
382
+ },
383
+ {
384
+ "name": "validatorContract",
385
+ "type": "address",
386
+ "internalType": "address"
387
+ },
388
+ {
389
+ "name": "sealingKey",
390
+ "type": "bytes32",
391
+ "internalType": "bytes32"
392
+ },
393
+ {
394
+ "name": "issuerSignature",
395
+ "type": "bytes",
396
+ "internalType": "bytes"
397
+ },
398
+ {
399
+ "name": "recipientSignature",
400
+ "type": "bytes",
401
+ "internalType": "bytes"
402
+ }
403
+ ]
404
+ },
405
+ {
406
+ "name": "handle",
407
+ "type": "uint256",
408
+ "internalType": "uint256"
409
+ }
410
+ ],
411
+ "outputs": [
412
+ {
413
+ "name": "",
414
+ "type": "bool",
415
+ "internalType": "bool"
416
+ }
417
+ ],
418
+ "stateMutability": "view"
419
+ },
420
+ {
421
+ "type": "function",
422
+ "name": "persistAllowed",
423
+ "inputs": [
424
+ {
425
+ "name": "handle",
426
+ "type": "uint256",
427
+ "internalType": "uint256"
428
+ },
429
+ {
430
+ "name": "account",
431
+ "type": "address",
432
+ "internalType": "address"
433
+ }
434
+ ],
435
+ "outputs": [
436
+ {
437
+ "name": "",
438
+ "type": "bool",
439
+ "internalType": "bool"
440
+ }
441
+ ],
442
+ "stateMutability": "view"
443
+ },
444
+ {
445
+ "type": "event",
446
+ "name": "AllowedForDecryption",
447
+ "inputs": [
448
+ {
449
+ "name": "handlesList",
450
+ "type": "uint256[]",
451
+ "indexed": false,
452
+ "internalType": "uint256[]"
453
+ }
454
+ ],
455
+ "anonymous": false
456
+ },
457
+ {
458
+ "type": "event",
459
+ "name": "EIP712DomainChanged",
460
+ "inputs": [],
461
+ "anonymous": false
462
+ },
463
+ {
464
+ "type": "event",
465
+ "name": "NewDelegation",
466
+ "inputs": [
467
+ {
468
+ "name": "sender",
469
+ "type": "address",
470
+ "indexed": true,
471
+ "internalType": "address"
472
+ },
473
+ {
474
+ "name": "delegatee",
475
+ "type": "address",
476
+ "indexed": true,
477
+ "internalType": "address"
478
+ },
479
+ {
480
+ "name": "contractAddress",
481
+ "type": "address",
482
+ "indexed": true,
483
+ "internalType": "address"
484
+ }
485
+ ],
486
+ "anonymous": false
487
+ },
488
+ {
489
+ "type": "error",
490
+ "name": "AlreadyDelegated",
491
+ "inputs": []
492
+ },
493
+ {
494
+ "type": "error",
495
+ "name": "DirectAllowForbidden",
496
+ "inputs": [
497
+ {
498
+ "name": "sender",
499
+ "type": "address",
500
+ "internalType": "address"
501
+ }
502
+ ]
503
+ },
504
+ {
505
+ "type": "error",
506
+ "name": "InvalidShortString",
507
+ "inputs": []
508
+ },
509
+ {
510
+ "type": "error",
511
+ "name": "PermissionInvalid_Disabled",
512
+ "inputs": []
513
+ },
514
+ {
515
+ "type": "error",
516
+ "name": "PermissionInvalid_Expired",
517
+ "inputs": []
518
+ },
519
+ {
520
+ "type": "error",
521
+ "name": "PermissionInvalid_IssuerSignature",
522
+ "inputs": []
523
+ },
524
+ {
525
+ "type": "error",
526
+ "name": "PermissionInvalid_RecipientSignature",
527
+ "inputs": []
528
+ },
529
+ {
530
+ "type": "error",
531
+ "name": "SenderCannotBeDelegateeAddress",
532
+ "inputs": []
533
+ },
534
+ {
535
+ "type": "error",
536
+ "name": "SenderNotAllowed",
537
+ "inputs": [
538
+ {
539
+ "name": "sender",
540
+ "type": "address",
541
+ "internalType": "address"
542
+ }
543
+ ]
544
+ },
545
+ {
546
+ "type": "error",
547
+ "name": "StringTooLong",
548
+ "inputs": [
549
+ {
550
+ "name": "str",
551
+ "type": "string",
552
+ "internalType": "string"
553
+ }
554
+ ]
555
+ }
556
+ ],
557
+ "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061011f575f3560e01c80636330a709116100ab57806384b0196e1161006f57806384b0196e1461030557806394d9184c14610329578063a8b7010014610359578063ae79f04a14610375578063ccd9a7cd146103a55761011f565b80636330a7091461024f57806365ce8df71461027f57806379a3a7fb1461029d5780637a9a598e146102b9578063846cd433146102e95761011f565b80633c3839ba116100f25780633c3839ba14610199578063484de822146101b55780634980f288146101d157806351b8fd20146102015780635faa299a1461021f5761011f565b80630d8e6e2c14610123578063267c4ae41461014157806335334c231461015f57806337e6b44f14610169575b5f5ffd5b61012b6103d5565b6040516101389190611ea8565b60405180910390f35b610149610450565b6040516101569190611ee2565b60405180910390f35b610167610458565b005b610183600480360381019061017e9190611f99565b610509565b6040516101909190611ee2565b60405180910390f35b6101b360048036038101906101ae9190612117565b610579565b005b6101cf60048036038101906101ca9190612171565b6106fa565b005b6101eb60048036038101906101e691906121f4565b61085b565b6040516101f8919061222e565b60405180910390f35b61020961086c565b6040516102169190612256565b60405180910390f35b61023960048036038101906102349190611f99565b610884565b6040516102469190611ee2565b60405180910390f35b6102696004803603810190610264919061226f565b6108b8565b6040516102769190611ee2565b60405180910390f35b6102876108ec565b6040516102949190612256565b60405180910390f35b6102b760048036038101906102b29190612171565b610907565b005b6102d360048036038101906102ce9190611f99565b610a4d565b6040516102e09190611ee2565b60405180910390f35b61030360048036038101906102fe9190611f99565b610a8a565b005b61030d610b93565b604051610320979695949392919061239a565b60405180910390f35b610343600480360381019061033e919061226f565b610c38565b6040516103509190611ee2565b60405180910390f35b610373600480360381019061036e919061241c565b610c6b565b005b61038f600480360381019061038a919061264e565b610f9b565b60405161039c9190611ee2565b60405180910390f35b6103bf60048036038101906103ba91906126a8565b6111f2565b6040516103cc9190611ee2565b60405180910390f35b60606040518060400160405280600381526020017f41434c00000000000000000000000000000000000000000000000000000000008152506104165f611391565b6104206001611391565b6104295f611391565b60405160200161043c94939291906127da565b604051602081830303815290604052905090565b5f6001905090565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104dc57336040517f3809a2430000000000000000000000000000000000000000000000000000000081526004016104d39190612256565b60405180910390fd5b5f5c5f5f5d6001810160015b8181101561050457805c5f825d5f815d506001810190506104e8565b505050565b5f5f61051361145b565b9050806001015f8581526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105fd57336040517f3809a2430000000000000000000000000000000000000000000000000000000081526004016105f49190612256565b60405180910390fd5b5f825190505f61060b61145b565b90505f5f90505b828110156106bc575f85828151811061062e5761062d612838565b5b602002602001015190506106428186610884565b61068357846040517fd0d2597600000000000000000000000000000000000000000000000000000000815260040161067a9190612256565b60405180910390fd5b6001836002015f8381526020019081526020015f205f6101000a81548160ff021916908315150217905550508080600101915050610612565b507f2fd616621b8415a2efb27b224024340ac767797553ce6fdf4c1adefd160504c6846040516106ec9190612865565b60405180910390a150505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461077e57336040517f3809a2430000000000000000000000000000000000000000000000000000000081526004016107759190612256565b60405180910390fd5b6107888382610884565b1580156107d5575073ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561081757806040517fd0d2597600000000000000000000000000000000000000000000000000000000815260040161080e9190612256565b60405180910390fd5b5f838360405160200161082b9291906128ea565b6040516020818303038152906040528051906020012090506001815d5f5c6001810182815d805f5d505050505050565b5f610865826114c1565b9050919050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d981565b5f61088f8383610a4d565b806108a0575061089f8383610509565b5b806108b057506108af83610c38565b5b905092915050565b5f5f6108c261145b565b9050806002015f8481526020019081526020015f205f9054906101000a900460ff16915050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d9905090565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461098b57336040517f3809a2430000000000000000000000000000000000000000000000000000000081526004016109829190612256565b60405180910390fd5b6109958382610884565b6109d657806040517fd0d259760000000000000000000000000000000000000000000000000000000081526004016109cd9190612256565b60405180910390fd5b5f6109df61145b565b90506001816001015f8681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050505050565b5f5f5f8484604051602001610a639291906128ea565b604051602081830303815290604052805190602001209050805c9150819250505092915050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b0e57336040517f3809a243000000000000000000000000000000000000000000000000000000008152600401610b059190612256565b60405180910390fd5b610b188282610884565b610b5957806040517fd0d25976000000000000000000000000000000000000000000000000000000008152600401610b509190612256565b60405180910390fd5b5f610b6261145b565b90506001815f015f8581526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f6060805f5f5f6060610ba46114da565b610bac611514565b46305f5f1b5f67ffffffffffffffff811115610bcb57610bca611fdb565b5b604051908082528060200260200182016040528015610bf95781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b5f5f610c4261145b565b9050805f015f8481526020019081526020015f205f9054906101000a900460ff16915050919050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cef57336040517f3809a243000000000000000000000000000000000000000000000000000000008152600401610ce69190612256565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d54576040517f30dc920300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610d5d61145b565b9050806003015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610e58576040517fd186046800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816003015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff03b7c0d4879b0bcbbf440794871f139c96fd13a145a8172b33b9cab5fa2830a60405160405180910390a4505050565b5f8242816020015167ffffffffffffffff161015610fe5576040517fed0764a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611007815f0151610ffd610ff88461154f565b6114c1565b8360c001516115a8565b61103d576040517f4c40eccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff161415801561109d575061109b816040015161109161108c84611654565b6114c1565b8360e001516115a8565b155b156110d4576040517f8e143bf700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81606001511415801561111857505f73ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff1614155b80156111a55750806080015173ffffffffffffffffffffffffffffffffffffffff1663b63391e8825f015183606001516040518363ffffffff1660e01b8152600401611165929190612915565b602060405180830381865afa158015611180573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a49190612966565b5b156111dc576040517fcbd3a96600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111e983855f0151610884565b91505092915050565b5f5f6111fc61145b565b9050806001015f8681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156112bc5750806001015f8681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156113865750806003015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b915050949350505050565b60605f600161139f846116b6565b0190505f8167ffffffffffffffff8111156113bd576113bc611fdb565b5b6040519080825280601f01601f1916602001820160405280156113ef5781602001600182028036833780820191505090505b5090505f82602083010190505b600115611450578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161144557611444612991565b5b0494505f85036113fc575b819350505050919050565b5f5f60ff5f1b1960017fc4eb438ffad04c606bb4f9c3576c0f142d5dc3782731029ea1ab95b6483220115f1c61149191906129eb565b6040516020016114a19190612a1e565b604051602081830303815290604052805190602001201690508091505090565b5f6114d36114cd611807565b836118bd565b9050919050565b606061150f5f7f00000000000000000000000000000000000000000000000000000000000000006118fd90919063ffffffff16565b905090565b606061154a60017f00000000000000000000000000000000000000000000000000000000000000006118fd90919063ffffffff16565b905090565b5f5f73ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff160361159757611590826119aa565b90506115a3565b6115a082611a1c565b90505b919050565b5f5f8473ffffffffffffffffffffffffffffffffffffffff163b0361163f575f5f6115d38585611a88565b50915091505f60038111156115eb576115ea612a37565b5b8160038111156115fe576115fd612a37565b5b14801561163657508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9250505061164d565b61164a848484611add565b90505b9392505050565b5f7f82af07a6c9eb6bb31a0c86f7f5cad0039589750ad5b4b925ed5741f7ad4e8d4b8260a001518360c001518051906020012060405160200161169993929190612a64565b604051602081830303815290604052805190602001209050919050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611712577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161170857611707612991565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061174f576d04ee2d6d415b85acef8100000000838161174557611744612991565b5b0492506020810190505b662386f26fc10000831061177e57662386f26fc10000838161177457611773612991565b5b0492506010810190505b6305f5e10083106117a7576305f5e100838161179d5761179c612991565b5b0492506008810190505b61271083106117cc5761271083816117c2576117c1612991565b5b0492506004810190505b606483106117ef57606483816117e5576117e4612991565b5b0492506002810190505b600a83106117fe576001810190505b80915050919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561188257507f000000000000000000000000000000000000000000000000000000000000000046145b156118af577f000000000000000000000000000000000000000000000000000000000000000090506118ba565b6118b7611bfc565b90505b90565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b606060ff5f1b83146119195761191283611c91565b90506119a4565b81805461192590612ac6565b80601f016020809104026020016040519081016040528092919081815260200182805461195190612ac6565b801561199c5780601f106119735761010080835404028352916020019161199c565b820191905f5260205f20905b81548152906001019060200180831161197f57829003601f168201915b505050505090505b92915050565b5f7f0ce0d938c38f948b8f9cf16098cd15ec62de132c8d422719ad270c5e2a101102825f015183602001518460400151856060015186608001518760a001516040516020016119ff9796959493929190612b05565b604051602081830303815290604052805190602001209050919050565b5f7f8549e986c64faf9b741179c61561f9d39f337cf9739f86178d84dabc6ca4cad5825f01518360200151846040015185606001518660800151604051602001611a6b96959493929190612b72565b604051602081830303815290604052805190602001209050919050565b5f5f5f6041845103611ac8575f5f5f602087015192506040870151915060608701515f1a9050611aba88828585611d03565b955095509550505050611ad6565b5f600285515f1b9250925092505b9250925092565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff168585604051602401611b0a929190612c23565b604051602081830303815290604052631626ba7e60e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611b5c9190612c8b565b5f60405180830381855afa9150503d805f8114611b94576040519150601f19603f3d011682016040523d82523d5f602084013e611b99565b606091505b5091509150818015611bad57506020815110155b8015611bf15750631626ba7e60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681806020019051810190611bef9190612cb5565b145b925050509392505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611c76959493929190612ce0565b60405160208183030381529060405280519060200120905090565b60605f611c9d83611dea565b90505f602067ffffffffffffffff811115611cbb57611cba611fdb565b5b6040519080825280601f01601f191660200182016040528015611ced5781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115611d3f575f600385925092509250611de0565b5f6001888888886040515f8152602001604052604051611d629493929190612d4c565b6020604051602081039080840390855afa158015611d82573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dd3575f60015f5f1b93509350935050611de0565b805f5f5f1b935093509350505b9450945094915050565b5f5f60ff835f1c169050601f811115611e2f576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e7a82611e38565b611e848185611e42565b9350611e94818560208601611e52565b611e9d81611e60565b840191505092915050565b5f6020820190508181035f830152611ec08184611e70565b905092915050565b5f8115159050919050565b611edc81611ec8565b82525050565b5f602082019050611ef55f830184611ed3565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b611f1e81611f0c565b8114611f28575f5ffd5b50565b5f81359050611f3981611f15565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f6882611f3f565b9050919050565b611f7881611f5e565b8114611f82575f5ffd5b50565b5f81359050611f9381611f6f565b92915050565b5f5f60408385031215611faf57611fae611f04565b5b5f611fbc85828601611f2b565b9250506020611fcd85828601611f85565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61201182611e60565b810181811067ffffffffffffffff821117156120305761202f611fdb565b5b80604052505050565b5f612042611efb565b905061204e8282612008565b919050565b5f67ffffffffffffffff82111561206d5761206c611fdb565b5b602082029050602081019050919050565b5f5ffd5b5f61209461208f84612053565b612039565b905080838252602082019050602084028301858111156120b7576120b661207e565b5b835b818110156120e057806120cc8882611f2b565b8452602084019350506020810190506120b9565b5050509392505050565b5f82601f8301126120fe576120fd611fd7565b5b813561210e848260208601612082565b91505092915050565b5f5f6040838503121561212d5761212c611f04565b5b5f83013567ffffffffffffffff81111561214a57612149611f08565b5b612156858286016120ea565b925050602061216785828601611f85565b9150509250929050565b5f5f5f6060848603121561218857612187611f04565b5b5f61219586828701611f2b565b93505060206121a686828701611f85565b92505060406121b786828701611f85565b9150509250925092565b5f819050919050565b6121d3816121c1565b81146121dd575f5ffd5b50565b5f813590506121ee816121ca565b92915050565b5f6020828403121561220957612208611f04565b5b5f612216848285016121e0565b91505092915050565b612228816121c1565b82525050565b5f6020820190506122415f83018461221f565b92915050565b61225081611f5e565b82525050565b5f6020820190506122695f830184612247565b92915050565b5f6020828403121561228457612283611f04565b5b5f61229184828501611f2b565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6122ce8161229a565b82525050565b6122dd81611f0c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61231581611f0c565b82525050565b5f612326838361230c565b60208301905092915050565b5f602082019050919050565b5f612348826122e3565b61235281856122ed565b935061235d836122fd565b805f5b8381101561238d578151612374888261231b565b975061237f83612332565b925050600181019050612360565b5085935050505092915050565b5f60e0820190506123ad5f83018a6122c5565b81810360208301526123bf8189611e70565b905081810360408301526123d38188611e70565b90506123e260608301876122d4565b6123ef6080830186612247565b6123fc60a083018561221f565b81810360c083015261240e818461233e565b905098975050505050505050565b5f5f6040838503121561243257612431611f04565b5b5f61243f85828601611f85565b925050602061245085828601611f85565b9150509250929050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff82169050919050565b61247e81612462565b8114612488575f5ffd5b50565b5f8135905061249981612475565b92915050565b5f5ffd5b5f67ffffffffffffffff8211156124bd576124bc611fdb565b5b6124c682611e60565b9050602081019050919050565b828183375f83830152505050565b5f6124f36124ee846124a3565b612039565b90508281526020810184848401111561250f5761250e61249f565b5b61251a8482856124d3565b509392505050565b5f82601f83011261253657612535611fd7565b5b81356125468482602086016124e1565b91505092915050565b5f61010082840312156125655761256461245a565b5b612570610100612039565b90505f61257f84828501611f85565b5f8301525060206125928482850161248b565b60208301525060406125a684828501611f85565b60408301525060606125ba84828501611f2b565b60608301525060806125ce84828501611f85565b60808301525060a06125e2848285016121e0565b60a08301525060c082013567ffffffffffffffff8111156126065761260561245e565b5b61261284828501612522565b60c08301525060e082013567ffffffffffffffff8111156126365761263561245e565b5b61264284828501612522565b60e08301525092915050565b5f5f6040838503121561266457612663611f04565b5b5f83013567ffffffffffffffff81111561268157612680611f08565b5b61268d8582860161254f565b925050602061269e85828601611f2b565b9150509250929050565b5f5f5f5f608085870312156126c0576126bf611f04565b5b5f6126cd87828801611f85565b94505060206126de87828801611f2b565b93505060406126ef87828801611f85565b925050606061270087828801611f85565b91505092959194509250565b5f81905092915050565b5f61272082611e38565b61272a818561270c565b935061273a818560208601611e52565b80840191505092915050565b7f20760000000000000000000000000000000000000000000000000000000000005f82015250565b5f61277a60028361270c565b915061278582612746565b600282019050919050565b7f2e000000000000000000000000000000000000000000000000000000000000005f82015250565b5f6127c460018361270c565b91506127cf82612790565b600182019050919050565b5f6127e58287612716565b91506127f08261276e565b91506127fc8286612716565b9150612807826127b8565b91506128138285612716565b915061281e826127b8565b915061282a8284612716565b915081905095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020820190508181035f83015261287d818461233e565b905092915050565b5f819050919050565b61289f61289a82611f0c565b612885565b82525050565b5f8160601b9050919050565b5f6128bb826128a5565b9050919050565b5f6128cc826128b1565b9050919050565b6128e46128df82611f5e565b6128c2565b82525050565b5f6128f5828561288e565b60208201915061290582846128d3565b6014820191508190509392505050565b5f6040820190506129285f830185612247565b61293560208301846122d4565b9392505050565b61294581611ec8565b811461294f575f5ffd5b50565b5f815190506129608161293c565b92915050565b5f6020828403121561297b5761297a611f04565b5b5f61298884828501612952565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6129f582611f0c565b9150612a0083611f0c565b9250828203905081811115612a1857612a176129be565b5b92915050565b5f602082019050612a315f8301846122d4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f606082019050612a775f83018661221f565b612a84602083018561221f565b612a91604083018461221f565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612add57607f821691505b602082108103612af057612aef612a99565b5b50919050565b612aff81612462565b82525050565b5f60e082019050612b185f83018a61221f565b612b256020830189612247565b612b326040830188612af6565b612b3f6060830187612247565b612b4c60808301866122d4565b612b5960a0830185612247565b612b6660c083018461221f565b98975050505050505050565b5f60c082019050612b855f83018961221f565b612b926020830188612247565b612b9f6040830187612af6565b612bac6060830186612247565b612bb960808301856122d4565b612bc660a0830184612247565b979650505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f612bf582612bd1565b612bff8185612bdb565b9350612c0f818560208601611e52565b612c1881611e60565b840191505092915050565b5f604082019050612c365f83018561221f565b8181036020830152612c488184612beb565b90509392505050565b5f81905092915050565b5f612c6582612bd1565b612c6f8185612c51565b9350612c7f818560208601611e52565b80840191505092915050565b5f612c968284612c5b565b915081905092915050565b5f81519050612caf816121ca565b92915050565b5f60208284031215612cca57612cc9611f04565b5b5f612cd784828501612ca1565b91505092915050565b5f60a082019050612cf35f83018861221f565b612d00602083018761221f565b612d0d604083018661221f565b612d1a60608301856122d4565b612d276080830184612247565b9695505050505050565b5f60ff82169050919050565b612d4681612d31565b82525050565b5f608082019050612d5f5f83018761221f565b612d6c6020830186612d3d565b612d79604083018561221f565b612d86606083018461221f565b9594505050505056fea2646970667358221220aabe60cb83f239e66cce420fafc236c0945f92dd788733f22fb30e71f86082d964736f6c634300081e0033"
558
+ } satisfies MocksArtifact;