@eco-incorp/sauce 0.99.0 → 0.99.2
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/LICENSE.md +29 -0
- package/README.md +69 -249
- package/actions/dist/to-sauce.d.ts.map +1 -1
- package/actions/dist/to-sauce.js +4 -5
- package/dev-tools/README.md +11 -170
- package/docs/README.md +39 -0
- package/docs/api/README.md +71 -0
- package/docs/api/compiler.md +234 -0
- package/docs/api/coverage.md +117 -0
- package/docs/api/routes.md +110 -0
- package/docs/concepts/architecture.md +134 -0
- package/docs/concepts/saucescript.md +172 -0
- package/docs/examples/README.md +34 -0
- package/docs/examples/compile-program.ts +20 -0
- package/docs/examples/evm-execution.ts +59 -0
- package/docs/examples/first-intent.ts +56 -0
- package/docs/examples/protocol-approval.ts +33 -0
- package/docs/guides/builders-and-actions.md +108 -0
- package/docs/guides/compiling.md +264 -0
- package/docs/guides/intents.md +158 -0
- package/docs/guides/nested-intents.md +79 -0
- package/docs/guides/protocols-and-tokens.md +116 -0
- package/docs/guides/quick-start.md +64 -0
- package/docs/guides/solana.md +196 -0
- package/docs/guides/verification.md +253 -0
- package/package.json +9 -4
- package/sdk/dist/artifacts/V12Deployments.json +82 -0
- package/sdk/dist/artifacts/V12RuntimeBytecode.json +1 -1
- package/sdk/dist/artifacts/svm/engine-devnet.so +0 -0
- package/sdk/dist/artifacts/svm/engine-mainnet.so +0 -0
- package/sdk/dist/artifacts/svm/engine-wire-devnet.json +3 -3
- package/sdk/dist/artifacts/svm/engine-wire-mainnet.json +3 -3
- package/sdk/dist/deployments/index.d.ts +15 -39
- package/sdk/dist/deployments/index.d.ts.map +1 -1
- package/sdk/dist/deployments/index.js +23 -39
- package/sdk/dist/deployments/index.js.map +1 -1
- package/sdk/dist/deployments/v12-addresses.d.ts +85 -0
- package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -0
- package/sdk/dist/deployments/v12-addresses.js +51 -0
- package/sdk/dist/deployments/v12-addresses.js.map +1 -0
- package/sdk/dist/deployments/v12.generated.d.ts +3 -3
- package/sdk/dist/deployments/v12.generated.d.ts.map +1 -1
- package/sdk/dist/deployments/v12.generated.js +3 -3
- package/sdk/dist/deployments/v12.generated.js.map +1 -1
- package/sdk/dist/deposit/index.d.ts +28 -102
- package/sdk/dist/deposit/index.d.ts.map +1 -1
- package/sdk/dist/deposit/index.js.map +1 -1
- package/sdk/dist/deposit/params.d.ts +1 -1
- package/sdk/dist/deposit/params.js +2 -2
- package/sdk/dist/deposit/params.js.map +1 -1
- package/sdk/dist/deposit/source.d.ts +1 -1
- package/sdk/dist/deposit/source.d.ts.map +1 -1
- package/sdk/dist/deposit/source.js +18 -33
- package/sdk/dist/deposit/source.js.map +1 -1
- package/sdk/dist/deposit/types.d.ts +5 -4
- package/sdk/dist/deposit/types.d.ts.map +1 -1
- package/sdk/dist/evm/engine.d.ts +32 -0
- package/sdk/dist/evm/engine.d.ts.map +1 -1
- package/sdk/dist/evm/engine.js +2 -0
- package/sdk/dist/evm/engine.js.map +1 -1
- package/sdk/dist/index.d.ts +1 -0
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +2 -0
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/plugin/index.d.ts +16 -41
- package/sdk/dist/plugin/index.d.ts.map +1 -1
- package/sdk/dist/plugin/index.js +2 -6
- package/sdk/dist/plugin/index.js.map +1 -1
- package/sdk/dist/recipes/index.js +2 -2
- package/sdk/dist/recipes/settle.sauce.ts +1 -1
- package/sdk/dist/routes/index.d.ts +3 -3
- package/sdk/dist/routes/index.js +3 -3
- package/sdk/dist/routes/intent-dsl.d.ts +23 -10
- package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
- package/sdk/dist/routes/intent-dsl.js +19 -2
- package/sdk/dist/routes/intent-dsl.js.map +1 -1
- package/sdk/dist/routes/nest.d.ts +23 -0
- package/sdk/dist/routes/nest.d.ts.map +1 -1
- package/sdk/dist/routes/nest.js +2 -4
- package/sdk/dist/routes/nest.js.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.d.ts +2 -2
- package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.js +19 -35
- package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
- package/sdk/dist/routes/sauce-calls.d.ts +7 -13
- package/sdk/dist/routes/sauce-calls.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-calls.js +6 -11
- package/sdk/dist/routes/sauce-calls.js.map +1 -1
- package/sdk/dist/routes/sauce-route.d.ts +24 -53
- package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-route.js +5 -6
- package/sdk/dist/routes/sauce-route.js.map +1 -1
- package/sdk/dist/routes/source-globals.generated.d.ts +931 -0
- package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -0
- package/sdk/dist/routes/source-globals.generated.js +7 -0
- package/sdk/dist/routes/source-globals.generated.js.map +1 -0
- package/sdk/dist/std/token/token.svm.js +19 -14
- package/sdk/dist/svm/cpi-probe.d.ts +1 -1
- package/sdk/dist/svm/cpi-probe.d.ts.map +1 -1
- package/sdk/dist/svm/cpi-probe.js +5 -2
- package/sdk/dist/svm/cpi-probe.js.map +1 -1
- package/sdk/dist/svm/intent.d.ts +12 -40
- package/sdk/dist/svm/intent.d.ts.map +1 -1
- package/sdk/dist/svm/intent.js +22 -66
- package/sdk/dist/svm/intent.js.map +1 -1
- package/sdk/dist/svm/venues/byreal/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/byreal/index.js +4 -1
- package/sdk/dist/svm/venues/byreal/index.js.map +1 -1
- package/sdk/dist/svm/venues/carrot/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/carrot/index.js +4 -0
- package/sdk/dist/svm/venues/carrot/index.js.map +1 -1
- package/sdk/dist/svm/venues/cropper/index.d.ts +1 -1
- package/sdk/dist/svm/venues/cropper/index.js +1 -1
- package/sdk/dist/svm/venues/huma/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/huma/index.js +4 -1
- package/sdk/dist/svm/venues/huma/index.js.map +1 -1
- package/sdk/dist/svm/venues/index.d.ts +1 -0
- package/sdk/dist/svm/venues/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/index.js +1 -0
- package/sdk/dist/svm/venues/index.js.map +1 -1
- package/sdk/dist/svm/venues/math.d.ts +4 -1
- package/sdk/dist/svm/venues/math.d.ts.map +1 -1
- package/sdk/dist/svm/venues/math.js +4 -1
- package/sdk/dist/svm/venues/math.js.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js +4 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v2/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v2/index.js +5 -2
- package/sdk/dist/svm/venues/meteora-damm-v2/index.js.map +1 -1
- package/sdk/dist/svm/venues/obric-v2/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/obric-v2/index.js +16 -5
- package/sdk/dist/svm/venues/obric-v2/index.js.map +1 -1
- package/sdk/dist/svm/venues/oracle-exponent.d.ts +82 -0
- package/sdk/dist/svm/venues/oracle-exponent.d.ts.map +1 -0
- package/sdk/dist/svm/venues/oracle-exponent.js +97 -0
- package/sdk/dist/svm/venues/oracle-exponent.js.map +1 -0
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js +4 -1
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js.map +1 -1
- package/sdk/dist/svm/venues/pumpswap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/pumpswap/index.js +19 -13
- package/sdk/dist/svm/venues/pumpswap/index.js.map +1 -1
- package/sdk/dist/svm/venues/raydium-amm-v4/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/raydium-amm-v4/index.js +4 -1
- package/sdk/dist/svm/venues/raydium-amm-v4/index.js.map +1 -1
- package/sdk/dist/svm/venues/raydium-clmm/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/raydium-clmm/index.js +4 -1
- package/sdk/dist/svm/venues/raydium-clmm/index.js.map +1 -1
- package/sdk/dist/svm/venues/raydium-cp-swap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/raydium-cp-swap/index.js +4 -1
- package/sdk/dist/svm/venues/raydium-cp-swap/index.js.map +1 -1
- package/sdk/dist/svm/venues/scorch/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/scorch/index.js +4 -1
- package/sdk/dist/svm/venues/scorch/index.js.map +1 -1
- package/sdk/dist/svm/venues/stabble-common.d.ts +1 -1
- package/sdk/dist/svm/venues/stabble-common.js +1 -1
- package/sdk/dist/svm/venues/types.d.ts +4 -1
- package/sdk/dist/svm/venues/types.d.ts.map +1 -1
- package/sdk/dist/svm/venues/woofi/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/woofi/index.js +4 -0
- package/sdk/dist/svm/venues/woofi/index.js.map +1 -1
- package/sdk/dist/svm/verify.d.ts +27 -133
- package/sdk/dist/svm/verify.d.ts.map +1 -1
- package/sdk/dist/svm/verify.js +72 -139
- package/sdk/dist/svm/verify.js.map +1 -1
- package/sdk/dist/swap/index.d.ts +16 -59
- package/sdk/dist/swap/index.d.ts.map +1 -1
- package/sdk/dist/swap/index.js +16 -59
- package/sdk/dist/swap/index.js.map +1 -1
- package/sdk/dist/token/source.d.ts.map +1 -1
- package/sdk/dist/token/source.js +4 -1
- package/sdk/dist/token/source.js.map +1 -1
- package/sdk/dist/verify/decode.d.ts +6 -6
- package/sdk/dist/verify/decode.js +7 -7
- package/sdk/dist/verify/index.js +2 -2
- package/sdk/dist/verify/intent.js +2 -2
- package/sdk/dist/verify/vectors.d.ts +1 -1
- package/sdk/dist/verify/vectors.d.ts.map +1 -1
- package/sdk/dist/verify/vectors.js +2 -2
- package/sdk/dist/verify/vectors.js.map +1 -1
- package/sdk/dist/verify/wire.d.ts +7 -4
- package/sdk/dist/verify/wire.d.ts.map +1 -1
- package/sdk/dist/verify/wire.js +7 -4
- package/sdk/dist/verify/wire.js.map +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
{
|
|
2
|
-
"runtimeCreationCode": "0x615408808038035f393081526020015ff3602060203803608039608051301461001a573060e05261001f565b3360e0525b5f60205263eb77129b60e01b6101205260206020600461012060e0515afa1561014357610147565b6101605160e0518181141561014357815f5260205f207f243f6a8885a308d313198a2e03707344a4093822299f31d0082efa98ec4e6c8918815f5260205f207f452821e638d01377be5466cf34e90c6cc0ac29b7c97c50dd3f84d5b5b54709171860206080206102006152085f39805f5b80518218815260200180610200116100b85750505f61020052825f5b80518218815260200180610200116100d45750505f6102a052805f5b80518218815260200180610200116100f057505061030061024052815f5b805182188152602001806102001161010e575050505050505061dead6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b7f9e3779b97f4a7c159e3779b97f4a7c159e3779b97f4a7c159e3779b97f4a7c1560a052602060a020807ff698f2638ab1c8273f2b253967d5020f0df917af17b3046c2628460ab7e5142118604052806101605273ffffffffffffffffffffffffffffffffffffffff16738dfa7c88ecd6bc82d4014762d8dc6d5cc00c7373185f5260ff600b536055600b2073ffffffffffffffffffffffffffffffffffffffff1661016052610047565b61519e565b5f5ffd5b806102005180600101610200523560f81c60011b5160f01c565b816102005180600101610200523560f81c60011b5160f01c565b826102005180600101610200523560f81c60011b5160f01c565b836102005180600101610200523560f81c60011b5160f01c565b846102005180600101610200523560f81c60011b5160f01c565b856102005180600101610200523560f81c60011b5160f01c565b866102005180600101610200523560f81c60011b5160f01c565b876102005180600101610200523560f81c60011b5160f01c565b886102005180600101610200523560f81c60011b5160f01c565b896102005180600101610200523560f81c60011b5160f01c565b8a6102005180600101610200523560f81c60011b5160f01c565b8b6102005180600101610200523560f81c60011b5160f01c565b8c6102005180600101610200523560f81c60011b5160f01c565b8d6102005180600101610200523560f81c60011b5160f01c565b8e6102005180600101610200523560f81c60011b5160f01c565b8f6102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b906102005180600101610200523560f81c60011b5160f01c565b916102005180600101610200523560f81c60011b5160f01c565b926102005180600101610200523560f81c60011b5160f01c565b936102005180600101610200523560f81c60011b5160f01c565b946102005180600101610200523560f81c60011b5160f01c565b956102005180600101610200523560f81c60011b5160f01c565b966102005180600101610200523560f81c60011b5160f01c565b976102005180600101610200523560f81c60011b5160f01c565b986102005180600101610200523560f81c60011b5160f01c565b996102005180600101610200523560f81c60011b5160f01c565b9a6102005180600101610200523560f81c60011b5160f01c565b9b6102005180600101610200523560f81c60011b5160f01c565b9c6102005180600101610200523560f81c60011b5160f01c565b9d6102005180600101610200523560f81c60011b5160f01c565b9e6102005180600101610200523560f81c60011b5160f01c565b9f6102005180600101610200523560f81c60011b5160f01c565b90916102005180600101610200523560f81c60011b5160f01c565b6102005180600101803610610c4957610200523560f81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600201803610610c4957610200523560f01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600301803610610c4957610200523560e81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600401803610610c4957610200523560e01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600501803610610c4957610200523560d81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600601803610610c4957610200523560d01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600701803610610c4957610200523560c81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600801803610610c4957610200523560c01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600901803610610c4957610200523560b81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600a01803610610c4957610200523560b01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600b01803610610c4957610200523560a81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600c01803610610c4957610200523560a01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600d01803610610c4957610200523560981c6102005180600101610200523560f81c60011b5160f01c565b6102005180600e01803610610c4957610200523560901c6102005180600101610200523560f81c60011b5160f01c565b6102005180600f01803610610c4957610200523560881c6102005180600101610200523560f81c60011b5160f01c565b6102005180601001803610610c4957610200523560801c6102005180600101610200523560f81c60011b5160f01c565b6102005180601101803610610c4957610200523560781c6102005180600101610200523560f81c60011b5160f01c565b6102005180601201803610610c4957610200523560701c6102005180600101610200523560f81c60011b5160f01c565b6102005180601301803610610c4957610200523560681c6102005180600101610200523560f81c60011b5160f01c565b6102005180601401803610610c4957610200523560601c6102005180600101610200523560f81c60011b5160f01c565b6102005180601501803610610c4957610200523560581c6102005180600101610200523560f81c60011b5160f01c565b6102005180601601803610610c4957610200523560501c6102005180600101610200523560f81c60011b5160f01c565b6102005180601701803610610c4957610200523560481c6102005180600101610200523560f81c60011b5160f01c565b6102005180601801803610610c4957610200523560401c6102005180600101610200523560f81c60011b5160f01c565b6102005180601901803610610c4957610200523560381c6102005180600101610200523560f81c60011b5160f01c565b6102005180601a01803610610c4957610200523560301c6102005180600101610200523560f81c60011b5160f01c565b6102005180601b01803610610c4957610200523560281c6102005180600101610200523560f81c60011b5160f01c565b6102005180601c01803610610c4957610200523560201c6102005180600101610200523560f81c60011b5160f01c565b6102005180601d01803610610c4957610200523560181c6102005180600101610200523560f81c60011b5160f01c565b6102005180601e01803610610c4957610200523560101c6102005180600101610200523560f81c60011b5160f01c565b6102005180601f01803610610c4957610200523560081c6102005180600101610200523560f81c60011b5160f01c565b6102005180602001803610610c495761020052356102005180600101610200523560f81c60011b5160f01c565b610200513560f81c806102005101600101803610610c49576102405182610200516001018237808301601f01601f1916806303ffffe010611734576102405290610200529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f01c806102005101600201803610610c49576102405182610200516002018237808301601f01601f1916806303ffffe010611734576102405290610200529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660501c610cf3578060f01c15610c9a57808060f01c6140001615159060481c60ff166094141615610cf3575b8060481c60ff168015610cf15780609011610d0c57609110610d0c578060201c63ffffffff1660208111610d0c579063ffffffff1651906020036008021c6102005180600101610200523560f81c60011b5160f01c565b505b6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660501c610dd0578060f01c15610d5d57808060f01c6140001615159060481c60ff166094141615610dd0575b8060481c60ff168015610dce5780609011610de957609110610de9578060201c63ffffffff1660208111610de9579063ffffffff16515f5f5b838114610db15782811a816008021b90911790600101610d96565b509150506102005180600101610200523560f81c60011b5160f01c565b505b6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8101809111610f57576102005180600101610200523560f81c60011b5160f01c565b818110610f5757036102005180600101610200523560f81c60011b5160f01c565b8082028115610e46578181048314610e46575f5ffd5b9150506102005180600101610200523560f81c60011b5160f01c565b8115610f5757046102005180600101610200523560f81c60011b5160f01c565b8115610f5757066102005180600101610200523560f81c60011b5160f01c565b8115610f1e578015610f3b5760015b8260011615610ed557818082028115610ed1578181048314610ed1575f5ffd5b9150505b9160011c918215610f025781808082028115610ef8578181048314610ef8575f5ffd5b9150509150610eb1565b9150506102005180600101610200523560f81c60011b5160f01c565b505060016102005180600101610200523560f81c60011b5160f01c565b50505f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b166102005180600101610200523560f81c60011b5160f01c565b176102005180600101610200523560f81c60011b5160f01c565b186102005180600101610200523560f81c60011b5160f01c565b196102005180600101610200523560f81c60011b5160f01c565b1b6102005180600101610200523560f81c60011b5160f01c565b1c6102005180600101610200523560f81c60011b5160f01c565b806002116110f4578060018160801c15611014579060801c9060401b5b8160401c15611026579060401c9060201b5b8160201c15611038579060201c9060101b5b8160101c1561104a579060101c9060081b5b8160081c1561105c579060081c9060041b5b8160041c1561106e579060041c9060021b5b9060041161107a5760011b5b806002020160011c818190040160011c818190040160011c818190040160011c818190040160011c818190040160011c818190040160011c8181900491508181116110da5790506102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b6102005180600101610200523560f81c60011b5160f01c565b8282025f19838509818110908290030380156111a557828110156111c95782848609828111909103910382805f031683819004935080910490805f03046001019091021781806003026002188181026002030281810260020302818102600203028181026002030281810260020302818102600203029050029050905090506102005180600101610200523560f81c60011b5160f01c565b5081156111c957049150506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f036102005180600101610200523560f81c60011b5160f01c565b91086102005180600101610200523560f81c60011b5160f01c565b91096102005180600101610200523560f81c60011b5160f01c565b056102005180600101610200523560f81c60011b5160f01c565b076102005180600101610200523560f81c60011b5160f01c565b1d6102005180600101610200523560f81c60011b5160f01c565b0b6102005180600101610200523560f81c60011b5160f01c565b156102005180600101610200523560f81c60011b5160f01c565b15156102005180600101610200523560f81c60011b5160f01c565b3b15156102005180600101610200523560f81c60011b5160f01c565b3b156102005180600101610200523560f81c60011b5160f01c565b156102005180600101610200523560f81c60011b5160f01c565b146102005180600101610200523560f81c60011b5160f01c565b14156102005180600101610200523560f81c60011b5160f01c565b116102005180600101610200523560f81c60011b5160f01c565b106102005180600101610200523560f81c60011b5160f01c565b10156102005180600101610200523560f81c60011b5160f01c565b11156102005180600101610200523560f81c60011b5160f01c565b136102005180600101610200523560f81c60011b5160f01c565b126102005180600101610200523560f81c60011b5160f01c565b12156102005180600101610200523560f81c60011b5160f01c565b13156102005180600101610200523560f81c60011b5160f01c565b15901517156102005180600101610200523560f81c60011b5160f01c565b1715156102005180600101610200523560f81c60011b5160f01c565b159015186102005180600101610200523560f81c60011b5160f01c565b336102005180600101610200523560f81c60011b5160f01c565b326102005180600101610200523560f81c60011b5160f01c565b5a6102005180600101610200523560f81c60011b5160f01c565b466102005180600101610200523560f81c60011b5160f01c565b306102005180600101610200523560f81c60011b5160f01c565b436102005180600101610200523560f81c60011b5160f01c565b426102005180600101610200523560f81c60011b5160f01c565b416102005180600101610200523560f81c60011b5160f01c565b446102005180600101610200523560f81c60011b5160f01c565b456102005180600101610200523560f81c60011b5160f01c565b476102005180600101610200523560f81c60011b5160f01c565b346102005180600101610200523560f81c60011b5160f01c565b486102005180600101610200523560f81c60011b5160f01c565b3a6102005180600101610200523560f81c60011b5160f01c565b604a6102005180600101610200523560f81c60011b5160f01c565b316102005180600101610200523560f81c60011b5160f01c565b406102005180600101610200523560f81c60011b5160f01c565b3b6102005180600101610200523560f81c60011b5160f01c565b3f6102005180600101610200523560f81c60011b5160f01c565b496102005180600101610200523560f81c60011b5160f01c565b3b15156102005180600101610200523560f81c60011b5160f01c565b3b156102005180600101610200523560f81c60011b5160f01c565b3661024051815f8237808201601f01601f1916806303ffffe01061173457610240529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b6102405180630400000003821161173057809101601f01601f1916610240526102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b806103001161177e57526102005180600101610200523560f81c60011b5160f01c565b806103001161177e57516102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5c6102005180600101610200523560f81c60011b5160f01c565b546102005180600101610200523560f81c60011b5160f01c565b5d6102005180600101610200523560f81c60011b5160f01c565b556102005180600101610200523560f81c60011b5160f01c565b610200526102005180600101610200523560f81c60011b5160f01c565b906117ea57506102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff16fd5b8060201c63ffffffff169063ffffffff16206102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff1681604114156119ef578373ffffffffffffffffffffffffffffffffffffffff1693508380156119ed5750610240518060e001806303ffffe010611734576102405281518260200151836040015160f81c86845280846020015282846040015281846060015260208460800160808660015afa1561192c5783608001518814806119015750505050611930565b9360e03682376102405250505093505050506102005180600101610200523560f81c60011b5160f01c565b5050505b843b156119c6577f1626ba7e000000000000000000000000000000000000000000000000000000008152838160040152604081602401528281604401528282826064015e60208160c0018460640183885afa156119c657601f3d11156119c6578060c0015160e01c631626ba7e149060e03682376102405293505050506102005180600101610200523560f81c60011b5160f01c565b60e036823761024052505050505f6102005180600101610200523560f81c60011b5160f01c565b505b505050505f6102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff165f5f83836102405180602001806303ffffe010611734576102405260206020380382398051906020368237610240525afa91505015611aee575f6102a052610240513d8015611ac857815f82913e818101601f01601f1916806303ffffe0106117345761024052640100000000811015611b1557640100000000821015611b155760201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b506990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b3d610280526102405180610260525f3d913e610280518015611b105761026051fd5b505f5ffd5b5f5ffd5b8060481c60ff166092141561210e578060401c60ff168060901490806092149060941417171561210e578063ffffffff169060201c63ffffffff168060051c80600f1061211257610240518061044001806303ffffe0106117345761024052805f5b838114611bc1578060051b8601518060481c60ff1660901415612116578060201c63ffffffff168060201061211a579063ffffffff168190845e90910190600101611b7b565b50808261034001528581600101527f50726f6772616d446572697665644164647265737300000000000000000000008160210152808290036036018261036001525060ff8161038001526020816102600152602081610260016020015260208161026001604001527f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8161026001608001527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed816102600160a001525b8061038001518060e0116121265781610340015153602081610240018261036001518360025afa1561211e57806102400151807fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff001660081c907fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00191660081b17807fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00001660101c907fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000191660101b17807fffffffff00000000ffffffff00000000ffffffff00000000ffffffff000000001660201c907fffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000191660201b17807fffffffffffffffff0000000000000000ffffffffffffffff00000000000000001660401c907fffffffffffffffff0000000000000000ffffffffffffffff0000000000000000191660401b178060801c9060801b17600160ff1b1916816103a00152806103a00151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed600190037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9108826103c001527f52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a37f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed910960017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9108816103e00152806103e0015180807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109907f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816104000152806104000151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103e001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103c001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed91098161026001606001526020816103200160c0836102600160055afa1561212257806103c001518161040001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed91098161032001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816104200152806104200151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103e001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed910980826103c001511490826103c001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed031417156120d55780610380015160019003816103800152611c7e565b80610240015181610380015191610440368237610240529150915091509150906102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f838386885af19350505050156121f5573d156121cc573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061173457610240526401000000003d101561225057640100000000610260511015612250573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b71461222b573d610280526102405180610260525f3d913e6102805180156122265761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f8383865afa925050501561231d573d156122f4573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061173457610240526401000000003d101561237857640100000000610260511015612378573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b714612353573d610280526102405180610260525f3d913e61028051801561234e5761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f8383865af49250505015612445573d1561241c573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061173457610240526401000000003d10156124a0576401000000006102605110156124a0573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b71461247b573d610280526102405180610260525f3d913e6102805180156124765761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b610200513560f81c6102a051156124df575f6102a0526102005160010161020052506102005180600101610200523560f81c60011b5160f01c565b6102005101600101610200526102005180600101610200523560f81c60011b5160f01c565b8060481c60ff168060941461256057806092146125865760901461253e575060206102005180600101610200523560f81c60011b5160f01c565b60201c63ffffffff166102005180600101610200523560f81c60011b5160f01c565b5060201c63ffffffff1660051c6102005180600101610200523560f81c60011b5160f01c565b508060401c60ff16801581602010176125bd579060201c63ffffffff16046102005180600101610200523560f81c60011b5160f01c565b5060251c6307ffffff166102005180600101610200523560f81c60011b5160f01c565b8260481c60ff16801581609014176126ca576094146126b5578260401c60ff168060401b69920000000000000000001793929190801581602010176126ad575b826304000000106127305781630400000010612642575b80910291029061264f565b9050630400000090612637565b8260201c63ffffffff1682811115612730578290038181101561266e57905b508263ffffffff1682019060201b1783806994000000000000000000146126de5717925050506102005180600101610200523560f81c60011b5160f01c565b506020612620565b69940000000000000000009291906020612620565b50699000000000000000000092919061264f565b6126fa8263ffffffff168360201c63ffffffff1660051c613155565b60f01b17178060201c63ffffffff1660051c60ff1660401b17925050506102005180600101610200523560f81c60011b5160f01c565b5050505061024051178060481c60ff16609414612760576102005180600101610200523560f81c60011b5160f01c565b6180006140001760f01b176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c610200516001016102005280156129ae57806001146129d8578160481c60ff16806094146127ce57806092146127e057506990000000000000000000906127f9565b506994000000000000000000906127f9565b508160401c60ff1660401b699200000000000000000017905b5f91906102405180915b8015612905578360481c60ff168060941461284257806092146128a957505b8560481c60ff16801561283c578060901461283c576129f2565b506128d0565b508560481c60ff1680609414612857576129f2565b508560f01c6140001615151561289a578560f01c61400061800017809116141561288b57938560f01c6107ff1601936128d0565b936501000000000017936128d0565b936502000000000017936128d0565b508560481c60ff1680609214156129f257508360401c60ff168660401c60ff1614156129f2575b8560201c63ffffffff1680156128ff578663ffffffff168190845e909101905b94509091929360019003612803565b506128f0565b5080601f01601f1916806303ffffe01061173457610240528190036401000000008110156129f2576401000000008210156129f257828069940000000000000000001461296f579060201b1717905090506102005180600101610200523560f81c60011b5160f01c565b8461297990613200565b60f01b17908060051c60ff1660401b9091179060201b1717905090506102005180600101610200523560f81c60011b5160f01c565b50610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b6102005180600101610200523560f81c8015612b8d575f9061024051808260051b0180806303ffffe0106117345761024052915090815b847dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff1680609014908060921490609414171716905015612aef578460f01c15612ac257848060f01c6140001615159060481c60ff166094141615612aef578460f01c614000618000178091161415612ad157928460f01c6107ff160192612b1d565b8460481c60ff16609414612ae0575b92650100000000001792612b1d565b92650200000000001792612b1d565b6102405185815280602001806303ffffe0106117345761024052692000000000200000000017945092600101925b8481529350909192602001808214612b3457612a2d565b5081900360051c6401000000008210156131295791612b5290613200565b60f01b918060ff1660401b9060251b1769940000000000000000001717176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b50610240516994000000000000000000176180006140001760f01b176102005180600101610200523560f81c60011b5160f01c565b61020051358060f81c9060f01c60ff166102005160020161020052612bfe565b61020051358060f01c9060e81c60ff1661020051600301610200525b80156131255780602111612d4e5780609014612c295780609214612c295780609414612c2957613125565b908015612d1f5761024051808260051b0180806303ffffe0106117345761024052915090815b847dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff16806090149080609214906094141717169050612cc4576102405185815280602001806303ffffe010611734576102405269200000000020000000001794505b8481529350909192602001808214612cdb57612c4f565b5081900360051c64010000000082101561312957909160401b9060251b17699200000000000000000017176102005180600101610200523560f81c60011b5160f01c565b50610240519060401b176992000000000000000000176102005180600101610200523560f81c60011b5160f01c565b8181026102405180820180601f01601f1916602001806303ffffe01061173457610240528415612dab5791509250909190815b8360200360031b85901b815293509091928301808214612da057612d81565b508190039091612db5565b9350925090612db5565b6401000000008310156131295760401b9060201b17699200000000000000000017176102005180600101610200523560f81c60011b5160f01c565b8060481c60ff1680609414612e3e5780609214612e6457505b8060201c63ffffffff168210156131215763ffffffff16015160f81c6102005180600101610200523560f81c60011b5160f01c565b508060201c63ffffffff1660051c8210156131215763ffffffff169060051b0151612ee0565b508060401c60ff168015612ebe578060211115612ebe578160201c63ffffffff16819004831015613121579063ffffffff1682820201519060200360031b1c90506102005180600101610200523560f81c60011b5160f01c565b508060201c63ffffffff1660051c8210156131215763ffffffff169060051b01515b8060481c60ff168015612f0d57602111612f27576102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b63ffffffff16516102005180600101610200523560f81c60011b5160f01c565b919081908160481c60ff1680609414612f9457609214156130a6578160401c60ff1680602014612f8e5780609014612f8e5780609214612f8e5780609414612f8e576130a6565b50612f96565b505b8160201c63ffffffff1680601f166130a65760051c8110156130a65760051b9063ffffffff1680610300116130a657018060200161024051106130a6579063ffffffff191617908160481c60ff16806094146130aa5760921415613085578160401c60ff168060901490806092149060941417171561308557807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff16806090149080609214906094141717169050613085575b6102405181815280602001806303ffffe010611734576102405269200000000020000000001790505b9063ffffffff16526102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b50807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff168060901490806092149060941417171690501561305c578060f01c1561308557808060f01c6140001615159060481c60ff16609414161561305c57613085565b5f5ffd5b5f5ffd5b5f5ffd5b7f53415543650000000000000000000000000000000000000000000000000000005f5260045ffd5b5f5f5b8282146131f857838260051b01518060481c60ff1680156131cc57806021116131885760941461319757506131e9565b50506001019060010190613158565b8060f01c614000161515156131d9578060f01c6140006180001780911614156131d35760f01c6107ff16019060010190613158565b50506131e9565b506131e9565b50905065020000000000176131fb565b905065010000000000176131fb565b90505b905090505b8065010000000000116132265780650200000000001161321f57505f90565b5061400090565b806107ff10612b8957618000614000171790565b610200513560f81c61020051600101610200528015613271578060011461329e57806002146132cc57806003146132fa575061332b565b508063ffffffff169060201c63ffffffff1690a06102005180600101610200523560f81c60011b5160f01c565b50908063ffffffff169060201c63ffffffff1690a16102005180600101610200523560f81c60011b5160f01c565b50918063ffffffff169060201c63ffffffff1690a26102005180600101610200523560f81c60011b5160f01c565b50929091908063ffffffff169060201c63ffffffff1690a36102005180600101610200523560f81c60011b5160f01c565b939092908063ffffffff169060201c63ffffffff1690a46102005180600101610200523560f81c60011b5160f01c565b8063ffffffff169060201c63ffffffff1691f06102005180600101610200523560f81c60011b5160f01c565b8063ffffffff169060201c63ffffffff169192f56102005180600101610200523560f81c60011b5160f01c565b6102405180608001806303ffffe010611734576102405283816015015260ff8160200153828160350152818160550152605581602001209060803682376102405273ffffffffffffffffffffffffffffffffffffffff16925050506102005180600101610200523560f81c60011b5160f01c565b6102405180604001806303ffffe01061173457610240529080156134a757806080116134b85780610100116134c6578062010000116134db57806301000000116134f957806401000000001161352057806501000000000011613550578066010000000000001161356557806701000000000000001161357a5761358f565b5060808160360153601760d66135a4565b8160360153601760d66135a4565b608182603601538160370153601860d76135a4565b608282603601538060081c82603701538160380153601960d86135a4565b608382603601538060101c82603701538060081c82603801538160390153601a60d96135a4565b608482603601538060181c82603701538060101c82603801538060081c826039015381603a0153601b60da6135a4565b81601c015260858160360153601c60db6135a4565b81601d015260868160360153601d60dc6135a4565b81601e015260878160360153601e60dd6135a4565b81601f015260888160360153601f60de6135a4565b83836016015260948360210153826020015381602001209060403682376102405273ffffffffffffffffffffffffffffffffffffffff1690506102005180600101610200523560f81c60011b5160f01c565b610240518060a001806303ffffe01061173457610240528163ffffffff1681529060201c63ffffffff1681602001526f67363d3d37363d34f03d5260086018f360801b8160400152816010826040015ff580156136c6575f5f8360200151845187855af1156136ca5780826076015260d682608001536094826081015360018260960153601782608001209160a0368237610240529073ffffffffffffffffffffffffffffffffffffffff16803b156136ce57925050506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b5f5ffd5b6102405180608001806303ffffe010611734576102405230816015015260ff81602001538181603501527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f81605501526055816020012073ffffffffffffffffffffffffffffffffffffffff1680826016015260d68260200153609482602101536001826036015360178260200120916080368237610240529073ffffffffffffffffffffffffffffffffffffffff169150506102005180600101610200523560f81c60011b5160f01c565b6102c051156137ac576137c9565b61024051806102c05261016001806303ffffe01061173457610240525b5f6102c0516101000152610240516102c051608001525b8060201c63ffffffff1660051c6102c0516040015263ffffffff166102c051606001525b5f6102c051602001525f6102c051525b6102c051604001516102c0515110156138d1576102c051606001516102c0515160051b01518060481c60ff1660941461386d57506102c051602001516001016102c051602001526102c051516001016102c05152613814565b8060f01c6140006180001780911614156138ab5760f01c6107ff166102c05160200151016102c051602001526102c051516001016102c05152613814565b506102c051602001516001016102c051602001526102c051516001016102c05152613814565b6102c0516020015160051b6102c05160800151016102c05160a001525f6102c051602001525f6102c051525b6102c051604001516102c051511015613e57576102c051606001516102c0515160051b01518060481c60ff1680156139cc578060211161398a57806090146139cc5780609414613ab65780609214613cac57506102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b5063ffffffff16516102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b506102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01528060201c63ffffffff169063ffffffff16816102c05160a00151528115613a7c5781906102c05160a001516020015e80601f01601f1916819003366102c05160a00151602001830137601f01601f19166020016102c05160a00151016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b50506102c05160a001516020016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b508060f01c614000618000178091161415613c05578060f01c6107ff166102c05161014001528060201c63ffffffff1660051c60201b9063ffffffff1660401b17700100000000000000000000000000000000905b8070010000000000000000000000000000000014613be3578063ffffffff168160201c63ffffffff1614613bdd578060401c63ffffffff168163ffffffff1660051b01518060481c60ff16609414613bb85763ffffffff16516102c051610140015115613f23576102c0516101400151600190036102c05161014001526102c051608001516102c0516020015160051b01526102c051602001516001016102c05160200152600101613b0b565b90600101908060201c63ffffffff1660051c60201b9063ffffffff1660401b17613b0b565b50613b0b565b506102c05161014001511515613f23576102c051516001016102c051526138fd565b6102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c051526102c05161012001526102c05161010001516001016102c05161010001526102c051602001516102c051604001516102c051606001516102c051608001516102c051516102c05160a001516102c051608001526102c05161012001516137e0565b506102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01528060401c60ff166102c05160e001528060201c63ffffffff169063ffffffff166102c05160c001526102c05160e0015115613dae5760206102c05160e0015111613dae576102c05160e001519004806102c05160a00151525f5b81811015613d71576102c05160c001516102c05160e00151820201516102c05160e0015160200360031b1c6102c05160a001516020018260051b0152600101613d2d565b5060051b6020016102c05160a00151016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b60051c806102c05160a00151526102c05161012001526102c051602001516001016102c051602001526102c051516001016102c051526102c05161010001516001016102c05161010001526102c051602001516102c051604001516102c051606001516102c051608001516102c051516102c05160a001516020016102c051608001526102c05160c001516102c051606001526102c05161012001516102c05160400152613804565b6102c051610100015115613ea45760016102c0516101000151036102c05161010001526102c051526102c051608001526102c051606001526102c051604001526102c051602001526138fd565b6102c051608001516102c05160a00151036102c051608001516102c05160a00151601f01601f1916806303ffffe0106117345761024052640100000000811015613f1f57640100000000821015613f1f579060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b6102005180600101610200523560f81c6102e05115613f4557613f62565b61024051806102e05261020001806303ffffe01061173457610240525b908060201c63ffffffff166102e0516101e0015263ffffffff166102e051604001526102e051604001516102e0516101e00151016102e0511015613fb6576102e051604001516102e0516102000111614cee575b806102e0516020015261024051806102e051608001529060051b01806303ffffe01061173457610240525f6102e051606001525f6102e051525f6102e05160a001525f6102e05160e001525b6102e051602001516102e0515114614bd0576102e05160a001511561402e576102e05160c00151610200525b610200513560f81c61020051600101610200528060901461411f578060941461426e578060921461477c575b801561406d578060201061406d57614071565b5060205b6102e05161010001526102e051606001516020016102e0516101e0015110614cee576102e051604001516102e0516060015101516102e051610100015160031b6001901b60019003166102405190815280602001806303ffffe0106117345761024052642000000000176102e051610100015160481b176102e051608001516102e0515160051b01526102e051516001016102e051526102e051606001516020016102e05160600152614002565b506102e051606001516020016102e0516101e0015110614cee576102e051604001516102e051606001510151806102e0516101e0015110614cee57806020016102e0516101e0015110614cee57806102e051604001510151806303ffffe010614cea578082016020016102e0516101e0015110614cee576102e05161010001526102e05160400151016020016102e0516101200152610240516102e05161014001526102e051610100015115614215576102e05161010001516102e05161012001516102e05161014001515e6102e0516101000151601f01601f19166102e051610140015101806303ffffe01061173457610240525b6102e051610100015160201b6102e0516101400151176990000000000000000000176102e051608001516102e0515160051b01526102e051516001016102e051526102e051606001516020016102e05160600152614002565b50610200513560f81c6102e051610100015261020051600101610200525f6102e05161018001525f6102e0516101a001526102e05161010001516102e0516101c00152610200515b6102e0516101c001511561433f57803560f81c90600101906102e0516101c00151600190036102e0516101c001528060941461430d57602010614339576102e05161018001516001016102e05161018001526142b6565b5060016102e0516101a00152803560f81c6102e0516101c00151016102e0516101c001526001016142b6565b5061448d565b506102e0516101a00151156145dd575b6102e051610180015160051b6102e0516060015101806102e0516101e0015110614cee576102e051604001516102e05160600151016102e05161012001526102e051606001516102e0516101e00151036102e05161016001526102e0516060015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061173457610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161012001516102e051604001526102e05161016001516102e0516101e001526102e05161010001516102e051602001526102e05161014001516102e051608001525f6102e051606001525f6102e051525f6102e05160a00152614002565b6102e051606001516020016102e0516101e0015110614cee576102e051604001516102e051606001510151806102e0516101e0015110614cee57806102e05160400151016102e05161012001526102e0516101e00151036102e05161016001526102e051606001516020016102e0516060015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061173457610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161012001516102e051604001526102e05161016001516102e0516101e001526102e05161010001516102e051602001526102e05161014001516102e051608001525f6102e051606001525f6102e051525f6102e05160a00152614002565b6102e051610100015160051b6102e05160600151016102e0516101e0015110614cee576102e051604001516102e05160600151016102e051610120015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061173457610240525f5b806102e0516101000151146146f157610200513560f81c6102005160010161020052801561467b578060201061467b5761467f565b5060205b6102e05161016001526102e05161012001518160051b01516102e051610160015160031b6001901b60019003166102405190815280602001806303ffffe0106117345761024052642000000000176102e051610160015160481b176102e05161014001518260051b0152600101614646565b5061470c6102e05161014001516102e0516101000151613155565b60f01b6102e05161010001518060ff1660401b9060251b176994000000000000000000176102e051610140015117176102e051608001516102e0515160051b01526102e051516001016102e051526102e051610100015160051b6102e05160600151016102e05160600152614002565b50610200516102e05161010001526102e05161010001513560f81c6102e05161012001526102e051606001516020016102e0516101e0015110614cee576102e051604001516102e051606001510151806102e0516101e0015110614cee57806020016102e0516101e0015110614cee57806102e05160400151018051806303ffffe060051c10614ce6578060051b60200183016102e0516101e0015110614cee576102e05161014001526020016102e05161016001526020016102e0516101e00151036102e0516101a001526102e051606001516020016102e051606001526102e05161012001518015614ce25780602111614a37578060901461488f578060921461488f578060941461488f57614ce2565b506102e0516101400151156149a55761024051806102e05161018001526102e051610140015160051b018063040000001061312d57806303ffffe01061173457610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161016001516102e051604001526102e0516101a001516102e0516101e001526102e05161014001516102e051602001526102e05161018001516102e051608001525f6102e051606001525f6102e0515260016102e05160a001526102e05161010001516102e05160c001526102e051610100015161020052614002565b6102005160015b80156149f157813560f81c9160010191806094146149d657806092146149eb5750600190036149ac565b50813560f81c019060010190600190036149ac565b506149ac565b50610200526102e051610120015160401b69920000000000000000001761024051176102e051608001516102e0515160051b01526102e051516001016102e05152614002565b5061020051600101610200526102e051610140015115614b8f576102e05161014001516102e0516101200151026102e0516101800152610240516102e0516101a001525f6102e0516101c001525b6102e0516101c001516102e051610140015114614b10576102e05161016001516102e0516101c0015160051b01516102e051610120015160031b6001901b60019003166102e051610120015160200360031b1b6102e0516101c001516102e0516101200151026102e0516101a0015101526102e0516101c001516001016102e0516101c00152614a85565b6102e0516101800151601f01601f19166020016102e0516101a0015101806303ffffe01061173457610240526102e051610180015160201b6102e0516101a00151176102e051610120015160401b176992000000000000000000176102e051608001516102e0515160051b01526102e051516001016102e05152614002565b610240516102e051610120015160401b699200000000000000000017176102e051608001516102e0515160051b01526102e051516001016102e05152614002565b6102e05160e0015115614cf25760016102e05160e00151036102e05160e001526102e05160a0015115614c32576102e05160c001513560f81c60401b6992000000000000000000176102e0516020015160251b176102e0516080015117614c78565b614c4a6102e051608001516102e05160200151613155565b60f01b6102e051602001518060ff1660401b9060251b176994000000000000000000176102e0516080015117175b906102e05152906102e05160200152906102e05160400152906102e05160600152906102e05160800152906102e05160a00152906102e05160c00152906102e0516101e001526102e051608001516102e0515160051b01526102e051516001016102e05152614002565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b614d0a6102e051608001516102e05160200151613155565b60f01b6102e051602001518060ff1660401b9060251b176994000000000000000000176102e0516080015117176102005180600101610200523560f81c60011b5160f01c565b6102e05115614d5e57614d7b565b61024051806102e05261020001806303ffffe01061173457610240525b8060481c6090141561519a578063ffffffff16806103001161519a57806102e051529060201c63ffffffff160180610240511061519a576102e05160200152610200518060020180361061519a57903560f01c0180361061519a576102e0516040015261020051600201610200525f6102e0516060015260046102e05151808201806102e051602001511061519a576102e05152519060200360031b1c6353410100141561519a57614e2b614e69565b6102e051516102e05160200151141561519a57610200516102e05160400151141561519a576102005180600101610200523560f81c60011b5160f01c565b6102e051606001516001018060201061519a576102e05160600152600161020051808201806102e051604001511061519a5761020052359060200360031b1c80602014614ed55780604014614ed55780609014614f3b5780609214614f9357806094146150b15761519a565b60016102e05151808201806102e051602001511061519a576102e05152519060200360031b1c8060201061519a576102e05151808201806102e051602001511061519a576102e05152519060200360031b1c90604014614f3457615183565b1515615183565b5060046102e05151808201806102e051602001511061519a576102e05152519060200360031b1c6102e05151808201806102e051602001511061519a576102e051529060201b17699000000000000000000017615183565b50600261020051808201806102e051604001511061519a5761020052359060200360031b1c801561519a5761020051808201806102e051604001511061519a57915060046102e05151808201806102e051602001511061519a576102e05152519060200360031b1c806303ffffe060051c1061519a57610240518160051b8101806303ffffe0106117345761024052823560f81c8060401461503457615038565b5060205b8060201461505d578060901461505d578060921461505d578060941461505d5761519a565b60401b8260251b17811769920000000000000000001791905b81156150a4578361020052615089614e69565b81528461020051141561519a57602001906001900390615076565b5050916102005250615183565b50600261020051808201806102e051604001511061519a5761020052359060200360031b1c806303ffffe060051c1061519a57610240518160051b8101806303ffffe01061173457610240528160251b81176994000000000000000000178290915b811561516a57610200513560f81c615129614e69565b81604010615158576102405180602001806303ffffe01061173457610240529081526920000000002000000000175b90508152602001906001900390615113565b505061517c8163ffffffff1683613155565b60f01b1790505b6102e05160600151600190036102e0516060015290565b5f5ffd5b6102a051156151bc576102805180156151b75761026051fd5b505f5ffd5b8061dead14615203578060201c63ffffffff169063ffffffff1681156151fc5780610300116151f85781810161024051106151f85781905f5e5ff35b5f5ffd5b5050505f5ff35b505f5ff360e54e1eb8d31e74ab4dead131f979b862651765e7c3665d302a289d5ee96d8e6957431eb5d31374a44de5d13ef976b86d651865eac36b5d3d2a259d53e96e8e6a574683b37c1594a32fe263393b70df75a80058f10b730e25b43d154b5b77f26e4c441bb2fc140da28ee33c366e7edf65521062e11460fa365d2eda58fe6469739159ceaf8108a8be6bffa024c26c5d7735023ef32672d224503b384d3a71d160e06e6aa54a03c0a100e1f1366e643165521062e11460fa365d2eda58fe6469757b5fe8a9d30f1eb999f80f22916a0a719904c3f5937487220e3a934cd1646974e45d63ab540de5bb16fe5a254e7edf65521062e11460fa365d2eda58fe646976955cf28e282f8c9ecadf55026f49fa73fe06adf61b60fa365d2eda58fe64696a7a40b596b1304684bbc901101d52d865521062faee4e4a7afa2eda58fe6469568974499c5939f08e31fa4d366e7edf65521062e11460fa365d2eda58fe646976fd5369bc841a53acbaed162fbf5b8c65521062e11460fa365d2eda58fe646960e04a99bc841a53bafbfb3105a37edf65521062e11460fa365d2eda58fe646960ec497bbf5c19edaf2eee9c350e7d99666e1370e21c621434992c605a6e661f628c48dbbebc184da94ee8fc33ae7b7960ce1510e47c65b433792bc05c0e60bf642c4e3baa4b1a53acbaed16366e7edf65521062e11460fa365d2eda58fe6469"
|
|
2
|
+
"runtimeCreationCode": "0x61533c808038035f393081526020015ff3602060203803608039608051301461001a573060e05261001f565b3360e0525b5f60205263eb77129b60e01b6101205260206020600461012060e0515afa1561014357610147565b6101605160e0518181141561014357815f5260205f207f243f6a8885a308d313198a2e03707344a4093822299f31d0082efa98ec4e6c8918815f5260205f207f452821e638d01377be5466cf34e90c6cc0ac29b7c97c50dd3f84d5b5b547091718602060802061020061513c5f39805f5b80518218815260200180610200116100b85750505f61020052825f5b80518218815260200180610200116100d45750505f6102a052805f5b80518218815260200180610200116100f057505061030061024052815f5b805182188152602001806102001161010e575050505050505061dead6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b7f9e3779b97f4a7c159e3779b97f4a7c159e3779b97f4a7c159e3779b97f4a7c1560a052602060a020807ff698f2638ab1c8273f2b253967d5020f0df917af17b3046c2628460ab7e5142118604052806101605273ffffffffffffffffffffffffffffffffffffffff16738dfa7c88ecd6bc82d4014762d8dc6d5cc00c7373185f5260ff600b536055600b2073ffffffffffffffffffffffffffffffffffffffff1661016052610047565b6150d2565b5f5ffd5b806102005180600101610200523560f81c60011b5160f01c565b816102005180600101610200523560f81c60011b5160f01c565b826102005180600101610200523560f81c60011b5160f01c565b836102005180600101610200523560f81c60011b5160f01c565b846102005180600101610200523560f81c60011b5160f01c565b856102005180600101610200523560f81c60011b5160f01c565b866102005180600101610200523560f81c60011b5160f01c565b876102005180600101610200523560f81c60011b5160f01c565b886102005180600101610200523560f81c60011b5160f01c565b896102005180600101610200523560f81c60011b5160f01c565b8a6102005180600101610200523560f81c60011b5160f01c565b8b6102005180600101610200523560f81c60011b5160f01c565b8c6102005180600101610200523560f81c60011b5160f01c565b8d6102005180600101610200523560f81c60011b5160f01c565b8e6102005180600101610200523560f81c60011b5160f01c565b8f6102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b906102005180600101610200523560f81c60011b5160f01c565b916102005180600101610200523560f81c60011b5160f01c565b926102005180600101610200523560f81c60011b5160f01c565b936102005180600101610200523560f81c60011b5160f01c565b946102005180600101610200523560f81c60011b5160f01c565b956102005180600101610200523560f81c60011b5160f01c565b966102005180600101610200523560f81c60011b5160f01c565b976102005180600101610200523560f81c60011b5160f01c565b986102005180600101610200523560f81c60011b5160f01c565b996102005180600101610200523560f81c60011b5160f01c565b9a6102005180600101610200523560f81c60011b5160f01c565b9b6102005180600101610200523560f81c60011b5160f01c565b9c6102005180600101610200523560f81c60011b5160f01c565b9d6102005180600101610200523560f81c60011b5160f01c565b9e6102005180600101610200523560f81c60011b5160f01c565b9f6102005180600101610200523560f81c60011b5160f01c565b90916102005180600101610200523560f81c60011b5160f01c565b61020051803560f81c90600101803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560f01c90600201803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560e81c90600301803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560e01c90600401803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560d81c90600501803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560d01c90600601803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560c81c90600701803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560c01c90600801803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560b81c90600901803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560b01c90600a01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560a81c90600b01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560a01c90600c01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560981c90600d01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560901c90600e01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560881c90600f01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560801c90601001803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560781c90601101803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560701c90601201803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560681c90601301803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560601c90601401803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560581c90601501803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560501c90601601803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560481c90601701803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560401c90601801803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560381c90601901803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560301c90601a01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560281c90601b01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560201c90601c01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560181c90601d01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560101c90601e01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803560081c90601f01803610610b5b5780600101610200523560f81c60011b5160f01c565b61020051803590602001803610610b5b5780600101610200523560f81c60011b5160f01c565b610200513560f81c806102005101600101803610610b5b576102405182610200516001018237808301601f01601f1916806303ffffe0106116465761024052909160201b176990000000000000000000179080600101610200523560f81c60011b5160f01c565b610200513560f01c806102005101600201803610610b5b576102405182610200516002018237808301601f01601f1916806303ffffe0106116465761024052909160201b176990000000000000000000179080600101610200523560f81c60011b5160f01c565b5f5ffd5b807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660501c610c05578060f01c15610bac57808060f01c6140001615159060481c60ff166094141615610c05575b8060481c60ff168015610c035780609011610c1e57609110610c1e578060201c63ffffffff1660208111610c1e579063ffffffff1651906020036008021c6102005180600101610200523560f81c60011b5160f01c565b505b6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660501c610ce2578060f01c15610c6f57808060f01c6140001615159060481c60ff166094141615610ce2575b8060481c60ff168015610ce05780609011610cfb57609110610cfb578060201c63ffffffff1660208111610cfb579063ffffffff16515f5f5b838114610cc35782811a816008021b90911790600101610ca8565b509150506102005180600101610200523560f81c60011b5160f01c565b505b6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8101809111610e69576102005180600101610200523560f81c60011b5160f01c565b818110610e6957036102005180600101610200523560f81c60011b5160f01c565b8082028115610d58578181048314610d58575f5ffd5b9150506102005180600101610200523560f81c60011b5160f01c565b8115610e6957046102005180600101610200523560f81c60011b5160f01c565b8115610e6957066102005180600101610200523560f81c60011b5160f01c565b8115610e30578015610e4d5760015b8260011615610de757818082028115610de3578181048314610de3575f5ffd5b9150505b9160011c918215610e145781808082028115610e0a578181048314610e0a575f5ffd5b9150509150610dc3565b9150506102005180600101610200523560f81c60011b5160f01c565b505060016102005180600101610200523560f81c60011b5160f01c565b50505f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b166102005180600101610200523560f81c60011b5160f01c565b176102005180600101610200523560f81c60011b5160f01c565b186102005180600101610200523560f81c60011b5160f01c565b196102005180600101610200523560f81c60011b5160f01c565b1b6102005180600101610200523560f81c60011b5160f01c565b1c6102005180600101610200523560f81c60011b5160f01c565b80600211611006578060018160801c15610f26579060801c9060401b5b8160401c15610f38579060401c9060201b5b8160201c15610f4a579060201c9060101b5b8160101c15610f5c579060101c9060081b5b8160081c15610f6e579060081c9060041b5b8160041c15610f80579060041c9060021b5b90600411610f8c5760011b5b806002020160011c818190040160011c818190040160011c818190040160011c818190040160011c818190040160011c818190040160011c818190049150818111610fec5790506102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b6102005180600101610200523560f81c60011b5160f01c565b8282025f19838509818110908290030380156110b757828110156110db5782848609828111909103910382805f031683819004935080910490805f03046001019091021781806003026002188181026002030281810260020302818102600203028181026002030281810260020302818102600203029050029050905090506102005180600101610200523560f81c60011b5160f01c565b5081156110db57049150506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f036102005180600101610200523560f81c60011b5160f01c565b91086102005180600101610200523560f81c60011b5160f01c565b91096102005180600101610200523560f81c60011b5160f01c565b056102005180600101610200523560f81c60011b5160f01c565b076102005180600101610200523560f81c60011b5160f01c565b1d6102005180600101610200523560f81c60011b5160f01c565b0b6102005180600101610200523560f81c60011b5160f01c565b156102005180600101610200523560f81c60011b5160f01c565b15156102005180600101610200523560f81c60011b5160f01c565b3b15156102005180600101610200523560f81c60011b5160f01c565b3b156102005180600101610200523560f81c60011b5160f01c565b156102005180600101610200523560f81c60011b5160f01c565b146102005180600101610200523560f81c60011b5160f01c565b14156102005180600101610200523560f81c60011b5160f01c565b116102005180600101610200523560f81c60011b5160f01c565b106102005180600101610200523560f81c60011b5160f01c565b10156102005180600101610200523560f81c60011b5160f01c565b11156102005180600101610200523560f81c60011b5160f01c565b136102005180600101610200523560f81c60011b5160f01c565b126102005180600101610200523560f81c60011b5160f01c565b12156102005180600101610200523560f81c60011b5160f01c565b13156102005180600101610200523560f81c60011b5160f01c565b15901517156102005180600101610200523560f81c60011b5160f01c565b1715156102005180600101610200523560f81c60011b5160f01c565b159015186102005180600101610200523560f81c60011b5160f01c565b336102005180600101610200523560f81c60011b5160f01c565b326102005180600101610200523560f81c60011b5160f01c565b5a6102005180600101610200523560f81c60011b5160f01c565b466102005180600101610200523560f81c60011b5160f01c565b306102005180600101610200523560f81c60011b5160f01c565b436102005180600101610200523560f81c60011b5160f01c565b426102005180600101610200523560f81c60011b5160f01c565b416102005180600101610200523560f81c60011b5160f01c565b446102005180600101610200523560f81c60011b5160f01c565b456102005180600101610200523560f81c60011b5160f01c565b476102005180600101610200523560f81c60011b5160f01c565b346102005180600101610200523560f81c60011b5160f01c565b486102005180600101610200523560f81c60011b5160f01c565b3a6102005180600101610200523560f81c60011b5160f01c565b604a6102005180600101610200523560f81c60011b5160f01c565b316102005180600101610200523560f81c60011b5160f01c565b406102005180600101610200523560f81c60011b5160f01c565b3b6102005180600101610200523560f81c60011b5160f01c565b3f6102005180600101610200523560f81c60011b5160f01c565b496102005180600101610200523560f81c60011b5160f01c565b3b15156102005180600101610200523560f81c60011b5160f01c565b3b156102005180600101610200523560f81c60011b5160f01c565b3661024051815f8237808201601f01601f1916806303ffffe01061164657610240529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b6102405180630400000003821161164257809101601f01601f1916610240526102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b806103001161169057526102005180600101610200523560f81c60011b5160f01c565b806103001161169057516102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5c6102005180600101610200523560f81c60011b5160f01c565b546102005180600101610200523560f81c60011b5160f01c565b5d6102005180600101610200523560f81c60011b5160f01c565b556102005180600101610200523560f81c60011b5160f01c565b80600101610200523560f81c60011b5160f01c565b906116fc57506102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff16fd5b8060201c63ffffffff169063ffffffff16206102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff1681604114156118f9578373ffffffffffffffffffffffffffffffffffffffff1693508380156118f75750610240518060e001806303ffffe010611646576102405281518260200151836040015160f81c86845280846020015282846040015281846060015260208460800160808660015afa1561183657836080015188148061180b575050505061183a565b9360e03682376102405250505093505050506102005180600101610200523560f81c60011b5160f01c565b5050505b843b156118d0577f1626ba7e000000000000000000000000000000000000000000000000000000008152838160040152604081602401528281604401528282826064015e60208160c0018460640183885afa156118d057601f3d11156118d0578060c0015160e01c631626ba7e149060e03682376102405293505050506102005180600101610200523560f81c60011b5160f01c565b60e036823761024052505050505f6102005180600101610200523560f81c60011b5160f01c565b505b505050505f6102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff165f5f83836102405180602001806303ffffe010611646576102405260206020380382398051906020368237610240525afa915050156119f8575f6102a052610240513d80156119d257815f82913e818101601f01601f1916806303ffffe0106116465761024052640100000000811015611a1f57640100000000821015611a1f5760201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b506990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b3d610280526102405180610260525f3d913e610280518015611a1a5761026051fd5b505f5ffd5b5f5ffd5b8060481c60ff1660921415612042578060401c60ff1680609014908060921490609414171715612042578063ffffffff169060201c63ffffffff168161030011612042578181016102405110612042578060051c80600f1061204657610240518061044001806303ffffe0106116465761024052805f5b838114611af5578060051b8601518060481c60ff166090141561204a578060201c63ffffffff168060201061204e579063ffffffff16806103001161204a57808201610240511061204a578190845e90910190600101611a9a565b50808261034001528581600101527f50726f6772616d446572697665644164647265737300000000000000000000008160210152808290036036018261036001525060ff8161038001526020816102600152602081610260016020015260208161026001604001527f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8161026001608001527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed816102600160a001525b8061038001518060e01161205a5781610340015153602081610240018261036001518360025afa1561205257806102400151807fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff001660081c907fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00191660081b17807fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00001660101c907fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000191660101b17807fffffffff00000000ffffffff00000000ffffffff00000000ffffffff000000001660201c907fffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000191660201b17807fffffffffffffffff0000000000000000ffffffffffffffff00000000000000001660401c907fffffffffffffffff0000000000000000ffffffffffffffff0000000000000000191660401b178060801c9060801b17600160ff1b1916816103a00152806103a00151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed600190037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9108826103c001527f52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a37f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed910960017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9108816103e00152806103e0015180807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109907f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816104000152806104000151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103e001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103c001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed91098161026001606001526020816103200160c0836102600160055afa1561205657806103c001518161040001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed91098161032001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816104200152806104200151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103e001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed910980826103c001511490826103c001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed031417156120095780610380015160019003816103800152611bb2565b80610240015181610380015191610440368237610240529150915091509150906102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f838386885af1935050505015612129573d15612100573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061164657610240526401000000003d101561218457640100000000610260511015612184573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b71461215f573d610280526102405180610260525f3d913e61028051801561215a5761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f8383865afa9250505015612251573d15612228573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061164657610240526401000000003d10156122ac576401000000006102605110156122ac573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b714612287573d610280526102405180610260525f3d913e6102805180156122825761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f8383865af49250505015612379573d15612350573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061164657610240526401000000003d10156123d4576401000000006102605110156123d4573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b7146123af573d610280526102405180610260525f3d913e6102805180156123aa5761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b610200513560f81c6102a05115612413575f6102a0526102005160010161020052506102005180600101610200523560f81c60011b5160f01c565b6102005101600101610200526102005180600101610200523560f81c60011b5160f01c565b8060481c60ff168060941461249457806092146124ba57609014612472575060206102005180600101610200523560f81c60011b5160f01c565b60201c63ffffffff166102005180600101610200523560f81c60011b5160f01c565b5060201c63ffffffff1660051c6102005180600101610200523560f81c60011b5160f01c565b508060401c60ff16801581602010176124f1579060201c63ffffffff16046102005180600101610200523560f81c60011b5160f01c565b5060251c6307ffffff166102005180600101610200523560f81c60011b5160f01c565b8260481c60ff16801581609014176125fe576094146125e9578260401c60ff168060401b69920000000000000000001793929190801581602010176125e1575b826304000000106126645781630400000010612576575b809102910290612583565b905063040000009061256b565b8260201c63ffffffff168281111561266457829003818110156125a257905b508263ffffffff1682019060201b1783806994000000000000000000146126125717925050506102005180600101610200523560f81c60011b5160f01c565b506020612554565b69940000000000000000009291906020612554565b506990000000000000000000929190612583565b61262e8263ffffffff168360201c63ffffffff1660051c613089565b60f01b17178060201c63ffffffff1660051c60ff1660401b17925050506102005180600101610200523560f81c60011b5160f01c565b5050505061024051178060481c60ff16609414612694576102005180600101610200523560f81c60011b5160f01c565b6180006140001760f01b176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c610200516001016102005280156128e2578060011461290c578160481c60ff16806094146127025780609214612714575069900000000000000000009061272d565b5069940000000000000000009061272d565b508160401c60ff1660401b699200000000000000000017905b5f91906102405180915b8015612839578360481c60ff168060941461277657806092146127dd57505b8560481c60ff168015612770578060901461277057612926565b50612804565b508560481c60ff168060941461278b57612926565b508560f01c614000161515156127ce578560f01c6140006180001780911614156127bf57938560f01c6107ff160193612804565b93650100000000001793612804565b93650200000000001793612804565b508560481c60ff16806092141561292657508360401c60ff168660401c60ff161415612926575b8560201c63ffffffff168015612833578663ffffffff168190845e909101905b94509091929360019003612737565b50612824565b5080601f01601f1916806303ffffe0106116465761024052819003640100000000811015612926576401000000008210156129265782806994000000000000000000146128a3579060201b1717905090506102005180600101610200523560f81c60011b5160f01c565b846128ad90613134565b60f01b17908060051c60ff1660401b9091179060201b1717905090506102005180600101610200523560f81c60011b5160f01c565b50610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b6102005180600101610200523560f81c8015612ac1575f9061024051808260051b0180806303ffffe0106116465761024052915090815b847dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff1680609014908060921490609414171716905015612a23578460f01c156129f657848060f01c6140001615159060481c60ff166094141615612a23578460f01c614000618000178091161415612a0557928460f01c6107ff160192612a51565b8460481c60ff16609414612a14575b92650100000000001792612a51565b92650200000000001792612a51565b6102405185815280602001806303ffffe0106116465761024052692000000000200000000017945092600101925b8481529350909192602001808214612a6857612961565b5081900360051c64010000000082101561305d5791612a8690613134565b60f01b918060ff1660401b9060251b1769940000000000000000001717176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b50610240516994000000000000000000176180006140001760f01b176102005180600101610200523560f81c60011b5160f01c565b61020051358060f81c9060f01c60ff166102005160020161020052612b32565b61020051358060f01c9060e81c60ff1661020051600301610200525b80156130595780602111612c825780609014612b5d5780609214612b5d5780609414612b5d57613059565b908015612c535761024051808260051b0180806303ffffe0106116465761024052915090815b847dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff16806090149080609214906094141717169050612bf8576102405185815280602001806303ffffe010611646576102405269200000000020000000001794505b8481529350909192602001808214612c0f57612b83565b5081900360051c64010000000082101561305d57909160401b9060251b17699200000000000000000017176102005180600101610200523560f81c60011b5160f01c565b50610240519060401b176992000000000000000000176102005180600101610200523560f81c60011b5160f01c565b8181026102405180820180601f01601f1916602001806303ffffe01061164657610240528415612cdf5791509250909190815b8360200360031b85901b815293509091928301808214612cd457612cb5565b508190039091612ce9565b9350925090612ce9565b64010000000083101561305d5760401b9060201b17699200000000000000000017176102005180600101610200523560f81c60011b5160f01c565b8060481c60ff1680609414612d725780609214612d9857505b8060201c63ffffffff168210156130555763ffffffff16015160f81c6102005180600101610200523560f81c60011b5160f01c565b508060201c63ffffffff1660051c8210156130555763ffffffff169060051b0151612e14565b508060401c60ff168015612df2578060211115612df2578160201c63ffffffff16819004831015613055579063ffffffff1682820201519060200360031b1c90506102005180600101610200523560f81c60011b5160f01c565b508060201c63ffffffff1660051c8210156130555763ffffffff169060051b01515b8060481c60ff168015612e4157602111612e5b576102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b63ffffffff16516102005180600101610200523560f81c60011b5160f01c565b919081908160481c60ff1680609414612ec85760921415612fda578160401c60ff1680602014612ec25780609014612ec25780609214612ec25780609414612ec257612fda565b50612eca565b505b8160201c63ffffffff1680601f16612fda5760051c811015612fda5760051b9063ffffffff168061030011612fda5701806020016102405110612fda579063ffffffff191617908160481c60ff1680609414612fde5760921415612fb9578160401c60ff1680609014908060921490609414171715612fb957807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff16806090149080609214906094141717169050612fb9575b6102405181815280602001806303ffffe010611646576102405269200000000020000000001790505b9063ffffffff16526102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b50807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff1680609014908060921490609414171716905015612f90578060f01c15612fb957808060f01c6140001615159060481c60ff166094141615612f9057612fb9565b5f5ffd5b5f5ffd5b5f5ffd5b7f53415543650000000000000000000000000000000000000000000000000000005f5260045ffd5b5f5f5b82821461312c57838260051b01518060481c60ff16801561310057806021116130bc576094146130cb575061311d565b5050600101906001019061308c565b8060f01c6140001615151561310d578060f01c6140006180001780911614156131075760f01c6107ff1601906001019061308c565b505061311d565b5061311d565b509050650200000000001761312f565b9050650100000000001761312f565b90505b905090505b80650100000000001161315a5780650200000000001161315357505f90565b5061400090565b806107ff10612abd57618000614000171790565b610200513560f81c610200516001016102005280156131a557806001146131d25780600214613200578060031461322e575061325f565b508063ffffffff169060201c63ffffffff1690a06102005180600101610200523560f81c60011b5160f01c565b50908063ffffffff169060201c63ffffffff1690a16102005180600101610200523560f81c60011b5160f01c565b50918063ffffffff169060201c63ffffffff1690a26102005180600101610200523560f81c60011b5160f01c565b50929091908063ffffffff169060201c63ffffffff1690a36102005180600101610200523560f81c60011b5160f01c565b939092908063ffffffff169060201c63ffffffff1690a46102005180600101610200523560f81c60011b5160f01c565b8063ffffffff169060201c63ffffffff1691f06102005180600101610200523560f81c60011b5160f01c565b8063ffffffff169060201c63ffffffff169192f56102005180600101610200523560f81c60011b5160f01c565b6102405180608001806303ffffe010611646576102405283816015015260ff8160200153828160350152818160550152605581602001209060803682376102405273ffffffffffffffffffffffffffffffffffffffff16925050506102005180600101610200523560f81c60011b5160f01c565b6102405180604001806303ffffe01061164657610240529080156133db57806080116133ec5780610100116133fa5780620100001161340f578063010000001161342d5780640100000000116134545780650100000000001161348457806601000000000000116134995780670100000000000000116134ae576134c3565b5060808160360153601760d66134d8565b8160360153601760d66134d8565b608182603601538160370153601860d76134d8565b608282603601538060081c82603701538160380153601960d86134d8565b608382603601538060101c82603701538060081c82603801538160390153601a60d96134d8565b608482603601538060181c82603701538060101c82603801538060081c826039015381603a0153601b60da6134d8565b81601c015260858160360153601c60db6134d8565b81601d015260868160360153601d60dc6134d8565b81601e015260878160360153601e60dd6134d8565b81601f015260888160360153601f60de6134d8565b83836016015260948360210153826020015381602001209060403682376102405273ffffffffffffffffffffffffffffffffffffffff1690506102005180600101610200523560f81c60011b5160f01c565b610240518060a001806303ffffe01061164657610240528163ffffffff1681529060201c63ffffffff1681602001526f67363d3d37363d34f03d5260086018f360801b8160400152816010826040015ff580156135fa575f5f8360200151845187855af1156135fe5780826076015260d682608001536094826081015360018260960153601782608001209160a0368237610240529073ffffffffffffffffffffffffffffffffffffffff16803b1561360257925050506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b5f5ffd5b6102405180608001806303ffffe010611646576102405230816015015260ff81602001538181603501527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f81605501526055816020012073ffffffffffffffffffffffffffffffffffffffff1680826016015260d68260200153609482602101536001826036015360178260200120916080368237610240529073ffffffffffffffffffffffffffffffffffffffff169150506102005180600101610200523560f81c60011b5160f01c565b6102c051156136e0576136fd565b61024051806102c05261016001806303ffffe01061164657610240525b5f6102c0516101000152610240516102c051608001525b8060201c63ffffffff1660051c6102c0516040015263ffffffff166102c051606001525b5f6102c051602001525f6102c051525b6102c051604001516102c051511015613805576102c051606001516102c0515160051b01518060481c60ff166094146137a157506102c051602001516001016102c051602001526102c051516001016102c05152613748565b8060f01c6140006180001780911614156137df5760f01c6107ff166102c05160200151016102c051602001526102c051516001016102c05152613748565b506102c051602001516001016102c051602001526102c051516001016102c05152613748565b6102c0516020015160051b6102c05160800151016102c05160a001525f6102c051602001525f6102c051525b6102c051604001516102c051511015613d8b576102c051606001516102c0515160051b01518060481c60ff16801561390057806021116138be578060901461390057806094146139ea5780609214613be057506102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c05152613831565b5063ffffffff16516102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c05152613831565b506102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01528060201c63ffffffff169063ffffffff16816102c05160a001515281156139b05781906102c05160a001516020015e80601f01601f1916819003366102c05160a00151602001830137601f01601f19166020016102c05160a00151016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c05152613831565b50506102c05160a001516020016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c05152613831565b508060f01c614000618000178091161415613b39578060f01c6107ff166102c05161014001528060201c63ffffffff1660051c60201b9063ffffffff1660401b17700100000000000000000000000000000000905b8070010000000000000000000000000000000014613b17578063ffffffff168160201c63ffffffff1614613b11578060401c63ffffffff168163ffffffff1660051b01518060481c60ff16609414613aec5763ffffffff16516102c051610140015115613e57576102c0516101400151600190036102c05161014001526102c051608001516102c0516020015160051b01526102c051602001516001016102c05160200152600101613a3f565b90600101908060201c63ffffffff1660051c60201b9063ffffffff1660401b17613a3f565b50613a3f565b506102c05161014001511515613e57576102c051516001016102c05152613831565b6102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c051526102c05161012001526102c05161010001516001016102c05161010001526102c051602001516102c051604001516102c051606001516102c051608001516102c051516102c05160a001516102c051608001526102c0516101200151613714565b506102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01528060401c60ff166102c05160e001528060201c63ffffffff169063ffffffff166102c05160c001526102c05160e0015115613ce25760206102c05160e0015111613ce2576102c05160e001519004806102c05160a00151525f5b81811015613ca5576102c05160c001516102c05160e00151820201516102c05160e0015160200360031b1c6102c05160a001516020018260051b0152600101613c61565b5060051b6020016102c05160a00151016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c05152613831565b60051c806102c05160a00151526102c05161012001526102c051602001516001016102c051602001526102c051516001016102c051526102c05161010001516001016102c05161010001526102c051602001516102c051604001516102c051606001516102c051608001516102c051516102c05160a001516020016102c051608001526102c05160c001516102c051606001526102c05161012001516102c05160400152613738565b6102c051610100015115613dd85760016102c0516101000151036102c05161010001526102c051526102c051608001526102c051606001526102c051604001526102c05160200152613831565b6102c051608001516102c05160a00151036102c051608001516102c05160a00151601f01601f1916806303ffffe0106116465761024052640100000000811015613e5357640100000000821015613e53579060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b6102005180600101610200523560f81c6102e05115613e7957613e96565b61024051806102e05261020001806303ffffe01061164657610240525b908060201c63ffffffff166102e0516101e0015263ffffffff166102e051604001526102e051604001516102e0516101e00151016102e0511015613eea576102e051604001516102e0516102000111614c22575b806102e0516020015261024051806102e051608001529060051b01806303ffffe01061164657610240525f6102e051606001525f6102e051525f6102e05160a001525f6102e05160e001525b6102e051602001516102e0515114614b04576102e05160a0015115613f62576102e05160c00151610200525b610200513560f81c61020051600101610200528060901461405357806094146141a257806092146146b0575b8015613fa15780602010613fa157613fa5565b5060205b6102e05161010001526102e051606001516020016102e0516101e0015110614c22576102e051604001516102e0516060015101516102e051610100015160031b6001901b60019003166102405190815280602001806303ffffe0106116465761024052642000000000176102e051610100015160481b176102e051608001516102e0515160051b01526102e051516001016102e051526102e051606001516020016102e05160600152613f36565b506102e051606001516020016102e0516101e0015110614c22576102e051604001516102e051606001510151806102e0516101e0015110614c2257806020016102e0516101e0015110614c2257806102e051604001510151806303ffffe010614c1e578082016020016102e0516101e0015110614c22576102e05161010001526102e05160400151016020016102e0516101200152610240516102e05161014001526102e051610100015115614149576102e05161010001516102e05161012001516102e05161014001515e6102e0516101000151601f01601f19166102e051610140015101806303ffffe01061164657610240525b6102e051610100015160201b6102e0516101400151176990000000000000000000176102e051608001516102e0515160051b01526102e051516001016102e051526102e051606001516020016102e05160600152613f36565b50610200513560f81c6102e051610100015261020051600101610200525f6102e05161018001525f6102e0516101a001526102e05161010001516102e0516101c00152610200515b6102e0516101c001511561427357803560f81c90600101906102e0516101c00151600190036102e0516101c00152806094146142415760201061426d576102e05161018001516001016102e05161018001526141ea565b5060016102e0516101a00152803560f81c6102e0516101c00151016102e0516101c001526001016141ea565b506143c1565b506102e0516101a0015115614511575b6102e051610180015160051b6102e0516060015101806102e0516101e0015110614c22576102e051604001516102e05160600151016102e05161012001526102e051606001516102e0516101e00151036102e05161016001526102e0516060015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061164657610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161012001516102e051604001526102e05161016001516102e0516101e001526102e05161010001516102e051602001526102e05161014001516102e051608001525f6102e051606001525f6102e051525f6102e05160a00152613f36565b6102e051606001516020016102e0516101e0015110614c22576102e051604001516102e051606001510151806102e0516101e0015110614c2257806102e05160400151016102e05161012001526102e0516101e00151036102e05161016001526102e051606001516020016102e0516060015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061164657610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161012001516102e051604001526102e05161016001516102e0516101e001526102e05161010001516102e051602001526102e05161014001516102e051608001525f6102e051606001525f6102e051525f6102e05160a00152613f36565b6102e051610100015160051b6102e05160600151016102e0516101e0015110614c22576102e051604001516102e05160600151016102e051610120015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061164657610240525f5b806102e05161010001511461462557610200513560f81c610200516001016102005280156145af57806020106145af576145b3565b5060205b6102e05161016001526102e05161012001518160051b01516102e051610160015160031b6001901b60019003166102405190815280602001806303ffffe0106116465761024052642000000000176102e051610160015160481b176102e05161014001518260051b015260010161457a565b506146406102e05161014001516102e0516101000151613089565b60f01b6102e05161010001518060ff1660401b9060251b176994000000000000000000176102e051610140015117176102e051608001516102e0515160051b01526102e051516001016102e051526102e051610100015160051b6102e05160600151016102e05160600152613f36565b50610200516102e05161010001526102e05161010001513560f81c6102e05161012001526102e051606001516020016102e0516101e0015110614c22576102e051604001516102e051606001510151806102e0516101e0015110614c2257806020016102e0516101e0015110614c2257806102e05160400151018051806303ffffe060051c10614c1a578060051b60200183016102e0516101e0015110614c22576102e05161014001526020016102e05161016001526020016102e0516101e00151036102e0516101a001526102e051606001516020016102e051606001526102e05161012001518015614c16578060211161496b57806090146147c357806092146147c357806094146147c357614c16565b506102e0516101400151156148d95761024051806102e05161018001526102e051610140015160051b018063040000001061306157806303ffffe01061164657610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161016001516102e051604001526102e0516101a001516102e0516101e001526102e05161014001516102e051602001526102e05161018001516102e051608001525f6102e051606001525f6102e0515260016102e05160a001526102e05161010001516102e05160c001526102e051610100015161020052613f36565b6102005160015b801561492557813560f81c91600101918060941461490a578060921461491f5750600190036148e0565b50813560f81c019060010190600190036148e0565b506148e0565b50610200526102e051610120015160401b69920000000000000000001761024051176102e051608001516102e0515160051b01526102e051516001016102e05152613f36565b5061020051600101610200526102e051610140015115614ac3576102e05161014001516102e0516101200151026102e0516101800152610240516102e0516101a001525f6102e0516101c001525b6102e0516101c001516102e051610140015114614a44576102e05161016001516102e0516101c0015160051b01516102e051610120015160031b6001901b60019003166102e051610120015160200360031b1b6102e0516101c001516102e0516101200151026102e0516101a0015101526102e0516101c001516001016102e0516101c001526149b9565b6102e0516101800151601f01601f19166020016102e0516101a0015101806303ffffe01061164657610240526102e051610180015160201b6102e0516101a00151176102e051610120015160401b176992000000000000000000176102e051608001516102e0515160051b01526102e051516001016102e05152613f36565b610240516102e051610120015160401b699200000000000000000017176102e051608001516102e0515160051b01526102e051516001016102e05152613f36565b6102e05160e0015115614c265760016102e05160e00151036102e05160e001526102e05160a0015115614b66576102e05160c001513560f81c60401b6992000000000000000000176102e0516020015160251b176102e0516080015117614bac565b614b7e6102e051608001516102e05160200151613089565b60f01b6102e051602001518060ff1660401b9060251b176994000000000000000000176102e0516080015117175b906102e05152906102e05160200152906102e05160400152906102e05160600152906102e05160800152906102e05160a00152906102e05160c00152906102e0516101e001526102e051608001516102e0515160051b01526102e051516001016102e05152613f36565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b614c3e6102e051608001516102e05160200151613089565b60f01b6102e051602001518060ff1660401b9060251b176994000000000000000000176102e0516080015117176102005180600101610200523560f81c60011b5160f01c565b6102e05115614c9257614caf565b61024051806102e05261020001806303ffffe01061164657610240525b8060481c609014156150ce578063ffffffff1680610300116150ce57806102e051529060201c63ffffffff16018061024051106150ce576102e0516020015261020051806002018036106150ce57903560f01c018036106150ce576102e0516040015261020051600201610200525f6102e0516060015260046102e05151808201806102e05160200151106150ce576102e05152519060200360031b1c635341010014156150ce57614d5f614d9d565b6102e051516102e0516020015114156150ce57610200516102e0516040015114156150ce576102005180600101610200523560f81c60011b5160f01c565b6102e05160600151600101806020106150ce576102e05160600152600161020051808201806102e05160400151106150ce5761020052359060200360031b1c80602014614e095780604014614e095780609014614e6f5780609214614ec75780609414614fe5576150ce565b60016102e05151808201806102e05160200151106150ce576102e05152519060200360031b1c806020106150ce576102e05151808201806102e05160200151106150ce576102e05152519060200360031b1c90604014614e68576150b7565b15156150b7565b5060046102e05151808201806102e05160200151106150ce576102e05152519060200360031b1c6102e05151808201806102e05160200151106150ce576102e051529060201b176990000000000000000000176150b7565b50600261020051808201806102e05160400151106150ce5761020052359060200360031b1c80156150ce5761020051808201806102e05160400151106150ce57915060046102e05151808201806102e05160200151106150ce576102e05152519060200360031b1c806303ffffe060051c106150ce57610240518160051b8101806303ffffe0106116465761024052823560f81c80604014614f6857614f6c565b5060205b80602014614f915780609014614f915780609214614f915780609414614f91576150ce565b60401b8260251b17811769920000000000000000001791905b8115614fd8578361020052614fbd614d9d565b8152846102005114156150ce57602001906001900390614faa565b50509161020052506150b7565b50600261020051808201806102e05160400151106150ce5761020052359060200360031b1c806303ffffe060051c106150ce57610240518160051b8101806303ffffe01061164657610240528160251b81176994000000000000000000178290915b811561509e57610200513560f81c61505d614d9d565b8160401061508c576102405180602001806303ffffe01061164657610240529081526920000000002000000000175b90508152602001906001900390615047565b50506150b08163ffffffff1683613089565b60f01b1790505b6102e05160600151600190036102e0516060015290565b5f5ffd5b6102a051156150f0576102805180156150eb5761026051fd5b505f5ffd5b8061dead14615137578060201c63ffffffff169063ffffffff16811561513057806103001161512c57818101610240511061512c5781905f5e5ff35b5f5ffd5b5050505f5ff35b505f5ff360e54e1eb8ea1e66a8a6eaf531a4794e622a172de6026607309928715e8c623066c0436eb55a13f6a536e4453f5477de6dba18dde99268973e6926c1531c6fa06b704791b05216e6a039e1753a2d702174ba014af0197018269a3e67486d74e06f7a45e9b3d2151fa398e20e366e7edf65521062e11460fa365d2eda58fe6469708f5adcaf7709babf75feb225f46daf76070328f23473fc24a63c0a4a4c76ff60e06f56aa300ccaa612e0c3366e650b65521062e11460fa365d2eda58fe6469726958f6aec10868beabf8e123836b1c70eb05fdf4617591231c3bfd4de3646974125e71a84a0ef7b820fd2c26707edf65521062e11460fa365d2eda58fe646977835dc08ffc28f89ff6de0902b3492e72c807dff6e960fa365d2eda58fe64696b9a419a978530b28467c9f51121520c65521062f9f44f767b2e2eda58fe646957c575359d2d3a2c8ffdf95f366e7edf65521062e11460fa365d2eda58fe646977eb5c7fbc841a53acbaed1620a95cf065521062e11460fa365d2eda58fe646960e04a99bc841a53bb85fa0306f77edf65521062e11460fa365d2eda58fe646960ec497bbf5c19edaf2eee9c350e7d99666e1370e21c621434992c605a6e661f628c48dbbebc184da94ee8fc33ae7b7960ce1510e47c65b433792bc05c0e60bf642c4e3bab391a53acbaed16366e7edf65521062e11460fa365d2eda58fe6469"
|
|
3
3
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"discriminator": "7dff950e6e224818"
|
|
38
38
|
},
|
|
39
39
|
"execute": {
|
|
40
|
-
"accounts": "the caller's tail
|
|
41
|
-
"bytecode": "instruction data, after
|
|
40
|
+
"accounts": "the caller's tail at its natural indices, followed by the kitchen-signed acting Pot; the engine strips the acting Pot before execution",
|
|
41
|
+
"bytecode": "instruction data, after discriminator(8), owner(32), salt(32), bump(1)",
|
|
42
42
|
"discriminator": "82ddf29a0dc1bd1d"
|
|
43
43
|
},
|
|
44
44
|
"executeFromAccount": {
|
|
45
|
-
"accounts": "account 0 is the code; the tail follows
|
|
45
|
+
"accounts": "account 0 is the code; the caller's tail follows, then the kitchen-signed acting Pot; instruction data is discriminator(8), owner(32), salt(32), bump(1) with no trailing bytes",
|
|
46
46
|
"bytecode": "account 0's data, verbatim",
|
|
47
47
|
"discriminator": "712cd572829558c3"
|
|
48
48
|
}
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"discriminator": "7dff950e6e224818"
|
|
38
38
|
},
|
|
39
39
|
"execute": {
|
|
40
|
-
"accounts": "the caller's tail
|
|
41
|
-
"bytecode": "instruction data, after
|
|
40
|
+
"accounts": "the caller's tail at its natural indices, followed by the kitchen-signed acting Pot; the engine strips the acting Pot before execution",
|
|
41
|
+
"bytecode": "instruction data, after discriminator(8), owner(32), salt(32), bump(1)",
|
|
42
42
|
"discriminator": "82ddf29a0dc1bd1d"
|
|
43
43
|
},
|
|
44
44
|
"executeFromAccount": {
|
|
45
|
-
"accounts": "account 0 is the code; the tail follows
|
|
45
|
+
"accounts": "account 0 is the code; the caller's tail follows, then the kitchen-signed acting Pot; instruction data is discriminator(8), owner(32), salt(32), bump(1) with no trailing bytes",
|
|
46
46
|
"bytecode": "account 0's data, verbatim",
|
|
47
47
|
"discriminator": "712cd572829558c3"
|
|
48
48
|
}
|
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* v12 runtime creation code, but not the ADDRESSES of the deployed contracts —
|
|
6
|
-
* so a consumer could encode a call and had nowhere to send it, and
|
|
7
|
-
* `createSauceSvmClient` (which takes a required `programId`) had no default to
|
|
8
|
-
* offer. This module closes that with the addresses in `v12.generated.ts`, which
|
|
9
|
-
* record the PREVIOUS deployment: the pinned releases publish an `addresses.json`
|
|
10
|
-
* naming the current Kitchen and Router, and they are not these. See that file's
|
|
11
|
-
* header before relying on any of them.
|
|
12
|
-
*
|
|
13
|
-
* The addresses are chain-invariant — the same on every chain they were deployed
|
|
14
|
-
* to — which is why this exposes one flat address set plus per-chain liveness
|
|
15
|
-
* rather than repeating the same three addresses twelve times. Do not read that
|
|
16
|
-
* as "the stack is live everywhere": liveness is per chain, and one chain in the
|
|
17
|
-
* record is not live (see `v12FailedChainIds`).
|
|
2
|
+
* Pinned release addresses and a separate historical chain roster. Address functions and
|
|
3
|
+
* `v12Deployment` read `V12Deployments.json`; chain flags/slugs describe the older roster and
|
|
4
|
+
* require on-chain verification before use. Exported legacy address constants remain for compatibility.
|
|
18
5
|
*/
|
|
19
6
|
import { V12_EVM_CHAINS, V12_EVM_CONTRACTS, V12_GENERATED_BY, V12_SALT, V12_SVM } from "./v12.generated.js";
|
|
20
7
|
export { V12_EVM_CHAINS, V12_EVM_CONTRACTS, V12_GENERATED_BY, V12_SALT, V12_SVM };
|
|
21
|
-
|
|
8
|
+
export * from "./v12-addresses.js";
|
|
9
|
+
/** The pinned release's three chain-invariant EVM contract addresses. */
|
|
22
10
|
export interface V12EvmContracts {
|
|
23
11
|
/** Swap surface every Pot's fallback delegatecalls into. */
|
|
24
12
|
router: string;
|
|
@@ -32,39 +20,30 @@ export interface V12ChainDeployment {
|
|
|
32
20
|
chainId: number;
|
|
33
21
|
/** Engine-side chain slug (e.g. `'base'`) — not necessarily the SDK's chain name. */
|
|
34
22
|
name: string;
|
|
35
|
-
/**
|
|
23
|
+
/** Historical deployment outcome; does not attest the pinned release's current liveness. */
|
|
36
24
|
live: boolean;
|
|
37
25
|
status: string;
|
|
38
26
|
/** Present only for a failed deploy. */
|
|
39
27
|
error?: string;
|
|
40
28
|
}
|
|
41
|
-
/**
|
|
29
|
+
/** Pinned release addresses for a chain in the historical successful-deployment roster. */
|
|
42
30
|
export interface V12Deployment extends V12EvmContracts {
|
|
43
31
|
chainId: number;
|
|
44
32
|
name: string;
|
|
45
33
|
}
|
|
46
34
|
/** Every chain id in the record, live or not, ascending. */
|
|
47
35
|
export declare function v12ChainIds(): number[];
|
|
48
|
-
/**
|
|
36
|
+
/** Historically successful chain ids, ascending. Check current release code before use. */
|
|
49
37
|
export declare function v12LiveChainIds(): number[];
|
|
50
38
|
/** Chain ids present in the record whose deploy did NOT land. */
|
|
51
39
|
export declare function v12FailedChainIds(): number[];
|
|
52
|
-
/**
|
|
40
|
+
/** Historical success flag; not an RPC check or proof that the pinned release is deployed. */
|
|
53
41
|
export declare function isV12Live(chainId: number): boolean;
|
|
54
42
|
/** The raw per-chain record (including a failed chain's `error`), or undefined if unknown. */
|
|
55
43
|
export declare function v12ChainDeployment(chainId: number): V12ChainDeployment | undefined;
|
|
56
44
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* The slug IS the engine-side chain name from the pinned deploy record, which by
|
|
61
|
-
* construction equals the API's pool-config key — both derive from the same
|
|
62
|
-
* `deployments/v12.json` `evm.chains` id map — so a consumer can gate provider
|
|
63
|
-
* capability AND build the API URL from ONE source, with no hand-maintained
|
|
64
|
-
* chainId→slug table to drift (and go stale the next time a chain is added).
|
|
65
|
-
* Gated on `live` for the same reason as {@link v12Deployment}: a chain with no
|
|
66
|
-
* Kitchen has no Pot to cook on, so emitting a slug there would misreport a
|
|
67
|
-
* permanent deployment gap as a servable route.
|
|
45
|
+
* Engine-side chain slug from a historically successful deployment record. This is not a
|
|
46
|
+
* current release liveness check or an attestation of a routing provider's chain coverage.
|
|
68
47
|
*/
|
|
69
48
|
export declare function v12ChainSlug(chainId: number): string | undefined;
|
|
70
49
|
/**
|
|
@@ -74,17 +53,14 @@ export declare function v12ChainSlug(chainId: number): string | undefined;
|
|
|
74
53
|
*/
|
|
75
54
|
export declare function v12LiveChainSlugs(): Record<number, string>;
|
|
76
55
|
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* Returns undefined rather than the addresses for a non-live chain on purpose:
|
|
80
|
-
* the addresses are chain-invariant, so they are non-null even where nothing is
|
|
81
|
-
* deployed, and handing them back would point callers at empty accounts.
|
|
56
|
+
* Pinned release addresses for a historically successful chain, otherwise undefined.
|
|
57
|
+
* The legacy roster does not attest that this release is deployed: verify code on the target chain.
|
|
82
58
|
*/
|
|
83
59
|
export declare function v12Deployment(chainId: number): V12Deployment | undefined;
|
|
84
60
|
/** Like {@link v12Deployment}, but throws with the reason instead of returning undefined. */
|
|
85
61
|
export declare function requireV12Deployment(chainId: number): V12Deployment;
|
|
86
|
-
/**
|
|
62
|
+
/** @deprecated Legacy engine program id. Use `v12SvmEngineProgramId()` for the pinned release. */
|
|
87
63
|
export declare const v12SvmProgramId: string;
|
|
88
|
-
/**
|
|
64
|
+
/** Historical SVM cluster coverage; not an attestation of the pinned release's deployment. */
|
|
89
65
|
export declare function isV12SvmDeployed(cluster: string): boolean;
|
|
90
66
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deployments/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deployments/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACR,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAGlF,cAAc,oBAAoB,CAAC;AAEnC,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,4DAA4D;AAC5D,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAItC;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED,8FAA8F;AAC9F,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAGlF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGhE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI1D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAUxE;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAcnE;AAED,kGAAkG;AAClG,eAAO,MAAM,eAAe,EAAE,MAA0B,CAAC;AAEzD,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* v12 runtime creation code, but not the ADDRESSES of the deployed contracts —
|
|
6
|
-
* so a consumer could encode a call and had nowhere to send it, and
|
|
7
|
-
* `createSauceSvmClient` (which takes a required `programId`) had no default to
|
|
8
|
-
* offer. This module closes that with the addresses in `v12.generated.ts`, which
|
|
9
|
-
* record the PREVIOUS deployment: the pinned releases publish an `addresses.json`
|
|
10
|
-
* naming the current Kitchen and Router, and they are not these. See that file's
|
|
11
|
-
* header before relying on any of them.
|
|
12
|
-
*
|
|
13
|
-
* The addresses are chain-invariant — the same on every chain they were deployed
|
|
14
|
-
* to — which is why this exposes one flat address set plus per-chain liveness
|
|
15
|
-
* rather than repeating the same three addresses twelve times. Do not read that
|
|
16
|
-
* as "the stack is live everywhere": liveness is per chain, and one chain in the
|
|
17
|
-
* record is not live (see `v12FailedChainIds`).
|
|
2
|
+
* Pinned release addresses and a separate historical chain roster. Address functions and
|
|
3
|
+
* `v12Deployment` read `V12Deployments.json`; chain flags/slugs describe the older roster and
|
|
4
|
+
* require on-chain verification before use. Exported legacy address constants remain for compatibility.
|
|
18
5
|
*/
|
|
19
6
|
import { V12_EVM_CHAINS, V12_EVM_CONTRACTS, V12_GENERATED_BY, V12_SALT, V12_SVM, } from "./v12.generated.js";
|
|
7
|
+
import { v12EngineAddress, v12KitchenAddress, v12RouterAddress } from "./v12-addresses.js";
|
|
20
8
|
export { V12_EVM_CHAINS, V12_EVM_CONTRACTS, V12_GENERATED_BY, V12_SALT, V12_SVM };
|
|
9
|
+
// The pinned release addresses, assembled from each release's addresses.json (see the header split).
|
|
10
|
+
export * from "./v12-addresses.js";
|
|
21
11
|
const CHAINS = V12_EVM_CHAINS;
|
|
22
12
|
/** Every chain id in the record, live or not, ascending. */
|
|
23
13
|
export function v12ChainIds() {
|
|
@@ -25,7 +15,7 @@ export function v12ChainIds() {
|
|
|
25
15
|
.map(Number)
|
|
26
16
|
.sort((a, b) => a - b);
|
|
27
17
|
}
|
|
28
|
-
/**
|
|
18
|
+
/** Historically successful chain ids, ascending. Check current release code before use. */
|
|
29
19
|
export function v12LiveChainIds() {
|
|
30
20
|
return v12ChainIds().filter((id) => CHAINS[id].live);
|
|
31
21
|
}
|
|
@@ -33,7 +23,7 @@ export function v12LiveChainIds() {
|
|
|
33
23
|
export function v12FailedChainIds() {
|
|
34
24
|
return v12ChainIds().filter((id) => !CHAINS[id].live);
|
|
35
25
|
}
|
|
36
|
-
/**
|
|
26
|
+
/** Historical success flag; not an RPC check or proof that the pinned release is deployed. */
|
|
37
27
|
export function isV12Live(chainId) {
|
|
38
28
|
return CHAINS[chainId]?.live === true;
|
|
39
29
|
}
|
|
@@ -43,17 +33,8 @@ export function v12ChainDeployment(chainId) {
|
|
|
43
33
|
return c === undefined ? undefined : { chainId, ...c };
|
|
44
34
|
}
|
|
45
35
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* The slug IS the engine-side chain name from the pinned deploy record, which by
|
|
50
|
-
* construction equals the API's pool-config key — both derive from the same
|
|
51
|
-
* `deployments/v12.json` `evm.chains` id map — so a consumer can gate provider
|
|
52
|
-
* capability AND build the API URL from ONE source, with no hand-maintained
|
|
53
|
-
* chainId→slug table to drift (and go stale the next time a chain is added).
|
|
54
|
-
* Gated on `live` for the same reason as {@link v12Deployment}: a chain with no
|
|
55
|
-
* Kitchen has no Pot to cook on, so emitting a slug there would misreport a
|
|
56
|
-
* permanent deployment gap as a servable route.
|
|
36
|
+
* Engine-side chain slug from a historically successful deployment record. This is not a
|
|
37
|
+
* current release liveness check or an attestation of a routing provider's chain coverage.
|
|
57
38
|
*/
|
|
58
39
|
export function v12ChainSlug(chainId) {
|
|
59
40
|
const c = CHAINS[chainId];
|
|
@@ -71,17 +52,20 @@ export function v12LiveChainSlugs() {
|
|
|
71
52
|
return out;
|
|
72
53
|
}
|
|
73
54
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* Returns undefined rather than the addresses for a non-live chain on purpose:
|
|
77
|
-
* the addresses are chain-invariant, so they are non-null even where nothing is
|
|
78
|
-
* deployed, and handing them back would point callers at empty accounts.
|
|
55
|
+
* Pinned release addresses for a historically successful chain, otherwise undefined.
|
|
56
|
+
* The legacy roster does not attest that this release is deployed: verify code on the target chain.
|
|
79
57
|
*/
|
|
80
58
|
export function v12Deployment(chainId) {
|
|
81
59
|
const c = CHAINS[chainId];
|
|
82
60
|
if (c === undefined || !c.live)
|
|
83
61
|
return undefined;
|
|
84
|
-
return {
|
|
62
|
+
return {
|
|
63
|
+
chainId,
|
|
64
|
+
name: c.name,
|
|
65
|
+
router: v12RouterAddress(),
|
|
66
|
+
v12Runtime: v12EngineAddress(),
|
|
67
|
+
v12Kitchen: v12KitchenAddress(),
|
|
68
|
+
};
|
|
85
69
|
}
|
|
86
70
|
/** Like {@link v12Deployment}, but throws with the reason instead of returning undefined. */
|
|
87
71
|
export function requireV12Deployment(chainId) {
|
|
@@ -90,14 +74,14 @@ export function requireV12Deployment(chainId) {
|
|
|
90
74
|
return found;
|
|
91
75
|
const c = CHAINS[chainId];
|
|
92
76
|
if (c === undefined) {
|
|
93
|
-
throw new Error(`Sauce v12
|
|
77
|
+
throw new Error(`Sauce v12 has no historical deployment record for chain ${chainId} (known chains: ${v12ChainIds().join(", ")})`);
|
|
94
78
|
}
|
|
95
|
-
throw new Error(`Sauce v12
|
|
79
|
+
throw new Error(`Sauce v12's historical deployment failed on chain ${chainId} (${c.name}): status '${c.status}'` +
|
|
96
80
|
(c.error === undefined ? "" : ` — ${c.error}`));
|
|
97
81
|
}
|
|
98
|
-
/**
|
|
82
|
+
/** @deprecated Legacy engine program id. Use `v12SvmEngineProgramId()` for the pinned release. */
|
|
99
83
|
export const v12SvmProgramId = V12_SVM.programId;
|
|
100
|
-
/**
|
|
84
|
+
/** Historical SVM cluster coverage; not an attestation of the pinned release's deployment. */
|
|
101
85
|
export function isV12SvmDeployed(cluster) {
|
|
102
86
|
return Object.prototype.hasOwnProperty.call(V12_SVM.clusters, cluster);
|
|
103
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deployments/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deployments/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,OAAO,GACR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAElF,qGAAqG;AACrG,cAAc,oBAAoB,CAAC;AA8BnC,MAAM,MAAM,GAAG,cAGd,CAAC;AAEF,4DAA4D;AAC5D,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACvB,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,eAAe;IAC7B,OAAO,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;AACxC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO;QACL,OAAO;QACP,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,gBAAgB,EAAE;QAC1B,UAAU,EAAE,gBAAgB,EAAE;QAC9B,UAAU,EAAE,iBAAiB,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEtC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,2DAA2D,OAAO,mBAAmB,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjH,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CACb,qDAAqD,OAAO,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,MAAM,GAAG;QAC9F,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CACjD,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,eAAe,GAAW,OAAO,CAAC,SAAS,CAAC;AAEzD,8FAA8F;AAC9F,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/** One EVM contract as the release records it: the address plus its CREATE3 derivation metadata. */
|
|
2
|
+
export interface V12EvmContractRef {
|
|
3
|
+
address: string;
|
|
4
|
+
saltName?: string;
|
|
5
|
+
rawSalt?: string;
|
|
6
|
+
guardedSalt?: string;
|
|
7
|
+
derivation?: string;
|
|
8
|
+
/** Present on the Kitchen — it is a UUPS proxy. */
|
|
9
|
+
proxyKind?: string;
|
|
10
|
+
generation?: number;
|
|
11
|
+
note?: string;
|
|
12
|
+
}
|
|
13
|
+
/** How a Pot address is derived — `CREATE2(kitchen, keccak256(abi.encode(owner, salt)), initCodeHash)`. */
|
|
14
|
+
export interface V12PotDerivation {
|
|
15
|
+
deployer: string;
|
|
16
|
+
initCodeHash: string;
|
|
17
|
+
saltFormula: string;
|
|
18
|
+
derivation?: string;
|
|
19
|
+
}
|
|
20
|
+
/** One SVM program as the release records it. */
|
|
21
|
+
export interface V12SvmProgramRef {
|
|
22
|
+
programId: string;
|
|
23
|
+
label?: string;
|
|
24
|
+
derivation?: string;
|
|
25
|
+
upgradeAuthority?: string;
|
|
26
|
+
}
|
|
27
|
+
/** The assembled `V12Deployments.json`: release addresses and per-component provenance. */
|
|
28
|
+
export interface V12DeployedAddresses {
|
|
29
|
+
/** Legacy EVM Kitchen version; use `releases` for per-component versions. */
|
|
30
|
+
version: string;
|
|
31
|
+
/** Legacy EVM Kitchen commit; use `releases` for per-component commits. */
|
|
32
|
+
commit: string;
|
|
33
|
+
releases: Record<"v12-evm" | "kitchen-evm" | "v12-svm" | "kitchen-svm", {
|
|
34
|
+
version: string;
|
|
35
|
+
commit: string;
|
|
36
|
+
}>;
|
|
37
|
+
evm: {
|
|
38
|
+
chainIndependent: true;
|
|
39
|
+
/** The CreateX-style factory every contract is deployed through. */
|
|
40
|
+
factory: string;
|
|
41
|
+
deployer: string;
|
|
42
|
+
contracts: {
|
|
43
|
+
/** The Huff interpreter runtime that executes Sauce bytecode. */
|
|
44
|
+
engine: V12EvmContractRef;
|
|
45
|
+
/** Swap surface every Pot's fallback delegatecalls into. */
|
|
46
|
+
router: V12EvmContractRef;
|
|
47
|
+
/** The UUPS Kitchen proxy — mints Pots and gates every cook. */
|
|
48
|
+
kitchen: V12EvmContractRef;
|
|
49
|
+
/** The Kitchen implementation behind the proxy. */
|
|
50
|
+
kitchenImplementation: V12EvmContractRef;
|
|
51
|
+
};
|
|
52
|
+
pot: V12PotDerivation;
|
|
53
|
+
};
|
|
54
|
+
svm: {
|
|
55
|
+
clusterIndependent: true;
|
|
56
|
+
programs: {
|
|
57
|
+
/** The SVM engine program — pass as `programId` to `createSauceSvmClient`. */
|
|
58
|
+
engine: V12SvmProgramRef;
|
|
59
|
+
/** The SVM Kitchen program every cook is gated to. */
|
|
60
|
+
kitchen: V12SvmProgramRef;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The assembled release-address record. Read lazily and memoized, so importing this module never
|
|
66
|
+
* throws — only calling it without a synced artifact does, with a remedy in the message.
|
|
67
|
+
*/
|
|
68
|
+
export declare function v12DeployedAddresses(): V12DeployedAddresses;
|
|
69
|
+
/** Legacy EVM Kitchen version. Engine versions are in `v12DeployedAddresses().releases`. */
|
|
70
|
+
export declare const v12DeployedVersion: () => string;
|
|
71
|
+
/** The current EVM engine (interpreter runtime) address. */
|
|
72
|
+
export declare const v12EngineAddress: () => string;
|
|
73
|
+
/** The current EVM Router address. */
|
|
74
|
+
export declare const v12RouterAddress: () => string;
|
|
75
|
+
/** The current EVM Kitchen (UUPS proxy) address — mints Pots and gates every cook. */
|
|
76
|
+
export declare const v12KitchenAddress: () => string;
|
|
77
|
+
/** The current EVM Kitchen implementation address (behind the proxy). */
|
|
78
|
+
export declare const v12KitchenImplementationAddress: () => string;
|
|
79
|
+
/** How a Pot address is derived from `(owner, salt)` under the current Kitchen. */
|
|
80
|
+
export declare const v12PotDerivation: () => V12PotDerivation;
|
|
81
|
+
/** The current SVM engine program id — pass as `programId` to `createSauceSvmClient`. */
|
|
82
|
+
export declare const v12SvmEngineProgramId: () => string;
|
|
83
|
+
/** The current SVM Kitchen program id every cook is gated to. */
|
|
84
|
+
export declare const v12SvmKitchenProgramId: () => string;
|
|
85
|
+
//# sourceMappingURL=v12-addresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v12-addresses.d.ts","sourceRoot":"","sources":["../../src/deployments/v12-addresses.ts"],"names":[],"mappings":"AAmBA,oGAAoG;AACpG,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,2GAA2G;AAC3G,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,2FAA2F;AAC3F,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CACd,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,aAAa,EACrD;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CACpC,CAAC;IACF,GAAG,EAAE;QACH,gBAAgB,EAAE,IAAI,CAAC;QACvB,oEAAoE;QACpE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE;YACT,iEAAiE;YACjE,MAAM,EAAE,iBAAiB,CAAC;YAC1B,4DAA4D;YAC5D,MAAM,EAAE,iBAAiB,CAAC;YAC1B,gEAAgE;YAChE,OAAO,EAAE,iBAAiB,CAAC;YAC3B,mDAAmD;YACnD,qBAAqB,EAAE,iBAAiB,CAAC;SAC1C,CAAC;QACF,GAAG,EAAE,gBAAgB,CAAC;KACvB,CAAC;IACF,GAAG,EAAE;QACH,kBAAkB,EAAE,IAAI,CAAC;QACzB,QAAQ,EAAE;YACR,8EAA8E;YAC9E,MAAM,EAAE,gBAAgB,CAAC;YACzB,sDAAsD;YACtD,OAAO,EAAE,gBAAgB,CAAC;SAC3B,CAAC;KACH,CAAC;CACH;AAWD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,oBAAoB,CAU3D;AAED,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,QAAO,MAAwC,CAAC;AAE/E,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,QAAO,MAA6D,CAAC;AAElG,sCAAsC;AACtC,eAAO,MAAM,gBAAgB,QAAO,MAA6D,CAAC;AAElG,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,QAAO,MAA8D,CAAC;AAEpG,yEAAyE;AACzE,eAAO,MAAM,+BAA+B,QAAO,MACiB,CAAC;AAErE,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,QAAO,gBAAkD,CAAC;AAEvF,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,QAAO,MACa,CAAC;AAEvD,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,QAAO,MACa,CAAC"}
|