@towns-protocol/generated 0.0.370 → 0.0.372

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.
@@ -1 +1 @@
1
- 6cd347125e42c7aa2f12dc83f5835096a164b4bc
1
+ 04edd8e9a258abbc1c23a37b72a64621164bbc13
@@ -160,6 +160,19 @@
160
160
  ],
161
161
  "stateMutability": "pure"
162
162
  },
163
+ {
164
+ "type": "function",
165
+ "name": "getSpaceFactory",
166
+ "inputs": [],
167
+ "outputs": [
168
+ {
169
+ "name": "",
170
+ "type": "address",
171
+ "internalType": "address"
172
+ }
173
+ ],
174
+ "stateMutability": "view"
175
+ },
163
176
  {
164
177
  "type": "function",
165
178
  "name": "getSubscription",
@@ -220,6 +233,16 @@
220
233
  "name": "duration",
221
234
  "type": "uint64",
222
235
  "internalType": "uint64"
236
+ },
237
+ {
238
+ "name": "lastKnownRenewalPrice",
239
+ "type": "uint256",
240
+ "internalType": "uint256"
241
+ },
242
+ {
243
+ "name": "lastKnownExpiresAt",
244
+ "type": "uint256",
245
+ "internalType": "uint256"
223
246
  }
224
247
  ]
225
248
  }
@@ -460,6 +483,19 @@
460
483
  "outputs": [],
461
484
  "stateMutability": "nonpayable"
462
485
  },
486
+ {
487
+ "type": "function",
488
+ "name": "setSpaceFactory",
489
+ "inputs": [
490
+ {
491
+ "name": "spaceFactory",
492
+ "type": "address",
493
+ "internalType": "address"
494
+ }
495
+ ],
496
+ "outputs": [],
497
+ "stateMutability": "nonpayable"
498
+ },
463
499
  {
464
500
  "type": "function",
465
501
  "name": "supportsInterface",
@@ -741,6 +777,19 @@
741
777
  ],
742
778
  "anonymous": false
743
779
  },
780
+ {
781
+ "type": "event",
782
+ "name": "SpaceFactoryChanged",
783
+ "inputs": [
784
+ {
785
+ "name": "spaceFactory",
786
+ "type": "address",
787
+ "indexed": true,
788
+ "internalType": "address"
789
+ }
790
+ ],
791
+ "anonymous": false
792
+ },
744
793
  {
745
794
  "type": "event",
746
795
  "name": "SubscriptionActivated",
@@ -1065,6 +1114,11 @@
1065
1114
  "name": "SubscriptionModule__MembershipBanned",
1066
1115
  "inputs": []
1067
1116
  },
1117
+ {
1118
+ "type": "error",
1119
+ "name": "SubscriptionModule__MembershipExpired",
1120
+ "inputs": []
1121
+ },
1068
1122
  {
1069
1123
  "type": "error",
1070
1124
  "name": "SubscriptionModule__NotSupported",
@@ -1080,6 +1134,16 @@
1080
1134
  "name": "SubscriptionModule__RenewalNotDue",
1081
1135
  "inputs": []
1082
1136
  },
1137
+ {
1138
+ "type": "error",
1139
+ "name": "SubscriptionModule__SubscriptionAlreadyInstalled",
1140
+ "inputs": []
1141
+ },
1142
+ {
1143
+ "type": "error",
1144
+ "name": "SubscriptionModule__SubscriptionNotInstalled",
1145
+ "inputs": []
1146
+ },
1083
1147
  {
1084
1148
  "type": "error",
1085
1149
  "name": "UnexpectedDataPassed",
@@ -160,6 +160,19 @@ export default [
160
160
  ],
161
161
  "stateMutability": "pure"
162
162
  },
163
+ {
164
+ "type": "function",
165
+ "name": "getSpaceFactory",
166
+ "inputs": [],
167
+ "outputs": [
168
+ {
169
+ "name": "",
170
+ "type": "address",
171
+ "internalType": "address"
172
+ }
173
+ ],
174
+ "stateMutability": "view"
175
+ },
163
176
  {
164
177
  "type": "function",
165
178
  "name": "getSubscription",
@@ -220,6 +233,16 @@ export default [
220
233
  "name": "duration",
221
234
  "type": "uint64",
222
235
  "internalType": "uint64"
236
+ },
237
+ {
238
+ "name": "lastKnownRenewalPrice",
239
+ "type": "uint256",
240
+ "internalType": "uint256"
241
+ },
242
+ {
243
+ "name": "lastKnownExpiresAt",
244
+ "type": "uint256",
245
+ "internalType": "uint256"
223
246
  }
224
247
  ]
225
248
  }
@@ -460,6 +483,19 @@ export default [
460
483
  "outputs": [],
461
484
  "stateMutability": "nonpayable"
462
485
  },
486
+ {
487
+ "type": "function",
488
+ "name": "setSpaceFactory",
489
+ "inputs": [
490
+ {
491
+ "name": "spaceFactory",
492
+ "type": "address",
493
+ "internalType": "address"
494
+ }
495
+ ],
496
+ "outputs": [],
497
+ "stateMutability": "nonpayable"
498
+ },
463
499
  {
464
500
  "type": "function",
465
501
  "name": "supportsInterface",
@@ -741,6 +777,19 @@ export default [
741
777
  ],
742
778
  "anonymous": false
743
779
  },
780
+ {
781
+ "type": "event",
782
+ "name": "SpaceFactoryChanged",
783
+ "inputs": [
784
+ {
785
+ "name": "spaceFactory",
786
+ "type": "address",
787
+ "indexed": true,
788
+ "internalType": "address"
789
+ }
790
+ ],
791
+ "anonymous": false
792
+ },
744
793
  {
745
794
  "type": "event",
746
795
  "name": "SubscriptionActivated",
@@ -1065,6 +1114,11 @@ export default [
1065
1114
  "name": "SubscriptionModule__MembershipBanned",
1066
1115
  "inputs": []
1067
1116
  },
1117
+ {
1118
+ "type": "error",
1119
+ "name": "SubscriptionModule__MembershipExpired",
1120
+ "inputs": []
1121
+ },
1068
1122
  {
1069
1123
  "type": "error",
1070
1124
  "name": "SubscriptionModule__NotSupported",
@@ -1080,6 +1134,16 @@ export default [
1080
1134
  "name": "SubscriptionModule__RenewalNotDue",
1081
1135
  "inputs": []
1082
1136
  },
1137
+ {
1138
+ "type": "error",
1139
+ "name": "SubscriptionModule__SubscriptionAlreadyInstalled",
1140
+ "inputs": []
1141
+ },
1142
+ {
1143
+ "type": "error",
1144
+ "name": "SubscriptionModule__SubscriptionNotInstalled",
1145
+ "inputs": []
1146
+ },
1083
1147
  {
1084
1148
  "type": "error",
1085
1149
  "name": "UnexpectedDataPassed",
@@ -35,6 +35,8 @@ export type SubscriptionStruct = {
35
35
  nextRenewalTime: BigNumberish;
36
36
  active: boolean;
37
37
  duration: BigNumberish;
38
+ lastKnownRenewalPrice: BigNumberish;
39
+ lastKnownExpiresAt: BigNumberish;
38
40
  };
39
41
 
40
42
  export type SubscriptionStructOutput = [
@@ -45,6 +47,8 @@ export type SubscriptionStructOutput = [
45
47
  number,
46
48
  number,
47
49
  boolean,
50
+ BigNumber,
51
+ BigNumber,
48
52
  BigNumber
49
53
  ] & {
50
54
  tokenId: BigNumber;
@@ -55,6 +59,8 @@ export type SubscriptionStructOutput = [
55
59
  nextRenewalTime: number;
56
60
  active: boolean;
57
61
  duration: BigNumber;
62
+ lastKnownRenewalPrice: BigNumber;
63
+ lastKnownExpiresAt: BigNumber;
58
64
  };
59
65
 
60
66
  export type PackedUserOperationStruct = {
@@ -113,6 +119,7 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
113
119
  "batchProcessRenewals((address,uint32)[])": FunctionFragment;
114
120
  "getEntityIds(address)": FunctionFragment;
115
121
  "getRenewalBuffer(uint256)": FunctionFragment;
122
+ "getSpaceFactory()": FunctionFragment;
116
123
  "getSubscription(address,uint32)": FunctionFragment;
117
124
  "grantOperator(address)": FunctionFragment;
118
125
  "isOperator(address)": FunctionFragment;
@@ -124,6 +131,7 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
124
131
  "preSignatureValidationHook(uint32,address,bytes32,bytes)": FunctionFragment;
125
132
  "preUserOpValidationHook(uint32,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32)": FunctionFragment;
126
133
  "revokeOperator(address)": FunctionFragment;
134
+ "setSpaceFactory(address)": FunctionFragment;
127
135
  "supportsInterface(bytes4)": FunctionFragment;
128
136
  "validateRuntime(address,uint32,address,uint256,bytes,bytes)": FunctionFragment;
129
137
  "validateSignature(address,uint32,address,bytes32,bytes)": FunctionFragment;
@@ -143,6 +151,7 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
143
151
  | "batchProcessRenewals"
144
152
  | "getEntityIds"
145
153
  | "getRenewalBuffer"
154
+ | "getSpaceFactory"
146
155
  | "getSubscription"
147
156
  | "grantOperator"
148
157
  | "isOperator"
@@ -154,6 +163,7 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
154
163
  | "preSignatureValidationHook"
155
164
  | "preUserOpValidationHook"
156
165
  | "revokeOperator"
166
+ | "setSpaceFactory"
157
167
  | "supportsInterface"
158
168
  | "validateRuntime"
159
169
  | "validateSignature"
@@ -204,6 +214,10 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
204
214
  functionFragment: "getRenewalBuffer",
205
215
  values: [BigNumberish]
206
216
  ): string;
217
+ encodeFunctionData(
218
+ functionFragment: "getSpaceFactory",
219
+ values?: undefined
220
+ ): string;
207
221
  encodeFunctionData(
208
222
  functionFragment: "getSubscription",
209
223
  values: [string, BigNumberish]
@@ -242,6 +256,10 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
242
256
  functionFragment: "revokeOperator",
243
257
  values: [string]
244
258
  ): string;
259
+ encodeFunctionData(
260
+ functionFragment: "setSpaceFactory",
261
+ values: [string]
262
+ ): string;
245
263
  encodeFunctionData(
246
264
  functionFragment: "supportsInterface",
247
265
  values: [BytesLike]
@@ -303,6 +321,10 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
303
321
  functionFragment: "getRenewalBuffer",
304
322
  data: BytesLike
305
323
  ): Result;
324
+ decodeFunctionResult(
325
+ functionFragment: "getSpaceFactory",
326
+ data: BytesLike
327
+ ): Result;
306
328
  decodeFunctionResult(
307
329
  functionFragment: "getSubscription",
308
330
  data: BytesLike
@@ -338,6 +360,10 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
338
360
  functionFragment: "revokeOperator",
339
361
  data: BytesLike
340
362
  ): Result;
363
+ decodeFunctionResult(
364
+ functionFragment: "setSpaceFactory",
365
+ data: BytesLike
366
+ ): Result;
341
367
  decodeFunctionResult(
342
368
  functionFragment: "supportsInterface",
343
369
  data: BytesLike
@@ -363,6 +389,7 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
363
389
  "OperatorGranted(address)": EventFragment;
364
390
  "OperatorRevoked(address)": EventFragment;
365
391
  "OwnershipTransferred(address,address)": EventFragment;
392
+ "SpaceFactoryChanged(address)": EventFragment;
366
393
  "SubscriptionActivated(address,uint32)": EventFragment;
367
394
  "SubscriptionConfigured(address,uint32,address,uint256,uint64,uint256)": EventFragment;
368
395
  "SubscriptionDeactivated(address,uint32)": EventFragment;
@@ -380,6 +407,7 @@ export interface SubscriptionModuleFacetInterface extends utils.Interface {
380
407
  getEvent(nameOrSignatureOrTopic: "OperatorGranted"): EventFragment;
381
408
  getEvent(nameOrSignatureOrTopic: "OperatorRevoked"): EventFragment;
382
409
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
410
+ getEvent(nameOrSignatureOrTopic: "SpaceFactoryChanged"): EventFragment;
383
411
  getEvent(nameOrSignatureOrTopic: "SubscriptionActivated"): EventFragment;
384
412
  getEvent(nameOrSignatureOrTopic: "SubscriptionConfigured"): EventFragment;
385
413
  getEvent(nameOrSignatureOrTopic: "SubscriptionDeactivated"): EventFragment;
@@ -463,6 +491,17 @@ export type OwnershipTransferredEvent = TypedEvent<
463
491
  export type OwnershipTransferredEventFilter =
464
492
  TypedEventFilter<OwnershipTransferredEvent>;
465
493
 
494
+ export interface SpaceFactoryChangedEventObject {
495
+ spaceFactory: string;
496
+ }
497
+ export type SpaceFactoryChangedEvent = TypedEvent<
498
+ [string],
499
+ SpaceFactoryChangedEventObject
500
+ >;
501
+
502
+ export type SpaceFactoryChangedEventFilter =
503
+ TypedEventFilter<SpaceFactoryChangedEvent>;
504
+
466
505
  export interface SubscriptionActivatedEventObject {
467
506
  account: string;
468
507
  entityId: number;
@@ -633,6 +672,8 @@ export interface SubscriptionModuleFacet extends BaseContract {
633
672
  overrides?: CallOverrides
634
673
  ): Promise<[BigNumber]>;
635
674
 
675
+ getSpaceFactory(overrides?: CallOverrides): Promise<[string]>;
676
+
636
677
  getSubscription(
637
678
  account: string,
638
679
  entityId: BigNumberish,
@@ -692,6 +733,11 @@ export interface SubscriptionModuleFacet extends BaseContract {
692
733
  overrides?: Overrides & { from?: string }
693
734
  ): Promise<ContractTransaction>;
694
735
 
736
+ setSpaceFactory(
737
+ spaceFactory: string,
738
+ overrides?: Overrides & { from?: string }
739
+ ): Promise<ContractTransaction>;
740
+
695
741
  supportsInterface(
696
742
  interfaceId: BytesLike,
697
743
  overrides?: CallOverrides
@@ -760,6 +806,8 @@ export interface SubscriptionModuleFacet extends BaseContract {
760
806
  overrides?: CallOverrides
761
807
  ): Promise<BigNumber>;
762
808
 
809
+ getSpaceFactory(overrides?: CallOverrides): Promise<string>;
810
+
763
811
  getSubscription(
764
812
  account: string,
765
813
  entityId: BigNumberish,
@@ -819,6 +867,11 @@ export interface SubscriptionModuleFacet extends BaseContract {
819
867
  overrides?: Overrides & { from?: string }
820
868
  ): Promise<ContractTransaction>;
821
869
 
870
+ setSpaceFactory(
871
+ spaceFactory: string,
872
+ overrides?: Overrides & { from?: string }
873
+ ): Promise<ContractTransaction>;
874
+
822
875
  supportsInterface(
823
876
  interfaceId: BytesLike,
824
877
  overrides?: CallOverrides
@@ -885,6 +938,8 @@ export interface SubscriptionModuleFacet extends BaseContract {
885
938
  overrides?: CallOverrides
886
939
  ): Promise<BigNumber>;
887
940
 
941
+ getSpaceFactory(overrides?: CallOverrides): Promise<string>;
942
+
888
943
  getSubscription(
889
944
  account: string,
890
945
  entityId: BigNumberish,
@@ -932,6 +987,11 @@ export interface SubscriptionModuleFacet extends BaseContract {
932
987
 
933
988
  revokeOperator(operator: string, overrides?: CallOverrides): Promise<void>;
934
989
 
990
+ setSpaceFactory(
991
+ spaceFactory: string,
992
+ overrides?: CallOverrides
993
+ ): Promise<void>;
994
+
935
995
  supportsInterface(
936
996
  interfaceId: BytesLike,
937
997
  overrides?: CallOverrides
@@ -1010,6 +1070,13 @@ export interface SubscriptionModuleFacet extends BaseContract {
1010
1070
  newOwner?: string | null
1011
1071
  ): OwnershipTransferredEventFilter;
1012
1072
 
1073
+ "SpaceFactoryChanged(address)"(
1074
+ spaceFactory?: string | null
1075
+ ): SpaceFactoryChangedEventFilter;
1076
+ SpaceFactoryChanged(
1077
+ spaceFactory?: string | null
1078
+ ): SpaceFactoryChangedEventFilter;
1079
+
1013
1080
  "SubscriptionActivated(address,uint32)"(
1014
1081
  account?: string | null,
1015
1082
  entityId?: BigNumberish | null
@@ -1142,6 +1209,8 @@ export interface SubscriptionModuleFacet extends BaseContract {
1142
1209
  overrides?: CallOverrides
1143
1210
  ): Promise<BigNumber>;
1144
1211
 
1212
+ getSpaceFactory(overrides?: CallOverrides): Promise<BigNumber>;
1213
+
1145
1214
  getSubscription(
1146
1215
  account: string,
1147
1216
  entityId: BigNumberish,
@@ -1201,6 +1270,11 @@ export interface SubscriptionModuleFacet extends BaseContract {
1201
1270
  overrides?: Overrides & { from?: string }
1202
1271
  ): Promise<BigNumber>;
1203
1272
 
1273
+ setSpaceFactory(
1274
+ spaceFactory: string,
1275
+ overrides?: Overrides & { from?: string }
1276
+ ): Promise<BigNumber>;
1277
+
1204
1278
  supportsInterface(
1205
1279
  interfaceId: BytesLike,
1206
1280
  overrides?: CallOverrides
@@ -1270,6 +1344,8 @@ export interface SubscriptionModuleFacet extends BaseContract {
1270
1344
  overrides?: CallOverrides
1271
1345
  ): Promise<PopulatedTransaction>;
1272
1346
 
1347
+ getSpaceFactory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1348
+
1273
1349
  getSubscription(
1274
1350
  account: string,
1275
1351
  entityId: BigNumberish,
@@ -1332,6 +1408,11 @@ export interface SubscriptionModuleFacet extends BaseContract {
1332
1408
  overrides?: Overrides & { from?: string }
1333
1409
  ): Promise<PopulatedTransaction>;
1334
1410
 
1411
+ setSpaceFactory(
1412
+ spaceFactory: string,
1413
+ overrides?: Overrides & { from?: string }
1414
+ ): Promise<PopulatedTransaction>;
1415
+
1335
1416
  supportsInterface(
1336
1417
  interfaceId: BytesLike,
1337
1418
  overrides?: CallOverrides
@@ -170,6 +170,19 @@ const _abi = [
170
170
  ],
171
171
  stateMutability: "pure",
172
172
  },
173
+ {
174
+ type: "function",
175
+ name: "getSpaceFactory",
176
+ inputs: [],
177
+ outputs: [
178
+ {
179
+ name: "",
180
+ type: "address",
181
+ internalType: "address",
182
+ },
183
+ ],
184
+ stateMutability: "view",
185
+ },
173
186
  {
174
187
  type: "function",
175
188
  name: "getSubscription",
@@ -231,6 +244,16 @@ const _abi = [
231
244
  type: "uint64",
232
245
  internalType: "uint64",
233
246
  },
247
+ {
248
+ name: "lastKnownRenewalPrice",
249
+ type: "uint256",
250
+ internalType: "uint256",
251
+ },
252
+ {
253
+ name: "lastKnownExpiresAt",
254
+ type: "uint256",
255
+ internalType: "uint256",
256
+ },
234
257
  ],
235
258
  },
236
259
  ],
@@ -470,6 +493,19 @@ const _abi = [
470
493
  outputs: [],
471
494
  stateMutability: "nonpayable",
472
495
  },
496
+ {
497
+ type: "function",
498
+ name: "setSpaceFactory",
499
+ inputs: [
500
+ {
501
+ name: "spaceFactory",
502
+ type: "address",
503
+ internalType: "address",
504
+ },
505
+ ],
506
+ outputs: [],
507
+ stateMutability: "nonpayable",
508
+ },
473
509
  {
474
510
  type: "function",
475
511
  name: "supportsInterface",
@@ -751,6 +787,19 @@ const _abi = [
751
787
  ],
752
788
  anonymous: false,
753
789
  },
790
+ {
791
+ type: "event",
792
+ name: "SpaceFactoryChanged",
793
+ inputs: [
794
+ {
795
+ name: "spaceFactory",
796
+ type: "address",
797
+ indexed: true,
798
+ internalType: "address",
799
+ },
800
+ ],
801
+ anonymous: false,
802
+ },
754
803
  {
755
804
  type: "event",
756
805
  name: "SubscriptionActivated",
@@ -1075,6 +1124,11 @@ const _abi = [
1075
1124
  name: "SubscriptionModule__MembershipBanned",
1076
1125
  inputs: [],
1077
1126
  },
1127
+ {
1128
+ type: "error",
1129
+ name: "SubscriptionModule__MembershipExpired",
1130
+ inputs: [],
1131
+ },
1078
1132
  {
1079
1133
  type: "error",
1080
1134
  name: "SubscriptionModule__NotSupported",
@@ -1090,6 +1144,16 @@ const _abi = [
1090
1144
  name: "SubscriptionModule__RenewalNotDue",
1091
1145
  inputs: [],
1092
1146
  },
1147
+ {
1148
+ type: "error",
1149
+ name: "SubscriptionModule__SubscriptionAlreadyInstalled",
1150
+ inputs: [],
1151
+ },
1152
+ {
1153
+ type: "error",
1154
+ name: "SubscriptionModule__SubscriptionNotInstalled",
1155
+ inputs: [],
1156
+ },
1093
1157
  {
1094
1158
  type: "error",
1095
1159
  name: "UnexpectedDataPassed",
@@ -1098,7 +1162,7 @@ const _abi = [
1098
1162
  ] as const;
1099
1163
 
1100
1164
  const _bytecode =
1101
- "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b613cf8806100ca5f395ff3fe608060405234801561000f575f5ffd5b50600436106101a5575f3560e01c80636d61fe70116100e8578063a07da64711610093578063cfdbf2541161006e578063cfdbf254146104ae578063e348da13146104b6578063e7db7f7e146104c9578063fad8b32a14610533575f5ffd5b8063a07da64714610452578063a1308f2714610465578063c1a287e2146104a4575f5ffd5b8063885c1d09116100c3578063885c1d09146102c45780638a91b0e3146102d75780639e94f3ab146102ea575f5ffd5b80636d61fe701461028b5780636d70f7ae1461029e5780638522ddcb146102b1575f5ffd5b80632a3d428c116101535780633f41826e1161012e5780633f41826e146102495780634306ea801461025c578063465d33e01461026f5780636a0df59e14610282575f5ffd5b80632a3d428c146101e85780633d6bda32146102165780633e5f609114610229575f5ffd5b80630c288470116101835780630c288470146101fb5780631313f410146102035780631e8ffc7f1461020d575f5ffd5b806301ffc9a7146101a95780630972a3e6146101d15780630ab8785f146101e8575b5f5ffd5b6101bc6101b736600461356b565b610546565b60405190151581526020015b60405180910390f35b6101da61a8c081565b6040519081526020016101c8565b6101da6101f63660046135c2565b6105de565b6101da607881565b61020b6105e8565b005b6101da610e1081565b61020b610224366004613681565b6106c8565b61023c61023736600461371c565b6106fa565b6040516101c89190613737565b61020b610257366004613779565b610749565b61020b61026a3660046137e5565b610779565b61020b61027d3660046137fe565b610ba8565b6101da61546081565b61020b6102993660046138ab565b610c8b565b6101bc6102ac36600461371c565b6111fc565b6101da6102bf3660046138ea565b611227565b61020b6102d2366004613901565b611231565b61020b6102e53660046138ab565b611e69565b6104456102f8366004613972565b60408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860073ffffffffffffffffffffffffffffffffffffffff8085165f90815260019283016020908152604080832063ffffffff8816845282529182902082516101008101845281548152948101549185019190915260028101549283169184019190915264ffffffffff74010000000000000000000000000000000000000000830481166060850152790100000000000000000000000000000000000000000000000000909204821660808401526003015490811660a083015260ff65010000000000820416151560c083015267ffffffffffffffff66010000000000009091041660e0820152905092915050565b6040516101c891906139a5565b61020b6104603660046137e5565b611ffb565b604080518082018252601f81527f746f776e732e737562736372697074696f6e2d6d6f64756c652e312e302e3000602082015290516101c89190613a91565b6101da6203f48081565b6101da603281565b61020b6104c436600461371c565b6121aa565b6105026104d7366004613aa3565b7fffffffff000000000000000000000000000000000000000000000000000000009695505050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c8565b61020b61054136600461371c565b612298565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f46c0c1b40000000000000000000000000000000000000000000000000000000014806105d857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60015b9392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661064b576040517f77a399b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106747f3a2e81a800000000000000000000000000000000000000000000000000000000612381565b61069d7fab3e34c100000000000000000000000000000000000000000000000000000000612381565b6106c67f28171ad000000000000000000000000000000000000000000000000000000000612381565b565b6106f17fabbbbc73000000000000000000000000000000000000000000000000000000006124d6565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb8602602052604090206060906105d8906124de565b6107727fabbbbc73000000000000000000000000000000000000000000000000000000006124d6565b5050505050565b688000000000ab143c06466001036107a357805c1561079b57805f526004601cfd5b30815d6107b8565b308154036107b457805f526004601cfd5b3081555b507fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb86006107e58133846124ef565b610812576108127faacf701b000000000000000000000000000000000000000000000000000000006124d6565b335f908152600182016020908152604080832063ffffffff861684529091529020600381015465010000000000900460ff1615610872576108727ff618dcd6000000000000000000000000000000000000000000000000000000006124d6565b600281015481546040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101919091525f9173ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156108e4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109089190613b21565b90503373ffffffffffffffffffffffffffffffffffffffff821614610950576109507f59530ce9000000000000000000000000000000000000000000000000000000006124d6565b600282015482546040517f17c9570900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216915f9183916317c95709916109b09160040190815260200190565b602060405180830381865afa1580156109cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ef9190613b3c565b90505f8273ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5f9190613b53565b67ffffffffffffffff1690505f610a768383612530565b600387015490915064ffffffffff808316911614610b02576003860180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff831690811790915560405190815263ffffffff89169033907fa1d0c7cfbaf330ea81d2b0cac3c06d95401230169e4bceea6ffc02233ef011519060200160405180910390a35b6003860180547fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff166501000000000017905560405163ffffffff89169033907f8134c93b482584112545c85fb3aa70e029203fd8fd1e2fe0d73c94122859a797905f90a350505050505050610b75600190565b15610b9857688000000000ab143c0646600103610b93575f815d5050565b805550565b5f688000000000ab143c065d5b50565b73ffffffffffffffffffffffffffffffffffffffff86163014610bee57610bee7f90467bf5000000000000000000000000000000000000000000000000000000006124d6565b73ffffffffffffffffffffffffffffffffffffffff88165f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb86016020908152604080832063ffffffff8b16845290915290206003015465010000000000900460ff1680610c8057610c807fe01d3320000000000000000000000000000000000000000000000000000000006124d6565b505050505050505050565b688000000000ab143c0646600103610cb557805c15610cad57805f526004601cfd5b30815d610cca565b30815403610cc657805f526004601cfd5b3081555b505f8080610cda84860186613b7a565b925092509250610ce9826125a7565b8263ffffffff165f03610d1f57610d1f7faacf701b000000000000000000000000000000000000000000000000000000006124d6565b6040517fc57a9c560000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff83169063c57a9c5690602401602060405180830381865afa158015610d88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dac9190613ba5565b15610dda57610dda7f366b8258000000000000000000000000000000000000000000000000000000006124d6565b6040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101829052339073ffffffffffffffffffffffffffffffffffffffff841690636352211e90602401602060405180830381865afa158015610e45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e699190613b21565b73ffffffffffffffffffffffffffffffffffffffff1614610ead57610ead7ff107dccb000000000000000000000000000000000000000000000000000000006124d6565b335f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb8602602052604090207fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860090610f0f9063ffffffff868116906125eb16565b610f3c57610f3c7faacf701b000000000000000000000000000000000000000000000000000000006124d6565b6040517f17c957090000000000000000000000000000000000000000000000000000000081526004810183905283905f9073ffffffffffffffffffffffffffffffffffffffff8316906317c9570990602401602060405180830381865afa158015610fa9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcd9190613b3c565b90505f8273ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611019573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103d9190613b53565b335f908152600186016020908152604080832063ffffffff8c168452909152902060028101805473ffffffffffffffffffffffffffffffffffffffff8a167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790556003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff166501000000000017905586815567ffffffffffffffff9190911691506110ef426125f6565b8160020160146101000a81548164ffffffffff021916908364ffffffffff16021790555061111d8383612530565b6003820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff929092169182179055604080518881526020810192909252810184905273ffffffffffffffffffffffffffffffffffffffff88169063ffffffff8a169033907f8c6c35fff224538ee3da0324c24ba58476e48a9c3f3ec18b6f5c296d14d3086d9060600160405180910390a450505050505050506111c7600190565b156111ec57688000000000ab143c06466001036111e6575f815d505050565b80555050565b5f688000000000ab143c065d5050565b5f6105d87fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860083612610565b5f6105d8826126e2565b688000000000ab143c064660010361125b57805c1561125357805f526004601cfd5b30815d611270565b3081540361126c57805f526004601cfd5b3081555b508060328111156112a4576112a47f2efeb701000000000000000000000000000000000000000000000000000000006124d6565b805f036112d4576112d47f8ac7f055000000000000000000000000000000000000000000000000000000006124d6565b7fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb86006112ff8133612610565b61132c5761132c7f59530ce9000000000000000000000000000000000000000000000000000000006124d6565b5f5f5b83811015611e5d575f836001015f88888581811061134f5761134f613bc4565b611365926020604090920201908101915061371c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8888858181106113b1576113b1613bc4565b90506040020160200160208101906113c991906137e5565b63ffffffff16815260208101919091526040015f2060038101549091504264ffffffffff90911611156114965786868381811061140857611408613bc4565b905060400201602001602081019061142091906137e5565b63ffffffff1687878481811061143857611438613bc4565b61144e926020604090920201908101915061371c565b73ffffffffffffffffffffffffffffffffffffffff167ffaea115d6b9a6bc3133af871ecb2f222b8d63f750071a320a65fe4c64e07502360405160405180910390a350611e55565b600381015465010000000000900460ff16611586578686838181106114bd576114bd613bc4565b90506040020160200160208101906114d591906137e5565b63ffffffff168787848181106114ed576114ed613bc4565b611503926020604090920201908101915061371c565b73ffffffffffffffffffffffffffffffffffffffff167f5db17eb6b69c9f0cf51e3b1f2c90a067a24697d427ba54c65f211120d3da7c056040516115789060208082526008908201527f494e414354495645000000000000000000000000000000000000000000000000604082015260600190565b60405180910390a350611e55565b600381015442906115a2906203f4809064ffffffffff16613c1e565b10156116d057611603818888858181106115be576115be613bc4565b6115d4926020604090920201908101915061371c565b8989868181106115e6576115e6613bc4565b90506040020160200160208101906115fe91906137e5565b612722565b86868381811061161557611615613bc4565b905060400201602001602081019061162d91906137e5565b63ffffffff1687878481811061164557611645613bc4565b61165b926020604090920201908101915061371c565b73ffffffffffffffffffffffffffffffffffffffff167f5db17eb6b69c9f0cf51e3b1f2c90a067a24697d427ba54c65f211120d3da7c05604051611578906020808252600a908201527f504153545f475241434500000000000000000000000000000000000000000000604082015260600190565b600281015481546040517fc57a9c5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169163c57a9c569161172c9160040190815260200190565b602060405180830381865afa158015611747573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176b9190613ba5565b1561185357611786818888858181106115be576115be613bc4565b86868381811061179857611798613bc4565b90506040020160200160208101906117b091906137e5565b63ffffffff168787848181106117c8576117c8613bc4565b6117de926020604090920201908101915061371c565b73ffffffffffffffffffffffffffffffffffffffff167f5db17eb6b69c9f0cf51e3b1f2c90a067a24697d427ba54c65f211120d3da7c056040516115789060208082526011908201527f4d454d424552534849505f42414e4e4544000000000000000000000000000000604082015260600190565b86868381811061186557611865613bc4565b61187b926020604090920201908101915061371c565b600282015482546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915273ffffffffffffffffffffffffffffffffffffffff9283169290911690636352211e90602401602060405180830381865afa1580156118f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119159190613b21565b73ffffffffffffffffffffffffffffffffffffffff1614611a1357611946818888858181106115be576115be613bc4565b86868381811061195857611958613bc4565b905060400201602001602081019061197091906137e5565b63ffffffff1687878481811061198857611988613bc4565b61199e926020604090920201908101915061371c565b73ffffffffffffffffffffffffffffffffffffffff167f5db17eb6b69c9f0cf51e3b1f2c90a067a24697d427ba54c65f211120d3da7c056040516115789060208082526009908201527f4e4f545f4f574e45520000000000000000000000000000000000000000000000604082015260600190565b600281015481546040517f5803909f000000000000000000000000000000000000000000000000000000008152600481019190915273ffffffffffffffffffffffffffffffffffffffff90911693505f908490635803909f90602401602060405180830381865afa158015611a8a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aae9190613b3c565b905080888885818110611ac357611ac3613bc4565b611ad9926020604090920201908101915061371c565b73ffffffffffffffffffffffffffffffffffffffff16311015611c1057611b3482898986818110611b0c57611b0c613bc4565b611b22926020604090920201908101915061371c565b8a8a878181106115e6576115e6613bc4565b878784818110611b4657611b46613bc4565b9050604002016020016020810190611b5e91906137e5565b63ffffffff16888885818110611b7657611b76613bc4565b611b8c926020604090920201908101915061371c565b73ffffffffffffffffffffffffffffffffffffffff167f5db17eb6b69c9f0cf51e3b1f2c90a067a24697d427ba54c65f211120d3da7c05604051611c019060208082526014908201527f494e53554646494349454e545f42414c414e4345000000000000000000000000604082015260600190565b60405180910390a35050611e55565b81546040517f17c957090000000000000000000000000000000000000000000000000000000081525f9173ffffffffffffffffffffffffffffffffffffffff8716916317c9570991611c689160040190815260200190565b602060405180830381865afa158015611c83573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca79190613b3c565b90505f8573ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cf3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d179190613b53565b67ffffffffffffffff1690505f611d2e8383612530565b600386015490915064ffffffffff808316911614611e2c576003850180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff83161790558a8a87818110611d8b57611d8b613bc4565b9050604002016020016020810190611da391906137e5565b63ffffffff168b8b88818110611dbb57611dbb613bc4565b611dd1926020604090920201908101915061371c565b600387015460405164ffffffffff909116815273ffffffffffffffffffffffffffffffffffffffff91909116907fa1d0c7cfbaf330ea81d2b0cac3c06d95401230169e4bceea6ffc02233ef011519060200160405180910390a35b611e4f858c8c89818110611e4257611e42613bc4565b9050604002018987612799565b50505050505b60010161132f565b505050506111c7600190565b688000000000ab143c0646600103611e9357805c15611e8b57805f526004601cfd5b30815d611ea8565b30815403611ea457805f526004601cfd5b3081555b505f611eb6828401846137e5565b335f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb8602602052604090209091507fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860090611f1b9063ffffffff80851690612ce416565b611f4857611f487faacf701b000000000000000000000000000000000000000000000000000000006124d6565b335f81815260018084016020908152604080842063ffffffff881680865292528084208481559283018490556002830180547fffff000000000000000000000000000000000000000000000000000000000000169055600390920180547fffffffffffffffffffffffffffffffffffff000000000000000000000000000016905590519092917f48c4a5a219af3d077894cac7e6b26c5cdb83cf91d718428985a3f4a85e9ed45d91a350506111c7600190565b688000000000ab143c064660010361202557805c1561201d57805f526004601cfd5b30815d61203a565b3081540361203657805f526004601cfd5b3081555b50335f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb86016020908152604080832063ffffffff851684529091529020600381015465010000000000900460ff166120b7576120b77fe01d3320000000000000000000000000000000000000000000000000000000006124d6565b600281015481546040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101919091525f9173ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015612129573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061214d9190613b21565b90503373ffffffffffffffffffffffffffffffffffffffff821614612195576121957f59530ce9000000000000000000000000000000000000000000000000000000006124d6565b6121a0823385612722565b5050610b75600190565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff163314612221576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b61222a816125a7565b6122547fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860082612cef565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907f5b6a420b639feabfb011a07742a6ae14ef72f35d1a330ed65f42216c95bc6c2e905f90a250565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff16331461230a576040517f65f49065000000000000000000000000000000000000000000000000000000008152336004820152602401612218565b612313816125a7565b61233d7fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860082612e73565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907fa5f3b7626fd86ff989f1d22cf3d41d74591ea6eb99241079400b0c332a9a8f11905f90a250565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16612455577fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b006020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055612487565b6040517ff2cfeefa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fffffffff000000000000000000000000000000000000000000000000000000008216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b805f5260045ffd5b60606105d86124ec83612fe7565b90565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260028401602052604081206125289063ffffffff808516906130a016565b949350505050565b5f4283116125515761254a6125458342613c1e565b6125f6565b90506105d8565b5f61255b836126e2565b90505f6125684286613c31565b90508082106125915761258861257e8284613c31565b6125459087613c1e565b925050506105d8565b61259e6125458387613c31565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8116610ba557610ba57fe6c4247b000000000000000000000000000000000000000000000000000000006124d6565b5f6105e183836130ab565b5f65010000000000821061260c5761260c6131bd565b5090565b63978aab926004525f8281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b404741830161266e5763f5a267f15f526004601cfd5b826126805768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff81166126c95760019250838160601c03156126da57600182015460601c84146126da57600282015460601c84146126da575b5f92506126da565b81602052835f5260405f2054151592505b505092915050565b5f610e1082116126f457506078919050565b61546082116127065750610e10919050565b6201518082116127195750615460919050565b5061a8c0919050565b6003830180547fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff16905560405163ffffffff82169073ffffffffffffffffffffffffffffffffffffffff8416907fd01480b28a9baefd1cd771d8109d1abf2380614146253e17b61774b7b3fb77f1905f90a3505050565b83546040515f916127b09160240190815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7c9669ac00000000000000000000000000000000000000000000000000000000179052600287015490519192505f916128599173ffffffffffffffffffffffffffffffffffffffff169085908590602401613c44565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb61d27f6000000000000000000000000000000000000000000000000000000001790529192505f91612967916128e8919089019089016137e5565b600289015489546040805173ffffffffffffffffffffffffffffffffffffffff90931660208401528201525f90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261295391602001613c8f565b6040516020818303038152906040526131ca565b90505f828260405160240161297d929190613cc0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff2680c0f00000000000000000000000000000000000000000000000000000000179052909150612a0e90612a079089018961371c565b5f8361328b565b5087546040517f17c957090000000000000000000000000000000000000000000000000000000081525f9173ffffffffffffffffffffffffffffffffffffffff8916916317c9570991612a679160040190815260200190565b602060405180830381865afa158015612a82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aa69190613b3c565b90505f8773ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612af2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b169190613b53565b67ffffffffffffffff169050612b36612b2f8383612530565b83836132d7565b60038b0180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff92909216919091179055612b77426125f6565b8a60020160196101000a81548164ffffffffff021916908364ffffffffff160217905550868a6001015f828254612bae9190613c1e565b909155505060028a015473ffffffffffffffffffffffffffffffffffffffff16612bde60408b0160208c016137e5565b63ffffffff16612bf160208c018c61371c565b8c5460038e01546040805192835264ffffffffff9091166020830152810186905273ffffffffffffffffffffffffffffffffffffffff91909116907ffb5958fb22b1f99fbf55be0d5e6a01bc298b05da5ab1a8cc30d3677176d152359060600160405180910390a4612c6960408a0160208b016137e5565b63ffffffff16612c7c60208b018b61371c565b73ffffffffffffffffffffffffffffffffffffffff167f87a8f6f83796c73b3d3b1cb327beee5ff8d165dc8aa5e2764ad44fc7ff140471898d60010154604051612cd0929190918252602082015260400190565b60405180910390a350505050505050505050565b5f6105e18383613376565b63978aab926004525f8281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b4047418301612d4d5763f5a267f15f526004601cfd5b82612d5f5768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff81168260205280612e26578160601c80612d92578560601b84556001945050612e6a565b858103612d9f5750612e6a565b600184015460601c80612dc0578660601b6001860155600195505050612e6a565b868103612dce575050612e6a565b600285015460601c80612df0578760601b600287015560019650505050612e6a565b878103612dff57505050612e6a565b5f928352604080842060019055918352818320600290558252902060039055506007908117905b845f5260405f208054612e6857600191821c808301825591945081612e54578560601b600317845550612e6a565b8560601b8285015582600201845550612e6a565b505b50505092915050565b63978aab926004525f8281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b4047418301612ed15763f5a267f15f526004601cfd5b82612ee35768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff811680612f625760019350848260601c03612f205760018301805484556002840180549091555f9055612e6a565b84600184015460601c03612f415760028301805460018501555f9055612e6a565b84600284015460601c03612f5a575f6002840155612e6a565b5f9350612e6a565b82602052845f5260405f20805480612f7b575050612e6a565b60018360011c039250826001820314612fab578285015460601c8060601b60018303870155805f52508060405f20555b5083547fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600192831b1782179093555f909255509392505050565b6318fb58646004525f81815260249020801954604051919068fbb67fda52d4bfb8bf906020840181613060578354801561305a5780841415028152600184810154909250801561305a5780841415026020820152600284810154909250801561305a576003925083811415810260408301525b5061308b565b8160011c91505f5b8281101561308957848101548481141502600582901b830152600101613068565b505b8185528160051b810160405250505050919050565b5f6105e18383613474565b6318fb58646004525f8281526024812068fbb67fda52d4bfb8bf83036130d85763f5a267f15f526004601cfd5b826130ea5768fbb67fda52d4bfb8bf92505b801954816020528061318e5781548061310a5784835560019350506126da565b84810361311757506126da565b600183015480613132578560018501556001945050506126da565b8581036131405750506126da565b60028401548061315c57866002860155600195505050506126da565b86810361316b575050506126da565b5f9283526040808420600190559183528183206002905582529020600390555060075b835f5260405f208054612e6a57600191821c8381018690558083019182905590821b82178319559092506126da565b6335278d125f526004601cfd5b60605f83156131d7576001175b6040517fff0000000000000000000000000000000000000000000000000000000000000060f883901b1660208201527fffffffff0000000000000000000000000000000000000000000000000000000060e087901b166021820152602501604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052613272918590602001613ce4565b6040516020818303038152906040529150509392505050565b60405181515f9038906020850186885af16132a8573d5f823e3d81fd5b3d6132c057833b6132c057635a836a5f5f526004601cfd5b3d8152602081013d5f823e3d016040529392505050565b5f5f6132e2336134fc565b90506132ee8142613c1e565b8564ffffffffff16111561330557849150506105e1565b610e1083116133235761331b6125458286613c31565b9150506105e1565b5f61332d846126e2565b90505f8161333b8642613c1e565b6133459190613c31565b905061336b8764ffffffffff168211613365578764ffffffffff166125f6565b816125f6565b979650505050505050565b6318fb58646004525f8281526024812068fbb67fda52d4bfb8bf83036133a35763f5a267f15f526004601cfd5b826133b55768fbb67fda52d4bfb8bf92505b801954806134165760019250838254036133e25760018201805483556002830180549091555f90556126da565b836001830154036134005760028201805460018401555f90556126da565b836002830154036126c1575f60028301556126da565b81602052835f5260405f2080548061342f5750506126da565b60018360011c03925082600182031461345957828401548060018303860155805f52508060405f20555b5060018260011b178319555f81555060019250505092915050565b6318fb58646004525f8281526024812068fbb67fda52d4bfb8bf83036134a15763f5a267f15f526004601cfd5b826134b35768fbb67fda52d4bfb8bf92505b8019546134e45780546001925083146134f557600181015483146134f557600281015483146134f5575f91506134f5565b80602052825f5260405f2054151591505b5092915050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb8603602052604081208054158061354f57506001810154155b15613561576105e161012c603c613c1e565b6001015492915050565b5f6020828403121561357b575f5ffd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146105e1575f5ffd5b803563ffffffff811681146135bd575f5ffd5b919050565b5f5f5f606084860312156135d4575f5ffd5b6135dd846135aa565b9250602084013567ffffffffffffffff8111156135f8575f5ffd5b8401610120818703121561360a575f5ffd5b929592945050506040919091013590565b73ffffffffffffffffffffffffffffffffffffffff81168114610ba5575f5ffd5b5f5f83601f84011261364c575f5ffd5b50813567ffffffffffffffff811115613663575f5ffd5b60208301915083602082850101111561367a575f5ffd5b9250929050565b5f5f5f5f5f5f5f60a0888a031215613697575f5ffd5b6136a0886135aa565b965060208801356136b08161361b565b955060408801359450606088013567ffffffffffffffff8111156136d2575f5ffd5b6136de8a828b0161363c565b909550935050608088013567ffffffffffffffff8111156136fd575f5ffd5b6137098a828b0161363c565b989b979a50959850939692959293505050565b5f6020828403121561372c575f5ffd5b81356105e18161361b565b602080825282518282018190525f918401906040840190835b8181101561376e578351835260209384019390920191600101613750565b509095945050505050565b5f5f5f5f5f6080868803121561378d575f5ffd5b613796866135aa565b945060208601356137a68161361b565b935060408601359250606086013567ffffffffffffffff8111156137c8575f5ffd5b6137d48882890161363c565b969995985093965092949392505050565b5f602082840312156137f5575f5ffd5b6105e1826135aa565b5f5f5f5f5f5f5f5f60c0898b031215613815575f5ffd5b88356138208161361b565b975061382e60208a016135aa565b9650604089013561383e8161361b565b955060608901359450608089013567ffffffffffffffff811115613860575f5ffd5b61386c8b828c0161363c565b90955093505060a089013567ffffffffffffffff81111561388b575f5ffd5b6138978b828c0161363c565b999c989b5096995094979396929594505050565b5f5f602083850312156138bc575f5ffd5b823567ffffffffffffffff8111156138d2575f5ffd5b6138de8582860161363c565b90969095509350505050565b5f602082840312156138fa575f5ffd5b5035919050565b5f5f60208385031215613912575f5ffd5b823567ffffffffffffffff811115613928575f5ffd5b8301601f81018513613938575f5ffd5b803567ffffffffffffffff81111561394e575f5ffd5b8560208260061b8401011115613962575f5ffd5b6020919091019590945092505050565b5f5f60408385031215613983575f5ffd5b823561398e8161361b565b915061399c602084016135aa565b90509250929050565b5f61010082019050825182526020830151602083015273ffffffffffffffffffffffffffffffffffffffff604084015116604083015264ffffffffff606084015116606083015264ffffffffff608084015116608083015260a0830151613a1560a084018264ffffffffff169052565b5060c0830151613a2960c084018215159052565b5060e08301516134f560e084018267ffffffffffffffff169052565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6105e16020830184613a45565b5f5f5f5f5f5f60a08789031215613ab8575f5ffd5b8635613ac38161361b565b9550613ad1602088016135aa565b94506040870135613ae18161361b565b935060608701359250608087013567ffffffffffffffff811115613b03575f5ffd5b613b0f89828a0161363c565b979a9699509497509295939492505050565b5f60208284031215613b31575f5ffd5b81516105e18161361b565b5f60208284031215613b4c575f5ffd5b5051919050565b5f60208284031215613b63575f5ffd5b815167ffffffffffffffff811681146105e1575f5ffd5b5f5f5f60608486031215613b8c575f5ffd5b613b95846135aa565b9250602084013561360a8161361b565b5f60208284031215613bb5575f5ffd5b815180151581146105e1575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156105d8576105d8613bf1565b818103818111156105d8576105d8613bf1565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f61259e6060830184613a45565b5f81518060208401855e5f93019283525090919050565b7fff0000000000000000000000000000000000000000000000000000000000000081525f6105e16001830184613c78565b604081525f613cd26040830185613a45565b828103602084015261259e8185613a45565b5f612528613cf28386613c78565b84613c7856";
1165
+ "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b613ed6806100ca5f395ff3fe608060405234801561000f575f5ffd5b50600436106101bb575f3560e01c80636d70f7ae116100f3578063a1308f2711610093578063da43f3d61161006e578063da43f3d61461053e578063e348da1314610551578063e7db7f7e14610564578063fad8b32a146105ce575f5ffd5b8063a1308f27146104ed578063c1a287e21461052c578063cfdbf25414610536575f5ffd5b8063885c1d09116100ce578063885c1d09146103255780638a91b0e3146103385780639e94f3ab1461034b578063a07da647146104da575f5ffd5b80636d70f7ae146102b857806379dda585146102cb5780638522ddcb14610312575f5ffd5b80633d6bda321161015e5780634306ea80116101395780634306ea8014610276578063465d33e0146102895780636a0df59e1461029c5780636d61fe70146102a5575f5ffd5b80633d6bda32146102305780633e5f6091146102435780633f41826e14610263575f5ffd5b80630c288470116101995780630c288470146102155780631313f4101461021d5780631e8ffc7f146102275780632a3d428c146101fe575f5ffd5b806301ffc9a7146101bf5780630972a3e6146101e75780630ab8785f146101fe575b5f5ffd5b6101d26101cd3660046136e5565b6105e1565b60405190151581526020015b60405180910390f35b6101f061a8c081565b6040519081526020016101de565b6101f061020c36600461373c565b60019392505050565b6101f0607881565b610225610679565b005b6101f0610e1081565b61022561023e3660046137fb565b610759565b610256610251366004613896565b61078b565b6040516101de91906138b1565b6102256102713660046138f3565b6107da565b61022561028436600461395f565b61080a565b610225610297366004613978565b610a9e565b6101f061546081565b6102256102b3366004613a25565b610b81565b6101d26102c6366004613896565b6111da565b7fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb86055460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101de565b6101f0610320366004613a64565b611205565b610225610333366004613a7b565b61120f565b610225610346366004613a25565b6118f2565b6104cd610359366004613aec565b60408051610140810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860073ffffffffffffffffffffffffffffffffffffffff8481165f90815260019283016020908152604080832063ffffffff8816845282529182902082516101408101845281548152948101549185019190915260028101549283169184019190915274010000000000000000000000000000000000000000820464ffffffffff908116606085015279010000000000000000000000000000000000000000000000000090920482166080840152600381015491821660a084015265010000000000820460ff16151560c0840152660100000000000090910467ffffffffffffffff1660e0830152600481015461010083015260050154610120820152905092915050565b6040516101de9190613b1f565b6102256104e836600461395f565b611acd565b604080518082018252601f81527f746f776e732e737562736372697074696f6e2d6d6f64756c652e312e302e3000602082015290516101de9190613c42565b6101f06203f48081565b6101f0603281565b61022561054c366004613896565b611bca565b61022561055f366004613896565b611cd7565b61059d610572366004613c54565b7fffffffff000000000000000000000000000000000000000000000000000000009695505050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101de565b6102256105dc366004613896565b611dc0565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f46c0c1b400000000000000000000000000000000000000000000000000000000148061067357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff166106dc576040517f77a399b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107057f99b0d7fb00000000000000000000000000000000000000000000000000000000611ea9565b61072e7fab3e34c100000000000000000000000000000000000000000000000000000000611ea9565b6107577f28171ad000000000000000000000000000000000000000000000000000000000611ea9565b565b6107827fabbbbc7300000000000000000000000000000000000000000000000000000000611ffe565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb86026020526040902060609061067390612006565b6108037fabbbbc7300000000000000000000000000000000000000000000000000000000611ffe565b5050505050565b688000000000ab143c064660010361083457805c1561082c57805f526004601cfd5b30815d610849565b3081540361084557805f526004601cfd5b3081555b507fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb8600610876813384612017565b6108a3576108a37faacf701b00000000000000000000000000000000000000000000000000000000611ffe565b335f908152600182016020908152604080832063ffffffff861684529091529020600381015465010000000000900460ff1615610903576109037ff618dcd600000000000000000000000000000000000000000000000000000000611ffe565b61090c81612058565b600281015481546040517f17c9570900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216915f9183916317c957099161096c9160040190815260200190565b602060405180830381865afa158015610987573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ab9190613cd2565b90505f8273ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1b9190613ce9565b9050610a2984848484612136565b60405163ffffffff87169033907f8134c93b482584112545c85fb3aa70e029203fd8fd1e2fe0d73c94122859a797905f90a35050505050610a68600190565b15610a8e57688000000000ab143c0646600103610a86575f815d5050565b8081555b5050565b5f688000000000ab143c065d5b50565b73ffffffffffffffffffffffffffffffffffffffff86163014610ae457610ae47f90467bf500000000000000000000000000000000000000000000000000000000611ffe565b73ffffffffffffffffffffffffffffffffffffffff88165f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb86016020908152604080832063ffffffff8b16845290915290206003015465010000000000900460ff1680610b7657610b767fe01d332000000000000000000000000000000000000000000000000000000000611ffe565b505050505050505050565b688000000000ab143c0646600103610bab57805c15610ba357805f526004601cfd5b30815d610bc0565b30815403610bbc57805f526004601cfd5b3081555b505f8080610bd084860186613d10565b925092509250610bdf82612299565b8263ffffffff165f03610c1557610c157faacf701b00000000000000000000000000000000000000000000000000000000611ffe565b6040517fc57a9c560000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff83169063c57a9c5690602401602060405180830381865afa158015610c7e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190613d3b565b15610cd057610cd07f366b825800000000000000000000000000000000000000000000000000000000611ffe565b6040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101829052339073ffffffffffffffffffffffffffffffffffffffff841690636352211e90602401602060405180830381865afa158015610d3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5f9190613d5a565b73ffffffffffffffffffffffffffffffffffffffff1614610da357610da37ff107dccb00000000000000000000000000000000000000000000000000000000611ffe565b5f7fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860060058101546040517fc0bc679600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015292935091169063c0bc679690602401602060405180830381865afa158015610e37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5b9190613cd2565b5f03610e8a57610e8a7fc3ca61ad00000000000000000000000000000000000000000000000000000000611ffe565b335f9081526002820160205260409020610ead9063ffffffff808716906122dd16565b610eda57610eda7faacf701b00000000000000000000000000000000000000000000000000000000611ffe565b335f908152600482016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915290205415610f3a57610f3a7f9921212f00000000000000000000000000000000000000000000000000000000611ffe565b335f90815260048281016020908152604080842073ffffffffffffffffffffffffffffffffffffffff88168086529252808420869055517f17c957090000000000000000000000000000000000000000000000000000000081529182018590528592916317c9570990602401602060405180830381865afa158015610fc1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe59190613cd2565b9050428111611017576110177fb8aa413f00000000000000000000000000000000000000000000000000000000611ffe565b5f8273ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611061573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110859190613ce9565b335f908152600186016020908152604080832063ffffffff8c16845290915290206002810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a161790558681559091506110f7426122ef565b8160020160146101000a81548164ffffffffff021916908364ffffffffff16021790555061112781858585612136565b60038101546040805188815264ffffffffff9092166020830152810184905273ffffffffffffffffffffffffffffffffffffffff88169063ffffffff8a169033907f8c6c35fff224538ee3da0324c24ba58476e48a9c3f3ec18b6f5c296d14d3086d9060600160405180910390a450505050505050506111a5600190565b156111ca57688000000000ab143c06466001036111c4575f815d505050565b80555050565b5f688000000000ab143c065d5050565b5f6106737fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860083612309565b5f610673826123db565b688000000000ab143c064660010361123957805c1561123157805f526004601cfd5b30815d61124e565b3081540361124a57805f526004601cfd5b3081555b50806032811115611282576112827f2efeb70100000000000000000000000000000000000000000000000000000000611ffe565b805f036112b2576112b27f8ac7f05500000000000000000000000000000000000000000000000000000000611ffe565b7fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb86006112dd8133612309565b61130a5761130a7f59530ce900000000000000000000000000000000000000000000000000000000611ffe565b5f5b828110156118e7575f826001015f87878581811061132c5761132c613d75565b6113429260206040909202019081019150613896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f87878581811061138e5761138e613d75565b90506040020160200160208101906113a6919061395f565b63ffffffff168152602081019190915260409081015f9081206002810154815493517f5803909f00000000000000000000000000000000000000000000000000000000815291945073ffffffffffffffffffffffffffffffffffffffff16928391635803909f9161141d9160040190815260200190565b602060405180830381865afa158015611438573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145c9190613cd2565b90505f8273ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114cc9190613ce9565b67ffffffffffffffff1690505f5f5f61150e878d8d8b8181106114f1576114f1613d75565b6115079260206040909202019081019150613896565b878761241b565b92509250925082156116ed57600181600881111561152e5761152e613da2565b036115d2578b8b8981811061154557611545613d75565b905060400201602001602081019061155d919061395f565b63ffffffff168c8c8a81811061157557611575613d75565b61158b9260206040909202019081019150613896565b73ffffffffffffffffffffffffffffffffffffffff167ffaea115d6b9a6bc3133af871ecb2f222b8d63f750071a320a65fe4c64e07502360405160405180910390a36116e1565b811561163357611633878d8d8b8181106115ee576115ee613d75565b6116049260206040909202019081019150613896565b8e8e8c81811061161657611616613d75565b905060400201602001602081019061162e919061395f565b612693565b8b8b8981811061164557611645613d75565b905060400201602001602081019061165d919061395f565b63ffffffff168c8c8a81811061167557611675613d75565b61168b9260206040909202019081019150613896565b73ffffffffffffffffffffffffffffffffffffffff167f5db17eb6b69c9f0cf51e3b1f2c90a067a24697d427ba54c65f211120d3da7c056116cb8461270a565b6040516116d89190613c42565b60405180910390a35b505050505050506118df565b86546040517f17c957090000000000000000000000000000000000000000000000000000000081525f9173ffffffffffffffffffffffffffffffffffffffff8916916317c95709916117459160040190815260200190565b602060405180830381865afa158015611760573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117849190613cd2565b9050808860050154146118b35760038801546117b59082906601000000000000900467ffffffffffffffff166129af565b6003890180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff92909216919091179055600588018190558c8c8a81811061180657611806613d75565b905060400201602001602081019061181e919061395f565b63ffffffff168d8d8b81811061183657611836613d75565b61184c9260206040909202019081019150613896565b60038a015460405164ffffffffff909116815273ffffffffffffffffffffffffffffffffffffffff91909116907fa1d0c7cfbaf330ea81d2b0cac3c06d95401230169e4bceea6ffc02233ef011519060200160405180910390a350505050505050506118df565b6118d6888e8e8c8181106118c9576118c9613d75565b9050604002018989612a22565b50505050505050505b60010161130c565b5050506111a5600190565b688000000000ab143c064660010361191c57805c1561191457805f526004601cfd5b30815d611931565b3081540361192d57805f526004601cfd5b3081555b505f61193f8284018461395f565b335f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb8602602052604090209091507fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb8600906119a49063ffffffff80851690612f6c16565b6119d1576119d17faacf701b00000000000000000000000000000000000000000000000000000000611ffe565b335f81815260018084016020908152604080842063ffffffff88168086528184528286208787526004808a01865284882060028301805473ffffffffffffffffffffffffffffffffffffffff168a529087528589208990558389529390955286815594850186905581547fffff000000000000000000000000000000000000000000000000000000000000169091556003840180547fffffffffffffffffffffffffffffffffffff000000000000000000000000000016905591830184905560058301849055519193909290917f48c4a5a219af3d077894cac7e6b26c5cdb83cf91d718428985a3f4a85e9ed45d9190a35050506111a5600190565b688000000000ab143c0646600103611af757805c15611aef57805f526004601cfd5b30815d611b0c565b30815403611b0857805f526004601cfd5b3081555b50335f9081527fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb86016020908152604080832063ffffffff85168452909152902060038101547fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb8600919065010000000000900460ff16611bac57611bac7fe01d332000000000000000000000000000000000000000000000000000000000611ffe565b611bb581612058565b611bc0813385612693565b5050610a68600190565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff163314611c41576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b611c4a81612299565b7fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f40f94fbaa39b621298d12a4ed99759484633cff7680c01e6bb3a07ae7aa8d795905f90a250565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff163314611d49576040517f65f49065000000000000000000000000000000000000000000000000000000008152336004820152602401611c38565b611d5281612299565b611d7c7fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb860082612f77565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907f5b6a420b639feabfb011a07742a6ae14ef72f35d1a330ed65f42216c95bc6c2e905f90a250565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff163314611e32576040517f65f49065000000000000000000000000000000000000000000000000000000008152336004820152602401611c38565b611e3b81612299565b611e657fd241b3ceee256b40f80fe7a66fe789234ac389ed1408c472c4ee1cbb1deb8600826130fb565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907fa5f3b7626fd86ff989f1d22cf3d41d74591ea6eb99241079400b0c332a9a8f11905f90a250565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16611f7d577fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b006020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611faf565b6040517ff2cfeefa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fffffffff000000000000000000000000000000000000000000000000000000008216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b805f5260045ffd5b60606106736120148361326f565b90565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260028401602052604081206120509063ffffffff8085169061332816565b949350505050565b600281015481546040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101919091525f9173ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156120ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ee9190613d5a565b90503373ffffffffffffffffffffffffffffffffffffffff821614610a8a57610a8a7f59530ce900000000000000000000000000000000000000000000000000000000611ffe565b6003840180547fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff166501000000000017905583546040517f5803909f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851691635803909f916121bf919060040190815260200190565b602060405180830381865afa1580156121da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121fe9190613cd2565b6004850155600584018290556003840180547fffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffff16660100000000000067ffffffffffffffff84169081029190911790915561225a9083906129af565b60039490940180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff90951694909417909355505050565b73ffffffffffffffffffffffffffffffffffffffff8116610a9b57610a9b7fe6c4247b00000000000000000000000000000000000000000000000000000000611ffe565b5f6122e88383613333565b9392505050565b5f65010000000000821061230557612305613445565b5090565b63978aab926004525f8281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b40474183016123675763f5a267f15f526004601cfd5b826123795768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff81166123c25760019250838160601c03156123d357600182015460601c84146123d357600282015460601c84146123d3575b5f92506123d3565b81602052835f5260405f2054151592505b505092915050565b5f610e1082116123ed57506078919050565b61546082116123ff5750610e10919050565b6201518082116124125750615460919050565b5061a8c0919050565b60038401545f90819081904264ffffffffff90911611156124445750600191505f905081612689565b600387015465010000000000900460ff166124685750600191505f90506002612689565b60038701544290612484906203f4809064ffffffffff16613dfc565b10156124995750600191508190506003612689565b600287015487546040517fc57a9c5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169163c57a9c56916124f59160040190815260200190565b602060405180830381865afa158015612510573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125349190613d3b565b156125485750600191508190506004612689565b600287015487546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915273ffffffffffffffffffffffffffffffffffffffff888116921690636352211e90602401602060405180830381865afa1580156125bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e09190613d5a565b73ffffffffffffffffffffffffffffffffffffffff161461260a5750600191508190506005612689565b848760040154146126245750600191508190506006612689565b848673ffffffffffffffffffffffffffffffffffffffff163110156126525750600191508190506007612689565b60038701546601000000000000900467ffffffffffffffff1684146126805750600191508190506008612689565b505f9150819050805b9450945094915050565b6003830180547fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff16905560405163ffffffff82169073ffffffffffffffffffffffffffffffffffffffff8416907fd01480b28a9baefd1cd771d8109d1abf2380614146253e17b61774b7b3fb77f1905f90a3505050565b6060600182600881111561272057612720613da2565b0361275e57505060408051808201909152600781527f4e4f545f44554500000000000000000000000000000000000000000000000000602082015290565b600282600881111561277257612772613da2565b036127b057505060408051808201909152600881527f494e414354495645000000000000000000000000000000000000000000000000602082015290565b60038260088111156127c4576127c4613da2565b0361280257505060408051808201909152600a81527f504153545f475241434500000000000000000000000000000000000000000000602082015290565b600482600881111561281657612816613da2565b0361285457505060408051808201909152601181527f4d454d424552534849505f42414e4e4544000000000000000000000000000000602082015290565b600582600881111561286857612868613da2565b036128a657505060408051808201909152600981527f4e4f545f4f574e45520000000000000000000000000000000000000000000000602082015290565b60068260088111156128ba576128ba613da2565b036128f857505060408051808201909152601581527f52454e4557414c5f50524943455f4348414e4745440000000000000000000000602082015290565b600782600881111561290c5761290c613da2565b0361294a57505060408051808201909152601481527f494e53554646494349454e545f42414c414e4345000000000000000000000000602082015290565b600882600881111561295e5761295e613da2565b0361299c57505060408051808201909152601081527f4455524154494f4e5f4348414e47454400000000000000000000000000000000602082015290565b505060408051602081019091525f815290565b5f4283116129c7576129c0426122ef565b9050610673565b5f6129d1836123db565b90505f6129de4286613e0f565b9050808210612a0c57612a036129f48284613e0f565b6129fe9087613dfc565b6122ef565b92505050610673565b612a196129fe8387613e0f565b95945050505050565b83546040515f91612a399160240190815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7c9669ac00000000000000000000000000000000000000000000000000000000179052600287015490519192505f91612ae29173ffffffffffffffffffffffffffffffffffffffff169085908590602401613e22565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb61d27f6000000000000000000000000000000000000000000000000000000001790529192505f91612bf091612b719190890190890161395f565b600289015489546040805173ffffffffffffffffffffffffffffffffffffffff90931660208401528201525f90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052612bdc91602001613e6d565b604051602081830303815290604052613452565b90505f8282604051602401612c06929190613e9e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff2680c0f00000000000000000000000000000000000000000000000000000000179052909150612c9790612c9090890189613896565b5f83613513565b5087546040517f17c957090000000000000000000000000000000000000000000000000000000081525f9173ffffffffffffffffffffffffffffffffffffffff8916916317c9570991612cf09160040190815260200190565b602060405180830381865afa158015612d0b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d2f9190613cd2565b90505f8773ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d7b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d9f9190613ce9565b67ffffffffffffffff169050612db582826129af565b60038b0180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff92909216919091179055612df6426122ef565b8a60020160196101000a81548164ffffffffff021916908364ffffffffff160217905550818a60050181905550868a6001015f828254612e369190613dfc565b909155505060028a015473ffffffffffffffffffffffffffffffffffffffff16612e6660408b0160208c0161395f565b63ffffffff16612e7960208c018c613896565b8c5460038e01546040805192835264ffffffffff9091166020830152810186905273ffffffffffffffffffffffffffffffffffffffff91909116907ffb5958fb22b1f99fbf55be0d5e6a01bc298b05da5ab1a8cc30d3677176d152359060600160405180910390a4612ef160408a0160208b0161395f565b63ffffffff16612f0460208b018b613896565b73ffffffffffffffffffffffffffffffffffffffff167f87a8f6f83796c73b3d3b1cb327beee5ff8d165dc8aa5e2764ad44fc7ff140471898d60010154604051612f58929190918252602082015260400190565b60405180910390a350505050505050505050565b5f6122e8838361355f565b63978aab926004525f8281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b4047418301612fd55763f5a267f15f526004601cfd5b82612fe75768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff811682602052806130ae578160601c8061301a578560601b845560019450506130f2565b85810361302757506130f2565b600184015460601c80613048578660601b60018601556001955050506130f2565b8681036130565750506130f2565b600285015460601c80613078578760601b6002870155600196505050506130f2565b878103613087575050506130f2565b5f928352604080842060019055918352818320600290558252902060039055506007908117905b845f5260405f2080546130f057600191821c8083018255919450816130dc578560601b6003178455506130f2565b8560601b82850155826002018455506130f2565b505b50505092915050565b63978aab926004525f8281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b40474183016131595763f5a267f15f526004601cfd5b8261316b5768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff8116806131ea5760019350848260601c036131a85760018301805484556002840180549091555f90556130f2565b84600184015460601c036131c95760028301805460018501555f90556130f2565b84600284015460601c036131e2575f60028401556130f2565b5f93506130f2565b82602052845f5260405f208054806132035750506130f2565b60018360011c039250826001820314613233578285015460601c8060601b60018303870155805f52508060405f20555b5083547fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600192831b1782179093555f909255509392505050565b6318fb58646004525f81815260249020801954604051919068fbb67fda52d4bfb8bf9060208401816132e857835480156132e2578084141502815260018481015490925080156132e2578084141502602082015260028481015490925080156132e2576003925083811415810260408301525b50613313565b8160011c91505f5b8281101561331157848101548481141502600582901b8301526001016132f0565b505b8185528160051b810160405250505050919050565b5f6122e8838361365d565b6318fb58646004525f8281526024812068fbb67fda52d4bfb8bf83036133605763f5a267f15f526004601cfd5b826133725768fbb67fda52d4bfb8bf92505b8019548160205280613416578154806133925784835560019350506123d3565b84810361339f57506123d3565b6001830154806133ba578560018501556001945050506123d3565b8581036133c85750506123d3565b6002840154806133e457866002860155600195505050506123d3565b8681036133f3575050506123d3565b5f9283526040808420600190559183528183206002905582529020600390555060075b835f5260405f2080546130f257600191821c8381018690558083019182905590821b82178319559092506123d3565b6335278d125f526004601cfd5b60605f831561345f576001175b6040517fff0000000000000000000000000000000000000000000000000000000000000060f883901b1660208201527fffffffff0000000000000000000000000000000000000000000000000000000060e087901b166021820152602501604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526134fa918590602001613ec2565b6040516020818303038152906040529150509392505050565b60405181515f9038906020850186885af1613530573d5f823e3d81fd5b3d61354857833b61354857635a836a5f5f526004601cfd5b3d8152602081013d5f823e3d016040529392505050565b6318fb58646004525f8281526024812068fbb67fda52d4bfb8bf830361358c5763f5a267f15f526004601cfd5b8261359e5768fbb67fda52d4bfb8bf92505b801954806135ff5760019250838254036135cb5760018201805483556002830180549091555f90556123d3565b836001830154036135e95760028201805460018401555f90556123d3565b836002830154036123ba575f60028301556123d3565b81602052835f5260405f208054806136185750506123d3565b60018360011c03925082600182031461364257828401548060018303860155805f52508060405f20555b5060018260011b178319555f81555060019250505092915050565b6318fb58646004525f8281526024812068fbb67fda52d4bfb8bf830361368a5763f5a267f15f526004601cfd5b8261369c5768fbb67fda52d4bfb8bf92505b8019546136cd5780546001925083146136de57600181015483146136de57600281015483146136de575f91506136de565b80602052825f5260405f2054151591505b5092915050565b5f602082840312156136f5575f5ffd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146122e8575f5ffd5b803563ffffffff81168114613737575f5ffd5b919050565b5f5f5f6060848603121561374e575f5ffd5b61375784613724565b9250602084013567ffffffffffffffff811115613772575f5ffd5b84016101208187031215613784575f5ffd5b929592945050506040919091013590565b73ffffffffffffffffffffffffffffffffffffffff81168114610a9b575f5ffd5b5f5f83601f8401126137c6575f5ffd5b50813567ffffffffffffffff8111156137dd575f5ffd5b6020830191508360208285010111156137f4575f5ffd5b9250929050565b5f5f5f5f5f5f5f60a0888a031215613811575f5ffd5b61381a88613724565b9650602088013561382a81613795565b955060408801359450606088013567ffffffffffffffff81111561384c575f5ffd5b6138588a828b016137b6565b909550935050608088013567ffffffffffffffff811115613877575f5ffd5b6138838a828b016137b6565b989b979a50959850939692959293505050565b5f602082840312156138a6575f5ffd5b81356122e881613795565b602080825282518282018190525f918401906040840190835b818110156138e85783518352602093840193909201916001016138ca565b509095945050505050565b5f5f5f5f5f60808688031215613907575f5ffd5b61391086613724565b9450602086013561392081613795565b935060408601359250606086013567ffffffffffffffff811115613942575f5ffd5b61394e888289016137b6565b969995985093965092949392505050565b5f6020828403121561396f575f5ffd5b6122e882613724565b5f5f5f5f5f5f5f5f60c0898b03121561398f575f5ffd5b883561399a81613795565b97506139a860208a01613724565b965060408901356139b881613795565b955060608901359450608089013567ffffffffffffffff8111156139da575f5ffd5b6139e68b828c016137b6565b90955093505060a089013567ffffffffffffffff811115613a05575f5ffd5b613a118b828c016137b6565b999c989b5096995094979396929594505050565b5f5f60208385031215613a36575f5ffd5b823567ffffffffffffffff811115613a4c575f5ffd5b613a58858286016137b6565b90969095509350505050565b5f60208284031215613a74575f5ffd5b5035919050565b5f5f60208385031215613a8c575f5ffd5b823567ffffffffffffffff811115613aa2575f5ffd5b8301601f81018513613ab2575f5ffd5b803567ffffffffffffffff811115613ac8575f5ffd5b8560208260061b8401011115613adc575f5ffd5b6020919091019590945092505050565b5f5f60408385031215613afd575f5ffd5b8235613b0881613795565b9150613b1660208401613724565b90509250929050565b5f6101408201905082518252602083015160208301526040830151613b5c604084018273ffffffffffffffffffffffffffffffffffffffff169052565b506060830151613b75606084018264ffffffffff169052565b506080830151613b8e608084018264ffffffffff169052565b5060a0830151613ba760a084018264ffffffffff169052565b5060c0830151613bbb60c084018215159052565b5060e0830151613bd760e084018267ffffffffffffffff169052565b5061010083015161010083015261012083015161012083015292915050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6122e86020830184613bf6565b5f5f5f5f5f5f60a08789031215613c69575f5ffd5b8635613c7481613795565b9550613c8260208801613724565b94506040870135613c9281613795565b935060608701359250608087013567ffffffffffffffff811115613cb4575f5ffd5b613cc089828a016137b6565b979a9699509497509295939492505050565b5f60208284031215613ce2575f5ffd5b5051919050565b5f60208284031215613cf9575f5ffd5b815167ffffffffffffffff811681146122e8575f5ffd5b5f5f5f60608486031215613d22575f5ffd5b613d2b84613724565b9250602084013561378481613795565b5f60208284031215613d4b575f5ffd5b815180151581146122e8575f5ffd5b5f60208284031215613d6a575f5ffd5b81516122e881613795565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561067357610673613dcf565b8181038181111561067357610673613dcf565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f612a196060830184613bf6565b5f81518060208401855e5f93019283525090919050565b7fff0000000000000000000000000000000000000000000000000000000000000081525f6122e86001830184613e56565b604081525f613eb06040830185613bf6565b8281036020840152612a198185613bf6565b5f612050613ed08386613e56565b84613e5656";
1102
1166
 
1103
1167
  type SubscriptionModuleFacetConstructorParams =
1104
1168
  | [signer?: Signer]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@towns-protocol/generated",
3
- "version": "0.0.370",
3
+ "version": "0.0.372",
4
4
  "packageManager": "yarn@3.8.0",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -13,7 +13,7 @@
13
13
  "ethers": "^5.8.0"
14
14
  },
15
15
  "devDependencies": {
16
- "@towns-protocol/contracts": "^0.0.370"
16
+ "@towns-protocol/contracts": "^0.0.372"
17
17
  },
18
18
  "files": [
19
19
  "config/**/*",
@@ -32,5 +32,5 @@
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
- "gitHead": "a39b3d31251fbe2ec4f6c0902d9a5195974e8b9e"
35
+ "gitHead": "064d93eb0334ff96e7781dc951e99f41accca3c2"
36
36
  }