TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019d5666-7233-730f-8581-38faccd30bf8

complete
Chain ID
1
Address
Block Number
Created
Sat, Apr 4, 2026 2:50 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Not yet
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
42897 artifact.fetch complete 1 / 3 1 week ago
42898 proxy.resolve complete 1 / 3 1 week ago
42899 tool.cast_disasm complete 1 / 3 1 week ago
42900 analysis.bundle complete 1 / 3 1 week ago
42901 capability.graph complete 1 / 3 1 week ago
42902 detector.run complete 1 / 3 1 week ago
42903 validation.fork complete 1 / 3 1 week ago
42992 report.consolidate complete 1 / 6 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes confirmed
Verified Source: no
Proxy evidence
{
    "method": "etherscan+onchain",
    "status": "confirmed",
    "etherscan_hint": {
        "source": "etherscan",
        "etherscan": {
            "proxy_flag": true,
            "implementation": "0x4f8b564e25337f6a3e66f12553221f6c05a13085"
        }
    },
    "implementation": "0x4f8b564e25337f6a3e66f12553221f6c05a13085",
    "onchain_method": "eip1967"
}

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
yes
Summary
Reviewed BYTECODE_BUNDLE.json and the embedded runtime bytecode for implementation 0x4f8b564e25337f6a3e66f12553221f6c05a13085, treating proxy storage as authoritative because the parent proxy 0x3d126d6b1581f7566a34bd4e912920bba41367d5 is linked via confirmed EIP-1967 metadata. I did not find a concrete implementation vulnerability that is defensible from bytecode alone. The dangerous sinks are real, but the evidence points to them being role-gated or registry-backed: owner-gated admin call paths revert with "Only owner"; the main swap/execution path reverts with "Only PoolManager" and temporarily clears/restores the pool-manager slot around execution, which is consistent with a reentrancy guard; and the reachable DELEGATECALL used for swap execution appears to load its implementation from a storage-backed implementation registry, with owner-managed implementation writes gated by an upgrade-window check ("not in upgrade window") and implementation validation ("Invalid implementation" / "Swap implementation not set"). One reported DELEGATECALL at pc:0x415e is in the CBOR metadata tail and is not executable code. Because this is a bytecode-only review, selector inference and role semantics remain best-effort, so residual design risk remains around trusted-owner/trusted-pool-manager assumptions, but I do not have enough evidence to elevate that into a concrete exploitable finding.
View stdout
{"no_findings":true,"summary":"Reviewed BYTECODE_BUNDLE.json and the embedded runtime bytecode for implementation 0x4f8b564e25337f6a3e66f12553221f6c05a13085, treating proxy storage as authoritative because the parent proxy 0x3d126d6b1581f7566a34bd4e912920bba41367d5 is linked via confirmed EIP-1967 metadata. I did not find a concrete implementation vulnerability that is defensible from bytecode alone. The dangerous sinks are real, but the evidence points to them being role-gated or registry-backed: owner-gated admin call paths revert with \"Only owner\"; the main swap/execution path reverts with \"Only PoolManager\" and temporarily clears/restores the pool-manager slot around execution, which is consistent with a reentrancy guard; and the reachable DELEGATECALL used for swap execution appears to load its implementation from a storage-backed implementation registry, with owner-managed implementation writes gated by an upgrade-window check (\"not in upgrade window\") and implementation validation (\"Invalid implementation\" / \"Swap implementation not set\"). One reported DELEGATECALL at pc:0x415e is in the CBOR metadata tail and is not executable code. Because this is a bytecode-only review, selector inference and role semantics remain best-effort, so residual design risk remains around trusted-owner/trusted-pool-manager assumptions, but I do not have enough evidence to elevate that into a concrete exploitable finding.","findings":[]}
View stderr
},
      {
        "end_pc": 14907,
        "hash": "0x41669bf8e25aef1e4f09d8707a396d6ff4e24a06dbea208565c1dd7fa286a10e",
        "id": "bb:14903",
        "start_pc": 14903,
        "type": "basic_block"
      },
      {
        "end_pc": 14919,
        "hash": "0x419b9828651a38f29cb9e6eda9e381d0d3c3672087ed05040c57570f28c00c86",
        "id": "bb:14908",
        "start_pc": 14908,
        "type": "basic_block"
      },
      {
        "end_pc": 14926,
        "hash": "0x4191a566351f78dba31192210bc7e70785da51e090d0e3d7951c3ae6b4b2615a",
        "id": "bb:14920",
        "start_pc": 14920,
        "type": "basic_block"
      },
      {
        "end_pc": 14948,
        "hash": "0xe0ba64abefbe56e799371119d46767da1cd0320dd25a94a1cac6fa760a7c2902",
        "id": "bb:14927",
        "start_pc": 14927,
        "type": "basic_block"
      },
      {
        "end_pc": 14955,
        "hash": "0xd3ce3eb8244527a79910a1f03d2c7beae945b0afcdfd599ffcf499e0582a1a65",
        "id": "bb:14949",
        "start_pc": 14949,
        "type": "basic_block"
      },
      {
        "end_pc": 14972,
        "hash": "0x8214a77e79bfc42c83f63033b59a66155afc513ec2cf75bd3b52d32956727bd1",
        "id": "bb:14956",
        "start_pc": 14956,
        "type": "basic_block"
      },
      {
        "end_pc": 14996,
        "hash": "0xd784c9c04fde5fdedf1ff82d7535fe9ce7652137217dc87819ffcdc82aabc7ba",
        "id": "bb:14973",
        "start_pc": 14973,
        "type": "basic_block"
      },
      {
        "end_pc": 15003,
        "hash": "0xd8f70a1f9228cfdc412b8ec767ec925accad5ee69ce3e788813609b521bc108d",
        "id": "bb:14997",
        "start_pc": 14997,
        "type": "basic_block"
      },
      {
        "end_pc": 15044,
        "hash": "0xcda801bebde3b34dfc955c2c3131639ce35e6c59697a00a38f4d9c00f93bd381",
        "id": "bb:15004",
        "start_pc": 15004,
        "type": "basic_block"
      },
      {
        "end_pc": 15092,
        "hash": "0x7fe868ebd40ff7d9fbcee069420272fca33136082a71ad25d699845fa75d15b9",
        "id": "bb:15045",
        "start_pc": 15045,
        "type": "basic_block"
      },
      {
        "end_pc": 15095,
        "hash": "0xc36725bf6f714f1e0915d9177a5248e8c2475b0833fd9e6b4325057dbd0d620f",
        "id": "bb:15093",
        "start_pc": 15093,
        "type": "basic_block"
      },
      {
        "end_pc": 15123,
        "hash": "0x834569c426a0c2f9ff835a19e4c84c238cdcf21c800c3987753c050f5c754cd1",
        "id": "bb:15096",
        "start_pc": 15096,
        "type": "basic_block"
      },
      {
        "end_pc": 15126,
        "hash": "0x2946ad3a7c46f85ce698cc4f76eafa96b67d93f7523fc03f6b502893d205e2a4",
        "id": "bb:15124",
        "start_pc": 15124,
        "type": "basic_block"
      },
      {
        "end_pc": 15140,
        "hash": "0xe507959028678e787b1f5aea3ad3ad8b58bdc1a9efae3eec2427c50e0da0dae2",
        "id": "bb:15127",
        "start_pc": 15127,
        "type": "basic_block"
      },
      {
        "end_pc": 15143,
        "hash": "0x63d603d23947740e2af29a9850ee7759a38ce2833b097dc0664a353a96137489",
        "id": "bb:15141",
        "start_pc": 15141,
        "type": "basic_block"
      },
      {
        "end_pc": 15188,
        "hash": "0x024a1cfe2bc9a1f01150d5b980bee582c851957dcdc5d2c54027e05a076a56c3",
        "id": "bb:15144",
        "start_pc": 15144,
        "type": "basic_block"
      },
      {
        "end_pc": 15191,
        "hash": "0x56426b15036a9bf1e20e84b07a61395e37f0ff15717b0325d13049fbf40cc3c9",
        "id": "bb:15189",
        "start_pc": 15189,
        "type": "basic_block"
      },
      {
        "end_pc": 15216,
        "hash": "0x34ac9406b82787cc68ec23226030450854421eefdf04d60b01a759b69073a016",
        "id": "bb:15192",
        "start_pc": 15192,
        "type": "basic_block"
      },
      {
        "end_pc": 15229,
        "hash": "0xd62ee2f54278e5e38d6a8b05bf7851feaa2a2a32cf2282accd04fa2fe0b879a3",
        "id": "bb:15217",
        "start_pc": 15217,
        "type": "basic_block"
      },
      {
        "end_pc": 15232,
        "hash": "0x4a622db3166c52ec08c2c239823cb1f2d9f5446d988125b6011a7bccbf3e8251",
        "id": "bb:15230",
        "start_pc": 15230,
        "type": "basic_block"
      },
      {
        "end_pc": 15262,
        "hash": "0xee880384cea27f44fd94e3dfac819537711cfda216bdabb7f12415a581424425",
        "id": "bb:15233",
        "start_pc": 15233,
        "type": "basic_block"
      },
      {
        "end_pc": 15271,
        "hash": "0x1cf4c2d9439b6040091ea637cd63aeadaa9ee00f153b1d0521b1916ff4a40494",
        "id": "bb:15263",
        "start_pc": 15263,
        "type": "basic_block"
      },
      {
        "end_pc": 15355,
        "hash": "0x6d7bcae61f515f5b8850816575e22af65f190e7376e59e5d2517bb33b6d2b60c",
        "id": "bb:15272",
        "start_pc": 15272,
        "type": "basic_block"
      },
      {
        "end_pc": 15358,
        "hash": "0x4b0b24d567903d98690e944bcbe3538bba7be5dbaac9893ee047625e01f8b395",
        "id": "bb:15356",
        "start_pc": 15356,
        "type": "basic_block"
      },
      {
        "end_pc": 15373,
        "hash": "0xb8f8afff0b4631bf375d64aca6586d527daf42e7e95519b63fd80c5115b50514",
        "id": "bb:15359",
        "start_pc": 15359,
        "type": "basic_block"
      },
      {
        "end_pc": 15435,
        "hash": "0x230b6b008874dc9f46c191fc78afeb7d8066f566b8466f12ee29a866e702344e",
        "id": "bb:15374",
        "start_pc": 15374,
        "type": "basic_block"
      },
      {
        "end_pc": 15438,
        "hash": "0xd66043ff99506f12c8aef6fe7fccf932e2fa453b6a5bac52c65b537922a65558",
        "id": "bb:15436",
        "start_pc": 15436,
        "type": "basic_block"
      },
      {
        "end_pc": 15462,
        "hash": "0xfd735b5d798e9c9d7805aea041b6ad0f0081f555e75990a3fb350cbe67aeeb08",
        "id": "bb:15439",
        "start_pc": 15439,
        "type": "basic_block"
      },
      {
        "end_pc": 15465,
        "hash": "0xad80c398afaa4426d18123a50f898e90991b5620475883c273e60cc2cff827e8",
        "id": "bb:15463",
        "start_pc": 15463,
        "type": "basic_block"
      },
      {
        "end_pc": 15476,
        "hash": "0x4e6ed2faa13b98aef438b7d294ca2952a7648db20751e24f491b2ab25ac73829",
        "id": "bb:15466",
        "start_pc": 15466,
        "type": "basic_block"
      },
      {
        "end_pc": 15479,
        "hash": "0x585563180cc3bfe519afafcf9b7045bd0c2776e497846bba69f815c0e88a91e1",
        "id": "bb:15477",
        "start_pc": 15477,
        "type": "basic_block"
      },
      {
        "end_pc": 15497,
        "hash": "0x95bfb98521013afdc96f132fda0de12d13b9ad087333e04a288b19762a2933e3",
        "id": "bb:15480",
        "start_pc": 15480,
        "type": "basic_block"
      },
      {
        "end_pc": 15513,
        "hash": "0x9a753fedf64f123c97a98f247f539b91b276fdd963b24c9eb9fe13aa29498b2d",
        "id": "bb:15498",
        "start_pc": 15498,
        "type": "basic_block"
      },
      {
        "end_pc": 15531,
        "hash": "0xd859e1a84482cda77b26748f09e82cf348634b5565477979bfde359dadfed4d0",
        "id": "bb:15514",
        "start_pc": 15514,
        "type": "basic_block"
      },
      {
        "end_pc": 15546,
        "hash": "0xd79fff5b0efe1df7ee0c09e2d7c79886db28e3102e37843f5713ed3340f2160e",
        "id": "bb:15532",
        "start_pc": 15532,
        "type": "basic_block"
      },
      {
        "end_pc": 15575,
        "hash": "0x74d8f8126beb57d2c1733d342d1670353adf60fb319b6d2818e643216823f430",
        "id": "bb:15547",
        "start_pc": 15547,
        "type": "basic_block"
      },
      {
        "end_pc": 15598,
        "hash": "0x50be22444ac50006b8d4829386f0458a437e2d2f5fa1f99071a0b9f54831c6d3",
        "id": "bb:15576",
        "start_pc": 15576,
        "type": "basic_block"
      },
      {
        "end_pc": 15610,
        "hash": "0x0434b3ac0b9c9aaf3a24d0a02bb31aae34164781eacca8b9be8ff9a4413fc5f6",
        "id": "bb:15599",
        "start_pc": 15599,
        "type": "basic_block"
      },
      {
        "end_pc": 15613,
        "hash": "0xe9469dcf981cd32ef7b740a93f47a9b74ea41734142d3c0cc2a72fd019cd7e2c",
        "id": "bb:15611",
        "start_pc": 15611,
        "type": "basic_block"
      },
      {
        "end_pc": 15629,
        "hash": "0x2f14a636b82b48eed35431da82165e5d80d65ead1409297aaeda43b5ba4eb048",
        "id": "bb:15614",
        "start_pc": 15614,
        "type": "basic_block"
      },
      {
        "end_pc": 15656,
        "hash": "0xfbf46cc6c1ad7135caae0db5251fc2d263c2ee16c8482d9dd5c3db9a9f84c686",
        "id": "bb:15630",
        "start_pc": 15630,
        "type": "basic_block"
      },
      {
        "end_pc": 15659,
        "hash": "0xe116950022ad69a13de1139d42aaf0acfd57a494bbd9d6f0892c82630962a292",
        "id": "bb:15657",
        "start_pc": 15657,
        "type": "basic_block"
      },
      {
        "end_pc": 15663,
        "hash": "0x94d453bd0278aa83d05fbc2a8e2ee503d23bbc9f8fefafbbd640f7a205e19895",
        "id": "bb:15660",
        "start_pc": 15660,
        "type": "basic_block"
      },
      {
        "end_pc": 15672,
        "hash": "0x59db649c26e3a9d114c1a7e5c2c9a88ebe63647b42b4550ec5cf2f54d0de5434",
        "id": "bb:15664",
        "start_pc": 15664,
        "type": "basic_block"
      },
      {
        "end_pc": 15691,
        "hash": "0x2d5ad6c996dbb8752ab28d4f08aaf4e96ad28dac8166909d026f09eb467c2004",
        "id": "bb:15673",
        "start_pc": 15673,
        "type": "basic_block"
      },
      {
        "end_pc": 15694,
        "hash": "0x12f8c893b981d7733e030a0401430a5311bca958280ed029534a79adb02eb163",
        "id": "bb:15692",
        "start_pc": 15692,
        "type": "basic_block"
      },
      {
        "end_pc": 15717,
        "hash": "0xbfeed287c443304a755026d170587b66ea6834634fb4cd086897d83730980405",
        "id": "bb:15695",
        "start_pc": 15695,
        "type": "basic_block"
      },
      {
        "end_pc": 15720,
        "hash": "0x11a8bc0b95a3b9d8893f5bd220e505fd90b5d7455ca27932b44f207cb1b8d452",
        "id": "bb:15718",
        "start_pc": 15718,
        "type": "basic_block"
      },
      {
        "end_pc": 15728,
        "hash": "0x9479ed9151ad65d5fb4c6ee3e2a4bd9aed02924e6c005d07db17f6ea15d95a42",
        "id": "bb:15721",
        "start_pc": 15721,
        "type": "basic_block"
      },
      {
        "end_pc": 15739,
        "hash": "0x8985c3422eaed7ebe303d162ac2e1d0a8143e091cf2c62154adfb92302a034f6",
        "id": "bb:15729",
        "start_pc": 15729,
        "type": "basic_block"
      },
      {
        "end_pc": 15754,
        "hash": "0xc3a1dd9436c11fbdb85f9512a1c16086585747dc892539bdfed2967779c3eb03",
        "id": "bb:15740",
        "start_pc": 15740,
        "type": "basic_block"
      },
      {
        "end_pc": 15771,
        "hash": "0x4f85cc7b75760f2c2102b56556aa75db7261da606a65874dfc423e1464c60a85",
        "id": "bb:15755",
        "start_pc": 15755,
        "type": "basic_block"
      },
      {
        "end_pc": 15790,
        "hash": "0xf8d6be8b3beaf69abb28c19e060c6d14a21e1b107736e16e5b6dd7d0d0af3fc4",
        "id": "bb:15772",
        "start_pc": 15772,
        "type": "basic_block"
      },
      {
        "end_pc": 15807,
        "hash": "0x15fd67ff3504ab51caea2ee3a5772399e7c0ef5036b145f7f43e57bdc7f7eec8",
        "id": "bb:15791",
        "start_pc": 15791,
        "type": "basic_block"
      },
      {
        "end_pc": 15826,
        "hash": "0x080b2be599c2e6485ce1e046a49520fb5280e0a940562092338a39639ed78e45",
        "id": "bb:15808",
        "start_pc": 15808,
        "type": "basic_block"
      },
      {
        "end_pc": 15845,
        "hash": "0x798efa687b8d7cd5b2ca3579b0c706ee4e917f6e67c3035a981f854b243b09ed",
        "id": "bb:15827",
        "start_pc": 15827,
        "type": "basic_block"
      },
      {
        "end_pc": 15848,
        "hash": "0xea6e522097c01eb7ad0a204d0dfdc126f90a8d0ba4a9fbbbee31747087673abb",
        "id": "bb:15846",
        "start_pc": 15846,
        "type": "basic_block"
      },
      {
        "end_pc": 15862,
        "hash": "0x49a9385026586089339b31354b24e2bbb3bcd6bf0e4c48f485dace8284b8a03b",
        "id": "bb:15849",
        "start_pc": 15849,
        "type": "basic_block"
      },
      {
        "end_pc": 15883,
        "hash": "0x19cca3d1c28688dca010b9adbb22b7a21d7dfc9ecb9f767e7fcd892c4f196279",
        "id": "bb:15863",
        "start_pc": 15863,
        "type": "basic_block"
      },
      {
        "end_pc": 15908,
        "hash": "0x2c92fa4d1a8595d7d15d2fd90606432c167022c0a053ef11a0328b422813912e",
        "id": "bb:15884",
        "start_pc": 15884,
        "type": "basic_block"
      },
      {
        "end_pc": 15919,
        "hash": "0x5ca6fbfb31c05554ab1818ab3825231a45c60cb586cc9fb9546b72d6424e2864",
        "id": "bb:15909",
        "start_pc": 15909,
        "type": "basic_block"
      },
      {
        "end_pc": 15922,
        "hash": "0x543ce5b705d8b2e57ee278febe9067a52ae91079ba6bfcb76607c9b12403807b",
        "id": "bb:15920",
        "start_pc": 15920,
        "type": "basic_block"
      },
      {
        "end_pc": 15936,
        "hash": "0x9a8877ff9f43e9c16da508b383159473b9c2c66eb9b78efbdb0dc74a4ffa805a",
        "id": "bb:15923",
        "start_pc": 15923,
        "type": "basic_block"
      },
      {
        "end_pc": 15939,
        "hash": "0xab06b488c265d54b1d7da58ee4ebfdf4e953657ee6304759926fad6c7a0aca9e",
        "id": "bb:15937",
        "start_pc": 15937,
        "type": "basic_block"
      },
      {
        "end_pc": 15947,
        "hash": "0x27514d1aef000d83bcd3afa8ab5cf0534da823b854e8174226ce5b249d44481c",
        "id": "bb:15940",
        "start_pc": 15940,
        "type": "basic_block"
      },
      {
        "end_pc": 15985,
        "hash": "0xbee7827e20ffef04cde587af10b08d41ced83dc534db813937dd2802a232141d",
        "id": "bb:15948",
        "start_pc": 15948,
        "type": "basic_block"
      },
      {
        "end_pc": 15988,
        "hash": "0xbaa5b1af569913cc82627408ce6c6dcfe85878741abe32d0df66f45623f54fae",
        "id": "bb:15986",
        "start_pc": 15986,
        "type": "basic_block"
      },
      {
        "end_pc": 16005,
        "hash": "0xf610693b7d915a3cfbe3ef083fff3fa5c1bc00820f7bf908562962675d4f03dc",
        "id": "bb:15989",
        "start_pc": 15989,
        "type": "basic_block"
      },
      {
        "end_pc": 16008,
        "hash": "0x8c00b2f4b2acdb231bc2173edabf42daf62022446e7685c1b82a106e672fbfc8",
        "id": "bb:16006",
        "start_pc": 16006,
        "type": "basic_block"
      },
      {
        "end_pc": 16016,
        "hash": "0xc0692e8f83d9ff10dba834bd6173dbf1d26ec0ddc1549a6ab5e388b46ca64bca",
        "id": "bb:16009",
        "start_pc": 16009,
        "type": "basic_block"
      },
      {
        "end_pc": 16027,
        "hash": "0x65c45f3cbdb8edae16e4a86d79bcec8dca5b958bb4cdffa5220365e919b11cd9",
        "id": "bb:16017",
        "start_pc": 16017,
        "type": "basic_block"
      },
      {
        "end_pc": 16042,
        "hash": "0xa531aa0d593d61aa0924c5a719346a49e09132af2212bc98e0654e5f69533791",
        "id": "bb:16028",
        "start_pc": 16028,
        "type": "basic_block"
      },
      {
        "end_pc": 16045,
        "hash": "0x13c856e96783c81853649f11dc86c579953bbf0a4dd75f8ac9e889cf0ec4d7ae",
        "id": "bb:16043",
        "start_pc": 16043,
        "type": "basic_block"
      },
      {
        "end_pc": 16058,
        "hash": "0x2c9133033e1c3f64fb5fcf45e8c4bfde1eeb335701aadee3b2e6a259bc1454fb",
        "id": "bb:16046",
        "start_pc": 16046,
        "type": "basic_block"
      },
      {
        "end_pc": 16061,
        "hash": "0x21a754af865fcf9569494cef63855fdc480ede368fb084ac67d96fd45bcec18d",
        "id": "bb:16059",
        "start_pc": 16059,
        "type": "basic_block"
      },
      {
        "end_pc": 16075,
        "hash": "0xf67a2890b7a8a16e1c4a0a1d5f392e38b8b4ea15f4fe9b2a700d710853eb6b2e",
        "id": "bb:16062",
        "start_pc": 16062,
        "type": "basic_block"
      },
      {
        "end_pc": 16099,
        "hash": "0xd18e974f2abd2029bb4c4246514cfcd1944afb62fcda5c06f1a393e2a9c26bb7",
        "id": "bb:16076",
        "start_pc": 16076,
        "type": "basic_block"
      },
      {
        "end_pc": 16102,
        "hash": "0x66b9d659280bbe2e60a5f081f9266d55f7f8a9388a411019405c78b38e2ac139",
        "id": "bb:16100",
        "start_pc": 16100,
        "type": "basic_block"
      },
      {
        "end_pc": 16107,
        "hash": "0x0de9c30ff651f0581eaaf01432e2312039af210fc3dac0f22e4168f7a1b5d13b",
        "id": "bb:16103",
        "start_pc": 16103,
        "type": "basic_block"
      },
      {
        "end_pc": 16116,
        "hash": "0x7c2b60b659f85511cca23b09cff0a1c19af49362f4a0a5713e2c800ddd272dff",
        "id": "bb:16108",
        "start_pc": 16108,
        "type": "basic_block"
      },
      {
        "end_pc": 16126,
        "hash": "0x7ab21cca9038a9bb7f5e4fe996a4d16efef2ff2a9e09214df5f50a9709655cfa",
        "id": "bb:16117",
        "start_pc": 16117,
        "type": "basic_block"
      },
      {
        "end_pc": 16129,
        "hash": "0x81ee163256cda91bc58bc0f10f61831da1f5226fc65dd8a26e3656acb51226ba",
        "id": "bb:16127",
        "start_pc": 16127,
        "type": "basic_block"
      },
      {
        "end_pc": 16137,
        "hash": "0xe081dea68eacfd3214348e4a38a829fef33840a717c6bcff7f5869ec9b6244c3",
        "id": "bb:16130",
        "start_pc": 16130,
        "type": "basic_block"
      },
      {
        "end_pc": 16148,
        "hash": "0x8e96cfa02c6b6c7e94d70d60238347165a84ce1c8020b21d6537309577573206",
        "id": "bb:16138",
        "start_pc": 16138,
        "type": "basic_block"
      },
      {
        "end_pc": 16161,
        "hash": "0x739e0fdb822d8df35dc67dde01a853097a2566766cca804fc7bfe3ff8884fcd9",
        "id": "bb:16149",
        "start_pc": 16149,
        "type": "basic_block"
      },
      {
        "end_pc": 16176,
        "hash": "0x836ef92e0be8f929c6e9961b7845d1022b4554ae5c530a1ccebbb77378ab2f24",
        "id": "bb:16162",
        "start_pc": 16162,
        "type": "basic_block"
      },
      {
        "end_pc": 16195,
        "hash": "0xe8271d5a2b212f70bfb06901713c8835c82fc91bc726e49ad76bcf8dd591e542",
        "id": "bb:16177",
        "start_pc": 16177,
        "type": "basic_block"
      },
      {
        "end_pc": 16219,
        "hash": "0x99710f14fb14f6e2df32d875d0a44f4c9e313539bdf5aa6bb8e4b9f9f90372d0",
        "id": "bb:16196",
        "start_pc": 16196,
        "type": "basic_block"
      },
      {
        "end_pc": 16222,
        "hash": "0xdec3da07318920ea27af28073fabe32828e6a6c263b1b43c30753a9d656e2a20",
        "id": "bb:16220",
        "start_pc": 16220,
        "type": "basic_block"
      },
      {
        "end_pc": 16234,
        "hash": "0xeea48cd6f3e59b39f4ee1e82998abe16a39f6ad95c8989080aa0db0a6961c06a",
        "id": "bb:16223",
        "start_pc": 16223,
        "type": "basic_block"
      },
      {
        "end_pc": 16249,
        "hash": "0xbb397abf68fb9ebd97f9d6095e9af688aa73f3da9929cc26b5c2e61d94f22c8c",
        "id": "bb:16235",
        "start_pc": 16235,
        "type": "basic_block"
      },
      {
        "end_pc": 16271,
        "hash": "0xa83ea42afd4b6aa46c5be8052941cd335800ec1088c7e069e19bad9686124e85",
        "id": "bb:16250",
        "start_pc": 16250,
        "type": "basic_block"
      },
      {
        "end_pc": 16283,
        "hash": "0xe6d20482da19749d8f848f06c898dde4a5c9a8d69ac03221ffbb68d8dc6f7dd4",
        "id": "bb:16272",
        "start_pc": 16272,
        "type": "basic_block"
      },
      {
        "end_pc": 16290,
        "hash": "0x2c15d9ec6fd3b954b66ea0d68b54223d3990fde6a26f120ef666a0cf37c9d4ac",
        "id": "bb:16284",
        "start_pc": 16284,
        "type": "basic_block"
      },
      {
        "end_pc": 16306,
        "hash": "0xd926b1fbb4149269a6d671e0c43253c89678acbe5d431225ed032d2574549123",
        "id": "bb:16291",
        "start_pc": 16291,
        "type": "basic_block"
      },
      {
        "end_pc": 16313,
        "hash": "0x68e2a32dca6a66a6bb2079165f63413a39aadd7f200e620a76fbad39183e3efa",
        "id": "bb:16307",
        "start_pc": 16307,
        "type": "basic_block"
      },
      {
        "end_pc": 16331,
        "hash": "0xfd6907cedd178c63cf329ea2acfb098e01bb513aca14279011a4dd700fa3cc55",
        "id": "bb:16314",
        "start_pc": 16314,
        "type": "basic_block"
      },
      {
        "end_pc": 16338,
        "hash": "0xc36cfa570f5620e493e115a2ea6f43ade76c81ef941d9ad3303d97ce1aa489ee",
        "id": "bb:16332",
        "start_pc": 16332,
        "type": "basic_block"
      },
      {
        "end_pc": 16383,
        "hash": "0x09628600050f51d73c9b83700e1cd640c8195a247d91b05a06c4a42485b20b0a",
        "id": "bb:16339",
        "start_pc": 16339,
        "type": "basic_block"
      },
      {
        "end_pc": 16482,
        "hash": "0xb9de4ccbfae5176bb8413bc19c042b78bc3c187e90aefc320835e0121177faa7",
        "id": "bb:16384",
        "start_pc": 16384,
        "type": "basic_block"
      },
      {
        "end_pc": 16673,
        "hash": "0x7751f3aea01dc13dbf655610cb7ddbc272a1e5a36d60ede9e401b16600fe008a",
        "id": "bb:16483",
        "start_pc": 16483,
        "type": "basic_block"
      },
      {
        "end_pc": 16695,
        "hash": "0x3760b79bce8103a7fb8052ed3db75ab97936f7516bb5e1a5b79ed3c9fd812b2a",
        "id": "bb:16674",
        "start_pc": 16674,
        "type": "basic_block"
      },
      {
        "end_pc": 16719,
        "hash": "0x6cfde01ac0e8f09fb41c3e15b67194ec68b17536625c52545ea5cd01ea150cbf",
        "id": "bb:16696",
        "start_pc": 16696,
        "type": "basic_block"
      },
      {
        "end_pc": 16720,
        "hash": "0x99d871f292d6bfdd7ddcfc6cc26fcd30a3e2087eb566b81827f65f1c0b442c7e",
        "id": "bb:16720",
        "start_pc": 16720,
        "type": "basic_block"
      },
      {
        "end_pc": 16769,
        "hash": "0x39817a586565fecb3531ba23f996d0fabdf2b60c0a4358d54ccdd47ca5c5d0cb",
        "id": "bb:16721",
        "start_pc": 16721,
        "type": "basic_block"
      },
      {
        "end_pc": 16772,
        "hash": "0xbdb7f0e7f0f170b10759e34f3da66d3d6565175fcd8e3cfb0adb7d0d68b107b2",
        "id": "bb:16770",
        "start_pc": 16770,
        "type": "basic_block"
      },
      {
        "end_pc": 16773,
        "hash": "0x5bd49c3074fdf08710d4f341727140697781c232e3dd2dd6df45dcfbc40d050a",
        "id": "bb:16773",
        "start_pc": 16773,
        "type": "basic_block"
      },
      {
        "id": "call:1862",
        "opcode": "CALL",
        "pc": 1862,
        "type": "callsite"
      },
      {
        "id": "call:3869",
        "opcode": "CALL",
        "pc": 3869,
        "type": "callsite"
      },
      {
        "id": "call:4242",
        "opcode": "CALL",
        "pc": 4242,
        "type": "callsite"
      },
      {
        "id": "call:4308",
        "opcode": "CALL",
        "pc": 4308,
        "type": "callsite"
      },
      {
        "id": "call:4461",
        "opcode": "CALL",
        "pc": 4461,
        "type": "callsite"
      },
      {
        "id": "call:4547",
        "opcode": "CALL",
        "pc": 4547,
        "type": "callsite"
      },
      {
        "id": "call:4733",
        "opcode": "CALL",
        "pc": 4733,
        "type": "callsite"
      },
      {
        "id": "call:5105",
        "opcode": "CALL",
        "pc": 5105,
        "type": "callsite"
      },
      {
        "id": "call:5171",
        "opcode": "CALL",
        "pc": 5171,
        "type": "callsite"
      },
      {
        "id": "call:5327",
        "opcode": "CALL",
        "pc": 5327,
        "type": "callsite"
      },
      {
        "id": "call:5413",
        "opcode": "CALL",
        "pc": 5413,
        "type": "callsite"
      },
      {
        "id": "call:6034",
        "opcode": "STATICCALL",
        "pc": 6034,
        "type": "callsite"
      },
      {
        "id": "call:6780",
        "opcode": "CALL",
        "pc": 6780,
        "type": "callsite"
      },
      {
        "id": "call:8623",
        "opcode": "CALL",
        "pc": 8623,
        "type": "callsite"
      },
      {
        "id": "call:8807",
        "opcode": "DELEGATECALL",
        "pc": 8807,
        "type": "callsite"
      },
      {
        "id": "call:9152",
        "opcode": "CALL",
        "pc": 9152,
        "type": "callsite"
      },
      {
        "id": "call:10994",
        "opcode": "CALL",
        "pc": 10994,
        "type": "callsite"
      },
      {
        "id": "call:11164",
        "opcode": "CALL",
        "pc": 11164,
        "type": "callsite"
      },
      {
        "id": "call:11543",
        "opcode": "DELEGATECALL",
        "pc": 11543,
        "type": "callsite"
      },
      {
        "id": "call:16734",
        "opcode": "DELEGATECALL",
        "pc": 16734,
        "type": "callsite"
      },
      {
        "id": "sink:call",
        "type": "sink"
      },
      {
        "id": "sink:staticcall",
        "type": "sink"
      },
      {
        "id": "sink:delegatecall",
        "type": "sink"
      },
      {
        "entry_pc": 4076725131,
        "id": "fn:0xf2fde38b",
        "selector": "0xf2fde38b",
        "type": "function"
      },
      {
        "entry_pc": 4198899251,
        "id": "fn:0xf3fef3a3",
        "selector": "0xf3fef3a3",
        "type": "function"
      },
      {
        "entry_pc": 4199038578,
        "id": "fn:0xfa461e33",
        "selector": "0xfa461e33",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xfa483e72",
        "selector": "0xfa483e72",
        "type": "function"
      },
      {
        "entry_pc": 3850598587,
        "id": "fn:0xe3f33a5e",
        "selector": "0xe3f33a5e",
        "type": "function"
      },
      {
        "entry_pc": 4047638694,
        "id": "fn:0xe58378bb",
        "selector": "0xe58378bb",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xf14210a6",
        "selector": "0xf14210a6",
        "type": "function"
      },
      {
        "entry_pc": 3469779665,
        "id": "fn:0xced0a2d1",
        "selector": "0xced0a2d1",
        "type": "function"
      },
      {
        "entry_pc": 3578229791,
        "id": "fn:0xd3e1c284",
        "selector": "0xd3e1c284",
        "type": "function"
      },
      {
        "entry_pc": 3719238696,
        "id": "fn:0xd547741f",
        "selector": "0xd547741f",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xddaf1428",
        "selector": "0xddaf1428",
        "type": "function"
      },
      {
        "entry_pc": 2715464939,
        "id": "fn:0x91dd7346",
        "selector": "0x91dd7346",
        "type": "function"
      },
      {
        "entry_pc": 2719481311,
        "id": "fn:0xa1dab4eb",
        "selector": "0xa1dab4eb",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xa217fddf",
        "selector": "0xa217fddf",
        "type": "function"
      },
      {
        "entry_pc": 1699439751,
        "id": "fn:0x654b6487",
        "selector": "0x654b6487",
        "type": "function"
      },
      {
        "entry_pc": 1942955512,
        "id": "fn:0x7065cb48",
        "selector": "0x7065cb48",
        "type": "function"
      },
      {
        "entry_pc": 2446411860,
        "id": "fn:0x73cf25f8",
        "selector": "0x73cf25f8",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0x91d14854",
        "selector": "0x91d14854",
        "type": "function"
      },
      {
        "entry_pc": 911641278,
        "id": "fn:0x2f2ff15d",
        "selector": "0x2f2ff15d",
        "type": "function"
      },
      {
        "entry_pc": 1422344060,
        "id": "fn:0x36568abe",
        "selector": "0x36568abe",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0x54c73f7c",
        "selector": "0x54c73f7c",
        "type": "function"
      },
      {
        "entry_pc": 410519172,
        "id": "fn:0x18780684",
        "selector": "0x18780684",
        "type": "function"
      },
      {
        "entry_pc": 613063843,
        "id": "fn:0x23a69e75",
        "selector": "0x23a69e75",
        "type": "function"
      },
      {
        "entry_pc": 747198710,
        "id": "fn:0x248a9ca3",
        "selector": "0x248a9ca3",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0x2c8958f6",
        "selector": "0x2c8958f6",
        "type": "function"
      },
      {
        "entry_pc": 227670416,
        "id": "fn:0x01ffc9a7",
        "selector": "0x01ffc9a7",
        "type": "function"
      },
      {
        "entry_pc": 389555673,
        "id": "fn:0x0d91f990",
        "selector": "0x0d91f990",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0x173825d9",
        "selector": "0x173825d9",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xffffffff",
        "selector": "0xffffffff",
        "type": "function"
      }
    ],
    "version": "capability_graph_v1"
  },
  "id": 1413,
  "updated_at": "2026-04-04T03:58:06.000000Z",
  "version": "capability_graph_v1"
}

exec
/bin/bash -lc "rg -n 'bytecode|runtime|evidence|selector|signature|owner|admin|implementation|eip1967|upgrade|delegatecall' BYTECODE_BUNDLE.json" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
20944:      "dispatcher_type": "selector_jump_table",
20948:          "selector": "0xf2fde38b"
20952:          "selector": "0xf3fef3a3"
20956:          "selector": "0xfa461e33"
20960:          "selector": "0xfa483e72"
20964:          "selector": "0xe3f33a5e"
20968:          "selector": "0xe58378bb"
20972:          "selector": "0xf14210a6"
20976:          "selector": "0xced0a2d1"
20980:          "selector": "0xd3e1c284"
20984:          "selector": "0xd547741f"
20988:          "selector": "0xddaf1428"
20992:          "selector": "0x91dd7346"
20996:          "selector": "0xa1dab4eb"
21000:          "selector": "0xa217fddf"
21004:          "selector": "0x654b6487"
21008:          "selector": "0x7065cb48"
21012:          "selector": "0x73cf25f8"
21016:          "selector": "0x91d14854"
21020:          "selector": "0x2f2ff15d"
21024:          "selector": "0x36568abe"
21028:          "selector": "0x54c73f7c"
21032:          "selector": "0x18780684"
21036:          "selector": "0x23a69e75"
21040:          "selector": "0x248a9ca3"
21044:          "selector": "0x2c8958f6"
21048:          "selector": "0x01ffc9a7"
21052:          "selector": "0x0d91f990"
21056:          "selector": "0x173825d9"
21060:          "selector": "0xffffffff"
21069:          "selector": "0xf2fde38b",
21072:            "delegatecall": 3,
21118:          "selector": "0xf3fef3a3",
21121:            "delegatecall": 3,
21167:          "selector": "0xfa461e33",
21170:            "delegatecall": 3,
21216:          "selector": "0xfa483e72",
21219:            "delegatecall": 3,
21265:          "selector": "0xe3f33a5e",
21268:            "delegatecall": 3,
21314:          "selector": "0xe58378bb",
21317:            "delegatecall": 3,
21363:          "selector": "0xf14210a6",
21366:            "delegatecall": 3,
21412:          "selector": "0xced0a2d1",
21415:            "delegatecall": 3,
21461:          "selector": "0xd3e1c284",
21464:            "delegatecall": 3,
21510:          "selector": "0xd547741f",
21513:            "delegatecall": 3,
21559:          "selector": "0xddaf1428",
21562:            "delegatecall": 3,
21608:          "selector": "0x91dd7346",
21611:            "delegatecall": 3,
21657:          "selector": "0xa1dab4eb",
21660:            "delegatecall": 3,
21706:          "selector": "0xa217fddf",
21709:            "delegatecall": 3,
21755:          "selector": "0x654b6487",
21758:            "delegatecall": 3,
21804:          "selector": "0x7065cb48",
21807:            "delegatecall": 3,
21853:          "selector": "0x73cf25f8",
21856:            "delegatecall": 3,
21902:          "selector": "0x91d14854",
21905:            "delegatecall": 3,
21951:          "selector": "0x2f2ff15d",
21954:            "delegatecall": 3,
22000:          "selector": "0x36568abe",
22003:            "delegatecall": 3,
22049:          "selector": "0x54c73f7c",
22052:            "delegatecall": 3,
22098:          "selector": "0x18780684",
22101:            "delegatecall": 3,
22147:          "selector": "0x23a69e75",
22150:            "delegatecall": 3,
22196:          "selector": "0x248a9ca3",
22199:            "delegatecall": 3,
22245:          "selector": "0x2c8958f6",
22248:            "delegatecall": 3,
22294:          "selector": "0x01ffc9a7",
22297:            "delegatecall": 3,
22343:          "selector": "0x0d91f990",
22346:            "delegatecall": 3,
22392:          "selector": "0x173825d9",
22395:            "delegatecall": 3,
22441:          "selector": "0xffffffff",
22444:            "delegatecall": 3,
22486:      "selectors": [
22521:        "delegatecall": 3,
22524:        "upgrade_slot_write_suspected": false
22585:        "link_type": "implementation",
22589:              "implementation": "0x4f8b564e25337f6a3e66f12553221f6c05a13085",
22594:          "implementation": "0x4f8b564e25337f6a3e66f12553221f6c05a13085",
22596:          "onchain_method": "eip1967",
22621:        "implementation": null,
22628:      "proxy_evidence": {
22632:    "implementation_address": null,
22634:    "runtime_bytecode": {
27844:          "to": "sink:delegatecall",
27884:          "to": "sink:delegatecall",
27894:          "to": "sink:delegatecall",
34314:          "id": "sink:delegatecall",
34320:          "selector": "0xf2fde38b",
34326:          "selector": "0xf3fef3a3",
34332:          "selector": "0xfa461e33",
34338:          "selector": "0xfa483e72",
34344:          "selector": "0xe3f33a5e",
34350:          "selector": "0xe58378bb",
34356:          "selector": "0xf14210a6",
34362:          "selector": "0xced0a2d1",
34368:          "selector": "0xd3e1c284",
34374:          "selector": "0xd547741f",
34380:          "selector": "0xddaf1428",
34386:          "selector": "0x91dd7346",
34392:          "selector": "0xa1dab4eb",
34398:          "selector": "0xa217fddf",
34404:          "selector": "0x654b6487",
34410:          "selector": "0x7065cb48",
34416:          "selector": "0x73cf25f8",
34422:          "selector": "0x91d14854",
34428:          "selector": "0x2f2ff15d",
34434:          "selector": "0x36568abe",
34440:          "selector": "0x54c73f7c",
34446:          "selector": "0x18780684",
34452:          "selector": "0x23a69e75",
34458:          "selector": "0x248a9ca3",
34464:          "selector": "0x2c8958f6",
34470:          "selector": "0x01ffc9a7",
34476:          "selector": "0x0d91f990",
34482:          "selector": "0x173825d9",
34488:          "selector": "0xffffffff",
34501:      "evidence_json": {
34502:        "delegatecall_count": 3,
34527:        "untrusted_delegatecall_count": 3
34551:      "evidence_json": {
34603:      "evidence_json": {
34656:    "delegatecall_count": 3,
34658:      "delegatecall_present",

exec
/bin/bash -lc "jq '.artifact | keys' BYTECODE_BUNDLE.json" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
[
  "codehash",
  "compiler_json",
  "implementation_address",
  "is_proxy",
  "runtime_bytecode",
  "verified_source"
]

exec
/bin/bash -lc "jq '.analysis_run | keys' BYTECODE_BUNDLE.json" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
[
  "address",
  "block_number",
  "chain_id",
  "child_links",
  "created_at",
  "id",
  "parent_links",
  "status",
  "updated_at"
]

exec
/bin/bash -lc "sed -n '22570,22650p' BYTECODE_BUNDLE.json" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
    "updated_at": "2026-04-04T03:58:06.000000Z",
    "version": "analysis_artifact_v1"
  },
  "analysis_run": {
    "address": "0x4f8b564e25337f6a3e66f12553221f6c05a13085",
    "block_number": null,
    "chain_id": 1,
    "child_links": [],
    "created_at": "2026-04-04T02:51:27.000000Z",
    "id": "019d5667-0d9d-728c-b832-799ea2787070",
    "parent_links": [
      {
        "child_run_id": "019d5667-0d9d-728c-b832-799ea2787070",
        "created_at": "2026-04-04T02:51:27.000000Z",
        "id": 236,
        "link_type": "implementation",
        "meta_json": {
          "etherscan_hint": {
            "etherscan": {
              "implementation": "0x4f8b564e25337f6a3e66f12553221f6c05a13085",
              "proxy_flag": true
            },
            "source": "etherscan"
          },
          "implementation": "0x4f8b564e25337f6a3e66f12553221f6c05a13085",
          "method": "etherscan+onchain",
          "onchain_method": "eip1967",
          "status": "confirmed"
        },
        "parent": {
          "address": "0x3d126d6b1581f7566a34bd4e912920bba41367d5",
          "block_number": null,
          "chain_id": 1,
          "created_at": "2026-04-04T02:50:47.000000Z",
          "id": "019d5666-7233-730f-8581-38faccd30bf8",
          "status": "running",
          "updated_at": "2026-04-04T02:51:26.000000Z"
        },
        "parent_run_id": "019d5666-7233-730f-8581-38faccd30bf8",
        "updated_at": "2026-04-04T02:51:27.000000Z"
      }
    ],
    "status": "running",
    "updated_at": "2026-04-04T03:58:05.000000Z"
  },
  "artifact": {
    "codehash": "0x0c635b95af49c84f163cc043b9e7fb41b57c1d16697f341354631a9bcdb329ba",
    "compiler_json": {
      "compiler_version": null,
      "etherscan": {
        "contract_name": null,
        "implementation": null,
        "license": "Unknown",
        "proxy": "0",
        "swarm_source": null
      },
      "optimizer_enabled": false,
      "optimizer_runs": 0,
      "proxy_evidence": {
        "status": "not_proxy"
      }
    },
    "implementation_address": null,
    "is_proxy": false,
    "runtime_bytecode": {
      "full": "0x6080604052600436106101ba575f3560e01c806391dd7346116100eb578063e3f33a5e11610089578063f2fde38b11610063578063f2fde38b146104da578063f3fef3a3146104f9578063fa461e3314610240578063fa483e7214610240576101c1565b8063e3f33a5e14610454578063e58378bb14610488578063f14210a6146104bb576101c1565b8063ced0a2d1116100c5578063ced0a2d1146103f7578063d3e1c28414610240578063d547741f14610416578063ddaf142814610435576101c1565b806391dd7346146103b8578063a1dab4eb14610240578063a217fddf146103e4576101c1565b80632f2ff15d11610158578063654b648711610132578063654b6487146102405780637065cb481461031757806373cf25f81461033657806391d1485414610355576101c1565b80632f2ff15d146102ba57806336568abe146102d957806354c73f7c146102f8576101c1565b80631878068411610194578063187806841461024057806323a69e7514610240578063248a9ca31461025f5780632c8958f614610240576101c1565b806301ffc9a7146101ce5780630d91f99014610202578063173825d914610221576101c1565b366101c157005b3480156101cc575f80fd5b005b3480156101d9575f80fd5b506101ed6101e8366004612df6565b610518565b60405190151581526020015b60405180910390f35b34801561020d575f80fd5b506101cc61021c366004612e84565b6105b0565b34801561022c575f80fd5b506101cc61023b366004612ef0565b61079e565b34801561024b575f80fd5b506101cc61025a366004612f49565b6108a1565b34801561026a575f80fd5b506102ac610279366004612f98565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016101f9565b3480156102c5575f80fd5b506101cc6102d4366004612faf565b610983565b3480156102e4575f80fd5b506101cc6102f3366004612faf565b6109c6565b348015610303575f80fd5b506101cc610312366004612faf565b610a17565b348015610322575f80fd5b506101cc610331366004612ef0565b610af8565b348015610341575f80fd5b506101cc6103503660046131ac565b610b9f565b348015610360575f80fd5b506101ed61036f366004612faf565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156103c3575f80fd5b506103d76103d236600461320c565b610d1f565b6040516101f99190613298565b3480156103ef575f80fd5b506102ac5f81565b348015610402575f80fd5b506101cc6104113660046131ac565b6115c6565b348015610421575f80fd5b506101cc610430366004612faf565b611680565b348015610440575f80fd5b506101cc61044f3660046133e4565b6116c3565b34801561045f575f80fd5b5061047361046e366004613446565b61182f565b604080519283526020830191909152016101f9565b348015610493575f80fd5b506102ac7fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e81565b3480156104c6575f80fd5b506101cc6104d5366004612f98565b6119e9565b3480156104e5575f80fd5b506101cc6104f4366004612ef0565b611a90565b348015610504575f80fd5b506101cc6105133660046134d8565b611b62565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806105aa57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff166106325760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b824311156040518060400160405280600181526020017f42000000000000000000000000000000000000000000000000000000000000008152509061068a5760405162461bcd60e51b81526004016106299190613298565b505f5b81811015610798575f808484848181106106a9576106a9613502565b90506020028101906106bb919061352f565b6106c9906020810190612ef0565b6001600160a01b03168585858181106106e4576106e4613502565b90506020028101906106f6919061352f565b6040013586868681811061070c5761070c613502565b905060200281019061071e919061352f565b61072c90602081019061356b565b60405161073a9291906135cc565b5f6040518083038185875af1925050503d805f8114610774576040519150601f19603f3d011682016040523d82523d5f602084013e610779565b606091505b50915091508161078e5761078c81611bf3565b505b505060010161068d565b50505050565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff1661081b5760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b6001600160a01b03811633036108735760405162461bcd60e51b815260206004820152601160248201527f53656c662d72656d6f7665206f776e65720000000000000000000000000000006044820152606401610629565b61089d7fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e82611c7d565b5050565b7fc9147e3daeff8607fb9627a5944bc77f03892cccc54d9465147fac738f6c1ea4546001600160a01b0316336001600160a01b0316146040518060400160405280600181526020017f50000000000000000000000000000000000000000000000000000000000000008152509061092b5760405162461bcd60e51b81526004016106299190613298565b506109545f7fc9147e3daeff8607fb9627a5944bc77f03892cccc54d9465147fac738f6c1ea455565b5f80610962838501856134d8565b909250905061097b6001600160a01b0383163383611d4f565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546109bc81611dc3565b6107988383611dd0565b6001600160a01b0381163314610a08576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a128282611c7d565b505050565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16610a945760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b60096017610aa28282611eb1565b610aee5760405162461bcd60e51b815260206004820152601560248201527f6e6f7420696e20757067726164652077696e646f7700000000000000000000006044820152606401610629565b6107988484611ee4565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16610b755760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b61089d7fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e82611dd0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610be95750825b90505f8267ffffffffffffffff166001148015610c055750303b155b905081158015610c13575080155b15610c4a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610cab5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b610cb587876115c6565b8315610d165784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b60605f610d4a7f162468a4167773432f8698ed7a10337877b87465381ef8fdb8745365f36a11005490565b9050336001600160a01b038216148015610d6c57506001600160a01b03811615155b610db85760405162461bcd60e51b815260206004820152601060248201527f4f6e6c7920506f6f6c4d616e61676572000000000000000000000000000000006044820152606401610629565b610de05f7f162468a4167773432f8698ed7a10337877b87465381ef8fdb8745365f36a110055565b5f80808080610df1888a018a613635565b835194995092975090955093509150339015610e685785516001600160a01b03858116911614610e635760405162461bcd60e51b815260206004820152601060248201527f746f6b656e496e206d69736d61746368000000000000000000000000000000006044820152606401610629565b610ec7565b60208601516001600160a01b03858116911614610ec75760405162461bcd60e51b815260206004820152601060248201527f746f6b656e496e206d69736d61746368000000000000000000000000000000006044820152606401610629565b6040517ff3cd914c0000000000000000000000000000000000000000000000000000000081525f906001600160a01b0383169063f3cd914c90610f10908a908a90600401613705565b6020604051808303815f875af1158015610f2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f50919061378a565b90505f610f5d8260801d90565b87519091508290156112c5575f82600f0b1315610fbc5760405162461bcd60e51b815260206004820152601660248201527f556e65787065637465642064656c746130207369676e000000000000000000006044820152606401610629565b5f81600f0b121561100f5760405162461bcd60e51b815260206004820152601660248201527f556e65787065637465642064656c746131207369676e000000000000000000006044820152606401610629565b5f611019836137ce565b6fffffffffffffffffffffffffffffffff169050851561110e5789516040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529086169063a5841194906024015f604051808303815f87803b15801561108f575f80fd5b505af11580156110a1573d5f803e3d5ffd5b50505050846001600160a01b03166311da60b4826040518263ffffffff1660e01b815260040160206040518083038185885af11580156110e3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611108919061378a565b506111f8565b89516040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529086169063a5841194906024015f604051808303815f87803b15801561116a575f80fd5b505af115801561117c573d5f803e3d5ffd5b50611195925050506001600160a01b0389163383611d4f565b846001600160a01b03166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af11580156111d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f6919061378a565b505b60208a01516040517f0b0d9c090000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015288821660248201526fffffffffffffffffffffffffffffffff84166044820181905291871690630b0d9c09906064015b5f604051808303815f87803b15801561127a575f80fd5b505af115801561128c573d5f803e3d5ffd5b50505050806040516020016112a391815260200190565b6040516020818303038152906040529c505050505050505050505050506105aa565b5f82600f0b12156113185760405162461bcd60e51b815260206004820152601660248201527f556e65787065637465642064656c746130207369676e000000000000000000006044820152606401610629565b5f81600f0b131561136b5760405162461bcd60e51b815260206004820152601660248201527f556e65787065637465642064656c746131207369676e000000000000000000006044820152606401610629565b5f611375826137ce565b6fffffffffffffffffffffffffffffffff169050851561146d5760208a01516040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529086169063a5841194906024015f604051808303815f87803b1580156113ee575f80fd5b505af1158015611400573d5f803e3d5ffd5b50505050846001600160a01b03166311da60b4826040518263ffffffff1660e01b815260040160206040518083038185885af1158015611442573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611467919061378a565b5061155a565b60208a01516040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529086169063a5841194906024015f604051808303815f87803b1580156114cc575f80fd5b505af11580156114de573d5f803e3d5ffd5b506114f7925050506001600160a01b0389163383611d4f565b846001600160a01b03166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611534573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611558919061378a565b505b89516040517f0b0d9c090000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015288821660248201526fffffffffffffffffffffffffffffffff85166044820181905291871690630b0d9c0990606401611263565b6115ce611f6d565b5f82511161161e5760405162461bcd60e51b815260206004820152600c60248201527f656d707479206f776e65727300000000000000000000000000000000000000006044820152606401610629565b5f81511161166e5760405162461bcd60e51b815260206004820152600f60248201527f656d7074792073776170496d706c7300000000000000000000000000000000006044820152606401610629565b61167782611fd6565b61089d8161203d565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546116b981611dc3565b6107988383611c7d565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff166117405760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b60808101516040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156117a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c5919061378a565b90508381101561181a57604080518082018252600281527f42520000000000000000000000000000000000000000000000000000000000006020820152905162461bcd60e51b81526106299190600401613298565b828111156118255750815b610798818361207b565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd6020526040812054819060ff166118ae5760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b864311156040518060400160405280600181526020017f4200000000000000000000000000000000000000000000000000000000000000815250906119065760405162461bcd60e51b81526004016106299190613298565b50611910856121fc565b909250905061195b6119218761380a565b828461193060208a018a6138df565b8681811061194057611940613502565b9050602002810190611952919061352f565b602001356123a4565b82811080156119a457505f84848381811061197857611978613502565b905060200281019061198a9190613943565b611998906020810190612ef0565b6001600160a01b031614155b156119df576119df828585848181106119bf576119bf613502565b90506020028101906119d19190613943565b6119da90613975565b61207b565b9550959350505050565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16611a665760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b604051339082156108fc029083905f818181858888f1935050505015801561089d573d5f803e3d5ffd5b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16611b0d5760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b611b377fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e82611dd0565b5061089d7fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e33611c7d565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16611bdf5760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b61089d6001600160a01b0383163383611d4f565b6060604482511015611c4a57604080518082018252600181527f55000000000000000000000000000000000000000000000000000000000000006020820152905162461bcd60e51b81526106299190600401613298565b60048201915081806020019051810190611c649190613980565b60405162461bcd60e51b81526004016106299190613298565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611d3f575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506105aa565b5f9150506105aa565b5092915050565b6040516001600160a01b03838116602483015260448201839052610a1291859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506123b1565b611dcd8133612436565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611d3f575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611e673390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506105aa565b5f806018611ec1610e1042613a16565b611ecb9190613a29565b9050808411158015611edc57508281105b949350505050565b6001600160a01b038116611f3a5760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420696d706c656d656e746174696f6e000000000000000000006044820152606401610629565b5f611f65837f27a7c29818a01378f2bedc8ddf9f92d28ddb97e7a6080124cb8f283ef9f38e2d613a3c565b919091555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611fd4576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611fde611f6d565b611fe66124c2565b5f5b815181101561089d576120347fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e83838151811061202757612027613502565b6020026020010151611dd0565b50600101611fe8565b612045611f6d565b5f5b815181101561089d576120738183838151811061206657612066613502565b6020026020010151611ee4565b600101612047565b63ffffffff8160a0015163ffffffff161461214d575f826040516020016120a491815260200190565b60405160208183030381529060405290505f5b60208163ffffffff16101561214a57818163ffffffff16815181106120de576120de613502565b602001015160f81c60f81b8360200151828560a001516120fe9190613a4f565b63ffffffff168151811061211457612114613502565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053506001016120b7565b50505b8060c001511561217d5761217d81606001518383608001516001600160a01b03166124ca9092919063ffffffff16565b5f80825f01516001600160a01b0316836040015184602001516040516121a39190613a6c565b5f6040518083038185875af1925050503d805f81146121dd576040519150601f19603f3d011682016040523d82523d5f602084013e6121e2565b606091505b509150915081610798576121f581611bf3565b5050505050565b5f8080737e2d0c9f25015b5d2b9d71345557560aa391107263038deb0961222386806138df565b600161223260208a018a6138df565b61223d929150613a7d565b6040518463ffffffff1660e01b815260040161225b93929190613b81565b602060405180830381865af4158015612276573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061229a919061378a565b90505f8112156122ef57604080518082018252600181527f43000000000000000000000000000000000000000000000000000000000000006020820152905162461bcd60e51b81526106299190600401613298565b9050805f61230060208601866138df565b8481811061231057612310613502565b9050602002810190612322919061352f565b61232b90613e33565b905061233e815f01518260400151612587565b935080602001518410156040518060400160405280600181526020017f41000000000000000000000000000000000000000000000000000000000000008152509061239c5760405162461bcd60e51b81526004016106299190613298565b505050915091565b610798848484845f612971565b5f8060205f8451602086015f885af1806123d0576040513d5f823e3d81fd5b50505f513d915081156123e75780600114156123f4565b6001600160a01b0384163b155b15610798576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610629565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff1661089d576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610629565b611fd4611f6d565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001790526125498482612b8b565b610798576040516001600160a01b0384811660248301525f604483015261257d91869182169063095ea7b390606401611d7c565b61079884826123b1565b80515f906001600160a01b031661259c573082525b5f82602001515167ffffffffffffffff8111156125bb576125bb612fdd565b6040519080825280602002602001820160405280156125e4578160200160208202803683370190505b50905083815f815181106125fa576125fa613502565b6020026020010181815250505f805f5b856040015151811015612918575f8660400151828151811061262e5761262e613502565b60200260200101519050815f148061267b57506040870151612651600184613f90565b8151811061266157612661613502565b60200260200101516040015160ff16816040015160ff1614155b156126cd5784816040015160ff168151811061269957612699613502565b602002602001015193508392505f85826040015160ff16815181106126c0576126c0613502565b6020026020010181815250505b6040870151515f906126e0846001613a3c565b108015612721575060408801516126f8846001613a3c565b8151811061270857612708613502565b60200260200101516040015160ff16826040015160ff16145b90505f8260e001511515600115150361275e57620f4240836020015162ffffff168761274d9190613fa3565b6127579190613a16565b9050612797565b610100830151156127755750610100820151612797565b811561279457620f4240836020015162ffffff168761274d9190613fa3565b50835b5f620f42408a60200151856040015160ff16815181106127b9576127b9613502565b60200260200101516040015162ffffff16836127d59190613fa3565b6127df9190613a16565b6127e99083613f90565b90505f8a6020015151856060015160016128039190613fba565b60ff16146128115730612814565b8a515b90505f61289d6040518060c00160405280868152602001858152602001846001600160a01b031681526020018e60200151896040015160ff168151811061285d5761285d613502565b602002602001015181526020018e60200151896060015160ff168151811061288757612887613502565b6020026020010151815260200188815250612bd4565b9050856060015160ff16866040015160ff16036128c8576128be8189613a3c565b9750879850612906565b6128d28489613f90565b9750808a876060015160ff16815181106128ee576128ee613502565b602002602001018181516129029190613a3c565b9052505b50506001909401935061260a92505050565b50825f8660600151600181111561293157612931613fd3565b1461293c575f61294e565b600186602001515161294e9190613f90565b8151811061295e5761295e613502565b6020026020010151935050505092915050565b84516001600160a01b03161580159061298e575083856020015151115b156121f5575f856020015185815181106129aa576129aa613502565b60200260200101516040015190508281116129c557506121f5565b5f8185116129d357846129d5565b815b90505f6129e28584613f90565b6129ec8684613f90565b89602001518981518110612a0257612a02613502565b60200260200101515f01518a602001518a81518110612a2357612a23613502565b602002602001015160200151612a399190613f90565b612a439190613fa3565b612a4d9190613a16565b88602001518881518110612a6357612a63613502565b60200260200101515f0151612a789190613a3c565b90505f612a858547613f90565b905080821115612ad75760405162461bcd60e51b815260206004820152601b60248201527f4272696265206578636565647320617661696c61626c652045544800000000006044820152606401610629565b88516040515f916001600160a01b03169084908381818185875af1925050503d805f8114612b20576040519150601f19603f3d011682016040523d82523d5f602084013e612b25565b606091505b50509050806040518060400160405280600c81526020017f4272696265206661696c6564000000000000000000000000000000000000000081525090612b7e5760405162461bcd60e51b81526004016106299190613298565b5050505050505050505050565b5f805f8060205f8651602088015f8a5af192503d91505f519050828015612bca57508115612bbc5780600114612bca565b5f866001600160a01b03163b115b9695505050505050565b60a0810151608001515f908190600960ff82161080612bf6575060ff8116600e145b80612c04575060ff8116600f145b15612c1957612c125f612dc2565b9150612c26565b612c236001612dc2565b91505b6001600160a01b038216612c7c5760405162461bcd60e51b815260206004820152601b60248201527f5377617020696d706c656d656e746174696f6e206e6f742073657400000000006044820152606401610629565b5f80836001600160a01b031663237974fa60e01b87604051602401612ca19190614000565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051612d0c9190613a6c565b5f60405180830381855af49150503d805f8114612d44576040519150601f19603f3d011682016040523d82523d5f602084013e612d49565b606091505b509150915081612dae57805115612d635780518082602001fd5b604080518082018252600181527f50000000000000000000000000000000000000000000000000000000000000006020820152905162461bcd60e51b81526106299190600401613298565b80806020019051810190612bca919061378a565b5f80612dee837f27a7c29818a01378f2bedc8ddf9f92d28ddb97e7a6080124cb8f283ef9f38e2d613a3c565b549392505050565b5f60208284031215612e06575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e35575f80fd5b9392505050565b5f8083601f840112612e4c575f80fd5b50813567ffffffffffffffff811115612e63575f80fd5b6020830191508360208260051b8501011115612e7d575f80fd5b9250929050565b5f805f60408486031215612e96575f80fd5b83359250602084013567ffffffffffffffff811115612eb3575f80fd5b612ebf86828701612e3c565b9497909650939450505050565b6001600160a01b0381168114611dcd575f80fd5b8035612eeb81612ecc565b919050565b5f60208284031215612f00575f80fd5b8135612e3581612ecc565b5f8083601f840112612f1b575f80fd5b50813567ffffffffffffffff811115612f32575f80fd5b602083019150836020828501011115612e7d575f80fd5b5f805f8060608587031215612f5c575f80fd5b8435935060208501359250604085013567ffffffffffffffff811115612f80575f80fd5b612f8c87828801612f0b565b95989497509550505050565b5f60208284031215612fa8575f80fd5b5035919050565b5f8060408385031215612fc0575f80fd5b823591506020830135612fd281612ecc565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160e0810167ffffffffffffffff8111828210171561302d5761302d612fdd565b60405290565b6040516060810167ffffffffffffffff8111828210171561302d5761302d612fdd565b60405160a0810167ffffffffffffffff8111828210171561302d5761302d612fdd565b6040805190810167ffffffffffffffff8111828210171561302d5761302d612fdd565b604051610120810167ffffffffffffffff8111828210171561302d5761302d612fdd565b6040516080810167ffffffffffffffff8111828210171561302d5761302d612fdd565b604051601f8201601f1916810167ffffffffffffffff8111828210171561310c5761310c612fdd565b604052919050565b5f67ffffffffffffffff82111561312d5761312d612fdd565b5060051b60200190565b5f82601f830112613146575f80fd5b8135602061315b61315683613114565b6130e3565b8083825260208201915060208460051b87010193508684111561317c575f80fd5b602086015b848110156131a157803561319481612ecc565b8352918301918301613181565b509695505050505050565b5f80604083850312156131bd575f80fd5b823567ffffffffffffffff808211156131d4575f80fd5b6131e086838701613137565b935060208501359150808211156131f5575f80fd5b5061320285828601613137565b9150509250929050565b5f806020838503121561321d575f80fd5b823567ffffffffffffffff811115613233575f80fd5b61323f85828601612f0b565b90969095509350505050565b5f5b8381101561326557818101518382015260200161324d565b50505f910152565b5f815180845261328481602086016020860161324b565b601f01601f19169290920160200192915050565b602081525f612e35602083018461326d565b5f67ffffffffffffffff8211156132c3576132c3612fdd565b50601f01601f191660200190565b5f82601f8301126132e0575f80fd5b81356132ee613156826132aa565b818152846020838601011115613302575f80fd5b816020850160208301375f918101602001919091529392505050565b803563ffffffff81168114612eeb575f80fd5b80358015158114612eeb575f80fd5b5f60e08284031215613350575f80fd5b61335861300a565b905061336382612ee0565b8152602082013567ffffffffffffffff81111561337e575f80fd5b61338a848285016132d1565b602083015250604082013560408201526133a660608301612ee0565b60608201526133b760808301612ee0565b60808201526133c860a0830161331e565b60a08201526133d960c08301613331565b60c082015292915050565b5f805f606084860312156133f6575f80fd5b8335925060208401359150604084013567ffffffffffffffff81111561341a575f80fd5b61342686828701613340565b9150509250925092565b5f60408284031215613440575f80fd5b50919050565b5f805f805f6080868803121561345a575f80fd5b85359450602086013567ffffffffffffffff80821115613478575f80fd5b61348489838a01613430565b95506040880135915080821115613499575f80fd5b6134a589838a01613430565b945060608801359150808211156134ba575f80fd5b506134c788828901612e3c565b969995985093965092949392505050565b5f80604083850312156134e9575f80fd5b82356134f481612ecc565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112613561575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261359e575f80fd5b83018035915067ffffffffffffffff8211156135b8575f80fd5b602001915036819003821315612e7d575f80fd5b818382375f9101908152919050565b803562ffffff81168114612eeb575f80fd5b5f606082840312156135fd575f80fd5b613605613033565b905061361082613331565b815260208201356020820152604082013561362a81612ecc565b604082015292915050565b5f805f805f85870361016081121561364b575f80fd5b60a0811215613658575f80fd5b50613661613056565b863561366c81612ecc565b8152602087013561367c81612ecc565b602082015261368d604088016135db565b604082015260608701358060020b81146136a5575f80fd5b606082015260808701356136b881612ecc565b608082015294506136cc8760a088016135ed565b93506136db6101008701612ee0565b92506136ea6101208701612ee0565b91506136f96101408701613331565b90509295509295909350565b5f6101206001600160a01b0380865116845280602087015116602085015262ffffff6040870151166040850152606086015160020b60608501528060808701511660808501528451151560a0850152602085015160c08501528060408601511660e085015250806101008401526137818184015f815260200190565b95945050505050565b5f6020828403121561379a575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f81600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008103613802576138026137a1565b5f0392915050565b5f604080833603121561381b575f80fd5b613823613079565b833561382e81612ecc565b815260208481013567ffffffffffffffff81111561384a575f80fd5b850136601f82011261385a575f80fd5b803561386861315682613114565b81815260609182028301840191848201919036841115613886575f80fd5b938501935b838510156138cc578085360312156138a1575f80fd5b6138a9613033565b85358152868601358782015288860135898201528352938401939185019161388b565b5093850193909352509195945050505050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613912575f80fd5b83018035915067ffffffffffffffff82111561392c575f80fd5b6020019150600581901b3603821315612e7d575f80fd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21833603018112613561575f80fd5b5f6105aa3683613340565b5f60208284031215613990575f80fd5b815167ffffffffffffffff8111156139a6575f80fd5b8201601f810184136139b6575f80fd5b80516139c4613156826132aa565b8181528560208385010111156139d8575f80fd5b61378182602083016020860161324b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82613a2457613a246139e9565b500490565b5f82613a3757613a376139e9565b500690565b808201808211156105aa576105aa6137a1565b63ffffffff818116838216019080821115611d4857611d486137a1565b5f825161356181846020870161324b565b8181035f831280158383131683831282161715611d4857611d486137a1565b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613af8575f80fd5b830160208101925035905067ffffffffffffffff811115613b17575f80fd5b8060051b3603821315612e7d575f80fd5b8183525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613b58575f80fd5b8260051b80836020870137939093016020019392505050565b803560ff81168114612eeb575f80fd5b60408082528181018490525f906060808401600587901b8501820188855b89811015613cd8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818c3603018112613bff575f80fd5b8b0160808135613c0e81612ecc565b6001600160a01b03168552602082810135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112613c4f575f80fd5b8301818101903567ffffffffffffffff811115613c6a575f80fd5b803603821315613c78575f80fd5b8383890152613c8a8489018284613a9c565b93505050613c9a89840184613ac5565b8784038b890152613cac848284613b28565b93505050613cbb888401613b71565b60ff16958801959095529484019493929092019150600101613b9f565b505080945050505050826020830152949350505050565b5f82601f830112613cfe575f80fd5b81356020613d0e61315683613114565b82815260059290921b84018101918181019086841115613d2c575f80fd5b8286015b848110156131a157803567ffffffffffffffff80821115613d4f575f80fd5b818901915061012080601f19848d03011215613d69575f80fd5b613d7161309c565b613d7c888501612ee0565b81526040613d8b8186016135db565b898301526060613d9c818701613b71565b8284015260809150613daf828701613b71565b9083015260a0613dc0868201613b71565b8284015260c09150613dd3828701613331565b9083015260e08581013585811115613de9575f80fd5b613df78f8c838a01016132d1565b83850152506101009450613e0c858701613331565b9083015250920135908201528352918301918301613d30565b803560028110612eeb575f80fd5b5f6060808336031215613e44575f80fd5b613e4c613033565b833581526020808501358183015260408086013567ffffffffffffffff80821115613e75575f80fd5b818801915060808236031215613e89575f80fd5b613e916130c0565b8235613e9c81612ecc565b81528285013582811115613eae575f80fd5b830136601f820112613ebe575f80fd5b8035613ecc61315682613114565b81815290890282018701908781019036831115613ee7575f80fd5b928801925b82841015613f44578a8436031215613f02575f80fd5b613f0a613033565b8435613f1581612ecc565b8152613f22858b016135db565b8a820152613f318986016135db565b818a01528252928a019290880190613eec565b80898601525050505083830135945081851115613f5f575f80fd5b613f6b36868501613cef565b84820152613f7a878401613e25565b9681019690965250508201929092529392505050565b818103818111156105aa576105aa6137a1565b80820281158282048414176105aa576105aa6137a1565b60ff81811683821601908111156105aa576105aa6137a1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6020815281516020820152602082015160408201526001600160a01b0360408301511660608201525f6060830151614063608084018280516001600160a01b0316825260208082015162ffffff9081169184019190915260409182015116910152565b50608083015180516001600160a01b031660e0840152602081015162ffffff9081166101008501526040820151166101208401525060a08301516101408381015280516001600160a01b0316610160840152602081015162ffffff811661018085015250604081015160ff81166101a085015250606081015160ff81166101c085015250608081015160ff81166101e08501525060a08101518015156102008501525060c081015161012061022085015261412261028085018261326d565b905060e082015161413861024086018215159052565b5061010082015161026085015280925050509291505056fea264697066735822122033a730f4dc49e8c71a143e1b78af0dd35b4c502bc9ea378a1b5195965fc0922764736f6c63430008180033",
      "head": null,
      "length": 33550,
      "tail": null,
      "truncated": false
    },
    "verified_source": false
  },
  "capability_graph": {
    "address": "0x4f8b564e25337f6a3e66f12553221f6c05a13085",
    "block_number": null,
    "chain_id": 1,
    "codehash": "0x0c635b95af49c84f163cc043b9e7fb41b57c1d16697f341354631a9bcdb329ba",
    "created_at": "2026-04-04T03:58:06.000000Z",
    "graph_hash": "0x26bfa7f80be3ded4cc3815a805a234e473a756c50dfc4e7596dcc0d12fe73c64",
    "graph_json": {

exec
/bin/bash -lc "jq '.artifact' BYTECODE_BUNDLE.json" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
{
  "codehash": "0x0c635b95af49c84f163cc043b9e7fb41b57c1d16697f341354631a9bcdb329ba",
  "compiler_json": {
    "compiler_version": null,
    "etherscan": {
      "contract_name": null,
      "implementation": null,
      "license": "Unknown",
      "proxy": "0",
      "swarm_source": null
    },
    "optimizer_enabled": false,
    "optimizer_runs": 0,
    "proxy_evidence": {
      "status": "not_proxy"
    }
  },
  "implementation_address": null,
  "is_proxy": false,
  "runtime_bytecode": {
    "full": "0x6080604052600436106101ba575f3560e01c806391dd7346116100eb578063e3f33a5e11610089578063f2fde38b11610063578063f2fde38b146104da578063f3fef3a3146104f9578063fa461e3314610240578063fa483e7214610240576101c1565b8063e3f33a5e14610454578063e58378bb14610488578063f14210a6146104bb576101c1565b8063ced0a2d1116100c5578063ced0a2d1146103f7578063d3e1c28414610240578063d547741f14610416578063ddaf142814610435576101c1565b806391dd7346146103b8578063a1dab4eb14610240578063a217fddf146103e4576101c1565b80632f2ff15d11610158578063654b648711610132578063654b6487146102405780637065cb481461031757806373cf25f81461033657806391d1485414610355576101c1565b80632f2ff15d146102ba57806336568abe146102d957806354c73f7c146102f8576101c1565b80631878068411610194578063187806841461024057806323a69e7514610240578063248a9ca31461025f5780632c8958f614610240576101c1565b806301ffc9a7146101ce5780630d91f99014610202578063173825d914610221576101c1565b366101c157005b3480156101cc575f80fd5b005b3480156101d9575f80fd5b506101ed6101e8366004612df6565b610518565b60405190151581526020015b60405180910390f35b34801561020d575f80fd5b506101cc61021c366004612e84565b6105b0565b34801561022c575f80fd5b506101cc61023b366004612ef0565b61079e565b34801561024b575f80fd5b506101cc61025a366004612f49565b6108a1565b34801561026a575f80fd5b506102ac610279366004612f98565b5f9081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b6040519081526020016101f9565b3480156102c5575f80fd5b506101cc6102d4366004612faf565b610983565b3480156102e4575f80fd5b506101cc6102f3366004612faf565b6109c6565b348015610303575f80fd5b506101cc610312366004612faf565b610a17565b348015610322575f80fd5b506101cc610331366004612ef0565b610af8565b348015610341575f80fd5b506101cc6103503660046131ac565b610b9f565b348015610360575f80fd5b506101ed61036f366004612faf565b5f9182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156103c3575f80fd5b506103d76103d236600461320c565b610d1f565b6040516101f99190613298565b3480156103ef575f80fd5b506102ac5f81565b348015610402575f80fd5b506101cc6104113660046131ac565b6115c6565b348015610421575f80fd5b506101cc610430366004612faf565b611680565b348015610440575f80fd5b506101cc61044f3660046133e4565b6116c3565b34801561045f575f80fd5b5061047361046e366004613446565b61182f565b604080519283526020830191909152016101f9565b348015610493575f80fd5b506102ac7fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e81565b3480156104c6575f80fd5b506101cc6104d5366004612f98565b6119e9565b3480156104e5575f80fd5b506101cc6104f4366004612ef0565b611a90565b348015610504575f80fd5b506101cc6105133660046134d8565b611b62565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806105aa57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff166106325760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b824311156040518060400160405280600181526020017f42000000000000000000000000000000000000000000000000000000000000008152509061068a5760405162461bcd60e51b81526004016106299190613298565b505f5b81811015610798575f808484848181106106a9576106a9613502565b90506020028101906106bb919061352f565b6106c9906020810190612ef0565b6001600160a01b03168585858181106106e4576106e4613502565b90506020028101906106f6919061352f565b6040013586868681811061070c5761070c613502565b905060200281019061071e919061352f565b61072c90602081019061356b565b60405161073a9291906135cc565b5f6040518083038185875af1925050503d805f8114610774576040519150601f19603f3d011682016040523d82523d5f602084013e610779565b606091505b50915091508161078e5761078c81611bf3565b505b505060010161068d565b50505050565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff1661081b5760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b6001600160a01b03811633036108735760405162461bcd60e51b815260206004820152601160248201527f53656c662d72656d6f7665206f776e65720000000000000000000000000000006044820152606401610629565b61089d7fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e82611c7d565b5050565b7fc9147e3daeff8607fb9627a5944bc77f03892cccc54d9465147fac738f6c1ea4546001600160a01b0316336001600160a01b0316146040518060400160405280600181526020017f50000000000000000000000000000000000000000000000000000000000000008152509061092b5760405162461bcd60e51b81526004016106299190613298565b506109545f7fc9147e3daeff8607fb9627a5944bc77f03892cccc54d9465147fac738f6c1ea455565b5f80610962838501856134d8565b909250905061097b6001600160a01b0383163383611d4f565b505050505050565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546109bc81611dc3565b6107988383611dd0565b6001600160a01b0381163314610a08576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a128282611c7d565b505050565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16610a945760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b60096017610aa28282611eb1565b610aee5760405162461bcd60e51b815260206004820152601560248201527f6e6f7420696e20757067726164652077696e646f7700000000000000000000006044820152606401610629565b6107988484611ee4565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16610b755760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b61089d7fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e82611dd0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610be95750825b90505f8267ffffffffffffffff166001148015610c055750303b155b905081158015610c13575080155b15610c4a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610cab5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b610cb587876115c6565b8315610d165784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b60605f610d4a7f162468a4167773432f8698ed7a10337877b87465381ef8fdb8745365f36a11005490565b9050336001600160a01b038216148015610d6c57506001600160a01b03811615155b610db85760405162461bcd60e51b815260206004820152601060248201527f4f6e6c7920506f6f6c4d616e61676572000000000000000000000000000000006044820152606401610629565b610de05f7f162468a4167773432f8698ed7a10337877b87465381ef8fdb8745365f36a110055565b5f80808080610df1888a018a613635565b835194995092975090955093509150339015610e685785516001600160a01b03858116911614610e635760405162461bcd60e51b815260206004820152601060248201527f746f6b656e496e206d69736d61746368000000000000000000000000000000006044820152606401610629565b610ec7565b60208601516001600160a01b03858116911614610ec75760405162461bcd60e51b815260206004820152601060248201527f746f6b656e496e206d69736d61746368000000000000000000000000000000006044820152606401610629565b6040517ff3cd914c0000000000000000000000000000000000000000000000000000000081525f906001600160a01b0383169063f3cd914c90610f10908a908a90600401613705565b6020604051808303815f875af1158015610f2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f50919061378a565b90505f610f5d8260801d90565b87519091508290156112c5575f82600f0b1315610fbc5760405162461bcd60e51b815260206004820152601660248201527f556e65787065637465642064656c746130207369676e000000000000000000006044820152606401610629565b5f81600f0b121561100f5760405162461bcd60e51b815260206004820152601660248201527f556e65787065637465642064656c746131207369676e000000000000000000006044820152606401610629565b5f611019836137ce565b6fffffffffffffffffffffffffffffffff169050851561110e5789516040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529086169063a5841194906024015f604051808303815f87803b15801561108f575f80fd5b505af11580156110a1573d5f803e3d5ffd5b50505050846001600160a01b03166311da60b4826040518263ffffffff1660e01b815260040160206040518083038185885af11580156110e3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611108919061378a565b506111f8565b89516040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529086169063a5841194906024015f604051808303815f87803b15801561116a575f80fd5b505af115801561117c573d5f803e3d5ffd5b50611195925050506001600160a01b0389163383611d4f565b846001600160a01b03166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af11580156111d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f6919061378a565b505b60208a01516040517f0b0d9c090000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015288821660248201526fffffffffffffffffffffffffffffffff84166044820181905291871690630b0d9c09906064015b5f604051808303815f87803b15801561127a575f80fd5b505af115801561128c573d5f803e3d5ffd5b50505050806040516020016112a391815260200190565b6040516020818303038152906040529c505050505050505050505050506105aa565b5f82600f0b12156113185760405162461bcd60e51b815260206004820152601660248201527f556e65787065637465642064656c746130207369676e000000000000000000006044820152606401610629565b5f81600f0b131561136b5760405162461bcd60e51b815260206004820152601660248201527f556e65787065637465642064656c746131207369676e000000000000000000006044820152606401610629565b5f611375826137ce565b6fffffffffffffffffffffffffffffffff169050851561146d5760208a01516040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529086169063a5841194906024015f604051808303815f87803b1580156113ee575f80fd5b505af1158015611400573d5f803e3d5ffd5b50505050846001600160a01b03166311da60b4826040518263ffffffff1660e01b815260040160206040518083038185885af1158015611442573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611467919061378a565b5061155a565b60208a01516040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529086169063a5841194906024015f604051808303815f87803b1580156114cc575f80fd5b505af11580156114de573d5f803e3d5ffd5b506114f7925050506001600160a01b0389163383611d4f565b846001600160a01b03166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611534573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611558919061378a565b505b89516040517f0b0d9c090000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015288821660248201526fffffffffffffffffffffffffffffffff85166044820181905291871690630b0d9c0990606401611263565b6115ce611f6d565b5f82511161161e5760405162461bcd60e51b815260206004820152600c60248201527f656d707479206f776e65727300000000000000000000000000000000000000006044820152606401610629565b5f81511161166e5760405162461bcd60e51b815260206004820152600f60248201527f656d7074792073776170496d706c7300000000000000000000000000000000006044820152606401610629565b61167782611fd6565b61089d8161203d565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546116b981611dc3565b6107988383611c7d565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff166117405760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b60808101516040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156117a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c5919061378a565b90508381101561181a57604080518082018252600281527f42520000000000000000000000000000000000000000000000000000000000006020820152905162461bcd60e51b81526106299190600401613298565b828111156118255750815b610798818361207b565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd6020526040812054819060ff166118ae5760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b864311156040518060400160405280600181526020017f4200000000000000000000000000000000000000000000000000000000000000815250906119065760405162461bcd60e51b81526004016106299190613298565b50611910856121fc565b909250905061195b6119218761380a565b828461193060208a018a6138df565b8681811061194057611940613502565b9050602002810190611952919061352f565b602001356123a4565b82811080156119a457505f84848381811061197857611978613502565b905060200281019061198a9190613943565b611998906020810190612ef0565b6001600160a01b031614155b156119df576119df828585848181106119bf576119bf613502565b90506020028101906119d19190613943565b6119da90613975565b61207b565b9550959350505050565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16611a665760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b604051339082156108fc029083905f818181858888f1935050505015801561089d573d5f803e3d5ffd5b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16611b0d5760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b611b377fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e82611dd0565b5061089d7fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e33611c7d565b335f9081527fc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd602052604090205460ff16611bdf5760405162461bcd60e51b815260206004820152600a60248201527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610629565b61089d6001600160a01b0383163383611d4f565b6060604482511015611c4a57604080518082018252600181527f55000000000000000000000000000000000000000000000000000000000000006020820152905162461bcd60e51b81526106299190600401613298565b60048201915081806020019051810190611c649190613980565b60405162461bcd60e51b81526004016106299190613298565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611d3f575f848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506105aa565b5f9150506105aa565b5092915050565b6040516001600160a01b03838116602483015260448201839052610a1291859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506123b1565b611dcd8133612436565b50565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611d3f575f848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611e673390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506105aa565b5f806018611ec1610e1042613a16565b611ecb9190613a29565b9050808411158015611edc57508281105b949350505050565b6001600160a01b038116611f3a5760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420696d706c656d656e746174696f6e000000000000000000006044820152606401610629565b5f611f65837f27a7c29818a01378f2bedc8ddf9f92d28ddb97e7a6080124cb8f283ef9f38e2d613a3c565b919091555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611fd4576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611fde611f6d565b611fe66124c2565b5f5b815181101561089d576120347fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e83838151811061202757612027613502565b6020026020010151611dd0565b50600101611fe8565b612045611f6d565b5f5b815181101561089d576120738183838151811061206657612066613502565b6020026020010151611ee4565b600101612047565b63ffffffff8160a0015163ffffffff161461214d575f826040516020016120a491815260200190565b60405160208183030381529060405290505f5b60208163ffffffff16101561214a57818163ffffffff16815181106120de576120de613502565b602001015160f81c60f81b8360200151828560a001516120fe9190613a4f565b63ffffffff168151811061211457612114613502565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053506001016120b7565b50505b8060c001511561217d5761217d81606001518383608001516001600160a01b03166124ca9092919063ffffffff16565b5f80825f01516001600160a01b0316836040015184602001516040516121a39190613a6c565b5f6040518083038185875af1925050503d805f81146121dd576040519150601f19603f3d011682016040523d82523d5f602084013e6121e2565b606091505b509150915081610798576121f581611bf3565b5050505050565b5f8080737e2d0c9f25015b5d2b9d71345557560aa391107263038deb0961222386806138df565b600161223260208a018a6138df565b61223d929150613a7d565b6040518463ffffffff1660e01b815260040161225b93929190613b81565b602060405180830381865af4158015612276573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061229a919061378a565b90505f8112156122ef57604080518082018252600181527f43000000000000000000000000000000000000000000000000000000000000006020820152905162461bcd60e51b81526106299190600401613298565b9050805f61230060208601866138df565b8481811061231057612310613502565b9050602002810190612322919061352f565b61232b90613e33565b905061233e815f01518260400151612587565b935080602001518410156040518060400160405280600181526020017f41000000000000000000000000000000000000000000000000000000000000008152509061239c5760405162461bcd60e51b81526004016106299190613298565b505050915091565b610798848484845f612971565b5f8060205f8451602086015f885af1806123d0576040513d5f823e3d81fd5b50505f513d915081156123e75780600114156123f4565b6001600160a01b0384163b155b15610798576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610629565b5f8281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff1661089d576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610629565b611fd4611f6d565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001790526125498482612b8b565b610798576040516001600160a01b0384811660248301525f604483015261257d91869182169063095ea7b390606401611d7c565b61079884826123b1565b80515f906001600160a01b031661259c573082525b5f82602001515167ffffffffffffffff8111156125bb576125bb612fdd565b6040519080825280602002602001820160405280156125e4578160200160208202803683370190505b50905083815f815181106125fa576125fa613502565b6020026020010181815250505f805f5b856040015151811015612918575f8660400151828151811061262e5761262e613502565b60200260200101519050815f148061267b57506040870151612651600184613f90565b8151811061266157612661613502565b60200260200101516040015160ff16816040015160ff1614155b156126cd5784816040015160ff168151811061269957612699613502565b602002602001015193508392505f85826040015160ff16815181106126c0576126c0613502565b6020026020010181815250505b6040870151515f906126e0846001613a3c565b108015612721575060408801516126f8846001613a3c565b8151811061270857612708613502565b60200260200101516040015160ff16826040015160ff16145b90505f8260e001511515600115150361275e57620f4240836020015162ffffff168761274d9190613fa3565b6127579190613a16565b9050612797565b610100830151156127755750610100820151612797565b811561279457620f4240836020015162ffffff168761274d9190613fa3565b50835b5f620f42408a60200151856040015160ff16815181106127b9576127b9613502565b60200260200101516040015162ffffff16836127d59190613fa3565b6127df9190613a16565b6127e99083613f90565b90505f8a6020015151856060015160016128039190613fba565b60ff16146128115730612814565b8a515b90505f61289d6040518060c00160405280868152602001858152602001846001600160a01b031681526020018e60200151896040015160ff168151811061285d5761285d613502565b602002602001015181526020018e60200151896060015160ff168151811061288757612887613502565b6020026020010151815260200188815250612bd4565b9050856060015160ff16866040015160ff16036128c8576128be8189613a3c565b9750879850612906565b6128d28489613f90565b9750808a876060015160ff16815181106128ee576128ee613502565b602002602001018181516129029190613a3c565b9052505b50506001909401935061260a92505050565b50825f8660600151600181111561293157612931613fd3565b1461293c575f61294e565b600186602001515161294e9190613f90565b8151811061295e5761295e613502565b6020026020010151935050505092915050565b84516001600160a01b03161580159061298e575083856020015151115b156121f5575f856020015185815181106129aa576129aa613502565b60200260200101516040015190508281116129c557506121f5565b5f8185116129d357846129d5565b815b90505f6129e28584613f90565b6129ec8684613f90565b89602001518981518110612a0257612a02613502565b60200260200101515f01518a602001518a81518110612a2357612a23613502565b602002602001015160200151612a399190613f90565b612a439190613fa3565b612a4d9190613a16565b88602001518881518110612a6357612a63613502565b60200260200101515f0151612a789190613a3c565b90505f612a858547613f90565b905080821115612ad75760405162461bcd60e51b815260206004820152601b60248201527f4272696265206578636565647320617661696c61626c652045544800000000006044820152606401610629565b88516040515f916001600160a01b03169084908381818185875af1925050503d805f8114612b20576040519150601f19603f3d011682016040523d82523d5f602084013e612b25565b606091505b50509050806040518060400160405280600c81526020017f4272696265206661696c6564000000000000000000000000000000000000000081525090612b7e5760405162461bcd60e51b81526004016106299190613298565b5050505050505050505050565b5f805f8060205f8651602088015f8a5af192503d91505f519050828015612bca57508115612bbc5780600114612bca565b5f866001600160a01b03163b115b9695505050505050565b60a0810151608001515f908190600960ff82161080612bf6575060ff8116600e145b80612c04575060ff8116600f145b15612c1957612c125f612dc2565b9150612c26565b612c236001612dc2565b91505b6001600160a01b038216612c7c5760405162461bcd60e51b815260206004820152601b60248201527f5377617020696d706c656d656e746174696f6e206e6f742073657400000000006044820152606401610629565b5f80836001600160a01b031663237974fa60e01b87604051602401612ca19190614000565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051612d0c9190613a6c565b5f60405180830381855af49150503d805f8114612d44576040519150601f19603f3d011682016040523d82523d5f602084013e612d49565b606091505b509150915081612dae57805115612d635780518082602001fd5b604080518082018252600181527f50000000000000000000000000000000000000000000000000000000000000006020820152905162461bcd60e51b81526106299190600401613298565b80806020019051810190612bca919061378a565b5f80612dee837f27a7c29818a01378f2bedc8ddf9f92d28ddb97e7a6080124cb8f283ef9f38e2d613a3c565b549392505050565b5f60208284031215612e06575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e35575f80fd5b9392505050565b5f8083601f840112612e4c575f80fd5b50813567ffffffffffffffff811115612e63575f80fd5b6020830191508360208260051b8501011115612e7d575f80fd5b9250929050565b5f805f60408486031215612e96575f80fd5b83359250602084013567ffffffffffffffff811115612eb3575f80fd5b612ebf86828701612e3c565b9497909650939450505050565b6001600160a01b0381168114611dcd575f80fd5b8035612eeb81612ecc565b919050565b5f60208284031215612f00575f80fd5b8135612e3581612ecc565b5f8083601f840112612f1b575f80fd5b50813567ffffffffffffffff811115612f32575f80fd5b602083019150836020828501011115612e7d575f80fd5b5f805f8060608587031215612f5c575f80fd5b8435935060208501359250604085013567ffffffffffffffff811115612f80575f80fd5b612f8c87828801612f0b565b95989497509550505050565b5f60208284031215612fa8575f80fd5b5035919050565b5f8060408385031215612fc0575f80fd5b823591506020830135612fd281612ecc565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160e0810167ffffffffffffffff8111828210171561302d5761302d612fdd565b60405290565b6040516060810167ffffffffffffffff8111828210171561302d5761302d612fdd565b60405160a0810167ffffffffffffffff8111828210171561302d5761302d612fdd565b6040805190810167ffffffffffffffff8111828210171561302d5761302d612fdd565b604051610120810167ffffffffffffffff8111828210171561302d5761302d612fdd565b6040516080810167ffffffffffffffff8111828210171561302d5761302d612fdd565b604051601f8201601f1916810167ffffffffffffffff8111828210171561310c5761310c612fdd565b604052919050565b5f67ffffffffffffffff82111561312d5761312d612fdd565b5060051b60200190565b5f82601f830112613146575f80fd5b8135602061315b61315683613114565b6130e3565b8083825260208201915060208460051b87010193508684111561317c575f80fd5b602086015b848110156131a157803561319481612ecc565b8352918301918301613181565b509695505050505050565b5f80604083850312156131bd575f80fd5b823567ffffffffffffffff808211156131d4575f80fd5b6131e086838701613137565b935060208501359150808211156131f5575f80fd5b5061320285828601613137565b9150509250929050565b5f806020838503121561321d575f80fd5b823567ffffffffffffffff811115613233575f80fd5b61323f85828601612f0b565b90969095509350505050565b5f5b8381101561326557818101518382015260200161324d565b50505f910152565b5f815180845261328481602086016020860161324b565b601f01601f19169290920160200192915050565b602081525f612e35602083018461326d565b5f67ffffffffffffffff8211156132c3576132c3612fdd565b50601f01601f191660200190565b5f82601f8301126132e0575f80fd5b81356132ee613156826132aa565b818152846020838601011115613302575f80fd5b816020850160208301375f918101602001919091529392505050565b803563ffffffff81168114612eeb575f80fd5b80358015158114612eeb575f80fd5b5f60e08284031215613350575f80fd5b61335861300a565b905061336382612ee0565b8152602082013567ffffffffffffffff81111561337e575f80fd5b61338a848285016132d1565b602083015250604082013560408201526133a660608301612ee0565b60608201526133b760808301612ee0565b60808201526133c860a0830161331e565b60a08201526133d960c08301613331565b60c082015292915050565b5f805f606084860312156133f6575f80fd5b8335925060208401359150604084013567ffffffffffffffff81111561341a575f80fd5b61342686828701613340565b9150509250925092565b5f60408284031215613440575f80fd5b50919050565b5f805f805f6080868803121561345a575f80fd5b85359450602086013567ffffffffffffffff80821115613478575f80fd5b61348489838a01613430565b95506040880135915080821115613499575f80fd5b6134a589838a01613430565b945060608801359150808211156134ba575f80fd5b506134c788828901612e3c565b969995985093965092949392505050565b5f80604083850312156134e9575f80fd5b82356134f481612ecc565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112613561575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261359e575f80fd5b83018035915067ffffffffffffffff8211156135b8575f80fd5b602001915036819003821315612e7d575f80fd5b818382375f9101908152919050565b803562ffffff81168114612eeb575f80fd5b5f606082840312156135fd575f80fd5b613605613033565b905061361082613331565b815260208201356020820152604082013561362a81612ecc565b604082015292915050565b5f805f805f85870361016081121561364b575f80fd5b60a0811215613658575f80fd5b50613661613056565b863561366c81612ecc565b8152602087013561367c81612ecc565b602082015261368d604088016135db565b604082015260608701358060020b81146136a5575f80fd5b606082015260808701356136b881612ecc565b608082015294506136cc8760a088016135ed565b93506136db6101008701612ee0565b92506136ea6101208701612ee0565b91506136f96101408701613331565b90509295509295909350565b5f6101206001600160a01b0380865116845280602087015116602085015262ffffff6040870151166040850152606086015160020b60608501528060808701511660808501528451151560a0850152602085015160c08501528060408601511660e085015250806101008401526137818184015f815260200190565b95945050505050565b5f6020828403121561379a575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f81600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008103613802576138026137a1565b5f0392915050565b5f604080833603121561381b575f80fd5b613823613079565b833561382e81612ecc565b815260208481013567ffffffffffffffff81111561384a575f80fd5b850136601f82011261385a575f80fd5b803561386861315682613114565b81815260609182028301840191848201919036841115613886575f80fd5b938501935b838510156138cc578085360312156138a1575f80fd5b6138a9613033565b85358152868601358782015288860135898201528352938401939185019161388b565b5093850193909352509195945050505050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613912575f80fd5b83018035915067ffffffffffffffff82111561392c575f80fd5b6020019150600581901b3603821315612e7d575f80fd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21833603018112613561575f80fd5b5f6105aa3683613340565b5f60208284031215613990575f80fd5b815167ffffffffffffffff8111156139a6575f80fd5b8201601f810184136139b6575f80fd5b80516139c4613156826132aa565b8181528560208385010111156139d8575f80fd5b61378182602083016020860161324b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82613a2457613a246139e9565b500490565b5f82613a3757613a376139e9565b500690565b808201808211156105aa576105aa6137a1565b63ffffffff818116838216019080821115611d4857611d486137a1565b5f825161356181846020870161324b565b8181035f831280158383131683831282161715611d4857611d486137a1565b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613af8575f80fd5b830160208101925035905067ffffffffffffffff811115613b17575f80fd5b8060051b3603821315612e7d575f80fd5b8183525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115613b58575f80fd5b8260051b80836020870137939093016020019392505050565b803560ff81168114612eeb575f80fd5b60408082528181018490525f906060808401600587901b8501820188855b89811015613cd8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818c3603018112613bff575f80fd5b8b0160808135613c0e81612ecc565b6001600160a01b03168552602082810135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112613c4f575f80fd5b8301818101903567ffffffffffffffff811115613c6a575f80fd5b803603821315613c78575f80fd5b8383890152613c8a8489018284613a9c565b93505050613c9a89840184613ac5565b8784038b890152613cac848284613b28565b93505050613cbb888401613b71565b60ff16958801959095529484019493929092019150600101613b9f565b505080945050505050826020830152949350505050565b5f82601f830112613cfe575f80fd5b81356020613d0e61315683613114565b82815260059290921b84018101918181019086841115613d2c575f80fd5b8286015b848110156131a157803567ffffffffffffffff80821115613d4f575f80fd5b818901915061012080601f19848d03011215613d69575f80fd5b613d7161309c565b613d7c888501612ee0565b81526040613d8b8186016135db565b898301526060613d9c818701613b71565b8284015260809150613daf828701613b71565b9083015260a0613dc0868201613b71565b8284015260c09150613dd3828701613331565b9083015260e08581013585811115613de9575f80fd5b613df78f8c838a01016132d1565b83850152506101009450613e0c858701613331565b9083015250920135908201528352918301918301613d30565b803560028110612eeb575f80fd5b5f6060808336031215613e44575f80fd5b613e4c613033565b833581526020808501358183015260408086013567ffffffffffffffff80821115613e75575f80fd5b818801915060808236031215613e89575f80fd5b613e916130c0565b8235613e9c81612ecc565b81528285013582811115613eae575f80fd5b830136601f820112613ebe575f80fd5b8035613ecc61315682613114565b81815290890282018701908781019036831115613ee7575f80fd5b928801925b82841015613f44578a8436031215613f02575f80fd5b613f0a613033565b8435613f1581612ecc565b8152613f22858b016135db565b8a820152613f318986016135db565b818a01528252928a019290880190613eec565b80898601525050505083830135945081851115613f5f575f80fd5b613f6b36868501613cef565b84820152613f7a878401613e25565b9681019690965250508201929092529392505050565b818103818111156105aa576105aa6137a1565b80820281158282048414176105aa576105aa6137a1565b60ff81811683821601908111156105aa576105aa6137a1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6020815281516020820152602082015160408201526001600160a01b0360408301511660608201525f6060830151614063608084018280516001600160a01b0316825260208082015162ffffff9081169184019190915260409182015116910152565b50608083015180516001600160a01b031660e0840152602081015162ffffff9081166101008501526040820151166101208401525060a08301516101408381015280516001600160a01b0316610160840152602081015162ffffff811661018085015250604081015160ff81166101a085015250606081015160ff81166101c085015250608081015160ff81166101e08501525060a08101518015156102008501525060c081015161012061022085015261412261028085018261326d565b905060e082015161413861024086018215159052565b5061010082015161026085015280925050509291505056fea264697066735822122033a730f4dc49e8c71a143e1b78af0dd35b4c502bc9ea378a1b5195965fc0922764736f6c63430008180033",
    "head": null,
    "length": 33550,
    "tail": null,
    "truncated": false
  },
  "verified_source": false
}

I’ve read the bundle and confirmed the implementation bytecode is embedded, along with proxy linkage from the target proxy. Next I’m mapping the high-risk entrypoints and callsites from the runtime bytecode, then I’ll decide whether the evidence supports concrete implementation findings or only lower-confidence proxy/mechanics notes.
  → Map selectors, guards, storage slots, and privileged entrypoints from BYTECODE_BUNDLE.json and runtime bytecode
  • Trace high-risk call/delegatecall/value-transfer paths and classify whether targets are controlled or constrained
  • Assemble conservative findings with explicit bytecode uncertainty and exact pc/selector references
exec
/bin/bash -lc "python - <<'PY'
import json
from textwrap import wrap
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
bytecode=data['artifact']['runtime_bytecode']['full'][2:]
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'
code=bytes.fromhex(bytecode)

def dis(start,end):
    pc=start
    while pc<end and pc<len(code):
        op=code[pc]
        name=ops.get(op,f'OP_{op:02x}')
        if 0x60<=op<=0x7f:
            n=op-0x5f
            arg=code[pc+1:pc+1+n].hex()
            print(f'{pc:5d}: {name} 0x{arg}')
            pc+=1+n
        else:
            print(f'{pc:5d}: {name}')
            pc+=1

for rng in [(0,700),(2200,2405),(2975,3565),(3800,3905),(4200,4325),(4440,4565),(4700,4755),(5070,5430),(6000,6065),(6760,6820),(8600,8845),(9130,9170),(10970,11210),(11520,11570),(16710,16750)]:
    print('\\n=== range',rng,'===')
    dis(*rng)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:

=== range (0, 700) ===
    0: PUSH1 0x80
    2: PUSH1 0x40
    4: MSTORE
    5: PUSH1 0x04
    7: CALLDATASIZE
    8: LT
    9: PUSH2 0x01ba
   12: JUMPI
   13: PUSH0
   14: CALLDATALOAD
   15: PUSH1 0xe0
   17: SHR
   18: DUP1
   19: PUSH4 0x91dd7346
   24: GT
   25: PUSH2 0x00eb
   28: JUMPI
   29: DUP1
   30: PUSH4 0xe3f33a5e
   35: GT
   36: PUSH2 0x0089
   39: JUMPI
   40: DUP1
   41: PUSH4 0xf2fde38b
   46: GT
   47: PUSH2 0x0063
   50: JUMPI
   51: DUP1
   52: PUSH4 0xf2fde38b
   57: EQ
   58: PUSH2 0x04da
   61: JUMPI
   62: DUP1
   63: PUSH4 0xf3fef3a3
   68: EQ
   69: PUSH2 0x04f9
   72: JUMPI
   73: DUP1
   74: PUSH4 0xfa461e33
   79: EQ
   80: PUSH2 0x0240
   83: JUMPI
   84: DUP1
   85: PUSH4 0xfa483e72
   90: EQ
   91: PUSH2 0x0240
   94: JUMPI
   95: PUSH2 0x01c1
   98: JUMP
   99: JUMPDEST
  100: DUP1
  101: PUSH4 0xe3f33a5e
  106: EQ
  107: PUSH2 0x0454
  110: JUMPI
  111: DUP1
  112: PUSH4 0xe58378bb
  117: EQ
  118: PUSH2 0x0488
  121: JUMPI
  122: DUP1
  123: PUSH4 0xf14210a6
  128: EQ
  129: PUSH2 0x04bb
  132: JUMPI
  133: PUSH2 0x01c1
  136: JUMP
  137: JUMPDEST
  138: DUP1
  139: PUSH4 0xced0a2d1
  144: GT
  145: PUSH2 0x00c5
  148: JUMPI
  149: DUP1
  150: PUSH4 0xced0a2d1
  155: EQ
  156: PUSH2 0x03f7
  159: JUMPI
  160: DUP1
  161: PUSH4 0xd3e1c284
  166: EQ
  167: PUSH2 0x0240
  170: JUMPI
  171: DUP1
  172: PUSH4 0xd547741f
  177: EQ
  178: PUSH2 0x0416
  181: JUMPI
  182: DUP1
  183: PUSH4 0xddaf1428
  188: EQ
  189: PUSH2 0x0435
  192: JUMPI
  193: PUSH2 0x01c1
  196: JUMP
  197: JUMPDEST
  198: DUP1
  199: PUSH4 0x91dd7346
  204: EQ
  205: PUSH2 0x03b8
  208: JUMPI
  209: DUP1
  210: PUSH4 0xa1dab4eb
  215: EQ
  216: PUSH2 0x0240
  219: JUMPI
  220: DUP1
  221: PUSH4 0xa217fddf
  226: EQ
  227: PUSH2 0x03e4
  230: JUMPI
  231: PUSH2 0x01c1
  234: JUMP
  235: JUMPDEST
  236: DUP1
  237: PUSH4 0x2f2ff15d
  242: GT
  243: PUSH2 0x0158
  246: JUMPI
  247: DUP1
  248: PUSH4 0x654b6487
  253: GT
  254: PUSH2 0x0132
  257: JUMPI
  258: DUP1
  259: PUSH4 0x654b6487
  264: EQ
  265: PUSH2 0x0240
  268: JUMPI
  269: DUP1
  270: PUSH4 0x7065cb48
  275: EQ
  276: PUSH2 0x0317
  279: JUMPI
  280: DUP1
  281: PUSH4 0x73cf25f8
  286: EQ
  287: PUSH2 0x0336
  290: JUMPI
  291: DUP1
  292: PUSH4 0x91d14854
  297: EQ
  298: PUSH2 0x0355
  301: JUMPI
  302: PUSH2 0x01c1
  305: JUMP
  306: JUMPDEST
  307: DUP1
  308: PUSH4 0x2f2ff15d
  313: EQ
  314: PUSH2 0x02ba
  317: JUMPI
  318: DUP1
  319: PUSH4 0x36568abe
  324: EQ
  325: PUSH2 0x02d9
  328: JUMPI
  329: DUP1
  330: PUSH4 0x54c73f7c
  335: EQ
  336: PUSH2 0x02f8
  339: JUMPI
  340: PUSH2 0x01c1
  343: JUMP
  344: JUMPDEST
  345: DUP1
  346: PUSH4 0x18780684
  351: GT
  352: PUSH2 0x0194
  355: JUMPI
  356: DUP1
  357: PUSH4 0x18780684
  362: EQ
  363: PUSH2 0x0240
  366: JUMPI
  367: DUP1
  368: PUSH4 0x23a69e75
  373: EQ
  374: PUSH2 0x0240
  377: JUMPI
  378: DUP1
  379: PUSH4 0x248a9ca3
  384: EQ
  385: PUSH2 0x025f
  388: JUMPI
  389: DUP1
  390: PUSH4 0x2c8958f6
  395: EQ
  396: PUSH2 0x0240
  399: JUMPI
  400: PUSH2 0x01c1
  403: JUMP
  404: JUMPDEST
  405: DUP1
  406: PUSH4 0x01ffc9a7
  411: EQ
  412: PUSH2 0x01ce
  415: JUMPI
  416: DUP1
  417: PUSH4 0x0d91f990
  422: EQ
  423: PUSH2 0x0202
  426: JUMPI
  427: DUP1
  428: PUSH4 0x173825d9
  433: EQ
  434: PUSH2 0x0221
  437: JUMPI
  438: PUSH2 0x01c1
  441: JUMP
  442: JUMPDEST
  443: CALLDATASIZE
  444: PUSH2 0x01c1
  447: JUMPI
  448: STOP
  449: JUMPDEST
  450: CALLVALUE
  451: DUP1
  452: ISZERO
  453: PUSH2 0x01cc
  456: JUMPI
  457: PUSH0
  458: DUP1
  459: REVERT
  460: JUMPDEST
  461: STOP
  462: JUMPDEST
  463: CALLVALUE
  464: DUP1
  465: ISZERO
  466: PUSH2 0x01d9
  469: JUMPI
  470: PUSH0
  471: DUP1
  472: REVERT
  473: JUMPDEST
  474: POP
  475: PUSH2 0x01ed
  478: PUSH2 0x01e8
  481: CALLDATASIZE
  482: PUSH1 0x04
  484: PUSH2 0x2df6
  487: JUMP
  488: JUMPDEST
  489: PUSH2 0x0518
  492: JUMP
  493: JUMPDEST
  494: PUSH1 0x40
  496: MLOAD
  497: SWAP1
  498: ISZERO
  499: ISZERO
  500: DUP2
  501: MSTORE
  502: PUSH1 0x20
  504: ADD
  505: JUMPDEST
  506: PUSH1 0x40
  508: MLOAD
  509: DUP1
  510: SWAP2
  511: SUB
  512: SWAP1
  513: RETURN
  514: JUMPDEST
  515: CALLVALUE
  516: DUP1
  517: ISZERO
  518: PUSH2 0x020d
  521: JUMPI
  522: PUSH0
  523: DUP1
  524: REVERT
  525: JUMPDEST
  526: POP
  527: PUSH2 0x01cc
  530: PUSH2 0x021c
  533: CALLDATASIZE
  534: PUSH1 0x04
  536: PUSH2 0x2e84
  539: JUMP
  540: JUMPDEST
  541: PUSH2 0x05b0
  544: JUMP
  545: JUMPDEST
  546: CALLVALUE
  547: DUP1
  548: ISZERO
  549: PUSH2 0x022c
  552: JUMPI
  553: PUSH0
  554: DUP1
  555: REVERT
  556: JUMPDEST
  557: POP
  558: PUSH2 0x01cc
  561: PUSH2 0x023b
  564: CALLDATASIZE
  565: PUSH1 0x04
  567: PUSH2 0x2ef0
  570: JUMP
  571: JUMPDEST
  572: PUSH2 0x079e
  575: JUMP
  576: JUMPDEST
  577: CALLVALUE
  578: DUP1
  579: ISZERO
  580: PUSH2 0x024b
  583: JUMPI
  584: PUSH0
  585: DUP1
  586: REVERT
  587: JUMPDEST
  588: POP
  589: PUSH2 0x01cc
  592: PUSH2 0x025a
  595: CALLDATASIZE
  596: PUSH1 0x04
  598: PUSH2 0x2f49
  601: JUMP
  602: JUMPDEST
  603: PUSH2 0x08a1
  606: JUMP
  607: JUMPDEST
  608: CALLVALUE
  609: DUP1
  610: ISZERO
  611: PUSH2 0x026a
  614: JUMPI
  615: PUSH0
  616: DUP1
  617: REVERT
  618: JUMPDEST
  619: POP
  620: PUSH2 0x02ac
  623: PUSH2 0x0279
  626: CALLDATASIZE
  627: PUSH1 0x04
  629: PUSH2 0x2f98
  632: JUMP
  633: JUMPDEST
  634: PUSH0
  635: SWAP1
  636: DUP2
  637: MSTORE
  638: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
  671: PUSH1 0x20
  673: MSTORE
  674: PUSH1 0x40
  676: SWAP1
  677: SHA3
  678: PUSH1 0x01
  680: ADD
  681: SLOAD
  682: SWAP1
  683: JUMP
  684: JUMPDEST
  685: PUSH1 0x40
  687: MLOAD
  688: SWAP1
  689: DUP2
  690: MSTORE
  691: PUSH1 0x20
  693: ADD
  694: PUSH2 0x01f9
  697: JUMP
  698: JUMPDEST
  699: CALLVALUE

=== range (2200, 2405) ===
 2200: DUP3
 2201: PUSH2 0x1c7d
 2204: JUMP
 2205: JUMPDEST
 2206: POP
 2207: POP
 2208: JUMP
 2209: JUMPDEST
 2210: PUSH32 0xc9147e3daeff8607fb9627a5944bc77f03892cccc54d9465147fac738f6c1ea4
 2243: SLOAD
 2244: PUSH1 0x01
 2246: PUSH1 0x01
 2248: PUSH1 0xa0
 2250: SHL
 2251: SUB
 2252: AND
 2253: CALLER
 2254: PUSH1 0x01
 2256: PUSH1 0x01
 2258: PUSH1 0xa0
 2260: SHL
 2261: SUB
 2262: AND
 2263: EQ
 2264: PUSH1 0x40
 2266: MLOAD
 2267: DUP1
 2268: PUSH1 0x40
 2270: ADD
 2271: PUSH1 0x40
 2273: MSTORE
 2274: DUP1
 2275: PUSH1 0x01
 2277: DUP2
 2278: MSTORE
 2279: PUSH1 0x20
 2281: ADD
 2282: PUSH32 0x5000000000000000000000000000000000000000000000000000000000000000
 2315: DUP2
 2316: MSTORE
 2317: POP
 2318: SWAP1
 2319: PUSH2 0x092b
 2322: JUMPI
 2323: PUSH1 0x40
 2325: MLOAD
 2326: PUSH3 0x461bcd
 2330: PUSH1 0xe5
 2332: SHL
 2333: DUP2
 2334: MSTORE
 2335: PUSH1 0x04
 2337: ADD
 2338: PUSH2 0x0629
 2341: SWAP2
 2342: SWAP1
 2343: PUSH2 0x3298
 2346: JUMP
 2347: JUMPDEST
 2348: POP
 2349: PUSH2 0x0954
 2352: PUSH0
 2353: PUSH32 0xc9147e3daeff8607fb9627a5944bc77f03892cccc54d9465147fac738f6c1ea4
 2386: SSTORE
 2387: JUMP
 2388: JUMPDEST
 2389: PUSH0
 2390: DUP1
 2391: PUSH2 0x0962
 2394: DUP4
 2395: DUP6
 2396: ADD
 2397: DUP6
 2398: PUSH2 0x34d8
 2401: JUMP
 2402: JUMPDEST
 2403: SWAP1
 2404: SWAP3

=== range (2975, 3565) ===
 2975: JUMPDEST
 2976: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
 3009: DUP1
 3010: SLOAD
 3011: PUSH9 0x010000000000000000
 3021: DUP2
 3022: DIV
 3023: PUSH1 0xff
 3025: AND
 3026: ISZERO
 3027: SWAP1
 3028: PUSH8 0xffffffffffffffff
 3037: AND
 3038: PUSH0
 3039: DUP2
 3040: ISZERO
 3041: DUP1
 3042: ISZERO
 3043: PUSH2 0x0be9
 3046: JUMPI
 3047: POP
 3048: DUP3
 3049: JUMPDEST
 3050: SWAP1
 3051: POP
 3052: PUSH0
 3053: DUP3
 3054: PUSH8 0xffffffffffffffff
 3063: AND
 3064: PUSH1 0x01
 3066: EQ
 3067: DUP1
 3068: ISZERO
 3069: PUSH2 0x0c05
 3072: JUMPI
 3073: POP
 3074: ADDRESS
 3075: EXTCODESIZE
 3076: ISZERO
 3077: JUMPDEST
 3078: SWAP1
 3079: POP
 3080: DUP2
 3081: ISZERO
 3082: DUP1
 3083: ISZERO
 3084: PUSH2 0x0c13
 3087: JUMPI
 3088: POP
 3089: DUP1
 3090: ISZERO
 3091: JUMPDEST
 3092: ISZERO
 3093: PUSH2 0x0c4a
 3096: JUMPI
 3097: PUSH1 0x40
 3099: MLOAD
 3100: PUSH32 0xf92ee8a900000000000000000000000000000000000000000000000000000000
 3133: DUP2
 3134: MSTORE
 3135: PUSH1 0x04
 3137: ADD
 3138: PUSH1 0x40
 3140: MLOAD
 3141: DUP1
 3142: SWAP2
 3143: SUB
 3144: SWAP1
 3145: REVERT
 3146: JUMPDEST
 3147: DUP5
 3148: SLOAD
 3149: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000
 3182: AND
 3183: PUSH1 0x01
 3185: OR
 3186: DUP6
 3187: SSTORE
 3188: DUP4
 3189: ISZERO
 3190: PUSH2 0x0cab
 3193: JUMPI
 3194: DUP5
 3195: SLOAD
 3196: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
 3229: AND
 3230: PUSH9 0x010000000000000000
 3240: OR
 3241: DUP6
 3242: SSTORE
 3243: JUMPDEST
 3244: PUSH2 0x0cb5
 3247: DUP8
 3248: DUP8
 3249: PUSH2 0x15c6
 3252: JUMP
 3253: JUMPDEST
 3254: DUP4
 3255: ISZERO
 3256: PUSH2 0x0d16
 3259: JUMPI
 3260: DUP5
 3261: SLOAD
 3262: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
 3295: AND
 3296: DUP6
 3297: SSTORE
 3298: PUSH1 0x40
 3300: MLOAD
 3301: PUSH1 0x01
 3303: DUP2
 3304: MSTORE
 3305: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
 3338: SWAP1
 3339: PUSH1 0x20
 3341: ADD
 3342: PUSH1 0x40
 3344: MLOAD
 3345: DUP1
 3346: SWAP2
 3347: SUB
 3348: SWAP1
 3349: LOG1
 3350: JUMPDEST
 3351: POP
 3352: POP
 3353: POP
 3354: POP
 3355: POP
 3356: POP
 3357: POP
 3358: JUMP
 3359: JUMPDEST
 3360: PUSH1 0x60
 3362: PUSH0
 3363: PUSH2 0x0d4a
 3366: PUSH32 0x162468a4167773432f8698ed7a10337877b87465381ef8fdb8745365f36a1100
 3399: SLOAD
 3400: SWAP1
 3401: JUMP
 3402: JUMPDEST
 3403: SWAP1
 3404: POP
 3405: CALLER
 3406: PUSH1 0x01
 3408: PUSH1 0x01
 3410: PUSH1 0xa0
 3412: SHL
 3413: SUB
 3414: DUP3
 3415: AND
 3416: EQ
 3417: DUP1
 3418: ISZERO
 3419: PUSH2 0x0d6c
 3422: JUMPI
 3423: POP
 3424: PUSH1 0x01
 3426: PUSH1 0x01
 3428: PUSH1 0xa0
 3430: SHL
 3431: SUB
 3432: DUP2
 3433: AND
 3434: ISZERO
 3435: ISZERO
 3436: JUMPDEST
 3437: PUSH2 0x0db8
 3440: JUMPI
 3441: PUSH1 0x40
 3443: MLOAD
 3444: PUSH3 0x461bcd
 3448: PUSH1 0xe5
 3450: SHL
 3451: DUP2
 3452: MSTORE
 3453: PUSH1 0x20
 3455: PUSH1 0x04
 3457: DUP3
 3458: ADD
 3459: MSTORE
 3460: PUSH1 0x10
 3462: PUSH1 0x24
 3464: DUP3
 3465: ADD
 3466: MSTORE
 3467: PUSH32 0x4f6e6c7920506f6f6c4d616e6167657200000000000000000000000000000000
 3500: PUSH1 0x44
 3502: DUP3
 3503: ADD
 3504: MSTORE
 3505: PUSH1 0x64
 3507: ADD
 3508: PUSH2 0x0629
 3511: JUMP
 3512: JUMPDEST
 3513: PUSH2 0x0de0
 3516: PUSH0
 3517: PUSH32 0x162468a4167773432f8698ed7a10337877b87465381ef8fdb8745365f36a1100
 3550: SSTORE
 3551: JUMP
 3552: JUMPDEST
 3553: PUSH0
 3554: DUP1
 3555: DUP1
 3556: DUP1
 3557: DUP1
 3558: PUSH2 0x0df1
 3561: DUP9
 3562: DUP11
 3563: ADD
 3564: DUP11

=== range (3800, 3905) ===
 3800: STOP
 3801: STOP
 3802: STOP
 3803: STOP
 3804: STOP
 3805: STOP
 3806: STOP
 3807: STOP
 3808: STOP
 3809: STOP
 3810: STOP
 3811: STOP
 3812: STOP
 3813: STOP
 3814: STOP
 3815: STOP
 3816: STOP
 3817: STOP
 3818: STOP
 3819: STOP
 3820: DUP2
 3821: MSTORE
 3822: PUSH0
 3823: SWAP1
 3824: PUSH1 0x01
 3826: PUSH1 0x01
 3828: PUSH1 0xa0
 3830: SHL
 3831: SUB
 3832: DUP4
 3833: AND
 3834: SWAP1
 3835: PUSH4 0xf3cd914c
 3840: SWAP1
 3841: PUSH2 0x0f10
 3844: SWAP1
 3845: DUP11
 3846: SWAP1
 3847: DUP11
 3848: SWAP1
 3849: PUSH1 0x04
 3851: ADD
 3852: PUSH2 0x3705
 3855: JUMP
 3856: JUMPDEST
 3857: PUSH1 0x20
 3859: PUSH1 0x40
 3861: MLOAD
 3862: DUP1
 3863: DUP4
 3864: SUB
 3865: DUP2
 3866: PUSH0
 3867: DUP8
 3868: GAS
 3869: CALL
 3870: ISZERO
 3871: DUP1
 3872: ISZERO
 3873: PUSH2 0x0f2c
 3876: JUMPI
 3877: RETURNDATASIZE
 3878: PUSH0
 3879: DUP1
 3880: RETURNDATACOPY
 3881: RETURNDATASIZE
 3882: PUSH0
 3883: REVERT
 3884: JUMPDEST
 3885: POP
 3886: POP
 3887: POP
 3888: POP
 3889: PUSH1 0x40
 3891: MLOAD
 3892: RETURNDATASIZE
 3893: PUSH1 0x1f
 3895: NOT
 3896: PUSH1 0x1f
 3898: DUP3
 3899: ADD
 3900: AND
 3901: DUP3
 3902: ADD
 3903: DUP1
 3904: PUSH1 0x40

=== range (4200, 4325) ===
 4200: DIV
 4201: DUP3
 4202: ADD
 4203: MSTORE
 4204: SWAP1
 4205: DUP7
 4206: AND
 4207: SWAP1
 4208: PUSH4 0xa5841194
 4213: SWAP1
 4214: PUSH1 0x24
 4216: ADD
 4217: PUSH0
 4218: PUSH1 0x40
 4220: MLOAD
 4221: DUP1
 4222: DUP4
 4223: SUB
 4224: DUP2
 4225: PUSH0
 4226: DUP8
 4227: DUP1
 4228: EXTCODESIZE
 4229: ISZERO
 4230: DUP1
 4231: ISZERO
 4232: PUSH2 0x108f
 4235: JUMPI
 4236: PUSH0
 4237: DUP1
 4238: REVERT
 4239: JUMPDEST
 4240: POP
 4241: GAS
 4242: CALL
 4243: ISZERO
 4244: DUP1
 4245: ISZERO
 4246: PUSH2 0x10a1
 4249: JUMPI
 4250: RETURNDATASIZE
 4251: PUSH0
 4252: DUP1
 4253: RETURNDATACOPY
 4254: RETURNDATASIZE
 4255: PUSH0
 4256: REVERT
 4257: JUMPDEST
 4258: POP
 4259: POP
 4260: POP
 4261: POP
 4262: DUP5
 4263: PUSH1 0x01
 4265: PUSH1 0x01
 4267: PUSH1 0xa0
 4269: SHL
 4270: SUB
 4271: AND
 4272: PUSH4 0x11da60b4
 4277: DUP3
 4278: PUSH1 0x40
 4280: MLOAD
 4281: DUP3
 4282: PUSH4 0xffffffff
 4287: AND
 4288: PUSH1 0xe0
 4290: SHL
 4291: DUP2
 4292: MSTORE
 4293: PUSH1 0x04
 4295: ADD
 4296: PUSH1 0x20
 4298: PUSH1 0x40
 4300: MLOAD
 4301: DUP1
 4302: DUP4
 4303: SUB
 4304: DUP2
 4305: DUP6
 4306: DUP9
 4307: GAS
 4308: CALL
 4309: ISZERO
 4310: DUP1
 4311: ISZERO
 4312: PUSH2 0x10e3
 4315: JUMPI
 4316: RETURNDATASIZE
 4317: PUSH0
 4318: DUP1
 4319: RETURNDATACOPY
 4320: RETURNDATASIZE
 4321: PUSH0
 4322: REVERT
 4323: JUMPDEST
 4324: POP

=== range (4440, 4565) ===
 4440: DUP1
 4441: DUP4
 4442: SUB
 4443: DUP2
 4444: PUSH0
 4445: DUP8
 4446: DUP1
 4447: EXTCODESIZE
 4448: ISZERO
 4449: DUP1
 4450: ISZERO
 4451: PUSH2 0x116a
 4454: JUMPI
 4455: PUSH0
 4456: DUP1
 4457: REVERT
 4458: JUMPDEST
 4459: POP
 4460: GAS
 4461: CALL
 4462: ISZERO
 4463: DUP1
 4464: ISZERO
 4465: PUSH2 0x117c
 4468: JUMPI
 4469: RETURNDATASIZE
 4470: PUSH0
 4471: DUP1
 4472: RETURNDATACOPY
 4473: RETURNDATASIZE
 4474: PUSH0
 4475: REVERT
 4476: JUMPDEST
 4477: POP
 4478: PUSH2 0x1195
 4481: SWAP3
 4482: POP
 4483: POP
 4484: POP
 4485: PUSH1 0x01
 4487: PUSH1 0x01
 4489: PUSH1 0xa0
 4491: SHL
 4492: SUB
 4493: DUP10
 4494: AND
 4495: CALLER
 4496: DUP4
 4497: PUSH2 0x1d4f
 4500: JUMP
 4501: JUMPDEST
 4502: DUP5
 4503: PUSH1 0x01
 4505: PUSH1 0x01
 4507: PUSH1 0xa0
 4509: SHL
 4510: SUB
 4511: AND
 4512: PUSH4 0x11da60b4
 4517: PUSH1 0x40
 4519: MLOAD
 4520: DUP2
 4521: PUSH4 0xffffffff
 4526: AND
 4527: PUSH1 0xe0
 4529: SHL
 4530: DUP2
 4531: MSTORE
 4532: PUSH1 0x04
 4534: ADD
 4535: PUSH1 0x20
 4537: PUSH1 0x40
 4539: MLOAD
 4540: DUP1
 4541: DUP4
 4542: SUB
 4543: DUP2
 4544: PUSH0
 4545: DUP8
 4546: GAS
 4547: CALL
 4548: ISZERO
 4549: DUP1
 4550: ISZERO
 4551: PUSH2 0x11d2
 4554: JUMPI
 4555: RETURNDATASIZE
 4556: PUSH0
 4557: DUP1
 4558: RETURNDATACOPY
 4559: RETURNDATASIZE
 4560: PUSH0
 4561: REVERT
 4562: JUMPDEST
 4563: POP
 4564: POP

=== range (4700, 4755) ===
 4700: OP_0d
 4701: SWAP13
 4702: MULMOD
 4703: SWAP1
 4704: PUSH1 0x64
 4706: ADD
 4707: JUMPDEST
 4708: PUSH0
 4709: PUSH1 0x40
 4711: MLOAD
 4712: DUP1
 4713: DUP4
 4714: SUB
 4715: DUP2
 4716: PUSH0
 4717: DUP8
 4718: DUP1
 4719: EXTCODESIZE
 4720: ISZERO
 4721: DUP1
 4722: ISZERO
 4723: PUSH2 0x127a
 4726: JUMPI
 4727: PUSH0
 4728: DUP1
 4729: REVERT
 4730: JUMPDEST
 4731: POP
 4732: GAS
 4733: CALL
 4734: ISZERO
 4735: DUP1
 4736: ISZERO
 4737: PUSH2 0x128c
 4740: JUMPI
 4741: RETURNDATASIZE
 4742: PUSH0
 4743: DUP1
 4744: RETURNDATACOPY
 4745: RETURNDATASIZE
 4746: PUSH0
 4747: REVERT
 4748: JUMPDEST
 4749: POP
 4750: POP
 4751: POP
 4752: POP
 4753: DUP1
 4754: PUSH1 0x40

=== range (5070, 5430) ===
 5070: SWAP1
 5071: PUSH4 0xa5841194
 5076: SWAP1
 5077: PUSH1 0x24
 5079: ADD
 5080: PUSH0
 5081: PUSH1 0x40
 5083: MLOAD
 5084: DUP1
 5085: DUP4
 5086: SUB
 5087: DUP2
 5088: PUSH0
 5089: DUP8
 5090: DUP1
 5091: EXTCODESIZE
 5092: ISZERO
 5093: DUP1
 5094: ISZERO
 5095: PUSH2 0x13ee
 5098: JUMPI
 5099: PUSH0
 5100: DUP1
 5101: REVERT
 5102: JUMPDEST
 5103: POP
 5104: GAS
 5105: CALL
 5106: ISZERO
 5107: DUP1
 5108: ISZERO
 5109: PUSH2 0x1400
 5112: JUMPI
 5113: RETURNDATASIZE
 5114: PUSH0
 5115: DUP1
 5116: RETURNDATACOPY
 5117: RETURNDATASIZE
 5118: PUSH0
 5119: REVERT
 5120: JUMPDEST
 5121: POP
 5122: POP
 5123: POP
 5124: POP
 5125: DUP5
 5126: PUSH1 0x01
 5128: PUSH1 0x01
 5130: PUSH1 0xa0
 5132: SHL
 5133: SUB
 5134: AND
 5135: PUSH4 0x11da60b4
 5140: DUP3
 5141: PUSH1 0x40
 5143: MLOAD
 5144: DUP3
 5145: PUSH4 0xffffffff
 5150: AND
 5151: PUSH1 0xe0
 5153: SHL
 5154: DUP2
 5155: MSTORE
 5156: PUSH1 0x04
 5158: ADD
 5159: PUSH1 0x20
 5161: PUSH1 0x40
 5163: MLOAD
 5164: DUP1
 5165: DUP4
 5166: SUB
 5167: DUP2
 5168: DUP6
 5169: DUP9
 5170: GAS
 5171: CALL
 5172: ISZERO
 5173: DUP1
 5174: ISZERO
 5175: PUSH2 0x1442
 5178: JUMPI
 5179: RETURNDATASIZE
 5180: PUSH0
 5181: DUP1
 5182: RETURNDATACOPY
 5183: RETURNDATASIZE
 5184: PUSH0
 5185: REVERT
 5186: JUMPDEST
 5187: POP
 5188: POP
 5189: POP
 5190: POP
 5191: POP
 5192: PUSH1 0x40
 5194: MLOAD
 5195: RETURNDATASIZE
 5196: PUSH1 0x1f
 5198: NOT
 5199: PUSH1 0x1f
 5201: DUP3
 5202: ADD
 5203: AND
 5204: DUP3
 5205: ADD
 5206: DUP1
 5207: PUSH1 0x40
 5209: MSTORE
 5210: POP
 5211: DUP2
 5212: ADD
 5213: SWAP1
 5214: PUSH2 0x1467
 5217: SWAP2
 5218: SWAP1
 5219: PUSH2 0x378a
 5222: JUMP
 5223: JUMPDEST
 5224: POP
 5225: PUSH2 0x155a
 5228: JUMP
 5229: JUMPDEST
 5230: PUSH1 0x20
 5232: DUP11
 5233: ADD
 5234: MLOAD
 5235: PUSH1 0x40
 5237: MLOAD
 5238: PUSH32 0xa584119400000000000000000000000000000000000000000000000000000000
 5271: DUP2
 5272: MSTORE
 5273: PUSH1 0x01
 5275: PUSH1 0x01
 5277: PUSH1 0xa0
 5279: SHL
 5280: SUB
 5281: SWAP2
 5282: DUP3
 5283: AND
 5284: PUSH1 0x04
 5286: DUP3
 5287: ADD
 5288: MSTORE
 5289: SWAP1
 5290: DUP7
 5291: AND
 5292: SWAP1
 5293: PUSH4 0xa5841194
 5298: SWAP1
 5299: PUSH1 0x24
 5301: ADD
 5302: PUSH0
 5303: PUSH1 0x40
 5305: MLOAD
 5306: DUP1
 5307: DUP4
 5308: SUB
 5309: DUP2
 5310: PUSH0
 5311: DUP8
 5312: DUP1
 5313: EXTCODESIZE
 5314: ISZERO
 5315: DUP1
 5316: ISZERO
 5317: PUSH2 0x14cc
 5320: JUMPI
 5321: PUSH0
 5322: DUP1
 5323: REVERT
 5324: JUMPDEST
 5325: POP
 5326: GAS
 5327: CALL
 5328: ISZERO
 5329: DUP1
 5330: ISZERO
 5331: PUSH2 0x14de
 5334: JUMPI
 5335: RETURNDATASIZE
 5336: PUSH0
 5337: DUP1
 5338: RETURNDATACOPY
 5339: RETURNDATASIZE
 5340: PUSH0
 5341: REVERT
 5342: JUMPDEST
 5343: POP
 5344: PUSH2 0x14f7
 5347: SWAP3
 5348: POP
 5349: POP
 5350: POP
 5351: PUSH1 0x01
 5353: PUSH1 0x01
 5355: PUSH1 0xa0
 5357: SHL
 5358: SUB
 5359: DUP10
 5360: AND
 5361: CALLER
 5362: DUP4
 5363: PUSH2 0x1d4f
 5366: JUMP
 5367: JUMPDEST
 5368: DUP5
 5369: PUSH1 0x01
 5371: PUSH1 0x01
 5373: PUSH1 0xa0
 5375: SHL
 5376: SUB
 5377: AND
 5378: PUSH4 0x11da60b4
 5383: PUSH1 0x40
 5385: MLOAD
 5386: DUP2
 5387: PUSH4 0xffffffff
 5392: AND
 5393: PUSH1 0xe0
 5395: SHL
 5396: DUP2
 5397: MSTORE
 5398: PUSH1 0x04
 5400: ADD
 5401: PUSH1 0x20
 5403: PUSH1 0x40
 5405: MLOAD
 5406: DUP1
 5407: DUP4
 5408: SUB
 5409: DUP2
 5410: PUSH0
 5411: DUP8
 5412: GAS
 5413: CALL
 5414: ISZERO
 5415: DUP1
 5416: ISZERO
 5417: PUSH2 0x1534
 5420: JUMPI
 5421: RETURNDATASIZE
 5422: PUSH0
 5423: DUP1
 5424: RETURNDATACOPY
 5425: RETURNDATASIZE
 5426: PUSH0
 5427: REVERT
 5428: JUMPDEST
 5429: POP

=== range (6000, 6065) ===
 6000: ADD
 6001: MSTORE
 6002: PUSH0
 6003: SWAP2
 6004: PUSH1 0x01
 6006: PUSH1 0x01
 6008: PUSH1 0xa0
 6010: SHL
 6011: SUB
 6012: AND
 6013: SWAP1
 6014: PUSH4 0x70a08231
 6019: SWAP1
 6020: PUSH1 0x24
 6022: ADD
 6023: PUSH1 0x20
 6025: PUSH1 0x40
 6027: MLOAD
 6028: DUP1
 6029: DUP4
 6030: SUB
 6031: DUP2
 6032: DUP7
 6033: GAS
 6034: STATICCALL
 6035: ISZERO
 6036: DUP1
 6037: ISZERO
 6038: PUSH2 0x17a1
 6041: JUMPI
 6042: RETURNDATASIZE
 6043: PUSH0
 6044: DUP1
 6045: RETURNDATACOPY
 6046: RETURNDATASIZE
 6047: PUSH0
 6048: REVERT
 6049: JUMPDEST
 6050: POP
 6051: POP
 6052: POP
 6053: POP
 6054: PUSH1 0x40
 6056: MLOAD
 6057: RETURNDATASIZE
 6058: PUSH1 0x1f
 6060: NOT
 6061: PUSH1 0x1f
 6063: DUP3
 6064: ADD

=== range (6760, 6820) ===
 6760: BLOCKHASH
 6761: MLOAD
 6762: CALLER
 6763: SWAP1
 6764: DUP3
 6765: ISZERO
 6766: PUSH2 0x08fc
 6769: MUL
 6770: SWAP1
 6771: DUP4
 6772: SWAP1
 6773: PUSH0
 6774: DUP2
 6775: DUP2
 6776: DUP2
 6777: DUP6
 6778: DUP9
 6779: DUP9
 6780: CALL
 6781: SWAP4
 6782: POP
 6783: POP
 6784: POP
 6785: POP
 6786: ISZERO
 6787: DUP1
 6788: ISZERO
 6789: PUSH2 0x089d
 6792: JUMPI
 6793: RETURNDATASIZE
 6794: PUSH0
 6795: DUP1
 6796: RETURNDATACOPY
 6797: RETURNDATASIZE
 6798: PUSH0
 6799: REVERT
 6800: JUMPDEST
 6801: CALLER
 6802: PUSH0
 6803: SWAP1
 6804: DUP2
 6805: MSTORE
 6806: PUSH32 0xc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd

=== range (8600, 8845) ===
 8600: BLOCKHASH
 8601: MLOAD
 8602: PUSH2 0x21a3
 8605: SWAP2
 8606: SWAP1
 8607: PUSH2 0x3a6c
 8610: JUMP
 8611: JUMPDEST
 8612: PUSH0
 8613: PUSH1 0x40
 8615: MLOAD
 8616: DUP1
 8617: DUP4
 8618: SUB
 8619: DUP2
 8620: DUP6
 8621: DUP8
 8622: GAS
 8623: CALL
 8624: SWAP3
 8625: POP
 8626: POP
 8627: POP
 8628: RETURNDATASIZE
 8629: DUP1
 8630: PUSH0
 8631: DUP2
 8632: EQ
 8633: PUSH2 0x21dd
 8636: JUMPI
 8637: PUSH1 0x40
 8639: MLOAD
 8640: SWAP2
 8641: POP
 8642: PUSH1 0x1f
 8644: NOT
 8645: PUSH1 0x3f
 8647: RETURNDATASIZE
 8648: ADD
 8649: AND
 8650: DUP3
 8651: ADD
 8652: PUSH1 0x40
 8654: MSTORE
 8655: RETURNDATASIZE
 8656: DUP3
 8657: MSTORE
 8658: RETURNDATASIZE
 8659: PUSH0
 8660: PUSH1 0x20
 8662: DUP5
 8663: ADD
 8664: RETURNDATACOPY
 8665: PUSH2 0x21e2
 8668: JUMP
 8669: JUMPDEST
 8670: PUSH1 0x60
 8672: SWAP2
 8673: POP
 8674: JUMPDEST
 8675: POP
 8676: SWAP2
 8677: POP
 8678: SWAP2
 8679: POP
 8680: DUP2
 8681: PUSH2 0x0798
 8684: JUMPI
 8685: PUSH2 0x21f5
 8688: DUP2
 8689: PUSH2 0x1bf3
 8692: JUMP
 8693: JUMPDEST
 8694: POP
 8695: POP
 8696: POP
 8697: POP
 8698: POP
 8699: JUMP
 8700: JUMPDEST
 8701: PUSH0
 8702: DUP1
 8703: DUP1
 8704: PUSH20 0x7e2d0c9f25015b5d2b9d71345557560aa3911072
 8725: PUSH4 0x038deb09
 8730: PUSH2 0x2223
 8733: DUP7
 8734: DUP1
 8735: PUSH2 0x38df
 8738: JUMP
 8739: JUMPDEST
 8740: PUSH1 0x01
 8742: PUSH2 0x2232
 8745: PUSH1 0x20
 8747: DUP11
 8748: ADD
 8749: DUP11
 8750: PUSH2 0x38df
 8753: JUMP
 8754: JUMPDEST
 8755: PUSH2 0x223d
 8758: SWAP3
 8759: SWAP2
 8760: POP
 8761: PUSH2 0x3a7d
 8764: JUMP
 8765: JUMPDEST
 8766: PUSH1 0x40
 8768: MLOAD
 8769: DUP5
 8770: PUSH4 0xffffffff
 8775: AND
 8776: PUSH1 0xe0
 8778: SHL
 8779: DUP2
 8780: MSTORE
 8781: PUSH1 0x04
 8783: ADD
 8784: PUSH2 0x225b
 8787: SWAP4
 8788: SWAP3
 8789: SWAP2
 8790: SWAP1
 8791: PUSH2 0x3b81
 8794: JUMP
 8795: JUMPDEST
 8796: PUSH1 0x20
 8798: PUSH1 0x40
 8800: MLOAD
 8801: DUP1
 8802: DUP4
 8803: SUB
 8804: DUP2
 8805: DUP7
 8806: GAS
 8807: DELEGATECALL
 8808: ISZERO
 8809: DUP1
 8810: ISZERO
 8811: PUSH2 0x2276
 8814: JUMPI
 8815: RETURNDATASIZE
 8816: PUSH0
 8817: DUP1
 8818: RETURNDATACOPY
 8819: RETURNDATASIZE
 8820: PUSH0
 8821: REVERT
 8822: JUMPDEST
 8823: POP
 8824: POP
 8825: POP
 8826: POP
 8827: PUSH1 0x40
 8829: MLOAD
 8830: RETURNDATASIZE
 8831: PUSH1 0x1f
 8833: NOT
 8834: PUSH1 0x1f
 8836: DUP3
 8837: ADD
 8838: AND
 8839: DUP3
 8840: ADD
 8841: DUP1
 8842: PUSH1 0x40
 8844: MSTORE

=== range (9130, 9170) ===
 9130: DUP5
 9131: DUP5
 9132: PUSH0
 9133: PUSH2 0x2971
 9136: JUMP
 9137: JUMPDEST
 9138: PUSH0
 9139: DUP1
 9140: PUSH1 0x20
 9142: PUSH0
 9143: DUP5
 9144: MLOAD
 9145: PUSH1 0x20
 9147: DUP7
 9148: ADD
 9149: PUSH0
 9150: DUP9
 9151: GAS
 9152: CALL
 9153: DUP1
 9154: PUSH2 0x23d0
 9157: JUMPI
 9158: PUSH1 0x40
 9160: MLOAD
 9161: RETURNDATASIZE
 9162: PUSH0
 9163: DUP3
 9164: RETURNDATACOPY
 9165: RETURNDATASIZE
 9166: DUP2
 9167: REVERT
 9168: JUMPDEST
 9169: POP

=== range (10970, 11210) ===
10970: PUSH1 0x40
10972: MLOAD
10973: PUSH0
10974: SWAP2
10975: PUSH1 0x01
10977: PUSH1 0x01
10979: PUSH1 0xa0
10981: SHL
10982: SUB
10983: AND
10984: SWAP1
10985: DUP5
10986: SWAP1
10987: DUP4
10988: DUP2
10989: DUP2
10990: DUP2
10991: DUP6
10992: DUP8
10993: GAS
10994: CALL
10995: SWAP3
10996: POP
10997: POP
10998: POP
10999: RETURNDATASIZE
11000: DUP1
11001: PUSH0
11002: DUP2
11003: EQ
11004: PUSH2 0x2b20
11007: JUMPI
11008: PUSH1 0x40
11010: MLOAD
11011: SWAP2
11012: POP
11013: PUSH1 0x1f
11015: NOT
11016: PUSH1 0x3f
11018: RETURNDATASIZE
11019: ADD
11020: AND
11021: DUP3
11022: ADD
11023: PUSH1 0x40
11025: MSTORE
11026: RETURNDATASIZE
11027: DUP3
11028: MSTORE
11029: RETURNDATASIZE
11030: PUSH0
11031: PUSH1 0x20
11033: DUP5
11034: ADD
11035: RETURNDATACOPY
11036: PUSH2 0x2b25
11039: JUMP
11040: JUMPDEST
11041: PUSH1 0x60
11043: SWAP2
11044: POP
11045: JUMPDEST
11046: POP
11047: POP
11048: SWAP1
11049: POP
11050: DUP1
11051: PUSH1 0x40
11053: MLOAD
11054: DUP1
11055: PUSH1 0x40
11057: ADD
11058: PUSH1 0x40
11060: MSTORE
11061: DUP1
11062: PUSH1 0x0c
11064: DUP2
11065: MSTORE
11066: PUSH1 0x20
11068: ADD
11069: PUSH32 0x4272696265206661696c65640000000000000000000000000000000000000000
11102: DUP2
11103: MSTORE
11104: POP
11105: SWAP1
11106: PUSH2 0x2b7e
11109: JUMPI
11110: PUSH1 0x40
11112: MLOAD
11113: PUSH3 0x461bcd
11117: PUSH1 0xe5
11119: SHL
11120: DUP2
11121: MSTORE
11122: PUSH1 0x04
11124: ADD
11125: PUSH2 0x0629
11128: SWAP2
11129: SWAP1
11130: PUSH2 0x3298
11133: JUMP
11134: JUMPDEST
11135: POP
11136: POP
11137: POP
11138: POP
11139: POP
11140: POP
11141: POP
11142: POP
11143: POP
11144: POP
11145: POP
11146: JUMP
11147: JUMPDEST
11148: PUSH0
11149: DUP1
11150: PUSH0
11151: DUP1
11152: PUSH1 0x20
11154: PUSH0
11155: DUP7
11156: MLOAD
11157: PUSH1 0x20
11159: DUP9
11160: ADD
11161: PUSH0
11162: DUP11
11163: GAS
11164: CALL
11165: SWAP3
11166: POP
11167: RETURNDATASIZE
11168: SWAP2
11169: POP
11170: PUSH0
11171: MLOAD
11172: SWAP1
11173: POP
11174: DUP3
11175: DUP1
11176: ISZERO
11177: PUSH2 0x2bca
11180: JUMPI
11181: POP
11182: DUP2
11183: ISZERO
11184: PUSH2 0x2bbc
11187: JUMPI
11188: DUP1
11189: PUSH1 0x01
11191: EQ
11192: PUSH2 0x2bca
11195: JUMP
11196: JUMPDEST
11197: PUSH0
11198: DUP7
11199: PUSH1 0x01
11201: PUSH1 0x01
11203: PUSH1 0xa0
11205: SHL
11206: SUB
11207: AND
11208: EXTCODESIZE
11209: GT

=== range (11520, 11570) ===
11520: MSTORE
11521: SWAP1
11522: MLOAD
11523: PUSH2 0x2d0c
11526: SWAP2
11527: SWAP1
11528: PUSH2 0x3a6c
11531: JUMP
11532: JUMPDEST
11533: PUSH0
11534: PUSH1 0x40
11536: MLOAD
11537: DUP1
11538: DUP4
11539: SUB
11540: DUP2
11541: DUP6
11542: GAS
11543: DELEGATECALL
11544: SWAP2
11545: POP
11546: POP
11547: RETURNDATASIZE
11548: DUP1
11549: PUSH0
11550: DUP2
11551: EQ
11552: PUSH2 0x2d44
11555: JUMPI
11556: PUSH1 0x40
11558: MLOAD
11559: SWAP2
11560: POP
11561: PUSH1 0x1f
11563: NOT
11564: PUSH1 0x3f
11566: RETURNDATASIZE
11567: ADD
11568: AND
11569: DUP3

=== range (16710, 16750) ===
16710: DUP1
16711: SWAP3
16712: POP
16713: POP
16714: POP
16715: SWAP3
16716: SWAP2
16717: POP
16718: POP
16719: JUMP
16720: INVALID
16721: LOG2
16722: PUSH5 0x6970667358
16728: OP_22
16729: SLT
16730: SHA3
16731: CALLER
16732: OP_a7
16733: ADDRESS
16734: DELEGATECALL
16735: OP_dc
16736: BLOBHASH
16737: OP_e8
16738: OP_c7
16739: BYTE
16740: EQ
16741: RETURNDATACOPY
16742: SHL
16743: PUSH25 0xaf0dd35b4c502bc9ea378a1b5195965fc0922764736f6c6343

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1
for s,e in [(2450,2865),(2940,3365),(5560,6055),(6180,6830),(7290,7670),(7850,7935)]:
 print(f'\\n=== {s}-{e} ===')
 dis(s,e)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:

=== 2450-2865 ===
 2450: OP_a7
 2451: PUSH22 0xe58dd541e08a116c6c53815c0bd028192f7b62680060
 2474: SHA3
 2475: MSTORE
 2476: PUSH1 0x40
 2478: SWAP1
 2479: SHA3
 2480: PUSH1 0x01
 2482: ADD
 2483: SLOAD
 2484: PUSH2 0x09bc
 2487: DUP2
 2488: PUSH2 0x1dc3
 2491: JUMP
 2492: JUMPDEST
 2493: PUSH2 0x0798
 2496: DUP4
 2497: DUP4
 2498: PUSH2 0x1dd0
 2501: JUMP
 2502: JUMPDEST
 2503: PUSH1 0x01
 2505: PUSH1 0x01
 2507: PUSH1 0xa0
 2509: SHL
 2510: SUB
 2511: DUP2
 2512: AND
 2513: CALLER
 2514: EQ
 2515: PUSH2 0x0a08
 2518: JUMPI
 2519: PUSH1 0x40
 2521: MLOAD
 2522: PUSH32 0x6697b23200000000000000000000000000000000000000000000000000000000
 2555: DUP2
 2556: MSTORE
 2557: PUSH1 0x04
 2559: ADD
 2560: PUSH1 0x40
 2562: MLOAD
 2563: DUP1
 2564: SWAP2
 2565: SUB
 2566: SWAP1
 2567: REVERT
 2568: JUMPDEST
 2569: PUSH2 0x0a12
 2572: DUP3
 2573: DUP3
 2574: PUSH2 0x1c7d
 2577: JUMP
 2578: JUMPDEST
 2579: POP
 2580: POP
 2581: POP
 2582: JUMP
 2583: JUMPDEST
 2584: CALLER
 2585: PUSH0
 2586: SWAP1
 2587: DUP2
 2588: MSTORE
 2589: PUSH32 0xc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd
 2622: PUSH1 0x20
 2624: MSTORE
 2625: PUSH1 0x40
 2627: SWAP1
 2628: SHA3
 2629: SLOAD
 2630: PUSH1 0xff
 2632: AND
 2633: PUSH2 0x0a94
 2636: JUMPI
 2637: PUSH1 0x40
 2639: MLOAD
 2640: PUSH3 0x461bcd
 2644: PUSH1 0xe5
 2646: SHL
 2647: DUP2
 2648: MSTORE
 2649: PUSH1 0x20
 2651: PUSH1 0x04
 2653: DUP3
 2654: ADD
 2655: MSTORE
 2656: PUSH1 0x0a
 2658: PUSH1 0x24
 2660: DUP3
 2661: ADD
 2662: MSTORE
 2663: PUSH32 0x4f6e6c79206f776e657200000000000000000000000000000000000000000000
 2696: PUSH1 0x44
 2698: DUP3
 2699: ADD
 2700: MSTORE
 2701: PUSH1 0x64
 2703: ADD
 2704: PUSH2 0x0629
 2707: JUMP
 2708: JUMPDEST
 2709: PUSH1 0x09
 2711: PUSH1 0x17
 2713: PUSH2 0x0aa2
 2716: DUP3
 2717: DUP3
 2718: PUSH2 0x1eb1
 2721: JUMP
 2722: JUMPDEST
 2723: PUSH2 0x0aee
 2726: JUMPI
 2727: PUSH1 0x40
 2729: MLOAD
 2730: PUSH3 0x461bcd
 2734: PUSH1 0xe5
 2736: SHL
 2737: DUP2
 2738: MSTORE
 2739: PUSH1 0x20
 2741: PUSH1 0x04
 2743: DUP3
 2744: ADD
 2745: MSTORE
 2746: PUSH1 0x15
 2748: PUSH1 0x24
 2750: DUP3
 2751: ADD
 2752: MSTORE
 2753: PUSH32 0x6e6f7420696e20757067726164652077696e646f770000000000000000000000
 2786: PUSH1 0x44
 2788: DUP3
 2789: ADD
 2790: MSTORE
 2791: PUSH1 0x64
 2793: ADD
 2794: PUSH2 0x0629
 2797: JUMP
 2798: JUMPDEST
 2799: PUSH2 0x0798
 2802: DUP5
 2803: DUP5
 2804: PUSH2 0x1ee4
 2807: JUMP
 2808: JUMPDEST
 2809: CALLER
 2810: PUSH0
 2811: SWAP1
 2812: DUP2
 2813: MSTORE
 2814: PUSH32 0xc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd
 2847: PUSH1 0x20
 2849: MSTORE
 2850: PUSH1 0x40
 2852: SWAP1
 2853: SHA3
 2854: SLOAD
 2855: PUSH1 0xff
 2857: AND
 2858: PUSH2 0x0b75
 2861: JUMPI
 2862: PUSH1 0x40
 2864: MLOAD

=== 2940-3365 ===
 2940: CHAINID
 2941: OP_df
 2942: CREATE
 2943: OP_1e
 2944: DUP6
 2945: PUSH16 0xb3f010c267a7b1c60363cf8a4664e21c
 2962: OP_c8
 2963: SWAP13
 2964: OP_26
 2965: OP_22
 2966: CHAINID
 2967: SHA3
 2968: OP_21
 2969: OP_4e
 2970: DUP3
 2971: PUSH2 0x1dd0
 2974: JUMP
 2975: JUMPDEST
 2976: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
 3009: DUP1
 3010: SLOAD
 3011: PUSH9 0x010000000000000000
 3021: DUP2
 3022: DIV
 3023: PUSH1 0xff
 3025: AND
 3026: ISZERO
 3027: SWAP1
 3028: PUSH8 0xffffffffffffffff
 3037: AND
 3038: PUSH0
 3039: DUP2
 3040: ISZERO
 3041: DUP1
 3042: ISZERO
 3043: PUSH2 0x0be9
 3046: JUMPI
 3047: POP
 3048: DUP3
 3049: JUMPDEST
 3050: SWAP1
 3051: POP
 3052: PUSH0
 3053: DUP3
 3054: PUSH8 0xffffffffffffffff
 3063: AND
 3064: PUSH1 0x01
 3066: EQ
 3067: DUP1
 3068: ISZERO
 3069: PUSH2 0x0c05
 3072: JUMPI
 3073: POP
 3074: ADDRESS
 3075: EXTCODESIZE
 3076: ISZERO
 3077: JUMPDEST
 3078: SWAP1
 3079: POP
 3080: DUP2
 3081: ISZERO
 3082: DUP1
 3083: ISZERO
 3084: PUSH2 0x0c13
 3087: JUMPI
 3088: POP
 3089: DUP1
 3090: ISZERO
 3091: JUMPDEST
 3092: ISZERO
 3093: PUSH2 0x0c4a
 3096: JUMPI
 3097: PUSH1 0x40
 3099: MLOAD
 3100: PUSH32 0xf92ee8a900000000000000000000000000000000000000000000000000000000
 3133: DUP2
 3134: MSTORE
 3135: PUSH1 0x04
 3137: ADD
 3138: PUSH1 0x40
 3140: MLOAD
 3141: DUP1
 3142: SWAP2
 3143: SUB
 3144: SWAP1
 3145: REVERT
 3146: JUMPDEST
 3147: DUP5
 3148: SLOAD
 3149: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000
 3182: AND
 3183: PUSH1 0x01
 3185: OR
 3186: DUP6
 3187: SSTORE
 3188: DUP4
 3189: ISZERO
 3190: PUSH2 0x0cab
 3193: JUMPI
 3194: DUP5
 3195: SLOAD
 3196: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
 3229: AND
 3230: PUSH9 0x010000000000000000
 3240: OR
 3241: DUP6
 3242: SSTORE
 3243: JUMPDEST
 3244: PUSH2 0x0cb5
 3247: DUP8
 3248: DUP8
 3249: PUSH2 0x15c6
 3252: JUMP
 3253: JUMPDEST
 3254: DUP4
 3255: ISZERO
 3256: PUSH2 0x0d16
 3259: JUMPI
 3260: DUP5
 3261: SLOAD
 3262: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
 3295: AND
 3296: DUP6
 3297: SSTORE
 3298: PUSH1 0x40
 3300: MLOAD
 3301: PUSH1 0x01
 3303: DUP2
 3304: MSTORE
 3305: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
 3338: SWAP1
 3339: PUSH1 0x20
 3341: ADD
 3342: PUSH1 0x40
 3344: MLOAD
 3345: DUP1
 3346: SWAP2
 3347: SUB
 3348: SWAP1
 3349: LOG1
 3350: JUMPDEST
 3351: POP
 3352: POP
 3353: POP
 3354: POP
 3355: POP
 3356: POP
 3357: POP
 3358: JUMP
 3359: JUMPDEST
 3360: PUSH1 0x60
 3362: PUSH0
 3363: PUSH2 0x0d4a

=== 5560-6055 ===
 5560: SWAP1
 5561: PUSH4 0x0b0d9c09
 5566: SWAP1
 5567: PUSH1 0x64
 5569: ADD
 5570: PUSH2 0x1263
 5573: JUMP
 5574: JUMPDEST
 5575: PUSH2 0x15ce
 5578: PUSH2 0x1f6d
 5581: JUMP
 5582: JUMPDEST
 5583: PUSH0
 5584: DUP3
 5585: MLOAD
 5586: GT
 5587: PUSH2 0x161e
 5590: JUMPI
 5591: PUSH1 0x40
 5593: MLOAD
 5594: PUSH3 0x461bcd
 5598: PUSH1 0xe5
 5600: SHL
 5601: DUP2
 5602: MSTORE
 5603: PUSH1 0x20
 5605: PUSH1 0x04
 5607: DUP3
 5608: ADD
 5609: MSTORE
 5610: PUSH1 0x0c
 5612: PUSH1 0x24
 5614: DUP3
 5615: ADD
 5616: MSTORE
 5617: PUSH32 0x656d707479206f776e6572730000000000000000000000000000000000000000
 5650: PUSH1 0x44
 5652: DUP3
 5653: ADD
 5654: MSTORE
 5655: PUSH1 0x64
 5657: ADD
 5658: PUSH2 0x0629
 5661: JUMP
 5662: JUMPDEST
 5663: PUSH0
 5664: DUP2
 5665: MLOAD
 5666: GT
 5667: PUSH2 0x166e
 5670: JUMPI
 5671: PUSH1 0x40
 5673: MLOAD
 5674: PUSH3 0x461bcd
 5678: PUSH1 0xe5
 5680: SHL
 5681: DUP2
 5682: MSTORE
 5683: PUSH1 0x20
 5685: PUSH1 0x04
 5687: DUP3
 5688: ADD
 5689: MSTORE
 5690: PUSH1 0x0f
 5692: PUSH1 0x24
 5694: DUP3
 5695: ADD
 5696: MSTORE
 5697: PUSH32 0x656d7074792073776170496d706c730000000000000000000000000000000000
 5730: PUSH1 0x44
 5732: DUP3
 5733: ADD
 5734: MSTORE
 5735: PUSH1 0x64
 5737: ADD
 5738: PUSH2 0x0629
 5741: JUMP
 5742: JUMPDEST
 5743: PUSH2 0x1677
 5746: DUP3
 5747: PUSH2 0x1fd6
 5750: JUMP
 5751: JUMPDEST
 5752: PUSH2 0x089d
 5755: DUP2
 5756: PUSH2 0x203d
 5759: JUMP
 5760: JUMPDEST
 5761: PUSH0
 5762: DUP3
 5763: DUP2
 5764: MSTORE
 5765: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
 5798: PUSH1 0x20
 5800: MSTORE
 5801: PUSH1 0x40
 5803: SWAP1
 5804: SHA3
 5805: PUSH1 0x01
 5807: ADD
 5808: SLOAD
 5809: PUSH2 0x16b9
 5812: DUP2
 5813: PUSH2 0x1dc3
 5816: JUMP
 5817: JUMPDEST
 5818: PUSH2 0x0798
 5821: DUP4
 5822: DUP4
 5823: PUSH2 0x1c7d
 5826: JUMP
 5827: JUMPDEST
 5828: CALLER
 5829: PUSH0
 5830: SWAP1
 5831: DUP2
 5832: MSTORE
 5833: PUSH32 0xc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd
 5866: PUSH1 0x20
 5868: MSTORE
 5869: PUSH1 0x40
 5871: SWAP1
 5872: SHA3
 5873: SLOAD
 5874: PUSH1 0xff
 5876: AND
 5877: PUSH2 0x1740
 5880: JUMPI
 5881: PUSH1 0x40
 5883: MLOAD
 5884: PUSH3 0x461bcd
 5888: PUSH1 0xe5
 5890: SHL
 5891: DUP2
 5892: MSTORE
 5893: PUSH1 0x20
 5895: PUSH1 0x04
 5897: DUP3
 5898: ADD
 5899: MSTORE
 5900: PUSH1 0x0a
 5902: PUSH1 0x24
 5904: DUP3
 5905: ADD
 5906: MSTORE
 5907: PUSH32 0x4f6e6c79206f776e657200000000000000000000000000000000000000000000
 5940: PUSH1 0x44
 5942: DUP3
 5943: ADD
 5944: MSTORE
 5945: PUSH1 0x64
 5947: ADD
 5948: PUSH2 0x0629
 5951: JUMP
 5952: JUMPDEST
 5953: PUSH1 0x80
 5955: DUP2
 5956: ADD
 5957: MLOAD
 5958: PUSH1 0x40
 5960: MLOAD
 5961: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
 5994: DUP2
 5995: MSTORE
 5996: ADDRESS
 5997: PUSH1 0x04
 5999: DUP3
 6000: ADD
 6001: MSTORE
 6002: PUSH0
 6003: SWAP2
 6004: PUSH1 0x01
 6006: PUSH1 0x01
 6008: PUSH1 0xa0
 6010: SHL
 6011: SUB
 6012: AND
 6013: SWAP1
 6014: PUSH4 0x70a08231
 6019: SWAP1
 6020: PUSH1 0x24
 6022: ADD
 6023: PUSH1 0x20
 6025: PUSH1 0x40
 6027: MLOAD
 6028: DUP1
 6029: DUP4
 6030: SUB
 6031: DUP2
 6032: DUP7
 6033: GAS
 6034: STATICCALL
 6035: ISZERO
 6036: DUP1
 6037: ISZERO
 6038: PUSH2 0x17a1
 6041: JUMPI
 6042: RETURNDATASIZE
 6043: PUSH0
 6044: DUP1
 6045: RETURNDATACOPY
 6046: RETURNDATASIZE
 6047: PUSH0
 6048: REVERT
 6049: JUMPDEST
 6050: POP
 6051: POP
 6052: POP
 6053: POP
 6054: PUSH1 0x40

=== 6180-6830 ===
 6180: DUP2
 6181: JUMPDEST
 6182: PUSH2 0x0798
 6185: DUP2
 6186: DUP4
 6187: PUSH2 0x207b
 6190: JUMP
 6191: JUMPDEST
 6192: CALLER
 6193: PUSH0
 6194: SWAP1
 6195: DUP2
 6196: MSTORE
 6197: PUSH32 0xc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd
 6230: PUSH1 0x20
 6232: MSTORE
 6233: PUSH1 0x40
 6235: DUP2
 6236: SHA3
 6237: SLOAD
 6238: DUP2
 6239: SWAP1
 6240: PUSH1 0xff
 6242: AND
 6243: PUSH2 0x18ae
 6246: JUMPI
 6247: PUSH1 0x40
 6249: MLOAD
 6250: PUSH3 0x461bcd
 6254: PUSH1 0xe5
 6256: SHL
 6257: DUP2
 6258: MSTORE
 6259: PUSH1 0x20
 6261: PUSH1 0x04
 6263: DUP3
 6264: ADD
 6265: MSTORE
 6266: PUSH1 0x0a
 6268: PUSH1 0x24
 6270: DUP3
 6271: ADD
 6272: MSTORE
 6273: PUSH32 0x4f6e6c79206f776e657200000000000000000000000000000000000000000000
 6306: PUSH1 0x44
 6308: DUP3
 6309: ADD
 6310: MSTORE
 6311: PUSH1 0x64
 6313: ADD
 6314: PUSH2 0x0629
 6317: JUMP
 6318: JUMPDEST
 6319: DUP7
 6320: NUMBER
 6321: GT
 6322: ISZERO
 6323: PUSH1 0x40
 6325: MLOAD
 6326: DUP1
 6327: PUSH1 0x40
 6329: ADD
 6330: PUSH1 0x40
 6332: MSTORE
 6333: DUP1
 6334: PUSH1 0x01
 6336: DUP2
 6337: MSTORE
 6338: PUSH1 0x20
 6340: ADD
 6341: PUSH32 0x4200000000000000000000000000000000000000000000000000000000000000
 6374: DUP2
 6375: MSTORE
 6376: POP
 6377: SWAP1
 6378: PUSH2 0x1906
 6381: JUMPI
 6382: PUSH1 0x40
 6384: MLOAD
 6385: PUSH3 0x461bcd
 6389: PUSH1 0xe5
 6391: SHL
 6392: DUP2
 6393: MSTORE
 6394: PUSH1 0x04
 6396: ADD
 6397: PUSH2 0x0629
 6400: SWAP2
 6401: SWAP1
 6402: PUSH2 0x3298
 6405: JUMP
 6406: JUMPDEST
 6407: POP
 6408: PUSH2 0x1910
 6411: DUP6
 6412: PUSH2 0x21fc
 6415: JUMP
 6416: JUMPDEST
 6417: SWAP1
 6418: SWAP3
 6419: POP
 6420: SWAP1
 6421: POP
 6422: PUSH2 0x195b
 6425: PUSH2 0x1921
 6428: DUP8
 6429: PUSH2 0x380a
 6432: JUMP
 6433: JUMPDEST
 6434: DUP3
 6435: DUP5
 6436: PUSH2 0x1930
 6439: PUSH1 0x20
 6441: DUP11
 6442: ADD
 6443: DUP11
 6444: PUSH2 0x38df
 6447: JUMP
 6448: JUMPDEST
 6449: DUP7
 6450: DUP2
 6451: DUP2
 6452: LT
 6453: PUSH2 0x1940
 6456: JUMPI
 6457: PUSH2 0x1940
 6460: PUSH2 0x3502
 6463: JUMP
 6464: JUMPDEST
 6465: SWAP1
 6466: POP
 6467: PUSH1 0x20
 6469: MUL
 6470: DUP2
 6471: ADD
 6472: SWAP1
 6473: PUSH2 0x1952
 6476: SWAP2
 6477: SWAP1
 6478: PUSH2 0x352f
 6481: JUMP
 6482: JUMPDEST
 6483: PUSH1 0x20
 6485: ADD
 6486: CALLDATALOAD
 6487: PUSH2 0x23a4
 6490: JUMP
 6491: JUMPDEST
 6492: DUP3
 6493: DUP2
 6494: LT
 6495: DUP1
 6496: ISZERO
 6497: PUSH2 0x19a4
 6500: JUMPI
 6501: POP
 6502: PUSH0
 6503: DUP5
 6504: DUP5
 6505: DUP4
 6506: DUP2
 6507: DUP2
 6508: LT
 6509: PUSH2 0x1978
 6512: JUMPI
 6513: PUSH2 0x1978
 6516: PUSH2 0x3502
 6519: JUMP
 6520: JUMPDEST
 6521: SWAP1
 6522: POP
 6523: PUSH1 0x20
 6525: MUL
 6526: DUP2
 6527: ADD
 6528: SWAP1
 6529: PUSH2 0x198a
 6532: SWAP2
 6533: SWAP1
 6534: PUSH2 0x3943
 6537: JUMP
 6538: JUMPDEST
 6539: PUSH2 0x1998
 6542: SWAP1
 6543: PUSH1 0x20
 6545: DUP2
 6546: ADD
 6547: SWAP1
 6548: PUSH2 0x2ef0
 6551: JUMP
 6552: JUMPDEST
 6553: PUSH1 0x01
 6555: PUSH1 0x01
 6557: PUSH1 0xa0
 6559: SHL
 6560: SUB
 6561: AND
 6562: EQ
 6563: ISZERO
 6564: JUMPDEST
 6565: ISZERO
 6566: PUSH2 0x19df
 6569: JUMPI
 6570: PUSH2 0x19df
 6573: DUP3
 6574: DUP6
 6575: DUP6
 6576: DUP5
 6577: DUP2
 6578: DUP2
 6579: LT
 6580: PUSH2 0x19bf
 6583: JUMPI
 6584: PUSH2 0x19bf
 6587: PUSH2 0x3502
 6590: JUMP
 6591: JUMPDEST
 6592: SWAP1
 6593: POP
 6594: PUSH1 0x20
 6596: MUL
 6597: DUP2
 6598: ADD
 6599: SWAP1
 6600: PUSH2 0x19d1
 6603: SWAP2
 6604: SWAP1
 6605: PUSH2 0x3943
 6608: JUMP
 6609: JUMPDEST
 6610: PUSH2 0x19da
 6613: SWAP1
 6614: PUSH2 0x3975
 6617: JUMP
 6618: JUMPDEST
 6619: PUSH2 0x207b
 6622: JUMP
 6623: JUMPDEST
 6624: SWAP6
 6625: POP
 6626: SWAP6
 6627: SWAP4
 6628: POP
 6629: POP
 6630: POP
 6631: POP
 6632: JUMP
 6633: JUMPDEST
 6634: CALLER
 6635: PUSH0
 6636: SWAP1
 6637: DUP2
 6638: MSTORE
 6639: PUSH32 0xc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd
 6672: PUSH1 0x20
 6674: MSTORE
 6675: PUSH1 0x40
 6677: SWAP1
 6678: SHA3
 6679: SLOAD
 6680: PUSH1 0xff
 6682: AND
 6683: PUSH2 0x1a66
 6686: JUMPI
 6687: PUSH1 0x40
 6689: MLOAD
 6690: PUSH3 0x461bcd
 6694: PUSH1 0xe5
 6696: SHL
 6697: DUP2
 6698: MSTORE
 6699: PUSH1 0x20
 6701: PUSH1 0x04
 6703: DUP3
 6704: ADD
 6705: MSTORE
 6706: PUSH1 0x0a
 6708: PUSH1 0x24
 6710: DUP3
 6711: ADD
 6712: MSTORE
 6713: PUSH32 0x4f6e6c79206f776e657200000000000000000000000000000000000000000000
 6746: PUSH1 0x44
 6748: DUP3
 6749: ADD
 6750: MSTORE
 6751: PUSH1 0x64
 6753: ADD
 6754: PUSH2 0x0629
 6757: JUMP
 6758: JUMPDEST
 6759: PUSH1 0x40
 6761: MLOAD
 6762: CALLER
 6763: SWAP1
 6764: DUP3
 6765: ISZERO
 6766: PUSH2 0x08fc
 6769: MUL
 6770: SWAP1
 6771: DUP4
 6772: SWAP1
 6773: PUSH0
 6774: DUP2
 6775: DUP2
 6776: DUP2
 6777: DUP6
 6778: DUP9
 6779: DUP9
 6780: CALL
 6781: SWAP4
 6782: POP
 6783: POP
 6784: POP
 6785: POP
 6786: ISZERO
 6787: DUP1
 6788: ISZERO
 6789: PUSH2 0x089d
 6792: JUMPI
 6793: RETURNDATASIZE
 6794: PUSH0
 6795: DUP1
 6796: RETURNDATACOPY
 6797: RETURNDATASIZE
 6798: PUSH0
 6799: REVERT
 6800: JUMPDEST
 6801: CALLER
 6802: PUSH0
 6803: SWAP1
 6804: DUP2
 6805: MSTORE
 6806: PUSH32 0xc32d4dc01d07c436ad8a6f9a20eadd61263c71fe16f6b5956005ba3b341f51dd

=== 7290-7670 ===
 7290: ORIGIN
 7291: SWAP9
 7292: JUMP
 7293: JUMPDEST
 7294: PUSH0
 7295: DUP3
 7296: DUP2
 7297: MSTORE
 7298: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
 7331: PUSH1 0x20
 7333: DUP2
 7334: DUP2
 7335: MSTORE
 7336: PUSH1 0x40
 7338: DUP1
 7339: DUP5
 7340: SHA3
 7341: PUSH1 0x01
 7343: PUSH1 0x01
 7345: PUSH1 0xa0
 7347: SHL
 7348: SUB
 7349: DUP7
 7350: AND
 7351: DUP6
 7352: MSTORE
 7353: SWAP1
 7354: SWAP2
 7355: MSTORE
 7356: DUP3
 7357: SHA3
 7358: SLOAD
 7359: PUSH1 0xff
 7361: AND
 7362: ISZERO
 7363: PUSH2 0x1d3f
 7366: JUMPI
 7367: PUSH0
 7368: DUP5
 7369: DUP2
 7370: MSTORE
 7371: PUSH1 0x20
 7373: DUP3
 7374: DUP2
 7375: MSTORE
 7376: PUSH1 0x40
 7378: DUP1
 7379: DUP4
 7380: SHA3
 7381: PUSH1 0x01
 7383: PUSH1 0x01
 7385: PUSH1 0xa0
 7387: SHL
 7388: SUB
 7389: DUP8
 7390: AND
 7391: DUP1
 7392: DUP6
 7393: MSTORE
 7394: SWAP3
 7395: MSTORE
 7396: DUP1
 7397: DUP4
 7398: SHA3
 7399: DUP1
 7400: SLOAD
 7401: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
 7434: AND
 7435: SWAP1
 7436: SSTORE
 7437: MLOAD
 7438: CALLER
 7439: SWAP3
 7440: DUP8
 7441: SWAP2
 7442: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
 7475: SWAP2
 7476: SWAP1
 7477: LOG4
 7478: PUSH1 0x01
 7480: SWAP2
 7481: POP
 7482: POP
 7483: PUSH2 0x05aa
 7486: JUMP
 7487: JUMPDEST
 7488: PUSH0
 7489: SWAP2
 7490: POP
 7491: POP
 7492: PUSH2 0x05aa
 7495: JUMP
 7496: JUMPDEST
 7497: POP
 7498: SWAP3
 7499: SWAP2
 7500: POP
 7501: POP
 7502: JUMP
 7503: JUMPDEST
 7504: PUSH1 0x40
 7506: MLOAD
 7507: PUSH1 0x01
 7509: PUSH1 0x01
 7511: PUSH1 0xa0
 7513: SHL
 7514: SUB
 7515: DUP4
 7516: DUP2
 7517: AND
 7518: PUSH1 0x24
 7520: DUP4
 7521: ADD
 7522: MSTORE
 7523: PUSH1 0x44
 7525: DUP3
 7526: ADD
 7527: DUP4
 7528: SWAP1
 7529: MSTORE
 7530: PUSH2 0x0a12
 7533: SWAP2
 7534: DUP6
 7535: SWAP2
 7536: DUP3
 7537: AND
 7538: SWAP1
 7539: PUSH4 0xa9059cbb
 7544: SWAP1
 7545: PUSH1 0x64
 7547: ADD
 7548: JUMPDEST
 7549: PUSH1 0x40
 7551: MLOAD
 7552: PUSH1 0x20
 7554: DUP2
 7555: DUP4
 7556: SUB
 7557: SUB
 7558: DUP2
 7559: MSTORE
 7560: SWAP1
 7561: PUSH1 0x40
 7563: MSTORE
 7564: SWAP2
 7565: POP
 7566: PUSH1 0xe0
 7568: SHL
 7569: PUSH1 0x20
 7571: DUP3
 7572: ADD
 7573: DUP1
 7574: MLOAD
 7575: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 7604: DUP4
 7605: DUP2
 7606: DUP4
 7607: AND
 7608: OR
 7609: DUP4
 7610: MSTORE
 7611: POP
 7612: POP
 7613: POP
 7614: POP
 7615: PUSH2 0x23b1
 7618: JUMP
 7619: JUMPDEST
 7620: PUSH2 0x1dcd
 7623: DUP2
 7624: CALLER
 7625: PUSH2 0x2436
 7628: JUMP
 7629: JUMPDEST
 7630: POP
 7631: JUMP
 7632: JUMPDEST
 7633: PUSH0
 7634: DUP3
 7635: DUP2
 7636: MSTORE
 7637: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800

=== 7850-7935 ===
 7850: SWAP2
 7851: POP
 7852: POP
 7853: PUSH2 0x05aa
 7856: JUMP
 7857: JUMPDEST
 7858: PUSH0
 7859: DUP1
 7860: PUSH1 0x18
 7862: PUSH2 0x1ec1
 7865: PUSH2 0x0e10
 7868: TIMESTAMP
 7869: PUSH2 0x3a16
 7872: JUMP
 7873: JUMPDEST
 7874: PUSH2 0x1ecb
 7877: SWAP2
 7878: SWAP1
 7879: PUSH2 0x3a29
 7882: JUMP
 7883: JUMPDEST
 7884: SWAP1
 7885: POP
 7886: DUP1
 7887: DUP5
 7888: GT
 7889: ISZERO
 7890: DUP1
 7891: ISZERO
 7892: PUSH2 0x1edc
 7895: JUMPI
 7896: POP
 7897: DUP3
 7898: DUP2
 7899: LT
 7900: JUMPDEST
 7901: SWAP5
 7902: SWAP4
 7903: POP
 7904: POP
 7905: POP
 7906: POP
 7907: JUMP
 7908: JUMPDEST
 7909: PUSH1 0x01
 7911: PUSH1 0x01
 7913: PUSH1 0xa0
 7915: SHL
 7916: SUB
 7917: DUP2
 7918: AND
 7919: PUSH2 0x1f3a
 7922: JUMPI
 7923: PUSH1 0x40
 7925: MLOAD
 7926: PUSH3 0x461bcd
 7930: PUSH1 0xe5
 7932: SHL
 7933: DUP2
 7934: MSTORE

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1
for s,e in [(11200,11680),(12180,12480),(12680,13020),(13520,13840)]:
 print(f'\\n=== {s}-{e} ===')
 dis(s,e)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:

=== 11200-11680 ===
11200: ADD
11201: PUSH1 0x01
11203: PUSH1 0xa0
11205: SHL
11206: SUB
11207: AND
11208: EXTCODESIZE
11209: GT
11210: JUMPDEST
11211: SWAP7
11212: SWAP6
11213: POP
11214: POP
11215: POP
11216: POP
11217: POP
11218: POP
11219: JUMP
11220: JUMPDEST
11221: PUSH1 0xa0
11223: DUP2
11224: ADD
11225: MLOAD
11226: PUSH1 0x80
11228: ADD
11229: MLOAD
11230: PUSH0
11231: SWAP1
11232: DUP2
11233: SWAP1
11234: PUSH1 0x09
11236: PUSH1 0xff
11238: DUP3
11239: AND
11240: LT
11241: DUP1
11242: PUSH2 0x2bf6
11245: JUMPI
11246: POP
11247: PUSH1 0xff
11249: DUP2
11250: AND
11251: PUSH1 0x0e
11253: EQ
11254: JUMPDEST
11255: DUP1
11256: PUSH2 0x2c04
11259: JUMPI
11260: POP
11261: PUSH1 0xff
11263: DUP2
11264: AND
11265: PUSH1 0x0f
11267: EQ
11268: JUMPDEST
11269: ISZERO
11270: PUSH2 0x2c19
11273: JUMPI
11274: PUSH2 0x2c12
11277: PUSH0
11278: PUSH2 0x2dc2
11281: JUMP
11282: JUMPDEST
11283: SWAP2
11284: POP
11285: PUSH2 0x2c26
11288: JUMP
11289: JUMPDEST
11290: PUSH2 0x2c23
11293: PUSH1 0x01
11295: PUSH2 0x2dc2
11298: JUMP
11299: JUMPDEST
11300: SWAP2
11301: POP
11302: JUMPDEST
11303: PUSH1 0x01
11305: PUSH1 0x01
11307: PUSH1 0xa0
11309: SHL
11310: SUB
11311: DUP3
11312: AND
11313: PUSH2 0x2c7c
11316: JUMPI
11317: PUSH1 0x40
11319: MLOAD
11320: PUSH3 0x461bcd
11324: PUSH1 0xe5
11326: SHL
11327: DUP2
11328: MSTORE
11329: PUSH1 0x20
11331: PUSH1 0x04
11333: DUP3
11334: ADD
11335: MSTORE
11336: PUSH1 0x1b
11338: PUSH1 0x24
11340: DUP3
11341: ADD
11342: MSTORE
11343: PUSH32 0x5377617020696d706c656d656e746174696f6e206e6f74207365740000000000
11376: PUSH1 0x44
11378: DUP3
11379: ADD
11380: MSTORE
11381: PUSH1 0x64
11383: ADD
11384: PUSH2 0x0629
11387: JUMP
11388: JUMPDEST
11389: PUSH0
11390: DUP1
11391: DUP4
11392: PUSH1 0x01
11394: PUSH1 0x01
11396: PUSH1 0xa0
11398: SHL
11399: SUB
11400: AND
11401: PUSH4 0x237974fa
11406: PUSH1 0xe0
11408: SHL
11409: DUP8
11410: PUSH1 0x40
11412: MLOAD
11413: PUSH1 0x24
11415: ADD
11416: PUSH2 0x2ca1
11419: SWAP2
11420: SWAP1
11421: PUSH2 0x4000
11424: JUMP
11425: JUMPDEST
11426: PUSH1 0x40
11428: DUP1
11429: MLOAD
11430: PUSH1 0x1f
11432: NOT
11433: DUP2
11434: DUP5
11435: SUB
11436: ADD
11437: DUP2
11438: MSTORE
11439: SWAP2
11440: DUP2
11441: MSTORE
11442: PUSH1 0x20
11444: DUP3
11445: ADD
11446: DUP1
11447: MLOAD
11448: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
11477: AND
11478: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
11511: SWAP1
11512: SWAP5
11513: AND
11514: SWAP4
11515: SWAP1
11516: SWAP4
11517: OR
11518: SWAP1
11519: SWAP3
11520: MSTORE
11521: SWAP1
11522: MLOAD
11523: PUSH2 0x2d0c
11526: SWAP2
11527: SWAP1
11528: PUSH2 0x3a6c
11531: JUMP
11532: JUMPDEST
11533: PUSH0
11534: PUSH1 0x40
11536: MLOAD
11537: DUP1
11538: DUP4
11539: SUB
11540: DUP2
11541: DUP6
11542: GAS
11543: DELEGATECALL
11544: SWAP2
11545: POP
11546: POP
11547: RETURNDATASIZE
11548: DUP1
11549: PUSH0
11550: DUP2
11551: EQ
11552: PUSH2 0x2d44
11555: JUMPI
11556: PUSH1 0x40
11558: MLOAD
11559: SWAP2
11560: POP
11561: PUSH1 0x1f
11563: NOT
11564: PUSH1 0x3f
11566: RETURNDATASIZE
11567: ADD
11568: AND
11569: DUP3
11570: ADD
11571: PUSH1 0x40
11573: MSTORE
11574: RETURNDATASIZE
11575: DUP3
11576: MSTORE
11577: RETURNDATASIZE
11578: PUSH0
11579: PUSH1 0x20
11581: DUP5
11582: ADD
11583: RETURNDATACOPY
11584: PUSH2 0x2d49
11587: JUMP
11588: JUMPDEST
11589: PUSH1 0x60
11591: SWAP2
11592: POP
11593: JUMPDEST
11594: POP
11595: SWAP2
11596: POP
11597: SWAP2
11598: POP
11599: DUP2
11600: PUSH2 0x2dae
11603: JUMPI
11604: DUP1
11605: MLOAD
11606: ISZERO
11607: PUSH2 0x2d63
11610: JUMPI
11611: DUP1
11612: MLOAD
11613: DUP1
11614: DUP3
11615: PUSH1 0x20
11617: ADD
11618: REVERT
11619: JUMPDEST
11620: PUSH1 0x40
11622: DUP1
11623: MLOAD
11624: DUP1
11625: DUP3
11626: ADD
11627: DUP3
11628: MSTORE
11629: PUSH1 0x01
11631: DUP2
11632: MSTORE
11633: PUSH32 0x5000000000000000000000000000000000000000000000000000000000000000
11666: PUSH1 0x20
11668: DUP3
11669: ADD
11670: MSTORE
11671: SWAP1
11672: MLOAD
11673: PUSH3 0x461bcd
11677: PUSH1 0xe5
11679: SHL

=== 12180-12480 ===
12180: POP
12181: POP
12182: POP
12183: JUMP
12184: JUMPDEST
12185: PUSH0
12186: PUSH1 0x20
12188: DUP3
12189: DUP5
12190: SUB
12191: SLT
12192: ISZERO
12193: PUSH2 0x2fa8
12196: JUMPI
12197: PUSH0
12198: DUP1
12199: REVERT
12200: JUMPDEST
12201: POP
12202: CALLDATALOAD
12203: SWAP2
12204: SWAP1
12205: POP
12206: JUMP
12207: JUMPDEST
12208: PUSH0
12209: DUP1
12210: PUSH1 0x40
12212: DUP4
12213: DUP6
12214: SUB
12215: SLT
12216: ISZERO
12217: PUSH2 0x2fc0
12220: JUMPI
12221: PUSH0
12222: DUP1
12223: REVERT
12224: JUMPDEST
12225: DUP3
12226: CALLDATALOAD
12227: SWAP2
12228: POP
12229: PUSH1 0x20
12231: DUP4
12232: ADD
12233: CALLDATALOAD
12234: PUSH2 0x2fd2
12237: DUP2
12238: PUSH2 0x2ecc
12241: JUMP
12242: JUMPDEST
12243: DUP1
12244: SWAP2
12245: POP
12246: POP
12247: SWAP3
12248: POP
12249: SWAP3
12250: SWAP1
12251: POP
12252: JUMP
12253: JUMPDEST
12254: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
12287: PUSH0
12288: MSTORE
12289: PUSH1 0x41
12291: PUSH1 0x04
12293: MSTORE
12294: PUSH1 0x24
12296: PUSH0
12297: REVERT
12298: JUMPDEST
12299: PUSH1 0x40
12301: MLOAD
12302: PUSH1 0xe0
12304: DUP2
12305: ADD
12306: PUSH8 0xffffffffffffffff
12315: DUP2
12316: GT
12317: DUP3
12318: DUP3
12319: LT
12320: OR
12321: ISZERO
12322: PUSH2 0x302d
12325: JUMPI
12326: PUSH2 0x302d
12329: PUSH2 0x2fdd
12332: JUMP
12333: JUMPDEST
12334: PUSH1 0x40
12336: MSTORE
12337: SWAP1
12338: JUMP
12339: JUMPDEST
12340: PUSH1 0x40
12342: MLOAD
12343: PUSH1 0x60
12345: DUP2
12346: ADD
12347: PUSH8 0xffffffffffffffff
12356: DUP2
12357: GT
12358: DUP3
12359: DUP3
12360: LT
12361: OR
12362: ISZERO
12363: PUSH2 0x302d
12366: JUMPI
12367: PUSH2 0x302d
12370: PUSH2 0x2fdd
12373: JUMP
12374: JUMPDEST
12375: PUSH1 0x40
12377: MLOAD
12378: PUSH1 0xa0
12380: DUP2
12381: ADD
12382: PUSH8 0xffffffffffffffff
12391: DUP2
12392: GT
12393: DUP3
12394: DUP3
12395: LT
12396: OR
12397: ISZERO
12398: PUSH2 0x302d
12401: JUMPI
12402: PUSH2 0x302d
12405: PUSH2 0x2fdd
12408: JUMP
12409: JUMPDEST
12410: PUSH1 0x40
12412: DUP1
12413: MLOAD
12414: SWAP1
12415: DUP2
12416: ADD
12417: PUSH8 0xffffffffffffffff
12426: DUP2
12427: GT
12428: DUP3
12429: DUP3
12430: LT
12431: OR
12432: ISZERO
12433: PUSH2 0x302d
12436: JUMPI
12437: PUSH2 0x302d
12440: PUSH2 0x2fdd
12443: JUMP
12444: JUMPDEST
12445: PUSH1 0x40
12447: MLOAD
12448: PUSH2 0x0120
12451: DUP2
12452: ADD
12453: PUSH8 0xffffffffffffffff
12462: DUP2
12463: GT
12464: DUP3
12465: DUP3
12466: LT
12467: OR
12468: ISZERO
12469: PUSH2 0x302d
12472: JUMPI
12473: PUSH2 0x302d
12476: PUSH2 0x2fdd
12479: JUMP

=== 12680-13020 ===
12680: LOG1
12681: JUMPI
12682: DUP1
12683: CALLDATALOAD
12684: PUSH2 0x3194
12687: DUP2
12688: PUSH2 0x2ecc
12691: JUMP
12692: JUMPDEST
12693: DUP4
12694: MSTORE
12695: SWAP2
12696: DUP4
12697: ADD
12698: SWAP2
12699: DUP4
12700: ADD
12701: PUSH2 0x3181
12704: JUMP
12705: JUMPDEST
12706: POP
12707: SWAP7
12708: SWAP6
12709: POP
12710: POP
12711: POP
12712: POP
12713: POP
12714: POP
12715: JUMP
12716: JUMPDEST
12717: PUSH0
12718: DUP1
12719: PUSH1 0x40
12721: DUP4
12722: DUP6
12723: SUB
12724: SLT
12725: ISZERO
12726: PUSH2 0x31bd
12729: JUMPI
12730: PUSH0
12731: DUP1
12732: REVERT
12733: JUMPDEST
12734: DUP3
12735: CALLDATALOAD
12736: PUSH8 0xffffffffffffffff
12745: DUP1
12746: DUP3
12747: GT
12748: ISZERO
12749: PUSH2 0x31d4
12752: JUMPI
12753: PUSH0
12754: DUP1
12755: REVERT
12756: JUMPDEST
12757: PUSH2 0x31e0
12760: DUP7
12761: DUP4
12762: DUP8
12763: ADD
12764: PUSH2 0x3137
12767: JUMP
12768: JUMPDEST
12769: SWAP4
12770: POP
12771: PUSH1 0x20
12773: DUP6
12774: ADD
12775: CALLDATALOAD
12776: SWAP2
12777: POP
12778: DUP1
12779: DUP3
12780: GT
12781: ISZERO
12782: PUSH2 0x31f5
12785: JUMPI
12786: PUSH0
12787: DUP1
12788: REVERT
12789: JUMPDEST
12790: POP
12791: PUSH2 0x3202
12794: DUP6
12795: DUP3
12796: DUP7
12797: ADD
12798: PUSH2 0x3137
12801: JUMP
12802: JUMPDEST
12803: SWAP2
12804: POP
12805: POP
12806: SWAP3
12807: POP
12808: SWAP3
12809: SWAP1
12810: POP
12811: JUMP
12812: JUMPDEST
12813: PUSH0
12814: DUP1
12815: PUSH1 0x20
12817: DUP4
12818: DUP6
12819: SUB
12820: SLT
12821: ISZERO
12822: PUSH2 0x321d
12825: JUMPI
12826: PUSH0
12827: DUP1
12828: REVERT
12829: JUMPDEST
12830: DUP3
12831: CALLDATALOAD
12832: PUSH8 0xffffffffffffffff
12841: DUP2
12842: GT
12843: ISZERO
12844: PUSH2 0x3233
12847: JUMPI
12848: PUSH0
12849: DUP1
12850: REVERT
12851: JUMPDEST
12852: PUSH2 0x323f
12855: DUP6
12856: DUP3
12857: DUP7
12858: ADD
12859: PUSH2 0x2f0b
12862: JUMP
12863: JUMPDEST
12864: SWAP1
12865: SWAP7
12866: SWAP1
12867: SWAP6
12868: POP
12869: SWAP4
12870: POP
12871: POP
12872: POP
12873: POP
12874: JUMP
12875: JUMPDEST
12876: PUSH0
12877: JUMPDEST
12878: DUP4
12879: DUP2
12880: LT
12881: ISZERO
12882: PUSH2 0x3265
12885: JUMPI
12886: DUP2
12887: DUP2
12888: ADD
12889: MLOAD
12890: DUP4
12891: DUP3
12892: ADD
12893: MSTORE
12894: PUSH1 0x20
12896: ADD
12897: PUSH2 0x324d
12900: JUMP
12901: JUMPDEST
12902: POP
12903: POP
12904: PUSH0
12905: SWAP2
12906: ADD
12907: MSTORE
12908: JUMP
12909: JUMPDEST
12910: PUSH0
12911: DUP2
12912: MLOAD
12913: DUP1
12914: DUP5
12915: MSTORE
12916: PUSH2 0x3284
12919: DUP2
12920: PUSH1 0x20
12922: DUP7
12923: ADD
12924: PUSH1 0x20
12926: DUP7
12927: ADD
12928: PUSH2 0x324b
12931: JUMP
12932: JUMPDEST
12933: PUSH1 0x1f
12935: ADD
12936: PUSH1 0x1f
12938: NOT
12939: AND
12940: SWAP3
12941: SWAP1
12942: SWAP3
12943: ADD
12944: PUSH1 0x20
12946: ADD
12947: SWAP3
12948: SWAP2
12949: POP
12950: POP
12951: JUMP
12952: JUMPDEST
12953: PUSH1 0x20
12955: DUP2
12956: MSTORE
12957: PUSH0
12958: PUSH2 0x2e35
12961: PUSH1 0x20
12963: DUP4
12964: ADD
12965: DUP5
12966: PUSH2 0x326d
12969: JUMP
12970: JUMPDEST
12971: PUSH0
12972: PUSH8 0xffffffffffffffff
12981: DUP3
12982: GT
12983: ISZERO
12984: PUSH2 0x32c3
12987: JUMPI
12988: PUSH2 0x32c3
12991: PUSH2 0x2fdd
12994: JUMP
12995: JUMPDEST
12996: POP
12997: PUSH1 0x1f
12999: ADD
13000: PUSH1 0x1f
13002: NOT
13003: AND
13004: PUSH1 0x20
13006: ADD
13007: SWAP1
13008: JUMP
13009: JUMPDEST
13010: PUSH0
13011: DUP3
13012: PUSH1 0x1f
13014: DUP4
13015: ADD
13016: SLT
13017: PUSH2 0x32e0

=== 13520-13840 ===
13520: SWAP3
13521: SWAP5
13522: SWAP4
13523: SWAP3
13524: POP
13525: POP
13526: POP
13527: JUMP
13528: JUMPDEST
13529: PUSH0
13530: DUP1
13531: PUSH1 0x40
13533: DUP4
13534: DUP6
13535: SUB
13536: SLT
13537: ISZERO
13538: PUSH2 0x34e9
13541: JUMPI
13542: PUSH0
13543: DUP1
13544: REVERT
13545: JUMPDEST
13546: DUP3
13547: CALLDATALOAD
13548: PUSH2 0x34f4
13551: DUP2
13552: PUSH2 0x2ecc
13555: JUMP
13556: JUMPDEST
13557: SWAP5
13558: PUSH1 0x20
13560: SWAP4
13561: SWAP1
13562: SWAP4
13563: ADD
13564: CALLDATALOAD
13565: SWAP4
13566: POP
13567: POP
13568: POP
13569: JUMP
13570: JUMPDEST
13571: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
13604: PUSH0
13605: MSTORE
13606: PUSH1 0x32
13608: PUSH1 0x04
13610: MSTORE
13611: PUSH1 0x24
13613: PUSH0
13614: REVERT
13615: JUMPDEST
13616: PUSH0
13617: DUP3
13618: CALLDATALOAD
13619: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1
13652: DUP4
13653: CALLDATASIZE
13654: SUB
13655: ADD
13656: DUP2
13657: SLT
13658: PUSH2 0x3561
13661: JUMPI
13662: PUSH0
13663: DUP1
13664: REVERT
13665: JUMPDEST
13666: SWAP2
13667: SWAP1
13668: SWAP2
13669: ADD
13670: SWAP3
13671: SWAP2
13672: POP
13673: POP
13674: JUMP
13675: JUMPDEST
13676: PUSH0
13677: DUP1
13678: DUP4
13679: CALLDATALOAD
13680: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1
13713: DUP5
13714: CALLDATASIZE
13715: SUB
13716: ADD
13717: DUP2
13718: SLT
13719: PUSH2 0x359e
13722: JUMPI
13723: PUSH0
13724: DUP1
13725: REVERT
13726: JUMPDEST
13727: DUP4
13728: ADD
13729: DUP1
13730: CALLDATALOAD
13731: SWAP2
13732: POP
13733: PUSH8 0xffffffffffffffff
13742: DUP3
13743: GT
13744: ISZERO
13745: PUSH2 0x35b8
13748: JUMPI
13749: PUSH0
13750: DUP1
13751: REVERT
13752: JUMPDEST
13753: PUSH1 0x20
13755: ADD
13756: SWAP2
13757: POP
13758: CALLDATASIZE
13759: DUP2
13760: SWAP1
13761: SUB
13762: DUP3
13763: SGT
13764: ISZERO
13765: PUSH2 0x2e7d
13768: JUMPI
13769: PUSH0
13770: DUP1
13771: REVERT
13772: JUMPDEST
13773: DUP2
13774: DUP4
13775: DUP3
13776: CALLDATACOPY
13777: PUSH0
13778: SWAP2
13779: ADD
13780: SWAP1
13781: DUP2
13782: MSTORE
13783: SWAP2
13784: SWAP1
13785: POP
13786: JUMP
13787: JUMPDEST
13788: DUP1
13789: CALLDATALOAD
13790: PUSH3 0xffffff
13794: DUP2
13795: AND
13796: DUP2
13797: EQ
13798: PUSH2 0x2eeb
13801: JUMPI
13802: PUSH0
13803: DUP1
13804: REVERT
13805: JUMPDEST
13806: PUSH0
13807: PUSH1 0x60
13809: DUP3
13810: DUP5
13811: SUB
13812: SLT
13813: ISZERO
13814: PUSH2 0x35fd
13817: JUMPI
13818: PUSH0
13819: DUP1
13820: REVERT
13821: JUMPDEST
13822: PUSH2 0x3605
13825: PUSH2 0x3033
13828: JUMP
13829: JUMPDEST
13830: SWAP1
13831: POP
13832: PUSH2 0x3610
13835: DUP3
13836: PUSH2 0x3331
13839: JUMP

exec
/bin/bash -lc "python - <<'PY'
import json,re
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
# quick scan for PUSH2 0x21f5 or 0x2223 etc
for target in [0x21f5,0x2223,0x2bd4,0x2c7c,0x2d0c,0x21fc,0x15c6,0x16c3,0x1fd6,0x203d]:
    seq=bytes([0x61,(target>>8)&0xff,target&0xff])
    poss=[]
    start=0
    while True:
        idx=code.find(seq,start)
        if idx==-1: break
        poss.append(idx)
        start=idx+1
    print(hex(target), poss[:20])
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
0x21f5 [8685, 10640, 10689]
0x2223 [8730]
0x2bd4 [10393]
0x2c7c [11313]
0x2d0c [11523]
0x21fc [6412]
0x15c6 [1042, 3249]
0x16c3 [1104]
0x1fd6 [5747]
0x203d [5756]

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1

dis(10280,10550)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
10280: MSTORE
10281: PUSH1 0x20
10283: ADD
10284: DUP6
10285: DUP2
10286: MSTORE
10287: PUSH1 0x20
10289: ADD
10290: DUP5
10291: PUSH1 0x01
10293: PUSH1 0x01
10295: PUSH1 0xa0
10297: SHL
10298: SUB
10299: AND
10300: DUP2
10301: MSTORE
10302: PUSH1 0x20
10304: ADD
10305: DUP15
10306: PUSH1 0x20
10308: ADD
10309: MLOAD
10310: DUP10
10311: PUSH1 0x40
10313: ADD
10314: MLOAD
10315: PUSH1 0xff
10317: AND
10318: DUP2
10319: MLOAD
10320: DUP2
10321: LT
10322: PUSH2 0x285d
10325: JUMPI
10326: PUSH2 0x285d
10329: PUSH2 0x3502
10332: JUMP
10333: JUMPDEST
10334: PUSH1 0x20
10336: MUL
10337: PUSH1 0x20
10339: ADD
10340: ADD
10341: MLOAD
10342: DUP2
10343: MSTORE
10344: PUSH1 0x20
10346: ADD
10347: DUP15
10348: PUSH1 0x20
10350: ADD
10351: MLOAD
10352: DUP10
10353: PUSH1 0x60
10355: ADD
10356: MLOAD
10357: PUSH1 0xff
10359: AND
10360: DUP2
10361: MLOAD
10362: DUP2
10363: LT
10364: PUSH2 0x2887
10367: JUMPI
10368: PUSH2 0x2887
10371: PUSH2 0x3502
10374: JUMP
10375: JUMPDEST
10376: PUSH1 0x20
10378: MUL
10379: PUSH1 0x20
10381: ADD
10382: ADD
10383: MLOAD
10384: DUP2
10385: MSTORE
10386: PUSH1 0x20
10388: ADD
10389: DUP9
10390: DUP2
10391: MSTORE
10392: POP
10393: PUSH2 0x2bd4
10396: JUMP
10397: JUMPDEST
10398: SWAP1
10399: POP
10400: DUP6
10401: PUSH1 0x60
10403: ADD
10404: MLOAD
10405: PUSH1 0xff
10407: AND
10408: DUP7
10409: PUSH1 0x40
10411: ADD
10412: MLOAD
10413: PUSH1 0xff
10415: AND
10416: SUB
10417: PUSH2 0x28c8
10420: JUMPI
10421: PUSH2 0x28be
10424: DUP2
10425: DUP10
10426: PUSH2 0x3a3c
10429: JUMP
10430: JUMPDEST
10431: SWAP8
10432: POP
10433: DUP8
10434: SWAP9
10435: POP
10436: PUSH2 0x2906
10439: JUMP
10440: JUMPDEST
10441: PUSH2 0x28d2
10444: DUP5
10445: DUP10
10446: PUSH2 0x3f90
10449: JUMP
10450: JUMPDEST
10451: SWAP8
10452: POP
10453: DUP1
10454: DUP11
10455: DUP8
10456: PUSH1 0x60
10458: ADD
10459: MLOAD
10460: PUSH1 0xff
10462: AND
10463: DUP2
10464: MLOAD
10465: DUP2
10466: LT
10467: PUSH2 0x28ee
10470: JUMPI
10471: PUSH2 0x28ee
10474: PUSH2 0x3502
10477: JUMP
10478: JUMPDEST
10479: PUSH1 0x20
10481: MUL
10482: PUSH1 0x20
10484: ADD
10485: ADD
10486: DUP2
10487: DUP2
10488: MLOAD
10489: PUSH2 0x2902
10492: SWAP2
10493: SWAP1
10494: PUSH2 0x3a3c
10497: JUMP
10498: JUMPDEST
10499: SWAP1
10500: MSTORE
10501: POP
10502: JUMPDEST
10503: POP
10504: POP
10505: PUSH1 0x01
10507: SWAP1
10508: SWAP5
10509: ADD
10510: SWAP4
10511: POP
10512: PUSH2 0x260a
10515: SWAP3
10516: POP
10517: POP
10518: POP
10519: JUMP
10520: JUMPDEST
10521: POP
10522: DUP3
10523: PUSH0
10524: DUP7
10525: PUSH1 0x60
10527: ADD
10528: MLOAD
10529: PUSH1 0x01
10531: DUP2
10532: GT
10533: ISZERO
10534: PUSH2 0x2931
10537: JUMPI
10538: PUSH2 0x2931
10541: PUSH2 0x3fd3
10544: JUMP
10545: JUMPDEST
10546: EQ
10547: PUSH2 0x293c

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1

dis(8110,8325)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
 8110: STOP
 8111: STOP
 8112: STOP
 8113: STOP
 8114: STOP
 8115: STOP
 8116: STOP
 8117: STOP
 8118: STOP
 8119: STOP
 8120: STOP
 8121: STOP
 8122: STOP
 8123: STOP
 8124: STOP
 8125: STOP
 8126: STOP
 8127: STOP
 8128: STOP
 8129: STOP
 8130: STOP
 8131: STOP
 8132: STOP
 8133: STOP
 8134: STOP
 8135: DUP2
 8136: MSTORE
 8137: PUSH1 0x04
 8139: ADD
 8140: PUSH1 0x40
 8142: MLOAD
 8143: DUP1
 8144: SWAP2
 8145: SUB
 8146: SWAP1
 8147: REVERT
 8148: JUMPDEST
 8149: JUMP
 8150: JUMPDEST
 8151: PUSH2 0x1fde
 8154: PUSH2 0x1f6d
 8157: JUMP
 8158: JUMPDEST
 8159: PUSH2 0x1fe6
 8162: PUSH2 0x24c2
 8165: JUMP
 8166: JUMPDEST
 8167: PUSH0
 8168: JUMPDEST
 8169: DUP2
 8170: MLOAD
 8171: DUP2
 8172: LT
 8173: ISZERO
 8174: PUSH2 0x089d
 8177: JUMPI
 8178: PUSH2 0x2034
 8181: PUSH32 0xb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e
 8214: DUP4
 8215: DUP4
 8216: DUP2
 8217: MLOAD
 8218: DUP2
 8219: LT
 8220: PUSH2 0x2027
 8223: JUMPI
 8224: PUSH2 0x2027
 8227: PUSH2 0x3502
 8230: JUMP
 8231: JUMPDEST
 8232: PUSH1 0x20
 8234: MUL
 8235: PUSH1 0x20
 8237: ADD
 8238: ADD
 8239: MLOAD
 8240: PUSH2 0x1dd0
 8243: JUMP
 8244: JUMPDEST
 8245: POP
 8246: PUSH1 0x01
 8248: ADD
 8249: PUSH2 0x1fe8
 8252: JUMP
 8253: JUMPDEST
 8254: PUSH2 0x2045
 8257: PUSH2 0x1f6d
 8260: JUMP
 8261: JUMPDEST
 8262: PUSH0
 8263: JUMPDEST
 8264: DUP2
 8265: MLOAD
 8266: DUP2
 8267: LT
 8268: ISZERO
 8269: PUSH2 0x089d
 8272: JUMPI
 8273: PUSH2 0x2073
 8276: DUP2
 8277: DUP4
 8278: DUP4
 8279: DUP2
 8280: MLOAD
 8281: DUP2
 8282: LT
 8283: PUSH2 0x2066
 8286: JUMPI
 8287: PUSH2 0x2066
 8290: PUSH2 0x3502
 8293: JUMP
 8294: JUMPDEST
 8295: PUSH1 0x20
 8297: MUL
 8298: PUSH1 0x20
 8300: ADD
 8301: ADD
 8302: MLOAD
 8303: PUSH2 0x1ee4
 8306: JUMP
 8307: JUMPDEST
 8308: PUSH1 0x01
 8310: ADD
 8311: PUSH2 0x2047
 8314: JUMP
 8315: JUMPDEST
 8316: PUSH4 0xffffffff
 8321: DUP2
 8322: PUSH1 0xa0
 8324: ADD

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1

dis(7870,8095)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
 7870: GASPRICE
 7871: AND
 7872: JUMP
 7873: JUMPDEST
 7874: PUSH2 0x1ecb
 7877: SWAP2
 7878: SWAP1
 7879: PUSH2 0x3a29
 7882: JUMP
 7883: JUMPDEST
 7884: SWAP1
 7885: POP
 7886: DUP1
 7887: DUP5
 7888: GT
 7889: ISZERO
 7890: DUP1
 7891: ISZERO
 7892: PUSH2 0x1edc
 7895: JUMPI
 7896: POP
 7897: DUP3
 7898: DUP2
 7899: LT
 7900: JUMPDEST
 7901: SWAP5
 7902: SWAP4
 7903: POP
 7904: POP
 7905: POP
 7906: POP
 7907: JUMP
 7908: JUMPDEST
 7909: PUSH1 0x01
 7911: PUSH1 0x01
 7913: PUSH1 0xa0
 7915: SHL
 7916: SUB
 7917: DUP2
 7918: AND
 7919: PUSH2 0x1f3a
 7922: JUMPI
 7923: PUSH1 0x40
 7925: MLOAD
 7926: PUSH3 0x461bcd
 7930: PUSH1 0xe5
 7932: SHL
 7933: DUP2
 7934: MSTORE
 7935: PUSH1 0x20
 7937: PUSH1 0x04
 7939: DUP3
 7940: ADD
 7941: MSTORE
 7942: PUSH1 0x16
 7944: PUSH1 0x24
 7946: DUP3
 7947: ADD
 7948: MSTORE
 7949: PUSH32 0x496e76616c696420696d706c656d656e746174696f6e00000000000000000000
 7982: PUSH1 0x44
 7984: DUP3
 7985: ADD
 7986: MSTORE
 7987: PUSH1 0x64
 7989: ADD
 7990: PUSH2 0x0629
 7993: JUMP
 7994: JUMPDEST
 7995: PUSH0
 7996: PUSH2 0x1f65
 7999: DUP4
 8000: PUSH32 0x27a7c29818a01378f2bedc8ddf9f92d28ddb97e7a6080124cb8f283ef9f38e2d
 8033: PUSH2 0x3a3c
 8036: JUMP
 8037: JUMPDEST
 8038: SWAP2
 8039: SWAP1
 8040: SWAP2
 8041: SSTORE
 8042: POP
 8043: POP
 8044: JUMP
 8045: JUMPDEST
 8046: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
 8079: SLOAD
 8080: PUSH9 0x010000000000000000
 8090: SWAP1
 8091: DIV
 8092: PUSH1 0xff
 8094: AND

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1

dis(11780,11940)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
11780: DUP1
11781: REVERT
11782: JUMPDEST
11783: DUP2
11784: CALLDATALOAD
11785: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
11818: DUP2
11819: AND
11820: DUP2
11821: EQ
11822: PUSH2 0x2e35
11825: JUMPI
11826: PUSH0
11827: DUP1
11828: REVERT
11829: JUMPDEST
11830: SWAP4
11831: SWAP3
11832: POP
11833: POP
11834: POP
11835: JUMP
11836: JUMPDEST
11837: PUSH0
11838: DUP1
11839: DUP4
11840: PUSH1 0x1f
11842: DUP5
11843: ADD
11844: SLT
11845: PUSH2 0x2e4c
11848: JUMPI
11849: PUSH0
11850: DUP1
11851: REVERT
11852: JUMPDEST
11853: POP
11854: DUP2
11855: CALLDATALOAD
11856: PUSH8 0xffffffffffffffff
11865: DUP2
11866: GT
11867: ISZERO
11868: PUSH2 0x2e63
11871: JUMPI
11872: PUSH0
11873: DUP1
11874: REVERT
11875: JUMPDEST
11876: PUSH1 0x20
11878: DUP4
11879: ADD
11880: SWAP2
11881: POP
11882: DUP4
11883: PUSH1 0x20
11885: DUP3
11886: PUSH1 0x05
11888: SHL
11889: DUP6
11890: ADD
11891: ADD
11892: GT
11893: ISZERO
11894: PUSH2 0x2e7d
11897: JUMPI
11898: PUSH0
11899: DUP1
11900: REVERT
11901: JUMPDEST
11902: SWAP3
11903: POP
11904: SWAP3
11905: SWAP1
11906: POP
11907: JUMP
11908: JUMPDEST
11909: PUSH0
11910: DUP1
11911: PUSH0
11912: PUSH1 0x40
11914: DUP5
11915: DUP7
11916: SUB
11917: SLT
11918: ISZERO
11919: PUSH2 0x2e96
11922: JUMPI
11923: PUSH0
11924: DUP1
11925: REVERT
11926: JUMPDEST
11927: DUP4
11928: CALLDATALOAD
11929: SWAP3
11930: POP
11931: PUSH1 0x20
11933: DUP5
11934: ADD
11935: CALLDATALOAD
11936: PUSH8 0xffffffffffffffff

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
# find exact pc 0x2dc2
print(0x2dc2)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
11714

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1

dis(11690,11740)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
11690: PUSH2 0x3298
11693: JUMP
11694: JUMPDEST
11695: DUP1
11696: DUP1
11697: PUSH1 0x20
11699: ADD
11700: SWAP1
11701: MLOAD
11702: DUP2
11703: ADD
11704: SWAP1
11705: PUSH2 0x2bca
11708: SWAP2
11709: SWAP1
11710: PUSH2 0x378a
11713: JUMP
11714: JUMPDEST
11715: PUSH0
11716: DUP1
11717: PUSH2 0x2dee
11720: DUP4
11721: PUSH32 0x27a7c29818a01378f2bedc8ddf9f92d28ddb97e7a6080124cb8f283ef9f38e2d

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1

dis(11714,11780)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
11714: JUMPDEST
11715: PUSH0
11716: DUP1
11717: PUSH2 0x2dee
11720: DUP4
11721: PUSH32 0x27a7c29818a01378f2bedc8ddf9f92d28ddb97e7a6080124cb8f283ef9f38e2d
11754: PUSH2 0x3a3c
11757: JUMP
11758: JUMPDEST
11759: SLOAD
11760: SWAP4
11761: SWAP3
11762: POP
11763: POP
11764: POP
11765: JUMP
11766: JUMPDEST
11767: PUSH0
11768: PUSH1 0x20
11770: DUP3
11771: DUP5
11772: SUB
11773: SLT
11774: ISZERO
11775: PUSH2 0x2e06
11778: JUMPI
11779: PUSH0

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1

dis(7520,7870)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
 7520: DUP4
 7521: ADD
 7522: MSTORE
 7523: PUSH1 0x44
 7525: DUP3
 7526: ADD
 7527: DUP4
 7528: SWAP1
 7529: MSTORE
 7530: PUSH2 0x0a12
 7533: SWAP2
 7534: DUP6
 7535: SWAP2
 7536: DUP3
 7537: AND
 7538: SWAP1
 7539: PUSH4 0xa9059cbb
 7544: SWAP1
 7545: PUSH1 0x64
 7547: ADD
 7548: JUMPDEST
 7549: PUSH1 0x40
 7551: MLOAD
 7552: PUSH1 0x20
 7554: DUP2
 7555: DUP4
 7556: SUB
 7557: SUB
 7558: DUP2
 7559: MSTORE
 7560: SWAP1
 7561: PUSH1 0x40
 7563: MSTORE
 7564: SWAP2
 7565: POP
 7566: PUSH1 0xe0
 7568: SHL
 7569: PUSH1 0x20
 7571: DUP3
 7572: ADD
 7573: DUP1
 7574: MLOAD
 7575: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 7604: DUP4
 7605: DUP2
 7606: DUP4
 7607: AND
 7608: OR
 7609: DUP4
 7610: MSTORE
 7611: POP
 7612: POP
 7613: POP
 7614: POP
 7615: PUSH2 0x23b1
 7618: JUMP
 7619: JUMPDEST
 7620: PUSH2 0x1dcd
 7623: DUP2
 7624: CALLER
 7625: PUSH2 0x2436
 7628: JUMP
 7629: JUMPDEST
 7630: POP
 7631: JUMP
 7632: JUMPDEST
 7633: PUSH0
 7634: DUP3
 7635: DUP2
 7636: MSTORE
 7637: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
 7670: PUSH1 0x20
 7672: DUP2
 7673: DUP2
 7674: MSTORE
 7675: PUSH1 0x40
 7677: DUP1
 7678: DUP5
 7679: SHA3
 7680: PUSH1 0x01
 7682: PUSH1 0x01
 7684: PUSH1 0xa0
 7686: SHL
 7687: SUB
 7688: DUP7
 7689: AND
 7690: DUP6
 7691: MSTORE
 7692: SWAP1
 7693: SWAP2
 7694: MSTORE
 7695: DUP3
 7696: SHA3
 7697: SLOAD
 7698: PUSH1 0xff
 7700: AND
 7701: PUSH2 0x1d3f
 7704: JUMPI
 7705: PUSH0
 7706: DUP5
 7707: DUP2
 7708: MSTORE
 7709: PUSH1 0x20
 7711: DUP3
 7712: DUP2
 7713: MSTORE
 7714: PUSH1 0x40
 7716: DUP1
 7717: DUP4
 7718: SHA3
 7719: PUSH1 0x01
 7721: PUSH1 0x01
 7723: PUSH1 0xa0
 7725: SHL
 7726: SUB
 7727: DUP8
 7728: AND
 7729: DUP5
 7730: MSTORE
 7731: SWAP1
 7732: SWAP2
 7733: MSTORE
 7734: SWAP1
 7735: SHA3
 7736: DUP1
 7737: SLOAD
 7738: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
 7771: AND
 7772: PUSH1 0x01
 7774: OR
 7775: SWAP1
 7776: SSTORE
 7777: PUSH2 0x1e67
 7780: CALLER
 7781: SWAP1
 7782: JUMP
 7783: JUMPDEST
 7784: PUSH1 0x01
 7786: PUSH1 0x01
 7788: PUSH1 0xa0
 7790: SHL
 7791: SUB
 7792: AND
 7793: DUP4
 7794: PUSH1 0x01
 7796: PUSH1 0x01
 7798: PUSH1 0xa0
 7800: SHL
 7801: SUB
 7802: AND
 7803: DUP6
 7804: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
 7837: PUSH1 0x40
 7839: MLOAD
 7840: PUSH1 0x40
 7842: MLOAD
 7843: DUP1
 7844: SWAP2
 7845: SUB
 7846: SWAP1
 7847: LOG4
 7848: PUSH1 0x01
 7850: SWAP2
 7851: POP
 7852: POP
 7853: PUSH2 0x05aa
 7856: JUMP
 7857: JUMPDEST
 7858: PUSH0
 7859: DUP1
 7860: PUSH1 0x18
 7862: PUSH2 0x1ec1
 7865: PUSH2 0x0e10
 7868: TIMESTAMP
 7869: PUSH2 0x3a16

exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:data=json.load(f)
code=bytes.fromhex(data['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'PREVRANDAO',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x49:'BLOBHASH',0x4a:'BLOBBASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'

def dis(start,end):
 pc=start
 while pc<end:
  op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
  if 0x60<=op<=0x7f:
   n=op-0x5f; arg=code[pc+1:pc+1+n].hex(); print(f'{pc:5d}: {name} 0x{arg}'); pc+=1+n
  else:
   print(f'{pc:5d}: {name}'); pc+=1

dis(10590,10730)
PY" in /tmp/codex-d0goo8i1
 succeeded in 0ms:
10590: JUMPDEST
10591: PUSH1 0x20
10593: MUL
10594: PUSH1 0x20
10596: ADD
10597: ADD
10598: MLOAD
10599: SWAP4
10600: POP
10601: POP
10602: POP
10603: POP
10604: SWAP3
10605: SWAP2
10606: POP
10607: POP
10608: JUMP
10609: JUMPDEST
10610: DUP5
10611: MLOAD
10612: PUSH1 0x01
10614: PUSH1 0x01
10616: PUSH1 0xa0
10618: SHL
10619: SUB
10620: AND
10621: ISZERO
10622: DUP1
10623: ISZERO
10624: SWAP1
10625: PUSH2 0x298e
10628: JUMPI
10629: POP
10630: DUP4
10631: DUP6
10632: PUSH1 0x20
10634: ADD
10635: MLOAD
10636: MLOAD
10637: GT
10638: JUMPDEST
10639: ISZERO
10640: PUSH2 0x21f5
10643: JUMPI
10644: PUSH0
10645: DUP6
10646: PUSH1 0x20
10648: ADD
10649: MLOAD
10650: DUP6
10651: DUP2
10652: MLOAD
10653: DUP2
10654: LT
10655: PUSH2 0x29aa
10658: JUMPI
10659: PUSH2 0x29aa
10662: PUSH2 0x3502
10665: JUMP
10666: JUMPDEST
10667: PUSH1 0x20
10669: MUL
10670: PUSH1 0x20
10672: ADD
10673: ADD
10674: MLOAD
10675: PUSH1 0x40
10677: ADD
10678: MLOAD
10679: SWAP1
10680: POP
10681: DUP3
10682: DUP2
10683: GT
10684: PUSH2 0x29c5
10687: JUMPI
10688: POP
10689: PUSH2 0x21f5
10692: JUMP
10693: JUMPDEST
10694: PUSH0
10695: DUP2
10696: DUP6
10697: GT
10698: PUSH2 0x29d3
10701: JUMPI
10702: DUP5
10703: PUSH2 0x29d5
10706: JUMP
10707: JUMPDEST
10708: DUP2
10709: JUMPDEST
10710: SWAP1
10711: POP
10712: PUSH0
10713: PUSH2 0x29e2
10716: DUP6
10717: DUP5
10718: PUSH2 0x3f90
10721: JUMP
10722: JUMPDEST
10723: PUSH2 0x29ec
10726: DUP7
10727: DUP5
10728: PUSH2 0x3f90

codex
{"no_findings":true,"summary":"Reviewed BYTECODE_BUNDLE.json and the embedded runtime bytecode for implementation 0x4f8b564e25337f6a3e66f12553221f6c05a13085, treating proxy storage as authoritative because the parent proxy 0x3d126d6b1581f7566a34bd4e912920bba41367d5 is linked via confirmed EIP-1967 metadata. I did not find a concrete implementation vulnerability that is defensible from bytecode alone. The dangerous sinks are real, but the evidence points to them being role-gated or registry-backed: owner-gated admin call paths revert with \"Only owner\"; the main swap/execution path reverts with \"Only PoolManager\" and temporarily clears/restores the pool-manager slot around execution, which is consistent with a reentrancy guard; and the reachable DELEGATECALL used for swap execution appears to load its implementation from a storage-backed implementation registry, with owner-managed implementation writes gated by an upgrade-window check (\"not in upgrade window\") and implementation validation (\"Invalid implementation\" / \"Swap implementation not set\"). One reported DELEGATECALL at pc:0x415e is in the CBOR metadata tail and is not executable code. Because this is a bytecode-only review, selector inference and role semantics remain best-effort, so residual design risk remains around trusted-owner/trusted-pool-manager assumptions, but I do not have enough evidence to elevate that into a concrete exploitable finding.","findings":[]}
tokens used
152,023
Metadata
{
    "codex": {
        "ran_at": "2026-04-04T04:03:26.519546+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 33550,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Reviewed BYTECODE_BUNDLE.json and the embedded runtime bytecode for implementation 0x4f8b564e25337f6a3e66f12553221f6c05a13085, treating proxy storage as authoritative because the parent proxy 0x3d126d6b1581f7566a34bd4e912920bba41367d5 is linked via confirmed EIP-1967 metadata. I did not find a concrete implementation vulnerability that is defensible from bytecode alone. The dangerous sinks are real, but the evidence points to them being role-gated or registry-backed: owner-gated admin call paths revert with \"Only owner\"; the main swap/execution path reverts with \"Only PoolManager\" and temporarily clears/restores the pool-manager slot around execution, which is consistent with a reentrancy guard; and the reachable DELEGATECALL used for swap execution appears to load its implementation from a storage-backed implementation registry, with owner-managed implementation writes gated by an upgrade-window check (\"not in upgrade window\") and implementation validation (\"Invalid implementation\" / \"Swap implementation not set\"). One reported DELEGATECALL at pc:0x415e is in the CBOR metadata tail and is not executable code. Because this is a bytecode-only review, selector inference and role semantics remain best-effort, so residual design risk remains around trusted-owner/trusted-pool-manager assumptions, but I do not have enough evidence to elevate that into a concrete exploitable finding.",
    "raw_final": {
        "summary": "Reviewed BYTECODE_BUNDLE.json and the embedded runtime bytecode for implementation 0x4f8b564e25337f6a3e66f12553221f6c05a13085, treating proxy storage as authoritative because the parent proxy 0x3d126d6b1581f7566a34bd4e912920bba41367d5 is linked via confirmed EIP-1967 metadata. I did not find a concrete implementation vulnerability that is defensible from bytecode alone. The dangerous sinks are real, but the evidence points to them being role-gated or registry-backed: owner-gated admin call paths revert with \"Only owner\"; the main swap/execution path reverts with \"Only PoolManager\" and temporarily clears/restores the pool-manager slot around execution, which is consistent with a reentrancy guard; and the reachable DELEGATECALL used for swap execution appears to load its implementation from a storage-backed implementation registry, with owner-managed implementation writes gated by an upgrade-window check (\"not in upgrade window\") and implementation validation (\"Invalid implementation\" / \"Swap implementation not set\"). One reported DELEGATECALL at pc:0x415e is in the CBOR metadata tail and is not executable code. Because this is a bytecode-only review, selector inference and role semantics remain best-effort, so residual design risk remains around trusted-owner/trusted-pool-manager assumptions, but I do not have enough evidence to elevate that into a concrete exploitable finding.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "proxy_context": {
        "proxy_run_id": "019d5666-7233-730f-8581-38faccd30bf8",
        "proxy_address": "0x3d126d6b1581f7566a34bd4e912920bba41367d5",
        "implementation_run_id": "019d5667-0d9d-728c-b832-799ea2787070",
        "implementation_address": "0x4f8b564e25337f6a3e66f12553221f6c05a13085"
    },
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
2
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
0
EXT*/BALANCE
2
Total opcodes
666
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH2 0x000c
00000008: PUSH2 0x000e
0000000b: JUMP
0000000c: JUMPDEST
0000000d: STOP
0000000e: JUMPDEST
0000000f: PUSH32 0x000000000000000000000000fd9688b109c06ab8de02ca6f395e811d845905b2
00000030: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000045: AND
00000046: CALLER
00000047: SUB
00000048: PUSH2 0x00d1
0000004b: JUMPI
0000004c: PUSH0
0000004d: CALLDATALOAD
0000004e: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000006f: AND
00000070: PUSH32 0x4f1ef28600000000000000000000000000000000000000000000000000000000
00000091: EQ
00000092: PUSH2 0x00c7
00000095: JUMPI
00000096: PUSH1 0x40
00000098: MLOAD
00000099: PUSH32 0xd2b576ec00000000000000000000000000000000000000000000000000000000
000000ba: DUP2
000000bb: MSTORE
000000bc: PUSH1 0x04
000000be: ADD
000000bf: PUSH1 0x40
000000c1: MLOAD
000000c2: DUP1
000000c3: SWAP2
000000c4: SUB
000000c5: SWAP1
000000c6: REVERT
000000c7: JUMPDEST
000000c8: PUSH2 0x00cf
000000cb: PUSH2 0x00d9
000000ce: JUMP
000000cf: JUMPDEST
000000d0: JUMP
000000d1: JUMPDEST
000000d2: PUSH2 0x00cf
000000d5: PUSH2 0x0107
000000d8: JUMP
000000d9: JUMPDEST
000000da: PUSH0
000000db: DUP1
000000dc: PUSH2 0x00e8
000000df: CALLDATASIZE
000000e0: PUSH1 0x04
000000e2: DUP2
000000e3: DUP5
000000e4: PUSH2 0x043e
000000e7: JUMP
000000e8: JUMPDEST
000000e9: DUP2
000000ea: ADD
000000eb: SWAP1
000000ec: PUSH2 0x00f5
000000ef: SWAP2
000000f0: SWAP1
000000f1: PUSH2 0x0492
000000f4: JUMP
000000f5: JUMPDEST
000000f6: SWAP2
000000f7: POP
000000f8: SWAP2
000000f9: POP
000000fa: PUSH2 0x0103
000000fd: DUP3
000000fe: DUP3
000000ff: PUSH2 0x0117
00000102: JUMP
00000103: JUMPDEST
00000104: POP
00000105: POP
00000106: JUMP
00000107: JUMPDEST
00000108: PUSH2 0x00cf
0000010b: PUSH2 0x0112
0000010e: PUSH2 0x017e
00000111: JUMP
00000112: JUMPDEST
00000113: PUSH2 0x01c2
00000116: JUMP
00000117: JUMPDEST
00000118: PUSH2 0x0120
0000011b: DUP3
0000011c: PUSH2 0x01e0
0000011f: JUMP
00000120: JUMPDEST
00000121: PUSH1 0x40
00000123: MLOAD
00000124: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000139: DUP4
0000013a: AND
0000013b: SWAP1
0000013c: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
0000015d: SWAP1
0000015e: PUSH0
0000015f: SWAP1
00000160: LOG2
00000161: DUP1
00000162: MLOAD
00000163: ISZERO
00000164: PUSH2 0x0176
00000167: JUMPI
00000168: PUSH2 0x0171
0000016b: DUP3
0000016c: DUP3
0000016d: PUSH2 0x02b3
00000170: JUMP
00000171: JUMPDEST
00000172: POP
00000173: POP
00000174: POP
00000175: JUMP
00000176: JUMPDEST
00000177: PUSH2 0x0103
0000017a: PUSH2 0x0332
0000017d: JUMP
0000017e: JUMPDEST
0000017f: PUSH0
00000180: PUSH2 0x01bd
00000183: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
000001a4: SLOAD
000001a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001ba: AND
000001bb: SWAP1
000001bc: JUMP
000001bd: JUMPDEST
000001be: SWAP1
000001bf: POP
000001c0: SWAP1
000001c1: JUMP
000001c2: JUMPDEST
000001c3: CALLDATASIZE
000001c4: PUSH0
000001c5: DUP1
000001c6: CALLDATACOPY
000001c7: PUSH0
000001c8: DUP1
000001c9: CALLDATASIZE
000001ca: PUSH0
000001cb: DUP5
000001cc: GAS
000001cd: DELEGATECALL
000001ce: RETURNDATASIZE
000001cf: PUSH0
000001d0: DUP1
000001d1: RETURNDATACOPY
000001d2: DUP1
000001d3: DUP1
000001d4: ISZERO
000001d5: PUSH2 0x01dc
000001d8: JUMPI
000001d9: RETURNDATASIZE
000001da: PUSH0
000001db: RETURN
000001dc: JUMPDEST
000001dd: RETURNDATASIZE
000001de: PUSH0
000001df: REVERT
000001e0: JUMPDEST
000001e1: DUP1
000001e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001f7: AND
000001f8: EXTCODESIZE
000001f9: PUSH0
000001fa: SUB
000001fb: PUSH2 0x024d
000001fe: JUMPI
000001ff: PUSH1 0x40
00000201: MLOAD
00000202: PUSH32 0x4c9c8ce300000000000000000000000000000000000000000000000000000000
00000223: DUP2
00000224: MSTORE
00000225: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000023a: DUP3
0000023b: AND
0000023c: PUSH1 0x04
0000023e: DUP3
0000023f: ADD
00000240: MSTORE
00000241: PUSH1 0x24
00000243: ADD
00000244: JUMPDEST
00000245: PUSH1 0x40
00000247: MLOAD
00000248: DUP1
00000249: SWAP2
0000024a: SUB
0000024b: SWAP1
0000024c: REVERT
0000024d: JUMPDEST
0000024e: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
0000026f: DUP1
00000270: SLOAD
00000271: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000292: AND
00000293: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002a8: SWAP3
000002a9: SWAP1
000002aa: SWAP3
000002ab: AND
000002ac: SWAP2
000002ad: SWAP1
000002ae: SWAP2
000002af: OR
000002b0: SWAP1
000002b1: SSTORE
000002b2: JUMP
000002b3: JUMPDEST
000002b4: PUSH1 0x60
000002b6: PUSH0
000002b7: DUP1
000002b8: DUP5
000002b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002ce: AND
000002cf: DUP5
000002d0: PUSH1 0x40
000002d2: MLOAD
000002d3: PUSH2 0x02dc
000002d6: SWAP2
000002d7: SWAP1
000002d8: PUSH2 0x0586
000002db: JUMP
000002dc: JUMPDEST
000002dd: PUSH0
000002de: PUSH1 0x40
000002e0: MLOAD
000002e1: DUP1
000002e2: DUP4
000002e3: SUB
000002e4: DUP2
000002e5: DUP6
000002e6: GAS
000002e7: DELEGATECALL
000002e8: SWAP2
000002e9: POP
000002ea: POP
000002eb: RETURNDATASIZE
000002ec: DUP1
000002ed: PUSH0
000002ee: DUP2
000002ef: EQ
000002f0: PUSH2 0x0314
000002f3: JUMPI
000002f4: PUSH1 0x40
000002f6: MLOAD
000002f7: SWAP2
000002f8: POP
000002f9: PUSH1 0x1f
000002fb: NOT
000002fc: PUSH1 0x3f
000002fe: RETURNDATASIZE
000002ff: ADD
00000300: AND
00000301: DUP3
00000302: ADD
00000303: PUSH1 0x40
00000305: MSTORE
00000306: RETURNDATASIZE
00000307: DUP3
00000308: MSTORE
00000309: RETURNDATASIZE
0000030a: PUSH0
0000030b: PUSH1 0x20
0000030d: DUP5
0000030e: ADD
0000030f: RETURNDATACOPY
00000310: PUSH2 0x0319
00000313: JUMP
00000314: JUMPDEST
00000315: PUSH1 0x60
00000317: SWAP2
00000318: POP
00000319: JUMPDEST
0000031a: POP
0000031b: SWAP2
0000031c: POP
0000031d: SWAP2
0000031e: POP
0000031f: PUSH2 0x0329
00000322: DUP6
00000323: DUP4
00000324: DUP4
00000325: PUSH2 0x036a
00000328: JUMP
00000329: JUMPDEST
0000032a: SWAP6
0000032b: SWAP5
0000032c: POP
0000032d: POP
0000032e: POP
0000032f: POP
00000330: POP
00000331: JUMP
00000332: JUMPDEST
00000333: CALLVALUE
00000334: ISZERO
00000335: PUSH2 0x00cf
00000338: JUMPI
00000339: PUSH1 0x40
0000033b: MLOAD
0000033c: PUSH32 0xb398979f00000000000000000000000000000000000000000000000000000000
0000035d: DUP2
0000035e: MSTORE
0000035f: PUSH1 0x04
00000361: ADD
00000362: PUSH1 0x40
00000364: MLOAD
00000365: DUP1
00000366: SWAP2
00000367: SUB
00000368: SWAP1
00000369: REVERT
0000036a: JUMPDEST
0000036b: PUSH1 0x60
0000036d: DUP3
0000036e: PUSH2 0x037f
00000371: JUMPI
00000372: PUSH2 0x037a
00000375: DUP3
00000376: PUSH2 0x03fc
00000379: JUMP
0000037a: JUMPDEST
0000037b: PUSH2 0x03f5
0000037e: JUMP
0000037f: JUMPDEST
00000380: DUP2
00000381: MLOAD
00000382: ISZERO
00000383: DUP1
00000384: ISZERO
00000385: PUSH2 0x03a3
00000388: JUMPI
00000389: POP
0000038a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000039f: DUP5
000003a0: AND
000003a1: EXTCODESIZE
000003a2: ISZERO
000003a3: JUMPDEST
000003a4: ISZERO
000003a5: PUSH2 0x03f2
000003a8: JUMPI
000003a9: PUSH1 0x40
000003ab: MLOAD
000003ac: PUSH32 0x9996b31500000000000000000000000000000000000000000000000000000000
000003cd: DUP2
000003ce: MSTORE
000003cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003e4: DUP6
000003e5: AND
000003e6: PUSH1 0x04
000003e8: DUP3
000003e9: ADD
000003ea: MSTORE
000003eb: PUSH1 0x24
000003ed: ADD
000003ee: PUSH2 0x0244
000003f1: JUMP
000003f2: JUMPDEST
000003f3: POP
000003f4: DUP1
000003f5: JUMPDEST
000003f6: SWAP4
000003f7: SWAP3
000003f8: POP
000003f9: POP
000003fa: POP
000003fb: JUMP
000003fc: JUMPDEST
000003fd: DUP1
000003fe: MLOAD
000003ff: ISZERO
00000400: PUSH2 0x040c
00000403: JUMPI
00000404: DUP1
00000405: MLOAD
00000406: DUP1
00000407: DUP3
00000408: PUSH1 0x20
0000040a: ADD
0000040b: REVERT
0000040c: JUMPDEST
0000040d: PUSH1 0x40
0000040f: MLOAD
00000410: PUSH32 0xd6bda27500000000000000000000000000000000000000000000000000000000
00000431: DUP2
00000432: MSTORE
00000433: PUSH1 0x04
00000435: ADD
00000436: PUSH1 0x40
00000438: MLOAD
00000439: DUP1
0000043a: SWAP2
0000043b: SUB
0000043c: SWAP1
0000043d: REVERT
0000043e: JUMPDEST
0000043f: PUSH0
00000440: DUP1
00000441: DUP6
00000442: DUP6
00000443: GT
00000444: ISZERO
00000445: PUSH2 0x044c
00000448: JUMPI
00000449: PUSH0
0000044a: DUP1
0000044b: REVERT
0000044c: JUMPDEST
0000044d: DUP4
0000044e: DUP7
0000044f: GT
00000450: ISZERO
00000451: PUSH2 0x0458
00000454: JUMPI
00000455: PUSH0
00000456: DUP1
00000457: REVERT
00000458: JUMPDEST
00000459: POP
0000045a: POP
0000045b: DUP3
0000045c: ADD
0000045d: SWAP4
0000045e: SWAP2
0000045f: SWAP1
00000460: SWAP3
00000461: SUB
00000462: SWAP2
00000463: POP
00000464: JUMP
00000465: JUMPDEST
00000466: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00000487: PUSH0
00000488: MSTORE
00000489: PUSH1 0x41
0000048b: PUSH1 0x04
0000048d: MSTORE
0000048e: PUSH1 0x24
00000490: PUSH0
00000491: REVERT
00000492: JUMPDEST
00000493: PUSH0
00000494: DUP1
00000495: PUSH1 0x40
00000497: DUP4
00000498: DUP6
00000499: SUB
0000049a: SLT
0000049b: ISZERO
0000049c: PUSH2 0x04a3
0000049f: JUMPI
000004a0: PUSH0
000004a1: DUP1
000004a2: REVERT
000004a3: JUMPDEST
000004a4: DUP3
000004a5: CALLDATALOAD
000004a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004bb: DUP2
000004bc: AND
000004bd: DUP2
000004be: EQ
000004bf: PUSH2 0x04c6
000004c2: JUMPI
000004c3: PUSH0
000004c4: DUP1
000004c5: REVERT
000004c6: JUMPDEST
000004c7: SWAP2
000004c8: POP
000004c9: PUSH1 0x20
000004cb: DUP4
000004cc: ADD
000004cd: CALLDATALOAD
000004ce: PUSH8 0xffffffffffffffff
000004d7: DUP1
000004d8: DUP3
000004d9: GT
000004da: ISZERO
000004db: PUSH2 0x04e2
000004de: JUMPI
000004df: PUSH0
000004e0: DUP1
000004e1: REVERT
000004e2: JUMPDEST
000004e3: DUP2
000004e4: DUP6
000004e5: ADD
000004e6: SWAP2
000004e7: POP
000004e8: DUP6
000004e9: PUSH1 0x1f
000004eb: DUP4
000004ec: ADD
000004ed: SLT
000004ee: PUSH2 0x04f5
000004f1: JUMPI
000004f2: PUSH0
000004f3: DUP1
000004f4: REVERT
000004f5: JUMPDEST
000004f6: DUP2
000004f7: CALLDATALOAD
000004f8: DUP2
000004f9: DUP2
000004fa: GT
000004fb: ISZERO
000004fc: PUSH2 0x0507
000004ff: JUMPI
00000500: PUSH2 0x0507
00000503: PUSH2 0x0465
00000506: JUMP
00000507: JUMPDEST
00000508: PUSH1 0x40
0000050a: MLOAD
0000050b: PUSH1 0x1f
0000050d: DUP3
0000050e: ADD
0000050f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000530: SWAP1
00000531: DUP2
00000532: AND
00000533: PUSH1 0x3f
00000535: ADD
00000536: AND
00000537: DUP2
00000538: ADD
00000539: SWAP1
0000053a: DUP4
0000053b: DUP3
0000053c: GT
0000053d: DUP2
0000053e: DUP4
0000053f: LT
00000540: OR
00000541: ISZERO
00000542: PUSH2 0x054d
00000545: JUMPI
00000546: PUSH2 0x054d
00000549: PUSH2 0x0465
0000054c: JUMP
0000054d: JUMPDEST
0000054e: DUP2
0000054f: PUSH1 0x40
00000551: MSTORE
00000552: DUP3
00000553: DUP2
00000554: MSTORE
00000555: DUP9
00000556: PUSH1 0x20
00000558: DUP5
00000559: DUP8
0000055a: ADD
0000055b: ADD
0000055c: GT
0000055d: ISZERO
0000055e: PUSH2 0x0565
00000561: JUMPI
00000562: PUSH0
00000563: DUP1
00000564: REVERT
00000565: JUMPDEST
00000566: DUP3
00000567: PUSH1 0x20
00000569: DUP7
0000056a: ADD
0000056b: PUSH1 0x20
0000056d: DUP4
0000056e: ADD
0000056f: CALLDATACOPY
00000570: PUSH0
00000571: PUSH1 0x20
00000573: DUP5
00000574: DUP4
00000575: ADD
00000576: ADD
00000577: MSTORE
00000578: DUP1
00000579: SWAP6
0000057a: POP
0000057b: POP
0000057c: POP
0000057d: POP
0000057e: POP
0000057f: POP
00000580: SWAP3
00000581: POP
00000582: SWAP3
00000583: SWAP1
00000584: POP
00000585: JUMP
00000586: JUMPDEST
00000587: PUSH0
00000588: DUP3
00000589: MLOAD
0000058a: PUSH0
0000058b: JUMPDEST
0000058c: DUP2
0000058d: DUP2
0000058e: LT
0000058f: ISZERO
00000590: PUSH2 0x05a5
00000593: JUMPI
00000594: PUSH1 0x20
00000596: DUP2
00000597: DUP7
00000598: ADD
00000599: DUP2
0000059a: ADD
0000059b: MLOAD
0000059c: DUP6
0000059d: DUP4
0000059e: ADD
0000059f: MSTORE
000005a0: ADD
000005a1: PUSH2 0x058b
000005a4: JUMP
000005a5: JUMPDEST
000005a6: POP
000005a7: PUSH0
000005a8: SWAP3
000005a9: ADD
000005aa: SWAP2
000005ab: DUP3
000005ac: MSTORE
000005ad: POP
000005ae: SWAP2
000005af: SWAP1
000005b0: POP
000005b1: JUMP
000005b2: INVALID
000005b3: LOG2
000005b4: PUSH5 0x6970667358
000005ba: UNKNOWN(0x22)
000005bb: SLT
000005bc: KECCAK256
000005bd: MSTORE
000005be: SWAP11
000005bf: SWAP11
000005c0: DUP14
000005c1: DUP15
000005c2: UNKNOWN(0xAC)
000005c3: PUSH18 0x32d05588a2abbe7ad1eb517a8a80734e4263
000005d6: SSTORE
000005d7: SELFBALANCE
000005d8: RETURNDATACOPY
000005d9: DUP6
000005da: UNKNOWN(0x22)
000005db: UNKNOWN(0xC3)
000005dc: UNKNOWN(0xB4)
000005dd: PUSH5 0x736f6c6343
000005e3: STOP
000005e4: ADDMOD
000005e5: XOR
000005e6: STOP
000005e7: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0x9f7607277608c91715f45babdd3af7e052780f35f85603fc60f3d5adf4ff6b8a
call_targets: 0x4f8b564e25337f6a3e66f12553221f6c05a13085
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x9f7607277608c91715f45babdd3af7e052780f35f85603fc60f3d5adf4ff6b8a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4f8b564e25337f6a3e66f12553221f6c05a13085"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x",
            "selector": "fallback",
            "calldata_variants": [
                "0x"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 461,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 743,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 2,
    "untrusted_delegatecall_count": 2
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 2
}