Sourcify Logosourcify.eth

0x98f5FCefFd720831AB24CeB7fFDEEE4719dfAe83

on Ethereum Mainnet (1)

Match
Runtime Bytecode
Creation Bytecode
Unverified Libraries
Contract Name
TokenFactoryCore
Compilation Target
src/TokenFactoryCore.sol:TokenFactoryCore
Language
Solidity
Compiler
solc 0.8.26+commit.8a97fa7a
EVM Version
cancun
Verified At
2025-06-18 15:26:23 UTC
Deployer
0x442D8202c886B10D7f13ed3f0F04F311a613B144
Deployment Transaction
0xf5445e1a585ea583d144dba50ff5a00702069eca0172d7d525055c46d63a10b0
Block Number
22670210
Transaction Index
6

ABI

Expand to view

Source Code

Remix IDE LogoView on Remix IDE
  • src/TokenFactoryCore.sol
  • src/Token.sol
  • lib/v4-core/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol
  • lib/v4-core/lib/openzeppelin-contracts/contracts/access/Ownable.sol
  • src/V2PoolLibrary.sol
  • lib/v4-core/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol
  • lib/v4-core/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol
  • lib/v4-core/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol
  • lib/v4-core/lib/openzeppelin-contracts/contracts/utils/Context.sol
  • lib/v2-core/contracts/interfaces/IUniswapV2Factory.sol
  • lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol
  • lib/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol
  • lib/v4-core/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol
  • lib/v4-core/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol
  • lib/v4-core/lib/openzeppelin-contracts/contracts/utils/Pausable.sol
  • lib/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol
Loading...

Compiler Settings

Loading...

Libraries

This contract uses unverified libraries. Libraries can contain arbitrary code and should be verified before interacting with the contract.

Compiler Linked Libraries

NameAddress
src/V2PoolLibrary.sol:PoolLibrary
0x33C2323a14a9209d0633555b52cB3dBb8D7c400A

Contract Metadata

Loading...

Creation Bytecode

0x6080604052346100305761001a610014610111565b91610494565b610022610035565b6154df61068f82396154df90f35b61003b565b60405190565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906100679061003f565b810190811060018060401b0382111761007f57604052565b610049565b90610097610090610035565b928361005d565b565b5f80fd5b60018060a01b031690565b6100b19061009d565b90565b6100bd816100a8565b036100c457565b5f80fd5b905051906100d5826100b4565b565b909160608284031261010c576101096100f2845f85016100c8565b9361010081602086016100c8565b936040016100c8565b90565b610099565b61012f615b6e8038038061012481610084565b9283398101906100d7565b909192565b5f1b90565b9061014a60018060801b0391610134565b9181191691161790565b90565b60018060801b031690565b90565b61017961017461017e92610154565b610162565b610157565b90565b90565b906101996101946101a092610165565b610181565b8254610139565b9055565b60801b90565b906101bc60018060801b0319916101a4565b9181191691161790565b90565b6101dd6101d86101e2926101c6565b610162565b610157565b90565b906101fa6101f5610201926101c9565b610181565b82546101aa565b9055565b90565b61021c61021761022192610205565b610162565b610157565b90565b9061023961023461024092610208565b610181565b8254610139565b9055565b90565b61025b61025661026092610244565b610162565b610157565b90565b9061027861027361027f92610247565b610181565b82546101aa565b9055565b90565b61029a61029561029f92610283565b610162565b610157565b90565b906102b76102b26102be92610286565b610181565b8254610139565b9055565b906102d261ffff60801b916101a4565b9181191691161790565b90565b61ffff1690565b6102fa6102f56102ff926102dc565b610162565b6102df565b90565b90565b9061031a610315610321926102e6565b610302565b82546102c2565b9055565b90565b61033c61033761034192610325565b610162565b61009d565b90565b61034d90610328565b90565b60209181520190565b5f7f496e76616c696420616464726573736573000000000000000000000000000000910152565b61038d6011602092610350565b61039681610359565b0190565b6103af9060208101905f818303910152610380565b90565b156103b957565b6103c1610035565b62461bcd60e51b8152806103d76004820161039a565b0390fd5b906103ec60018060a01b0391610134565b9181191691161790565b61040a61040561040f9261009d565b610162565b61009d565b90565b61041b906103f6565b90565b61042790610412565b90565b90565b9061044261043d6104499261041e565b61042a565b82546103db565b9055565b610456906103f6565b90565b6104629061044d565b90565b61046e9061044d565b90565b90565b9061048961048461049092610465565b610471565b82546103db565b9055565b61054d61055b9392610548610554936104ac336105a7565b6104c068056bc75e2d631000006005610184565b6104d5690ed2b525841adfc0000060056101e5565b6104e66507f544a44c006006610224565b6104f664010f337d806006610263565b61050967016345785d8a000060076102a2565b61051560646007610305565b8061053061052a6105255f610344565b6100a8565b916100a8565b14158061055d575b610541906103b2565b600861042d565b610459565b600d610474565b600b61042d565b565b506105418361057c6105766105715f610344565b6100a8565b916100a8565b14159050610538565b61058e906100a8565b9052565b91906105a5905f60208501940190610585565b565b806105c26105bc6105b75f610344565b6100a8565b916100a8565b146105d2576105d09061062f565b565b6105f56105de5f610344565b5f918291631e4fbdf760e01b835260048301610592565b0390fd5b5f1c90565b60018060a01b031690565b61061561061a916105f9565b6105fe565b90565b6106279054610609565b90565b5f0190565b6106385f61061d565b610642825f61042d565b906106766106707f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361041e565b9161041e565b9161067f610035565b806106898161062a565b0390a356fe60806040526004361015610013575b611513565b61001d5f3561028c565b806311f526b3146102875780631d0806ae146102825780632b4f02991461027d5780632ff2e9dc146102785780633013ce291461027357806332cb6b0c1461026e578063423c3a48146102695780634690484014610264578063476343ee1461025f578063540a9f6f1461025a578063549c6bbb1461025557806354a91dad146102505780635be6f2c71461024b57806363a812f9146102465780636fc98ee114610241578063715018a61461023c57806373cbc26c1461023757806374843196146102325780637a3a0e841461022d5780637ede37d6146102285780638da5cb5b146102235780639003adfe1461021e5780639e4bd2e914610219578063a4d10acc14610214578063a8fc75e11461020f578063ac9e0fce1461020a578063b18777df14610205578063be3cafd214610200578063c05c5e94146101fb578063c1c454f5146101f6578063cc5681fd146101f1578063ddca3f43146101ec578063f0183044146101e7578063f160d369146101e2578063f2fde38b146101dd578063f5f7fbf2146101d8578063fb0b2b36146101d3578063fdd07517146101ce5763fe4b3d240361000e576114e0565b6114a7565b611352565b611304565b6112af565b61127c565b611247565b611202565b611170565b6110f5565b6110c0565b61107e565b611049565b610fa0565b610f09565b610cbd565b610c88565b610c44565b610bd7565b610ba2565b610b5e565b610b19565b610ad7565b610aa4565b610a70565b610a3d565b610a0a565b6109b9565b610967565b610905565b6108c3565b61088e565b61081a565b610765565b610725565b61065a565b6104cf565b610454565b610387565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b909182601f830112156102ea5781359167ffffffffffffffff83116102e55760200192600183028401116102e057565b6102ac565b6102a8565b6102a4565b9091604082840312610349575f82013567ffffffffffffffff8111610344578361031a9184016102b0565b929093602082013567ffffffffffffffff811161033f5761033b92016102b0565b9091565b6102a0565b6102a0565b61029c565b60018060a01b031690565b6103629061034e565b90565b61036e90610359565b9052565b9190610385905f60208501940190610365565b565b346103bb576103b76103a661039d3660046102ef565b92919091611c69565b6103ae610292565b91829182610372565b0390f35b610298565b5f9103126103ca57565b61029c565b1c90565b6fffffffffffffffffffffffffffffffff1690565b6103f89060086103fd93026103cf565b6103d3565b90565b9061040b91546103e8565b90565b61041a60065f90610400565b90565b6fffffffffffffffffffffffffffffffff1690565b61043b9061041d565b9052565b9190610452905f60208501940190610432565b565b34610484576104643660046103c0565b61048061046f61040e565b610477610292565b9182918261043f565b0390f35b610298565b6104928161041d565b0361049957565b5f80fd5b905035906104aa82610489565b565b906020828203126104c5576104c2915f0161049d565b90565b61029c565b5f0190565b346104fd576104e76104e23660046104ac565b611f6c565b6104ef610292565b806104f9816104ca565b0390f35b610298565b90565b90565b90565b61051f61051a61052492610502565b610508565b610505565b90565b61053c6b033b2e3c9fd0803ce800000061050b565b90565b90565b61055661055161055b9261053f565b610508565b610505565b90565b634e487b7160e01b5f52601160045260245ffd5b61058161058791939293610505565b92610505565b91610593838202610505565b9281840414901517156105a257565b61055e565b90565b6105be6105b96105c3926105a7565b610508565b610505565b90565b634e487b7160e01b5f52601260045260245ffd5b6105e66105ec91610505565b91610505565b9081156105f7570490565b6105c6565b61062a61061a601461061561060f610527565b91610542565b610572565b61062460646105aa565b906105da565b90565b6106356105fc565b90565b61064190610505565b9052565b9190610658905f60208501940190610638565b565b3461068a5761066a3660046103c0565b61068661067561062d565b61067d610292565b91829182610645565b0390f35b610298565b60018060a01b031690565b6106aa9060086106af93026103cf565b61068f565b90565b906106bd915461069a565b90565b6106cc600d5f906106b2565b90565b6106e36106de6106e89261034e565b610508565b61034e565b90565b6106f4906106cf565b90565b610700906106eb565b90565b61070c906106f7565b9052565b9190610723905f60208501940190610703565b565b34610755576107353660046103c0565b6107516107406106c0565b610748610292565b91829182610710565b0390f35b610298565b610762610527565b90565b34610795576107753660046103c0565b61079161078061075a565b610788610292565b91829182610645565b0390f35b610298565b6107a381610359565b036107aa57565b5f80fd5b905035906107bb8261079a565b565b6107c681610505565b036107cd57565b5f80fd5b905035906107de826107bd565b565b9091606082840312610815576108126107fb845f85016107ae565b9361080981602086016107ae565b936040016107d1565b90565b61029c565b346108495761083361082d3660046107e0565b91612114565b61083b610292565b80610845816104ca565b0390f35b610298565b60018060a01b031690565b61086990600861086e93026103cf565b61084e565b90565b9061087c9154610859565b90565b61088b60085f90610871565b90565b346108be5761089e3660046103c0565b6108ba6108a961087f565b6108b1610292565b91829182610372565b0390f35b610298565b346108f1576108d33660046103c0565b6108db612309565b6108e3610292565b806108ed816104ca565b0390f35b610298565b61090260055f90610400565b90565b34610935576109153660046103c0565b6109316109206108f6565b610928610292565b9182918261043f565b0390f35b610298565b9190604083820312610962578061095661095f925f86016107ae565b936020016107d1565b90565b61029c565b346109965761098061097a36600461093a565b9061240d565b610988610292565b80610992816104ca565b0390f35b610298565b906020828203126109b4576109b1915f016107d1565b90565b61029c565b346109e7576109d16109cc36600461099b565b6124c6565b6109d9610292565b806109e3816104ca565b0390f35b610298565b90602082820312610a0557610a02915f016107ae565b90565b61029c565b34610a3857610a22610a1d3660046109ec565b61256a565b610a2a610292565b80610a34816104ca565b0390f35b610298565b34610a6b57610a55610a503660046109ec565b612595565b610a5d610292565b80610a67816104ca565b0390f35b610298565b34610a9f57610a89610a833660046107e0565b916125a0565b610a91610292565b80610a9b816104ca565b0390f35b610298565b34610ad257610ab43660046103c0565b610abc6126b6565b610ac4610292565b80610ace816104ca565b0390f35b610298565b34610b0557610aef610aea3660046104ac565b6126c0565b610af7610292565b80610b01816104ca565b0390f35b610298565b610b1660075f90610400565b90565b34610b4957610b293660046103c0565b610b45610b34610b0a565b610b3c610292565b9182918261043f565b0390f35b610298565b610b5b6005601090610400565b90565b34610b8e57610b6e3660046103c0565b610b8a610b79610b4e565b610b81610292565b9182918261043f565b0390f35b610298565b610b9f600b5f90610871565b90565b34610bd257610bb23660046103c0565b610bce610bbd610b93565b610bc5610292565b91829182610372565b0390f35b610298565b34610c0757610be73660046103c0565b610c03610bf26126f2565b610bfa610292565b91829182610372565b0390f35b610298565b90565b610c1f906008610c2493026103cf565b610c0c565b90565b90610c329154610c0f565b90565b610c41600c5f90610c27565b90565b34610c7457610c543660046103c0565b610c70610c5f610c35565b610c67610292565b91829182610645565b0390f35b610298565b610c85600a5f90610871565b90565b34610cb857610c983660046103c0565b610cb4610ca3610c79565b610cab610292565b91829182610372565b0390f35b610298565b34610ceb57610cd5610cd03660046109ec565b612767565b610cdd610292565b80610ce7816104ca565b0390f35b610298565b610cf9906106eb565b90565b90610d0690610cf0565b5f5260205260405f2090565b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52602260045260245ffd5b9060016002830492168015610d59575b6020831014610d5457565b610d25565b91607f1691610d49565b60209181520190565b5f5260205f2090565b905f9291805490610d8f610d8883610d39565b8094610d63565b916001811690815f14610de65750600114610daa575b505050565b610db79192939450610d6c565b915f925b818410610dce57505001905f8080610da5565b60018160209295939554848601520191019290610dbb565b92949550505060ff19168252151560200201905f8080610da5565b90610e0b91610d75565b90565b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e3690610e0e565b810190811067ffffffffffffffff821117610e5057604052565b610e18565b90610e75610e6e92610e65610292565b93848092610e01565b0383610e2c565b565b905f10610e8a57610e8790610e55565b90565b610d12565b610ea590610ea06003915f92610cfc565b610e77565b90565b5190565b60209181520190565b90825f9392825e0152565b610edf610ee8602093610eed93610ed681610ea8565b93848093610eac565b95869101610eb5565b610e0e565b0190565b610f069160208201915f818403910152610ec0565b90565b34610f3957610f35610f24610f1f3660046109ec565b610e8f565b610f2c610292565b91829182610ef1565b0390f35b610298565b151590565b610f4c81610f3e565b03610f5357565b5f80fd5b90503590610f6482610f43565b565b9091606082840312610f9b57610f98610f81845f85016107ae565b93610f8f81602086016107d1565b93604001610f57565b90565b61029c565b34610fcf57610fb9610fb3366004610f66565b91612797565b610fc1610292565b80610fcb816104ca565b0390f35b610298565b634e487b7160e01b5f52603260045260245ffd5b5490565b5f5260205f2090565b610ffe81610fe8565b82101561101857611010600191610fec565b910201905f90565b610fd4565b600161102881610fe8565b821015611045576110429161103c91610ff5565b90610871565b90565b5f80fd5b346110795761107561106461105f36600461099b565b61101d565b61106c610292565b91829182610372565b0390f35b610298565b346110ac576110966110913660046109ec565b612b17565b61109e610292565b806110a8816104ca565b0390f35b610298565b6110bd60095f90610871565b90565b346110f0576110d03660046103c0565b6110ec6110db6110b1565b6110e3610292565b91829182610372565b0390f35b610298565b346111235761110d6111083660046104ac565b613208565b611115610292565b8061111f816104ca565b0390f35b610298565b61ffff1690565b61113881611128565b0361113f57565b5f80fd5b905035906111508261112f565b565b9060208282031261116b57611168915f01611143565b90565b61029c565b3461119e57611188611183366004611152565b613293565b611190610292565b8061119a816104ca565b0390f35b610298565b61ffff1690565b6111ba9060086111bf93026103cf565b6111a3565b90565b906111cd91546111aa565b90565b6111dd60076010906111c2565b90565b6111e990611128565b9052565b9190611200905f602085019401906111e0565b565b34611232576112123660046103c0565b61122e61121d6111d0565b611225610292565b918291826111ed565b0390f35b610298565b6112446006601090610400565b90565b34611277576112573660046103c0565b611273611262611237565b61126a610292565b9182918261043f565b0390f35b610298565b346112aa5761129461128f3660046109ec565b6132c5565b61129c610292565b806112a6816104ca565b0390f35b610298565b346112dd576112c76112c23660046109ec565b61335c565b6112cf610292565b806112d9816104ca565b0390f35b610298565b6112eb90610f3e565b9052565b9190611302905f602085019401906112e2565b565b346113345761133061131f61131a36600461099b565b61336b565b611327610292565b918291826112ef565b0390f35b610298565b61134f9061134a6004915f92610cfc565b610e77565b90565b346113825761137e61136d6113683660046109ec565b611339565b611375610292565b91829182610ef1565b0390f35b610298565b9061139190610cf0565b5f5260205260405f2090565b5f1c90565b6113ae6113b39161139d565b610c0c565b90565b6113c090546113a2565b90565b6113cf6113d49161139d565b61084e565b90565b6113e190546113c3565b90565b60a01c90565b63ffffffff1690565b6113ff611404916113e4565b6113ea565b90565b61141190546113f3565b90565b61141f906002611387565b9061142b5f83016113b6565b91611438600182016113d7565b9161145060026114498185016113d7565b9301611407565b90565b63ffffffff1690565b61146590611453565b9052565b61149e6114a59461149460609498979561148a608086019a5f870190610638565b6020850190610365565b6040830190610365565b019061145c565b565b346114db576114d76114c26114bd3660046109ec565b611414565b906114ce949294610292565b94859485611469565b0390f35b610298565b3461150e576114f86114f33660046104ac565b613458565b611500610292565b8061150a816104ca565b0390f35b610298565b5f80fd5b5f90565b91565b5090565b90565b61153961153461153e92611522565b610508565b610505565b90565b5f7f496e76616c6964206e616d652f73796d626f6c00000000000000000000000000910152565b6115756013602092610eac565b61157e81611541565b0190565b6115979060208101905f818303910152611568565b90565b156115a157565b6115a9610292565b62461bcd60e51b8152806115bf60048201611582565b0390fd5b6115cf6115d49161139d565b61068f565b90565b6115e190546115c3565b90565b6115ed906106eb565b90565b6115fc6116019161139d565b6103d3565b90565b61160e90546115f0565b90565b5f80fd5b60e01b90565b9050519061162882610f43565b565b9060208282031261164357611640915f0161161b565b90565b61029c565b61165c6116576116619261041d565b610508565b610505565b90565b61166d90611648565b9052565b60409061169a6116a1949695939661169060608401985f850190610365565b6020830190610365565b0190611664565b565b6116ab610292565b3d5f823e3d90fd5b5f7f5472616e73666572206661696c65640000000000000000000000000000000000910152565b6116e7600f602092610eac565b6116f0816116b3565b0190565b6117099060208101905f8183039101526116da565b90565b1561171357565b61171b610292565b62461bcd60e51b815280611731600482016116f4565b0390fd5b90825f939282370152565b919061175a816117538161175f95610eac565b8095611735565b610e0e565b0190565b95949261179b946117856117939360409560608b01918b83035f8d0152611740565b9188830360208a0152611740565b940190610638565b565b6117a6906106eb565b90565b90565b5f5260205f2090565b5490565b6117c2816117b5565b8210156117dc576117d46001916117ac565b910201905f90565b610fd4565b1b90565b919060086118059102916117ff60018060a01b03846117e1565b926117e1565b9181191691161790565b90565b919061182861182361183093610cf0565b61180f565b9083546117e5565b9055565b9081549168010000000000000000831015611864578261185c916001611862950181556117b9565b90611812565b565b610e18565b61187d61187861188292610505565b610508565b611453565b90565b90611898611891610292565b9283610e2c565b565b6118a46080611885565b90565b906118b190610505565b9052565b906118bf90610359565b9052565b906118cd90611453565b9052565b6118db9051610505565b90565b5f1b90565b906118ef5f19916118de565b9181191691161790565b61190d61190861191292610505565b610508565b610505565b90565b90565b9061192d611928611934926118f9565b611915565b82546118e3565b9055565b6119429051610359565b90565b9061195660018060a01b03916118de565b9181191691161790565b9061197561197061197c92610cf0565b61180f565b8254611945565b9055565b61198a9051611453565b90565b60a01b90565b906119a563ffffffff60a01b9161198d565b9181191691161790565b6119c36119be6119c892611453565b610508565b611453565b90565b90565b906119e36119de6119ea926119af565b6119cb565b8254611993565b9055565b90611a4a60606002611a5094611a115f8201611a0b5f88016118d1565b90611918565b611a2a60018201611a2460208801611938565b90611960565b611a42828201611a3c60408801611938565b90611960565b019201611980565b906119ce565b565b90611a5c916119ee565b565b5090565b601f602091010490565b91906008611a87910291611a815f19846117e1565b926117e1565b9181191691161790565b9190611aa7611aa2611aaf936118f9565b611915565b908354611a6c565b9055565b5f90565b611ac991611ac3611ab3565b91611a91565b565b5b818110611ad7575050565b80611ae45f600193611ab7565b01611acc565b9190601f8111611afa575b505050565b611b06611b2b93610d6c565b906020611b1284611a62565b83019310611b33575b611b2490611a62565b0190611acb565b5f8080611af5565b9150611b2481929050611b1b565b90611b51905f19906008026103cf565b191690565b81611b6091611b41565b906002021790565b91611b739082611a5e565b9067ffffffffffffffff8211611c3257611b9782611b918554610d39565b85611aea565b5f90601f8311600114611bca57918091611bb9935f92611bbe575b5050611b56565b90555b565b90915001355f80611bb2565b601f19831691611bd985610d6c565b925f5b818110611c1a57509160029391856001969410611c00575b50505002019055611bbc565b611c10910135601f841690611b41565b90555f8080611bf4565b91936020600181928787013581550195019201611bdc565b610e18565b90611c429291611b68565b565b611c53611c5991939293610505565b92610505565b8201809211611c6457565b61055e565b93929091611c75611517565b50611c8a611c8486859061151b565b9061151e565b611c9c611c965f611525565b91610505565b1180611ecb575b611cac9061159a565b611cbe611cb9600d6115d7565b6106f7565b60206323b872dd913390611cf75f611cd5306115e4565b95611d02611ce36005611604565b611ceb610292565b98899788968795611615565b855260048501611671565b03925af18015611ec657611d1d915f91611e98575b5061170c565b848390829184611d2b6105fc565b90611d34610292565b94611f6586019386851067ffffffffffffffff861117611e93578695611d6195611f656135458939611763565b03905ff08015611e8e57611e1393611d7b611e029261179d565b96611d90611d8960016117a9565b8990611834565b611df15f611de08a611dd733611dce611da842611869565b93611dc5611dbd611db761189a565b98611525565b5f89016118a7565b602087016118b5565b604085016118b5565b606083016118c3565b611dec60028b90611387565b611a52565b611dfd60038990610cfc565b611c37565b611e0e60048690610cfc565b611c37565b611e41611e3a611e2b611e266005611604565b611648565b611e35600c6113b6565b611c44565b600c611918565b8133611e76611e707fd5f9bdf12adf29dab0248c349842c3822d53ae2bb4f36352f301630d018c813993610cf0565b91610cf0565b91611e7f610292565b80611e89816104ca565b0390a3565b6116a3565b610e18565b611eb9915060203d8111611ebf575b611eb18183610e2c565b81019061162a565b5f611d17565b503d611ea7565b6116a3565b50611cac611ee3611edd83859061151b565b9061151e565b611ef5611eef5f611525565b91610505565b119050611ca3565b15611f0457565b5f80fd5b90611f236fffffffffffffffffffffffffffffffff916118de565b9181191691161790565b611f41611f3c611f469261041d565b610508565b61041d565b90565b90565b90611f61611f5c611f6892611f2d565b611f49565b8254611f08565b9055565b611f9c90611f9533611f8f611f89611f8460096113d7565b610359565b91610359565b14611efd565b6006611f4c565b565b5f7f4f6e6c792074726164696e6720636f6e74726163740000000000000000000000910152565b611fd26015602092610eac565b611fdb81611f9e565b0190565b611ff49060208101905f818303910152611fc5565b90565b15611ffe57565b612006610292565b62461bcd60e51b81528061201c60048201611fdf565b0390fd5b61203461202f61203992611522565b610508565b61034e565b90565b61204590612020565b90565b5f7f546f6b656e206e6f7420666f756e640000000000000000000000000000000000910152565b61207c600f602092610eac565b61208581612048565b0190565b61209e9060208101905f81830391015261206f565b90565b156120a857565b6120b0610292565b62461bcd60e51b8152806120c660048201612089565b0390fd5b6120d3906106cf565b90565b6120df906120ca565b90565b5f9103126120ec57565b61029c565b91602061211292949361210b60408201965f830190610365565b0190610638565b565b612180612185916121403361213a61213461212f600a6113d7565b610359565b91610359565b14611ff7565b61217b61215a600161215460028590611387565b016113d7565b61217461216e6121695f61203c565b610359565b91610359565b14156120a1565b6120d6565b61179d565b91639dc29fac919092803b15612200576121b25f80946121bd6121a6610292565b97889687958694611615565b8452600484016120f1565b03925af180156121fb576121cf575b50565b6121ee905f3d81116121f4575b6121e68183610e2c565b8101906120e2565b5f6121cc565b503d6121dc565b6116a3565b611611565b5f7f4f6e6c792061646d696e20636f6e747261637400000000000000000000000000910152565b6122396013602092610eac565b61224281612205565b0190565b61225b9060208101905f81830391015261222c565b90565b1561226557565b61226d610292565b62461bcd60e51b81528061228360048201612246565b0390fd5b5f7f4e6f206665657300000000000000000000000000000000000000000000000000910152565b6122bb6007602092610eac565b6122c481612287565b0190565b6122dd9060208101905f8183039101526122ae565b90565b156122e757565b6122ef610292565b62461bcd60e51b815280612305600482016122c8565b0390fd5b61232e3361232861232261231d60096113d7565b610359565b91610359565b1461225e565b61235361233b600c6113b6565b61234d6123475f611525565b91610505565b116122e0565b61235d600c6113b6565b6123706123695f611525565b600c611918565b602061238461237f600d6115d7565b6106f7565b9163a9059cbb926123b25f61239960086113d7565b93956123bd6123a6610292565b97889687958694611615565b8452600484016120f1565b03925af18015612408576123d8915f916123da575b5061170c565b565b6123fb915060203d8111612401575b6123f38183610e2c565b81019061162a565b5f6123d2565b503d6123e9565b6116a3565b906020906124363361243061242a612425600a6113d7565b610359565b91610359565b14611ff7565b612448612443600d6115d7565b6106f7565b61246b5f63a9059cbb95939561247661245f610292565b97889687958694611615565b8452600484016120f1565b03925af180156124c157612491915f91612493575b5061170c565b565b6124b4915060203d81116124ba575b6124ac8183610e2c565b81019061162a565b5f61248b565b503d6124a2565b6116a3565b612501612508916124f2336124ec6124e66124e1600a6113d7565b610359565b91610359565b14611ff7565b6124fc600c6113b6565b611c44565b600c611918565b565b61251b9061251661348a565b61251d565b565b61252881600a611960565b6125527fd1e7628d49c63a4a092a6fc94fb5ce7b4ce3944094b8dc32ea24896c1007c17f91610cf0565b9061255b610292565b80612565816104ca565b0390a2565b6125739061250a565b565b6125869061258161348a565b612588565b565b612593906009611960565b565b61259e90612575565b565b61260c612611916125cc336125c66125c06125bb600a6113d7565b610359565b91610359565b14611ff7565b6126076125e660016125e060028590611387565b016113d7565b6126006125fa6125f55f61203c565b610359565b91610359565b14156120a1565b6120d6565b61179d565b916340c10f19919092803b1561268c5761263e5f8094612649612632610292565b97889687958694611615565b8452600484016120f1565b03925af180156126875761265b575b50565b61267a905f3d8111612680575b6126728183610e2c565b8101906120e2565b5f612658565b503d612668565b6116a3565b611611565b61269961348a565b6126a16126a3565b565b6126b46126af5f61203c565b6134d8565b565b6126be612691565b565b6126f0906126e9336126e36126dd6126d860096113d7565b610359565b91610359565b14611efd565b6005611f4c565b565b6126fa611517565b506127045f6113d7565b90565b6127189061271361348a565b61271a565b565b61272581600b611960565b61274f7f73627bff2170e10558432bed3a45d8bbf72c9634b6a8cfb3a6c6eb0bb143fedc91610cf0565b90612758610292565b80612762816104ca565b0390a2565b61277090612707565b565b61278161278791939293610505565b92610505565b820391821161279257565b61055e565b90916127be336127b86127b26127ad600a6113d7565b610359565b91610359565b14611ff7565b5f146127f0576127e75f6127d76127ed94936002611387565b01916127e2836113b6565b611c44565b90611918565b5b565b6128135f61280361281994936002611387565b019161280e836113b6565b612772565b90611918565b6127ee565b90565b61283561283061283a9261281e565b610508565b610505565b90565b612846906106cf565b90565b6128529061283d565b90565b61285e906106eb565b90565b60801c90565b61287361287891612861565b6103d3565b90565b6128859054612867565b90565b9160206128a99294936128a260408201965f830190610638565b0190611664565b565b5f7f46756e64696e6720676f616c206e6f7420726561636865640000000000000000910152565b6128df6018602092610eac565b6128e8816128ab565b0190565b6129019060208101905f8183039101526128d2565b90565b1561290b57565b612913610292565b62461bcd60e51b815280612929600482016128ec565b0390fd5b90565b9050519061293d8261079a565b565b9060208282031261295857612955915f01612930565b90565b61029c565b61296690610359565b9052565b91602061298b92949361298460408201965f83019061295d565b019061295d565b565b5f0190565b90565b6129a96129a46129ae92612992565b610508565b610505565b90565b90565b6129c86129c36129cd926129b1565b610508565b610505565b90565b6129db610100611885565b90565b905051906129eb826107bd565b565b9091606082840312612a2257612a1f612a08845f85016129de565b93612a1681602086016129de565b936040016129de565b90565b61029c565b612a3090610359565b9052565b612a3d90610505565b9052565b9060e080612acf93612a595f8201515f860190612a27565b612a6b60208201516020860190612a27565b612a7d60408201516040860190612a34565b612a8f60608201516060860190612a34565b612aa160808201516080860190612a34565b612ab360a082015160a0860190612a34565b612ac560c082015160c0860190612a27565b0151910190612a34565b565b9190612ae5905f6101008501940190612a41565b565b612af090610505565b9052565b916020612b15929493612b0e60408201965f83019061295d565b0190612ae7565b565b612b3c33612b36612b30612b2b600a6113d7565b610359565b91610359565b14611ff7565b612b77612b566001612b5060028590611387565b016113d7565b612b70612b6a612b655f61203c565b610359565b91610359565b14156120a1565b612b81600b6113d7565b612b9b612b95612b905f61203c565b610359565b91610359565b14155f1461318257612bbd612bb8612bb3600b6113d7565b612849565b612855565b60206361dcd2bc91612bdb5f612bd560028790611387565b016113b6565b90612c01612be9600561287b565b94612c0c612bf5610292565b96879586948594611615565b845260048401612888565b03915afa801561317d57612c28915f9161314f575b505b612904565b612c457333c2323a14a9209d0633555b52cb3dbb8d7c400a61292d565b6020632384d3d0918390612c7c612c64612c5f600d6115d7565b6106f7565b94612c87612c70610292565b96879586948594611615565b84526004840161296a565b03915af490811561314a575f9161311c575b5090612ca4816120d6565b90612cad6105fc565b90612ccd612cc75f612cc160028590611387565b016113b6565b9361179d565b612d0b63095ea7b3916020612cf57333c2323a14a9209d0633555b52cb3dbb8d7c400a61292d565b63d54f7d5e90612d03610292565b948592611615565b82528180612d1b6004820161298d565b03915af4908115613117576020925f926130e8575b50612d4e5f8795612d59612d42610292565b97889687958694611615565b8452600484016120f1565b03925af180156130e3576130b7575b50612d7b612d76600d6115d7565b6106f7565b612db963095ea7b3916020612da37333c2323a14a9209d0633555b52cb3dbb8d7c400a61292d565b63d54f7d5e90612db1610292565b948592611615565b82528180612dc96004820161298d565b03915af49081156130b2576020925f92613083575b50612dfc5f8895612e07612df0610292565b97889687958694611615565b8452600484016120f1565b03925af1801561307e57613052575b507333c2323a14a9209d0633555b52cb3dbb8d7c400a612e359061292d565b91636e66e0709193612e47600d6115d7565b612e50906106f7565b9180918091605f612e6090612995565b612e6991610572565b6064612e74906105aa565b612e7d916105da565b90605f612e8990612995565b612e9291610572565b6064612e9d906105aa565b612ea6916105da565b9130612eb1906115e4565b934261012c612ebf906129b4565b612ec891611c44565b95612ed16129d0565b995f8b0190612edf916118b5565b60208a0190612eed916118b5565b6040890190612efb916118a7565b6060880190612f09916118a7565b6080870190612f17916118a7565b60a0860190612f25916118a7565b60c0850190612f33916118b5565b60e0840190612f41916118a7565b612f49610292565b8093612f558293611615565b82526004820190612f6591612ad1565b03815a93606094f490811561304d575f80809391505061301e575b5090612f9f7333c2323a14a9209d0633555b52cb3dbb8d7c400a61292d565b916308aa2e5d919092803b1561301957612fcb5f93612fd6612fbf610292565b96879586948594611615565b845260048401612af4565b03915af4801561301457612fe8575b50565b613007905f3d811161300d575b612fff8183610e2c565b8101906120e2565b5f612fe5565b503d612ff5565b6116a3565b611611565b61303f915060603d8111613046575b6130378183610e2c565b8101906129ed565b9150612f80565b503d61302d565b6116a3565b6130729060203d8111613077575b61306a8183610e2c565b81019061162a565b612e16565b503d613060565b6116a3565b6130a4919250833d81116130ab575b61309c8183610e2c565b81019061293f565b905f612dde565b503d613092565b6116a3565b6130d79060203d81116130dc575b6130cf8183610e2c565b81019061162a565b612d68565b503d6130c5565b6116a3565b613109919250833d8111613110575b6131018183610e2c565b81019061293f565b905f612d30565b503d6130f7565b6116a3565b61313d915060203d8111613143575b6131358183610e2c565b81019061293f565b5f612c99565b503d61312b565b6116a3565b613170915060203d8111613176575b6131688183610e2c565b81019061162a565b5f612c21565b503d61315e565b6116a3565b612c2861319b5f61319560028590611387565b016113b6565b6131b56131af671bc16d674ec80000612821565b91610505565b1015612c23565b60801b90565b906131de6fffffffffffffffffffffffffffffffff19916131bc565b9181191691161790565b906131fd6131f861320492611f2d565b611f49565b82546131c2565b9055565b613238906132313361322b61322561322060096113d7565b610359565b91610359565b14611efd565b60066131e8565b565b9061324a61ffff60801b916131bc565b9181191691161790565b61326861326361326d92611128565b610508565b611128565b90565b90565b9061328861328361328f92613254565b613270565b825461323a565b9055565b6132c3906132bc336132b66132b06132ab60096113d7565b610359565b91610359565b14611efd565b6007613273565b565b6132f5906132ee336132e86132e26132dd60096113d7565b610359565b91610359565b14611efd565b6008611960565b565b6133089061330361348a565b61330a565b565b8061332561331f61331a5f61203c565b610359565b91610359565b1461333557613333906134d8565b565b6133586133415f61203c565b5f918291631e4fbdf760e01b835260048301610372565b0390fd5b613365906132f7565b565b5f90565b613373613367565b5061337e600b6113d7565b61339861339261338d5f61203c565b610359565b91610359565b146134395760206133b96133b46133af600b6113d7565b612849565b612855565b6361dcd2bc92906133e56133cd600561287b565b946133f06133d9610292565b96879586948594611615565b845260048401612888565b03915afa908115613434575f91613406575b5090565b613427915060203d811161342d575b61341f8183610e2c565b81019061162a565b5f613402565b503d613415565b6116a3565b61345361344d671bc16d674ec80000612821565b91610505565b101590565b613488906134813361347b61347561347060096113d7565b610359565b91610359565b14611efd565b60056131e8565b565b6134926126f2565b6134ab6134a56134a0613537565b610359565b91610359565b036134b257565b6134d46134bd613537565b5f91829163118cdaa760e01b835260048301610372565b0390fd5b6134e15f6113d7565b6134eb825f611960565b9061351f6135197f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610cf0565b91610cf0565b91613528610292565b80613532816104ca565b0390a3565b61353f611517565b50339056fe6080604052346100305761001a6100146101bb565b916101de565b610022610035565b61151a610a4b823961151a90f35b61003b565b60405190565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906100679061003f565b810190811060018060401b0382111761007f57604052565b610049565b90610097610090610035565b928361005d565b565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b60018060401b0381116100c5576100c160209161003f565b0190565b610049565b90825f9392825e0152565b909291926100ea6100e5826100a9565b610084565b9381855260208501908284011161010657610104926100ca565b565b6100a5565b9080601f8301121561012957816020610126935191016100d5565b90565b6100a1565b90565b61013a8161012e565b0361014157565b5f80fd5b9050519061015282610131565b565b90916060828403126101b6575f82015160018060401b0381116101b1578361017d91840161010b565b9260208301519060018060401b0382116101ac576101a0816101a993860161010b565b93604001610145565b90565b61009d565b61009d565b610099565b6101d9611f65803803806101ce81610084565b928339810190610154565b909192565b6101f0906101f693923391909161025f565b336105a2565b565b90565b60018060a01b031690565b90565b61021d610218610222926101f8565b610206565b6101fb565b90565b61022e90610209565b90565b61023a906101fb565b90565b61024690610231565b9052565b919061025d905f6020850194019061023d565b565b91610269916102bb565b8061028461027e6102795f610225565b610231565b91610231565b1461029457610292906106b1565b565b6102b76102a05f610225565b5f918291631e4fbdf760e01b83526004830161024a565b0390fd5b906102c5916102c7565b565b906102d191610322565b565b5f1b90565b906102e460ff916102d3565b9181191691161790565b151590565b6102fc906102ee565b90565b90565b9061031761031261031e926102f3565b6102ff565b82546102d8565b9055565b9061032c9161058a565b6103375f6005610302565b565b5190565b634e487b7160e01b5f52602260045260245ffd5b9060016002830492168015610371575b602083101461036c57565b61033d565b91607f1691610361565b5f5260205f2090565b601f602091010490565b1b90565b919060086103ad9102916103a75f198461038e565b9261038e565b9181191691161790565b6103cb6103c66103d09261012e565b610206565b61012e565b90565b90565b91906103ec6103e76103f4936103b7565b6103d3565b908354610392565b9055565b5f90565b61040e916104086103f8565b916103d6565b565b5b81811061041c575050565b806104295f6001936103fc565b01610411565b9190601f811161043f575b505050565b61044b6104709361037b565b90602061045784610384565b83019310610478575b61046990610384565b0190610410565b5f808061043a565b915061046981929050610460565b1c90565b9061049a905f1990600802610486565b191690565b816104a99161048a565b906002021790565b906104bb81610339565b9060018060401b038211610579576104dd826104d78554610351565b8561042f565b602090601f831160011461051157918091610500935f92610505575b505061049f565b90555b565b90915001515f806104f9565b601f198316916105208561037b565b925f5b81811061056157509160029391856001969410610547575b50505002019055610503565b610557910151601f84169061048a565b90555f808061053b565b91936020600181928787015181550195019201610523565b610049565b90610588916104b1565b565b906105996105a092600361057e565b600461057e565b565b806105bd6105b76105b25f610225565b610231565b91610231565b146105d9576105d7916105cf5f610225565b919091610712565b565b6105fc6105e55f610225565b5f91829163ec442f0560e01b83526004830161024a565b0390fd5b60081c90565b60018060a01b031690565b61061d61062291610600565b610606565b90565b61062f9054610611565b90565b60081b90565b9061064b610100600160a81b0391610632565b9181191691161790565b61066961066461066e926101fb565b610206565b6101fb565b90565b61067a90610655565b90565b61068690610671565b90565b90565b906106a161069c6106a89261067d565b610689565b8254610638565b9055565b5f0190565b6106bb6005610625565b6106c682600561068c565b906106fa6106f47f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361067d565b9161067d565b91610703610035565b8061070d816106ac565b0390a3565b9161071f92919091610745565b565b90610734929161072f610752565b610736565b565b916107439291909161089a565b565b906107509291610721565b565b61075a610a34565b61076057565b5f63d93c066560e01b815280610778600482016106ac565b0390fd5b906107869061067d565b5f5260205260405f2090565b5f1c90565b90565b6107a66107ab91610792565b610797565b90565b6107b8905461079a565b90565b6107c49061012e565b9052565b6040906107f16107f894969593966107e760608401985f85019061023d565b60208301906107bb565b01906107bb565b565b90610805910361012e565b90565b906108145f19916102d3565b9181191691161790565b9061083361082e61083a926103b7565b6103d3565b8254610808565b9055565b634e487b7160e01b5f52601160045260245ffd5b6108616108679193929361012e565b9261012e565b820180921161087257565b61083e565b90610882910161012e565b90565b9190610898905f602085019401906107bb565b565b919091806108b86108b26108ad5f610225565b610231565b91610231565b145f14610999576108dc6108d5836108d060026107ae565b610852565b600261081e565b5b826108f86108f26108ed5f610225565b610231565b91610231565b145f1461096d5761091c6109158361091060026107ae565b6107fa565b600261081e565b5b9190916109686109566109507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9361067d565b9361067d565b9361095f610035565b91829182610885565b0390a3565b6109948261098e61097f5f879061077c565b91610989836107ae565b610877565b9061081e565b61091d565b6109ac6109a75f839061077c565b6107ae565b806109bf6109b98561012e565b9161012e565b106109e7576109d26109e29184906107fa565b6109dd5f849061077c565b61081e565b6108dd565b90610a059091925f93849363391434e360e21b8552600485016107c8565b0390fd5b5f90565b60ff1690565b610a1f610a2491610792565b610a0d565b90565b610a319054610a13565b90565b610a3c610a09565b50610a476005610a27565b9056fe60806040526004361015610013575b610788565b61001d5f3561014c565b806306fdde0314610147578063095ea7b31461014257806318160ddd1461013d57806323b872dd14610138578063313ce567146101335780633f4ba83a1461012e57806340c10f191461012957806342966c68146101245780635c975abb1461011f57806370a082311461011a578063715018a61461011557806379cc6790146101105780638456cb591461010b5780638da5cb5b1461010657806395d89b41146101015780639dc29fac146100fc578063a9059cbb146100f7578063dd62ed3e146100f25763f2fde38b0361000e57610755565b61071f565b6106bc565b610688565b610653565b61061e565b6105c9565b610595565b610562565b61052d565b6104da565b6104a7565b610455565b610422565b6103e8565b61038a565b61031b565b6102c3565b6101da565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f91031261016a57565b61015c565b5190565b60209181520190565b90825f9392825e0152565b601f801991011690565b6101b06101b96020936101be936101a78161016f565b93848093610173565b9586910161017c565b610187565b0190565b6101d79160208201915f818403910152610191565b90565b3461020a576101ea366004610160565b6102066101f56108e5565b6101fd610152565b918291826101c2565b0390f35b610158565b60018060a01b031690565b6102239061020f565b90565b61022f8161021a565b0361023657565b5f80fd5b9050359061024782610226565b565b90565b61025581610249565b0361025c57565b5f80fd5b9050359061026d8261024c565b565b9190604083820312610297578061028b610294925f860161023a565b93602001610260565b90565b61015c565b151590565b6102aa9061029c565b9052565b91906102c1905f602085019401906102a1565b565b346102f4576102f06102df6102d936600461026f565b906108ff565b6102e7610152565b918291826102ae565b0390f35b610158565b61030290610249565b9052565b9190610319905f602085019401906102f9565b565b3461034b5761032b366004610160565b61034761033661094e565b61033e610152565b91829182610306565b0390f35b610158565b90916060828403126103855761038261036b845f850161023a565b93610379816020860161023a565b93604001610260565b90565b61015c565b346103bb576103b76103a66103a0366004610350565b91610964565b6103ae610152565b918291826102ae565b0390f35b610158565b60ff1690565b6103cf906103c0565b9052565b91906103e6905f602085019401906103c6565b565b34610418576103f8366004610160565b6104146104036109b9565b61040b610152565b918291826103d3565b0390f35b610158565b5f0190565b3461045057610432366004610160565b61043a6109eb565b610442610152565b8061044c8161041d565b0390f35b610158565b346104845761046e61046836600461026f565b90610a15565b610476610152565b806104808161041d565b0390f35b610158565b906020828203126104a25761049f915f01610260565b90565b61015c565b346104d5576104bf6104ba366004610489565b610a21565b6104c7610152565b806104d18161041d565b0390f35b610158565b3461050a576104ea366004610160565b6105066104f5610a5b565b6104fd610152565b918291826102ae565b0390f35b610158565b9060208282031261052857610525915f0161023a565b90565b61015c565b3461055d5761055961054861054336600461050f565b610abb565b610550610152565b91829182610306565b0390f35b610158565b3461059057610572366004610160565b61057a610b29565b610582610152565b8061058c8161041d565b0390f35b610158565b346105c4576105ae6105a836600461026f565b90610b33565b6105b6610152565b806105c08161041d565b0390f35b610158565b346105f7576105d9366004610160565b6105e1610b6e565b6105e9610152565b806105f38161041d565b0390f35b610158565b6106059061021a565b9052565b919061061c905f602085019401906105fc565b565b3461064e5761062e366004610160565b61064a610639610bae565b610641610152565b91829182610609565b0390f35b610158565b3461068357610663366004610160565b61067f61066e610bc4565b610676610152565b918291826101c2565b0390f35b610158565b346106b7576106a161069b36600461026f565b90610bfa565b6106a9610152565b806106b38161041d565b0390f35b610158565b346106ed576106e96106d86106d236600461026f565b90610c06565b6106e0610152565b918291826102ae565b0390f35b610158565b919060408382031261071a578061070e610717925f860161023a565b9360200161023a565b90565b61015c565b346107505761074c61073b6107353660046106f2565b90610c3e565b610743610152565b91829182610306565b0390f35b610158565b346107835761076d61076836600461050f565b610ccb565b610775610152565b8061077f8161041d565b0390f35b610158565b5f80fd5b606090565b634e487b7160e01b5f52602260045260245ffd5b90600160028304921680156107c5575b60208310146107c057565b610791565b91607f16916107b5565b60209181520190565b5f5260205f2090565b905f92918054906107fb6107f4836107a5565b80946107cf565b916001811690815f146108525750600114610816575b505050565b61082391929394506107d8565b915f925b81841061083a57505001905f8080610811565b60018160209295939554848601520191019290610827565b92949550505060ff19168252151560200201905f8080610811565b90610877916107e1565b90565b634e487b7160e01b5f52604160045260245ffd5b9061089890610187565b810190811067ffffffffffffffff8211176108b257604052565b61087a565b906108d76108d0926108c7610152565b9384809261086d565b038361088e565b565b6108e2906108b7565b90565b6108ed61078c565b506108f860036108d9565b90565b5f90565b61091c9161090b6108fb565b50610914610cd6565b919091610ce3565b600190565b5f90565b5f1c90565b90565b61093961093e91610925565b61092a565b90565b61094b905461092d565b90565b610956610921565b506109616002610941565b90565b9161098e926109716108fb565b5061098661097d610cd6565b82908491610d33565b919091610dbf565b600190565b5f90565b90565b90565b6109b16109ac6109b692610997565b61099a565b6103c0565b90565b6109c1610993565b506109cc601261099d565b90565b6109d7610e5c565b6109df6109e1565b565b6109e9610f54565b565b6109f36109cf565b565b90610a0791610a02610e5c565b610a09565b565b90610a1391610f5e565b565b90610a1f916109f5565b565b610a3290610a2d610cd6565b610fbc565b565b60ff1690565b610a46610a4b91610925565b610a34565b90565b610a589054610a3a565b90565b610a636108fb565b50610a6e6005610a4e565b90565b610a85610a80610a8a9261020f565b61099a565b61020f565b90565b610a9690610a71565b90565b610aa290610a8d565b90565b90610aaf90610a99565b5f5260205260405f2090565b610ad1610ad691610aca610921565b505f610aa5565b610941565b90565b610ae1610e5c565b610ae9610b16565b565b90565b610b02610afd610b0792610aeb565b61099a565b61020f565b90565b610b1390610aee565b90565b610b27610b225f610b0a565b611061565b565b610b31610ad9565b565b90610b5091610b4b81610b44610cd6565b8491610d33565b610fbc565b565b610b5a610e5c565b610b62610b64565b565b610b6c611123565b565b610b76610b52565b565b5f90565b60081c90565b60018060a01b031690565b610b99610b9e91610b7c565b610b82565b90565b610bab9054610b8d565b90565b610bb6610b78565b50610bc16005610ba1565b90565b610bcc61078c565b50610bd760046108d9565b90565b90610bec91610be7610e5c565b610bee565b565b90610bf891610fbc565b565b90610c0491610bda565b565b610c2391610c126108fb565b50610c1b610cd6565b919091610dbf565b600190565b90610c3290610a99565b5f5260205260405f2090565b610c6391610c59610c5e92610c51610921565b506001610c28565b610aa5565b610941565b90565b610c7790610c72610e5c565b610c79565b565b80610c94610c8e610c895f610b0a565b61021a565b9161021a565b14610ca457610ca290611061565b565b610cc7610cb05f610b0a565b5f918291631e4fbdf760e01b835260048301610609565b0390fd5b610cd490610c66565b565b610cde610b78565b503390565b91610cf19291600192611182565b565b604090610d1c610d239496959396610d1260608401985f8501906105fc565b60208301906102f9565b01906102f9565b565b90610d309103610249565b90565b929192610d41818390610c3e565b9081610d56610d505f19610249565b91610249565b03610d63575b5050509050565b81610d76610d7087610249565b91610249565b10610d9c57610d939394610d8b919392610d25565b905f92611182565b805f8080610d5c565b50610dbb849291925f938493637dc7a0d960e11b855260048501610cf3565b0390fd5b9182610ddb610dd5610dd05f610b0a565b61021a565b9161021a565b14610e355781610dfb610df5610df05f610b0a565b61021a565b9161021a565b14610e0e57610e0c92919091611291565b565b610e31610e1a5f610b0a565b5f91829163ec442f0560e01b835260048301610609565b0390fd5b610e58610e415f610b0a565b5f918291634b637e8f60e11b835260048301610609565b0390fd5b610e64610bae565b610e7d610e77610e72610cd6565b61021a565b9161021a565b03610e8457565b610ea6610e8f610cd6565b5f91829163118cdaa760e01b835260048301610609565b0390fd5b610eb26112a0565b610eba610f06565b565b5f1b90565b90610ecd60ff91610ebc565b9181191691161790565b610ee09061029c565b90565b90565b90610efb610ef6610f0292610ed7565b610ee3565b8254610ec1565b9055565b610f115f6005610ee6565b610f19610cd6565b610f4f7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa91610f46610152565b91829182610609565b0390a1565b610f5c610eaa565b565b80610f79610f73610f6e5f610b0a565b61021a565b9161021a565b14610f9557610f9391610f8b5f610b0a565b919091611291565b565b610fb8610fa15f610b0a565b5f91829163ec442f0560e01b835260048301610609565b0390fd5b9081610fd8610fd2610fcd5f610b0a565b61021a565b9161021a565b14610ff457610ff29190610feb5f610b0a565b9091611291565b565b6110176110005f610b0a565b5f918291634b637e8f60e11b835260048301610609565b0390fd5b60081b90565b90611034610100600160a81b039161101b565b9181191691161790565b90565b9061105661105161105d92610a99565b61103e565b8254611021565b9055565b61106b6005610ba1565b611076826005611041565b906110aa6110a47f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610a99565b91610a99565b916110b3610152565b806110bd8161041d565b0390a3565b6110ca6112d3565b6110d26110d4565b565b6110e060016005610ee6565b6110e8610cd6565b61111e7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25891611115610152565b91829182610609565b0390a1565b61112b6110c2565b565b906111395f1991610ebc565b9181191691161790565b61115761115261115c92610249565b61099a565b610249565b90565b90565b9061117761117261117e92611143565b61115f565b825461112d565b9055565b90928161119f6111996111945f610b0a565b61021a565b9161021a565b1461126a57836111bf6111b96111b45f610b0a565b61021a565b9161021a565b14611243576111e3836111de6111d760018690610c28565b8790610aa5565b611162565b6111ed575b505050565b9190916112386112266112207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593610a99565b93610a99565b9361122f610152565b91829182610306565b0390a35f80806111e8565b61126661124f5f610b0a565b5f918291634a1406b160e11b835260048301610609565b0390fd5b61128d6112765f610b0a565b5f91829163e602df0560e01b835260048301610609565b0390fd5b9161129e92919091611321565b565b6112b16112ab610a5b565b1561029c565b6112b757565b5f638dfc202b60e01b8152806112cf6004820161041d565b0390fd5b6112db610a5b565b6112e157565b5f63d93c066560e01b8152806112f96004820161041d565b0390fd5b90611310929161130b6112d3565b611312565b565b9161131f92919091611375565b565b9061132c92916112fd565b565b634e487b7160e01b5f52601160045260245ffd5b61135161135791939293610249565b92610249565b820180921161136257565b61132e565b906113729101610249565b90565b9190918061139361138d6113885f610b0a565b61021a565b9161021a565b145f14611474576113b76113b0836113ab6002610941565b611342565b6002611162565b5b826113d36113cd6113c85f610b0a565b61021a565b9161021a565b145f14611448576113f76113f0836113eb6002610941565b610d25565b6002611162565b5b91909161144361143161142b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93610a99565b93610a99565b9361143a610152565b91829182610306565b0390a3565b61146f8261146961145a5f8790610aa5565b9161146483610941565b611367565b90611162565b6113f8565b6114876114825f8390610aa5565b610941565b8061149a61149485610249565b91610249565b106114c2576114ad6114bd918490610d25565b6114b85f8490610aa5565b611162565b6113b8565b906114e09091925f93849363391434e360e21b855260048501610cf3565b0390fdfecborAuxdataa2646970667358221220ce531c4ba48e221b172bf07c1ef10d1e0bd8302714ca0ef0960cd81f34898c6e64736f6c634300081a0033cborAuxdataa26469706673582212200c30c324a10d5d552877a7751dc6d864c78336aef3221a61da46defd6f9d3bc864736f6c634300081a0033constructorArguments0000000000000000000000006ec38a4ffbd68e02d982941bc5dc1e0348c5b2bc00000000000000000000000021e133e07b6cb3ff846b5a32fa9869a1e5040da1000000000000000000000000d39a5588019d89df89dfa7d5700cae26718c027c

CBOR Auxdata

These values are what Sourcify extracted from the recompiled bytecode. If these values are different in the on-chain bytecode, they will show up in Transformations section.

CBOR Auxdata id: 1

View on IPFS Logo
Solidity metadata.json IPFS hash: QmTXmSUKQVNNfZ7Wrkdy8jy66bnfZBtWy7eTvRNfAerKcr
RawDecoded
Length: 53 bytes
0xa26469706673582212204d236f042c4ff6d285ae548fa48fd6601e15e0701d637513b922d4c5e76c503f64736f6c634300081a0033

CBOR Auxdata id: 2

View on IPFS Logo
Solidity metadata.json IPFS hash: QmY9kU9sgmjxTvfFNy88j128xb72iQkzgs8DXiGPZFnbdP
RawDecoded
Length: 53 bytes
0xa264697066735822122091c9fe197ec97a00f73d1744cb9ab2425597cbe8298909abd3730b5bec324eee64736f6c634300081a0033

Transformations

Constructor Arguments

RawDecoded
Length: 96 bytes
0x0000000000000000000000006ec38a4ffbd68e02d982941bc5dc1e0348c5b2bc00000000000000000000000021e133e07b6cb3ff846b5a32fa9869a1e5040da1000000000000000000000000d39a5588019d89df89dfa7d5700cae26718c027c

CBOR Auxdata Transformations

Byte OffsetsLength (bytes)Values
2330053
Original (recompiled):0xa264697066735822122091c9fe197ec97a00f73d1744cb9ab2425597cbe8298909abd3730b5bec324eee64736f6c634300081a0033
Transformed (onchain):0xa2646970667358221220ce531c4ba48e221b172bf07c1ef10d1e0bd8302714ca0ef0960cd81f34898c6e64736f6c634300081a0033
2335353
Original (recompiled):0xa26469706673582212204d236f042c4ff6d285ae548fa48fd6601e15e0701d637513b922d4c5e76c503f64736f6c634300081a0033
Transformed (onchain):0xa26469706673582212200c30c324a10d5d552877a7751dc6d864c78336aef3221a61da46defd6f9d3bc864736f6c634300081a0033

Runtime Bytecode

0x60806040526004361015610013575b611513565b61001d5f3561028c565b806311f526b3146102875780631d0806ae146102825780632b4f02991461027d5780632ff2e9dc146102785780633013ce291461027357806332cb6b0c1461026e578063423c3a48146102695780634690484014610264578063476343ee1461025f578063540a9f6f1461025a578063549c6bbb1461025557806354a91dad146102505780635be6f2c71461024b57806363a812f9146102465780636fc98ee114610241578063715018a61461023c57806373cbc26c1461023757806374843196146102325780637a3a0e841461022d5780637ede37d6146102285780638da5cb5b146102235780639003adfe1461021e5780639e4bd2e914610219578063a4d10acc14610214578063a8fc75e11461020f578063ac9e0fce1461020a578063b18777df14610205578063be3cafd214610200578063c05c5e94146101fb578063c1c454f5146101f6578063cc5681fd146101f1578063ddca3f43146101ec578063f0183044146101e7578063f160d369146101e2578063f2fde38b146101dd578063f5f7fbf2146101d8578063fb0b2b36146101d3578063fdd07517146101ce5763fe4b3d240361000e576114e0565b6114a7565b611352565b611304565b6112af565b61127c565b611247565b611202565b611170565b6110f5565b6110c0565b61107e565b611049565b610fa0565b610f09565b610cbd565b610c88565b610c44565b610bd7565b610ba2565b610b5e565b610b19565b610ad7565b610aa4565b610a70565b610a3d565b610a0a565b6109b9565b610967565b610905565b6108c3565b61088e565b61081a565b610765565b610725565b61065a565b6104cf565b610454565b610387565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b909182601f830112156102ea5781359167ffffffffffffffff83116102e55760200192600183028401116102e057565b6102ac565b6102a8565b6102a4565b9091604082840312610349575f82013567ffffffffffffffff8111610344578361031a9184016102b0565b929093602082013567ffffffffffffffff811161033f5761033b92016102b0565b9091565b6102a0565b6102a0565b61029c565b60018060a01b031690565b6103629061034e565b90565b61036e90610359565b9052565b9190610385905f60208501940190610365565b565b346103bb576103b76103a661039d3660046102ef565b92919091611c69565b6103ae610292565b91829182610372565b0390f35b610298565b5f9103126103ca57565b61029c565b1c90565b6fffffffffffffffffffffffffffffffff1690565b6103f89060086103fd93026103cf565b6103d3565b90565b9061040b91546103e8565b90565b61041a60065f90610400565b90565b6fffffffffffffffffffffffffffffffff1690565b61043b9061041d565b9052565b9190610452905f60208501940190610432565b565b34610484576104643660046103c0565b61048061046f61040e565b610477610292565b9182918261043f565b0390f35b610298565b6104928161041d565b0361049957565b5f80fd5b905035906104aa82610489565b565b906020828203126104c5576104c2915f0161049d565b90565b61029c565b5f0190565b346104fd576104e76104e23660046104ac565b611f6c565b6104ef610292565b806104f9816104ca565b0390f35b610298565b90565b90565b90565b61051f61051a61052492610502565b610508565b610505565b90565b61053c6b033b2e3c9fd0803ce800000061050b565b90565b90565b61055661055161055b9261053f565b610508565b610505565b90565b634e487b7160e01b5f52601160045260245ffd5b61058161058791939293610505565b92610505565b91610593838202610505565b9281840414901517156105a257565b61055e565b90565b6105be6105b96105c3926105a7565b610508565b610505565b90565b634e487b7160e01b5f52601260045260245ffd5b6105e66105ec91610505565b91610505565b9081156105f7570490565b6105c6565b61062a61061a601461061561060f610527565b91610542565b610572565b61062460646105aa565b906105da565b90565b6106356105fc565b90565b61064190610505565b9052565b9190610658905f60208501940190610638565b565b3461068a5761066a3660046103c0565b61068661067561062d565b61067d610292565b91829182610645565b0390f35b610298565b60018060a01b031690565b6106aa9060086106af93026103cf565b61068f565b90565b906106bd915461069a565b90565b6106cc600d5f906106b2565b90565b6106e36106de6106e89261034e565b610508565b61034e565b90565b6106f4906106cf565b90565b610700906106eb565b90565b61070c906106f7565b9052565b9190610723905f60208501940190610703565b565b34610755576107353660046103c0565b6107516107406106c0565b610748610292565b91829182610710565b0390f35b610298565b610762610527565b90565b34610795576107753660046103c0565b61079161078061075a565b610788610292565b91829182610645565b0390f35b610298565b6107a381610359565b036107aa57565b5f80fd5b905035906107bb8261079a565b565b6107c681610505565b036107cd57565b5f80fd5b905035906107de826107bd565b565b9091606082840312610815576108126107fb845f85016107ae565b9361080981602086016107ae565b936040016107d1565b90565b61029c565b346108495761083361082d3660046107e0565b91612114565b61083b610292565b80610845816104ca565b0390f35b610298565b60018060a01b031690565b61086990600861086e93026103cf565b61084e565b90565b9061087c9154610859565b90565b61088b60085f90610871565b90565b346108be5761089e3660046103c0565b6108ba6108a961087f565b6108b1610292565b91829182610372565b0390f35b610298565b346108f1576108d33660046103c0565b6108db612309565b6108e3610292565b806108ed816104ca565b0390f35b610298565b61090260055f90610400565b90565b34610935576109153660046103c0565b6109316109206108f6565b610928610292565b9182918261043f565b0390f35b610298565b9190604083820312610962578061095661095f925f86016107ae565b936020016107d1565b90565b61029c565b346109965761098061097a36600461093a565b9061240d565b610988610292565b80610992816104ca565b0390f35b610298565b906020828203126109b4576109b1915f016107d1565b90565b61029c565b346109e7576109d16109cc36600461099b565b6124c6565b6109d9610292565b806109e3816104ca565b0390f35b610298565b90602082820312610a0557610a02915f016107ae565b90565b61029c565b34610a3857610a22610a1d3660046109ec565b61256a565b610a2a610292565b80610a34816104ca565b0390f35b610298565b34610a6b57610a55610a503660046109ec565b612595565b610a5d610292565b80610a67816104ca565b0390f35b610298565b34610a9f57610a89610a833660046107e0565b916125a0565b610a91610292565b80610a9b816104ca565b0390f35b610298565b34610ad257610ab43660046103c0565b610abc6126b6565b610ac4610292565b80610ace816104ca565b0390f35b610298565b34610b0557610aef610aea3660046104ac565b6126c0565b610af7610292565b80610b01816104ca565b0390f35b610298565b610b1660075f90610400565b90565b34610b4957610b293660046103c0565b610b45610b34610b0a565b610b3c610292565b9182918261043f565b0390f35b610298565b610b5b6005601090610400565b90565b34610b8e57610b6e3660046103c0565b610b8a610b79610b4e565b610b81610292565b9182918261043f565b0390f35b610298565b610b9f600b5f90610871565b90565b34610bd257610bb23660046103c0565b610bce610bbd610b93565b610bc5610292565b91829182610372565b0390f35b610298565b34610c0757610be73660046103c0565b610c03610bf26126f2565b610bfa610292565b91829182610372565b0390f35b610298565b90565b610c1f906008610c2493026103cf565b610c0c565b90565b90610c329154610c0f565b90565b610c41600c5f90610c27565b90565b34610c7457610c543660046103c0565b610c70610c5f610c35565b610c67610292565b91829182610645565b0390f35b610298565b610c85600a5f90610871565b90565b34610cb857610c983660046103c0565b610cb4610ca3610c79565b610cab610292565b91829182610372565b0390f35b610298565b34610ceb57610cd5610cd03660046109ec565b612767565b610cdd610292565b80610ce7816104ca565b0390f35b610298565b610cf9906106eb565b90565b90610d0690610cf0565b5f5260205260405f2090565b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52602260045260245ffd5b9060016002830492168015610d59575b6020831014610d5457565b610d25565b91607f1691610d49565b60209181520190565b5f5260205f2090565b905f9291805490610d8f610d8883610d39565b8094610d63565b916001811690815f14610de65750600114610daa575b505050565b610db79192939450610d6c565b915f925b818410610dce57505001905f8080610da5565b60018160209295939554848601520191019290610dbb565b92949550505060ff19168252151560200201905f8080610da5565b90610e0b91610d75565b90565b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e3690610e0e565b810190811067ffffffffffffffff821117610e5057604052565b610e18565b90610e75610e6e92610e65610292565b93848092610e01565b0383610e2c565b565b905f10610e8a57610e8790610e55565b90565b610d12565b610ea590610ea06003915f92610cfc565b610e77565b90565b5190565b60209181520190565b90825f9392825e0152565b610edf610ee8602093610eed93610ed681610ea8565b93848093610eac565b95869101610eb5565b610e0e565b0190565b610f069160208201915f818403910152610ec0565b90565b34610f3957610f35610f24610f1f3660046109ec565b610e8f565b610f2c610292565b91829182610ef1565b0390f35b610298565b151590565b610f4c81610f3e565b03610f5357565b5f80fd5b90503590610f6482610f43565b565b9091606082840312610f9b57610f98610f81845f85016107ae565b93610f8f81602086016107d1565b93604001610f57565b90565b61029c565b34610fcf57610fb9610fb3366004610f66565b91612797565b610fc1610292565b80610fcb816104ca565b0390f35b610298565b634e487b7160e01b5f52603260045260245ffd5b5490565b5f5260205f2090565b610ffe81610fe8565b82101561101857611010600191610fec565b910201905f90565b610fd4565b600161102881610fe8565b821015611045576110429161103c91610ff5565b90610871565b90565b5f80fd5b346110795761107561106461105f36600461099b565b61101d565b61106c610292565b91829182610372565b0390f35b610298565b346110ac576110966110913660046109ec565b612b17565b61109e610292565b806110a8816104ca565b0390f35b610298565b6110bd60095f90610871565b90565b346110f0576110d03660046103c0565b6110ec6110db6110b1565b6110e3610292565b91829182610372565b0390f35b610298565b346111235761110d6111083660046104ac565b613208565b611115610292565b8061111f816104ca565b0390f35b610298565b61ffff1690565b61113881611128565b0361113f57565b5f80fd5b905035906111508261112f565b565b9060208282031261116b57611168915f01611143565b90565b61029c565b3461119e57611188611183366004611152565b613293565b611190610292565b8061119a816104ca565b0390f35b610298565b61ffff1690565b6111ba9060086111bf93026103cf565b6111a3565b90565b906111cd91546111aa565b90565b6111dd60076010906111c2565b90565b6111e990611128565b9052565b9190611200905f602085019401906111e0565b565b34611232576112123660046103c0565b61122e61121d6111d0565b611225610292565b918291826111ed565b0390f35b610298565b6112446006601090610400565b90565b34611277576112573660046103c0565b611273611262611237565b61126a610292565b9182918261043f565b0390f35b610298565b346112aa5761129461128f3660046109ec565b6132c5565b61129c610292565b806112a6816104ca565b0390f35b610298565b346112dd576112c76112c23660046109ec565b61335c565b6112cf610292565b806112d9816104ca565b0390f35b610298565b6112eb90610f3e565b9052565b9190611302905f602085019401906112e2565b565b346113345761133061131f61131a36600461099b565b61336b565b611327610292565b918291826112ef565b0390f35b610298565b61134f9061134a6004915f92610cfc565b610e77565b90565b346113825761137e61136d6113683660046109ec565b611339565b611375610292565b91829182610ef1565b0390f35b610298565b9061139190610cf0565b5f5260205260405f2090565b5f1c90565b6113ae6113b39161139d565b610c0c565b90565b6113c090546113a2565b90565b6113cf6113d49161139d565b61084e565b90565b6113e190546113c3565b90565b60a01c90565b63ffffffff1690565b6113ff611404916113e4565b6113ea565b90565b61141190546113f3565b90565b61141f906002611387565b9061142b5f83016113b6565b91611438600182016113d7565b9161145060026114498185016113d7565b9301611407565b90565b63ffffffff1690565b61146590611453565b9052565b61149e6114a59461149460609498979561148a608086019a5f870190610638565b6020850190610365565b6040830190610365565b019061145c565b565b346114db576114d76114c26114bd3660046109ec565b611414565b906114ce949294610292565b94859485611469565b0390f35b610298565b3461150e576114f86114f33660046104ac565b613458565b611500610292565b8061150a816104ca565b0390f35b610298565b5f80fd5b5f90565b91565b5090565b90565b61153961153461153e92611522565b610508565b610505565b90565b5f7f496e76616c6964206e616d652f73796d626f6c00000000000000000000000000910152565b6115756013602092610eac565b61157e81611541565b0190565b6115979060208101905f818303910152611568565b90565b156115a157565b6115a9610292565b62461bcd60e51b8152806115bf60048201611582565b0390fd5b6115cf6115d49161139d565b61068f565b90565b6115e190546115c3565b90565b6115ed906106eb565b90565b6115fc6116019161139d565b6103d3565b90565b61160e90546115f0565b90565b5f80fd5b60e01b90565b9050519061162882610f43565b565b9060208282031261164357611640915f0161161b565b90565b61029c565b61165c6116576116619261041d565b610508565b610505565b90565b61166d90611648565b9052565b60409061169a6116a1949695939661169060608401985f850190610365565b6020830190610365565b0190611664565b565b6116ab610292565b3d5f823e3d90fd5b5f7f5472616e73666572206661696c65640000000000000000000000000000000000910152565b6116e7600f602092610eac565b6116f0816116b3565b0190565b6117099060208101905f8183039101526116da565b90565b1561171357565b61171b610292565b62461bcd60e51b815280611731600482016116f4565b0390fd5b90825f939282370152565b919061175a816117538161175f95610eac565b8095611735565b610e0e565b0190565b95949261179b946117856117939360409560608b01918b83035f8d0152611740565b9188830360208a0152611740565b940190610638565b565b6117a6906106eb565b90565b90565b5f5260205f2090565b5490565b6117c2816117b5565b8210156117dc576117d46001916117ac565b910201905f90565b610fd4565b1b90565b919060086118059102916117ff60018060a01b03846117e1565b926117e1565b9181191691161790565b90565b919061182861182361183093610cf0565b61180f565b9083546117e5565b9055565b9081549168010000000000000000831015611864578261185c916001611862950181556117b9565b90611812565b565b610e18565b61187d61187861188292610505565b610508565b611453565b90565b90611898611891610292565b9283610e2c565b565b6118a46080611885565b90565b906118b190610505565b9052565b906118bf90610359565b9052565b906118cd90611453565b9052565b6118db9051610505565b90565b5f1b90565b906118ef5f19916118de565b9181191691161790565b61190d61190861191292610505565b610508565b610505565b90565b90565b9061192d611928611934926118f9565b611915565b82546118e3565b9055565b6119429051610359565b90565b9061195660018060a01b03916118de565b9181191691161790565b9061197561197061197c92610cf0565b61180f565b8254611945565b9055565b61198a9051611453565b90565b60a01b90565b906119a563ffffffff60a01b9161198d565b9181191691161790565b6119c36119be6119c892611453565b610508565b611453565b90565b90565b906119e36119de6119ea926119af565b6119cb565b8254611993565b9055565b90611a4a60606002611a5094611a115f8201611a0b5f88016118d1565b90611918565b611a2a60018201611a2460208801611938565b90611960565b611a42828201611a3c60408801611938565b90611960565b019201611980565b906119ce565b565b90611a5c916119ee565b565b5090565b601f602091010490565b91906008611a87910291611a815f19846117e1565b926117e1565b9181191691161790565b9190611aa7611aa2611aaf936118f9565b611915565b908354611a6c565b9055565b5f90565b611ac991611ac3611ab3565b91611a91565b565b5b818110611ad7575050565b80611ae45f600193611ab7565b01611acc565b9190601f8111611afa575b505050565b611b06611b2b93610d6c565b906020611b1284611a62565b83019310611b33575b611b2490611a62565b0190611acb565b5f8080611af5565b9150611b2481929050611b1b565b90611b51905f19906008026103cf565b191690565b81611b6091611b41565b906002021790565b91611b739082611a5e565b9067ffffffffffffffff8211611c3257611b9782611b918554610d39565b85611aea565b5f90601f8311600114611bca57918091611bb9935f92611bbe575b5050611b56565b90555b565b90915001355f80611bb2565b601f19831691611bd985610d6c565b925f5b818110611c1a57509160029391856001969410611c00575b50505002019055611bbc565b611c10910135601f841690611b41565b90555f8080611bf4565b91936020600181928787013581550195019201611bdc565b610e18565b90611c429291611b68565b565b611c53611c5991939293610505565b92610505565b8201809211611c6457565b61055e565b93929091611c75611517565b50611c8a611c8486859061151b565b9061151e565b611c9c611c965f611525565b91610505565b1180611ecb575b611cac9061159a565b611cbe611cb9600d6115d7565b6106f7565b60206323b872dd913390611cf75f611cd5306115e4565b95611d02611ce36005611604565b611ceb610292565b98899788968795611615565b855260048501611671565b03925af18015611ec657611d1d915f91611e98575b5061170c565b848390829184611d2b6105fc565b90611d34610292565b94611f6586019386851067ffffffffffffffff861117611e93578695611d6195611f656135458939611763565b03905ff08015611e8e57611e1393611d7b611e029261179d565b96611d90611d8960016117a9565b8990611834565b611df15f611de08a611dd733611dce611da842611869565b93611dc5611dbd611db761189a565b98611525565b5f89016118a7565b602087016118b5565b604085016118b5565b606083016118c3565b611dec60028b90611387565b611a52565b611dfd60038990610cfc565b611c37565b611e0e60048690610cfc565b611c37565b611e41611e3a611e2b611e266005611604565b611648565b611e35600c6113b6565b611c44565b600c611918565b8133611e76611e707fd5f9bdf12adf29dab0248c349842c3822d53ae2bb4f36352f301630d018c813993610cf0565b91610cf0565b91611e7f610292565b80611e89816104ca565b0390a3565b6116a3565b610e18565b611eb9915060203d8111611ebf575b611eb18183610e2c565b81019061162a565b5f611d17565b503d611ea7565b6116a3565b50611cac611ee3611edd83859061151b565b9061151e565b611ef5611eef5f611525565b91610505565b119050611ca3565b15611f0457565b5f80fd5b90611f236fffffffffffffffffffffffffffffffff916118de565b9181191691161790565b611f41611f3c611f469261041d565b610508565b61041d565b90565b90565b90611f61611f5c611f6892611f2d565b611f49565b8254611f08565b9055565b611f9c90611f9533611f8f611f89611f8460096113d7565b610359565b91610359565b14611efd565b6006611f4c565b565b5f7f4f6e6c792074726164696e6720636f6e74726163740000000000000000000000910152565b611fd26015602092610eac565b611fdb81611f9e565b0190565b611ff49060208101905f818303910152611fc5565b90565b15611ffe57565b612006610292565b62461bcd60e51b81528061201c60048201611fdf565b0390fd5b61203461202f61203992611522565b610508565b61034e565b90565b61204590612020565b90565b5f7f546f6b656e206e6f7420666f756e640000000000000000000000000000000000910152565b61207c600f602092610eac565b61208581612048565b0190565b61209e9060208101905f81830391015261206f565b90565b156120a857565b6120b0610292565b62461bcd60e51b8152806120c660048201612089565b0390fd5b6120d3906106cf565b90565b6120df906120ca565b90565b5f9103126120ec57565b61029c565b91602061211292949361210b60408201965f830190610365565b0190610638565b565b612180612185916121403361213a61213461212f600a6113d7565b610359565b91610359565b14611ff7565b61217b61215a600161215460028590611387565b016113d7565b61217461216e6121695f61203c565b610359565b91610359565b14156120a1565b6120d6565b61179d565b91639dc29fac919092803b15612200576121b25f80946121bd6121a6610292565b97889687958694611615565b8452600484016120f1565b03925af180156121fb576121cf575b50565b6121ee905f3d81116121f4575b6121e68183610e2c565b8101906120e2565b5f6121cc565b503d6121dc565b6116a3565b611611565b5f7f4f6e6c792061646d696e20636f6e747261637400000000000000000000000000910152565b6122396013602092610eac565b61224281612205565b0190565b61225b9060208101905f81830391015261222c565b90565b1561226557565b61226d610292565b62461bcd60e51b81528061228360048201612246565b0390fd5b5f7f4e6f206665657300000000000000000000000000000000000000000000000000910152565b6122bb6007602092610eac565b6122c481612287565b0190565b6122dd9060208101905f8183039101526122ae565b90565b156122e757565b6122ef610292565b62461bcd60e51b815280612305600482016122c8565b0390fd5b61232e3361232861232261231d60096113d7565b610359565b91610359565b1461225e565b61235361233b600c6113b6565b61234d6123475f611525565b91610505565b116122e0565b61235d600c6113b6565b6123706123695f611525565b600c611918565b602061238461237f600d6115d7565b6106f7565b9163a9059cbb926123b25f61239960086113d7565b93956123bd6123a6610292565b97889687958694611615565b8452600484016120f1565b03925af18015612408576123d8915f916123da575b5061170c565b565b6123fb915060203d8111612401575b6123f38183610e2c565b81019061162a565b5f6123d2565b503d6123e9565b6116a3565b906020906124363361243061242a612425600a6113d7565b610359565b91610359565b14611ff7565b612448612443600d6115d7565b6106f7565b61246b5f63a9059cbb95939561247661245f610292565b97889687958694611615565b8452600484016120f1565b03925af180156124c157612491915f91612493575b5061170c565b565b6124b4915060203d81116124ba575b6124ac8183610e2c565b81019061162a565b5f61248b565b503d6124a2565b6116a3565b612501612508916124f2336124ec6124e66124e1600a6113d7565b610359565b91610359565b14611ff7565b6124fc600c6113b6565b611c44565b600c611918565b565b61251b9061251661348a565b61251d565b565b61252881600a611960565b6125527fd1e7628d49c63a4a092a6fc94fb5ce7b4ce3944094b8dc32ea24896c1007c17f91610cf0565b9061255b610292565b80612565816104ca565b0390a2565b6125739061250a565b565b6125869061258161348a565b612588565b565b612593906009611960565b565b61259e90612575565b565b61260c612611916125cc336125c66125c06125bb600a6113d7565b610359565b91610359565b14611ff7565b6126076125e660016125e060028590611387565b016113d7565b6126006125fa6125f55f61203c565b610359565b91610359565b14156120a1565b6120d6565b61179d565b916340c10f19919092803b1561268c5761263e5f8094612649612632610292565b97889687958694611615565b8452600484016120f1565b03925af180156126875761265b575b50565b61267a905f3d8111612680575b6126728183610e2c565b8101906120e2565b5f612658565b503d612668565b6116a3565b611611565b61269961348a565b6126a16126a3565b565b6126b46126af5f61203c565b6134d8565b565b6126be612691565b565b6126f0906126e9336126e36126dd6126d860096113d7565b610359565b91610359565b14611efd565b6005611f4c565b565b6126fa611517565b506127045f6113d7565b90565b6127189061271361348a565b61271a565b565b61272581600b611960565b61274f7f73627bff2170e10558432bed3a45d8bbf72c9634b6a8cfb3a6c6eb0bb143fedc91610cf0565b90612758610292565b80612762816104ca565b0390a2565b61277090612707565b565b61278161278791939293610505565b92610505565b820391821161279257565b61055e565b90916127be336127b86127b26127ad600a6113d7565b610359565b91610359565b14611ff7565b5f146127f0576127e75f6127d76127ed94936002611387565b01916127e2836113b6565b611c44565b90611918565b5b565b6128135f61280361281994936002611387565b019161280e836113b6565b612772565b90611918565b6127ee565b90565b61283561283061283a9261281e565b610508565b610505565b90565b612846906106cf565b90565b6128529061283d565b90565b61285e906106eb565b90565b60801c90565b61287361287891612861565b6103d3565b90565b6128859054612867565b90565b9160206128a99294936128a260408201965f830190610638565b0190611664565b565b5f7f46756e64696e6720676f616c206e6f7420726561636865640000000000000000910152565b6128df6018602092610eac565b6128e8816128ab565b0190565b6129019060208101905f8183039101526128d2565b90565b1561290b57565b612913610292565b62461bcd60e51b815280612929600482016128ec565b0390fd5b90565b9050519061293d8261079a565b565b9060208282031261295857612955915f01612930565b90565b61029c565b61296690610359565b9052565b91602061298b92949361298460408201965f83019061295d565b019061295d565b565b5f0190565b90565b6129a96129a46129ae92612992565b610508565b610505565b90565b90565b6129c86129c36129cd926129b1565b610508565b610505565b90565b6129db610100611885565b90565b905051906129eb826107bd565b565b9091606082840312612a2257612a1f612a08845f85016129de565b93612a1681602086016129de565b936040016129de565b90565b61029c565b612a3090610359565b9052565b612a3d90610505565b9052565b9060e080612acf93612a595f8201515f860190612a27565b612a6b60208201516020860190612a27565b612a7d60408201516040860190612a34565b612a8f60608201516060860190612a34565b612aa160808201516080860190612a34565b612ab360a082015160a0860190612a34565b612ac560c082015160c0860190612a27565b0151910190612a34565b565b9190612ae5905f6101008501940190612a41565b565b612af090610505565b9052565b916020612b15929493612b0e60408201965f83019061295d565b0190612ae7565b565b612b3c33612b36612b30612b2b600a6113d7565b610359565b91610359565b14611ff7565b612b77612b566001612b5060028590611387565b016113d7565b612b70612b6a612b655f61203c565b610359565b91610359565b14156120a1565b612b81600b6113d7565b612b9b612b95612b905f61203c565b610359565b91610359565b14155f1461318257612bbd612bb8612bb3600b6113d7565b612849565b612855565b60206361dcd2bc91612bdb5f612bd560028790611387565b016113b6565b90612c01612be9600561287b565b94612c0c612bf5610292565b96879586948594611615565b845260048401612888565b03915afa801561317d57612c28915f9161314f575b505b612904565b612c457333c2323a14a9209d0633555b52cb3dbb8d7c400a61292d565b6020632384d3d0918390612c7c612c64612c5f600d6115d7565b6106f7565b94612c87612c70610292565b96879586948594611615565b84526004840161296a565b03915af490811561314a575f9161311c575b5090612ca4816120d6565b90612cad6105fc565b90612ccd612cc75f612cc160028590611387565b016113b6565b9361179d565b612d0b63095ea7b3916020612cf57333c2323a14a9209d0633555b52cb3dbb8d7c400a61292d565b63d54f7d5e90612d03610292565b948592611615565b82528180612d1b6004820161298d565b03915af4908115613117576020925f926130e8575b50612d4e5f8795612d59612d42610292565b97889687958694611615565b8452600484016120f1565b03925af180156130e3576130b7575b50612d7b612d76600d6115d7565b6106f7565b612db963095ea7b3916020612da37333c2323a14a9209d0633555b52cb3dbb8d7c400a61292d565b63d54f7d5e90612db1610292565b948592611615565b82528180612dc96004820161298d565b03915af49081156130b2576020925f92613083575b50612dfc5f8895612e07612df0610292565b97889687958694611615565b8452600484016120f1565b03925af1801561307e57613052575b507333c2323a14a9209d0633555b52cb3dbb8d7c400a612e359061292d565b91636e66e0709193612e47600d6115d7565b612e50906106f7565b9180918091605f612e6090612995565b612e6991610572565b6064612e74906105aa565b612e7d916105da565b90605f612e8990612995565b612e9291610572565b6064612e9d906105aa565b612ea6916105da565b9130612eb1906115e4565b934261012c612ebf906129b4565b612ec891611c44565b95612ed16129d0565b995f8b0190612edf916118b5565b60208a0190612eed916118b5565b6040890190612efb916118a7565b6060880190612f09916118a7565b6080870190612f17916118a7565b60a0860190612f25916118a7565b60c0850190612f33916118b5565b60e0840190612f41916118a7565b612f49610292565b8093612f558293611615565b82526004820190612f6591612ad1565b03815a93606094f490811561304d575f80809391505061301e575b5090612f9f7333c2323a14a9209d0633555b52cb3dbb8d7c400a61292d565b916308aa2e5d919092803b1561301957612fcb5f93612fd6612fbf610292565b96879586948594611615565b845260048401612af4565b03915af4801561301457612fe8575b50565b613007905f3d811161300d575b612fff8183610e2c565b8101906120e2565b5f612fe5565b503d612ff5565b6116a3565b611611565b61303f915060603d8111613046575b6130378183610e2c565b8101906129ed565b9150612f80565b503d61302d565b6116a3565b6130729060203d8111613077575b61306a8183610e2c565b81019061162a565b612e16565b503d613060565b6116a3565b6130a4919250833d81116130ab575b61309c8183610e2c565b81019061293f565b905f612dde565b503d613092565b6116a3565b6130d79060203d81116130dc575b6130cf8183610e2c565b81019061162a565b612d68565b503d6130c5565b6116a3565b613109919250833d8111613110575b6131018183610e2c565b81019061293f565b905f612d30565b503d6130f7565b6116a3565b61313d915060203d8111613143575b6131358183610e2c565b81019061293f565b5f612c99565b503d61312b565b6116a3565b613170915060203d8111613176575b6131688183610e2c565b81019061162a565b5f612c21565b503d61315e565b6116a3565b612c2861319b5f61319560028590611387565b016113b6565b6131b56131af671bc16d674ec80000612821565b91610505565b1015612c23565b60801b90565b906131de6fffffffffffffffffffffffffffffffff19916131bc565b9181191691161790565b906131fd6131f861320492611f2d565b611f49565b82546131c2565b9055565b613238906132313361322b61322561322060096113d7565b610359565b91610359565b14611efd565b60066131e8565b565b9061324a61ffff60801b916131bc565b9181191691161790565b61326861326361326d92611128565b610508565b611128565b90565b90565b9061328861328361328f92613254565b613270565b825461323a565b9055565b6132c3906132bc336132b66132b06132ab60096113d7565b610359565b91610359565b14611efd565b6007613273565b565b6132f5906132ee336132e86132e26132dd60096113d7565b610359565b91610359565b14611efd565b6008611960565b565b6133089061330361348a565b61330a565b565b8061332561331f61331a5f61203c565b610359565b91610359565b1461333557613333906134d8565b565b6133586133415f61203c565b5f918291631e4fbdf760e01b835260048301610372565b0390fd5b613365906132f7565b565b5f90565b613373613367565b5061337e600b6113d7565b61339861339261338d5f61203c565b610359565b91610359565b146134395760206133b96133b46133af600b6113d7565b612849565b612855565b6361dcd2bc92906133e56133cd600561287b565b946133f06133d9610292565b96879586948594611615565b845260048401612888565b03915afa908115613434575f91613406575b5090565b613427915060203d811161342d575b61341f8183610e2c565b81019061162a565b5f613402565b503d613415565b6116a3565b61345361344d671bc16d674ec80000612821565b91610505565b101590565b613488906134813361347b61347561347060096113d7565b610359565b91610359565b14611efd565b60056131e8565b565b6134926126f2565b6134ab6134a56134a0613537565b610359565b91610359565b036134b257565b6134d46134bd613537565b5f91829163118cdaa760e01b835260048301610372565b0390fd5b6134e15f6113d7565b6134eb825f611960565b9061351f6135197f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610cf0565b91610cf0565b91613528610292565b80613532816104ca565b0390a3565b61353f611517565b50339056fe6080604052346100305761001a6100146101bb565b916101de565b610022610035565b61151a610a4b823961151a90f35b61003b565b60405190565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906100679061003f565b810190811060018060401b0382111761007f57604052565b610049565b90610097610090610035565b928361005d565b565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b60018060401b0381116100c5576100c160209161003f565b0190565b610049565b90825f9392825e0152565b909291926100ea6100e5826100a9565b610084565b9381855260208501908284011161010657610104926100ca565b565b6100a5565b9080601f8301121561012957816020610126935191016100d5565b90565b6100a1565b90565b61013a8161012e565b0361014157565b5f80fd5b9050519061015282610131565b565b90916060828403126101b6575f82015160018060401b0381116101b1578361017d91840161010b565b9260208301519060018060401b0382116101ac576101a0816101a993860161010b565b93604001610145565b90565b61009d565b61009d565b610099565b6101d9611f65803803806101ce81610084565b928339810190610154565b909192565b6101f0906101f693923391909161025f565b336105a2565b565b90565b60018060a01b031690565b90565b61021d610218610222926101f8565b610206565b6101fb565b90565b61022e90610209565b90565b61023a906101fb565b90565b61024690610231565b9052565b919061025d905f6020850194019061023d565b565b91610269916102bb565b8061028461027e6102795f610225565b610231565b91610231565b1461029457610292906106b1565b565b6102b76102a05f610225565b5f918291631e4fbdf760e01b83526004830161024a565b0390fd5b906102c5916102c7565b565b906102d191610322565b565b5f1b90565b906102e460ff916102d3565b9181191691161790565b151590565b6102fc906102ee565b90565b90565b9061031761031261031e926102f3565b6102ff565b82546102d8565b9055565b9061032c9161058a565b6103375f6005610302565b565b5190565b634e487b7160e01b5f52602260045260245ffd5b9060016002830492168015610371575b602083101461036c57565b61033d565b91607f1691610361565b5f5260205f2090565b601f602091010490565b1b90565b919060086103ad9102916103a75f198461038e565b9261038e565b9181191691161790565b6103cb6103c66103d09261012e565b610206565b61012e565b90565b90565b91906103ec6103e76103f4936103b7565b6103d3565b908354610392565b9055565b5f90565b61040e916104086103f8565b916103d6565b565b5b81811061041c575050565b806104295f6001936103fc565b01610411565b9190601f811161043f575b505050565b61044b6104709361037b565b90602061045784610384565b83019310610478575b61046990610384565b0190610410565b5f808061043a565b915061046981929050610460565b1c90565b9061049a905f1990600802610486565b191690565b816104a99161048a565b906002021790565b906104bb81610339565b9060018060401b038211610579576104dd826104d78554610351565b8561042f565b602090601f831160011461051157918091610500935f92610505575b505061049f565b90555b565b90915001515f806104f9565b601f198316916105208561037b565b925f5b81811061056157509160029391856001969410610547575b50505002019055610503565b610557910151601f84169061048a565b90555f808061053b565b91936020600181928787015181550195019201610523565b610049565b90610588916104b1565b565b906105996105a092600361057e565b600461057e565b565b806105bd6105b76105b25f610225565b610231565b91610231565b146105d9576105d7916105cf5f610225565b919091610712565b565b6105fc6105e55f610225565b5f91829163ec442f0560e01b83526004830161024a565b0390fd5b60081c90565b60018060a01b031690565b61061d61062291610600565b610606565b90565b61062f9054610611565b90565b60081b90565b9061064b610100600160a81b0391610632565b9181191691161790565b61066961066461066e926101fb565b610206565b6101fb565b90565b61067a90610655565b90565b61068690610671565b90565b90565b906106a161069c6106a89261067d565b610689565b8254610638565b9055565b5f0190565b6106bb6005610625565b6106c682600561068c565b906106fa6106f47f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361067d565b9161067d565b91610703610035565b8061070d816106ac565b0390a3565b9161071f92919091610745565b565b90610734929161072f610752565b610736565b565b916107439291909161089a565b565b906107509291610721565b565b61075a610a34565b61076057565b5f63d93c066560e01b815280610778600482016106ac565b0390fd5b906107869061067d565b5f5260205260405f2090565b5f1c90565b90565b6107a66107ab91610792565b610797565b90565b6107b8905461079a565b90565b6107c49061012e565b9052565b6040906107f16107f894969593966107e760608401985f85019061023d565b60208301906107bb565b01906107bb565b565b90610805910361012e565b90565b906108145f19916102d3565b9181191691161790565b9061083361082e61083a926103b7565b6103d3565b8254610808565b9055565b634e487b7160e01b5f52601160045260245ffd5b6108616108679193929361012e565b9261012e565b820180921161087257565b61083e565b90610882910161012e565b90565b9190610898905f602085019401906107bb565b565b919091806108b86108b26108ad5f610225565b610231565b91610231565b145f14610999576108dc6108d5836108d060026107ae565b610852565b600261081e565b5b826108f86108f26108ed5f610225565b610231565b91610231565b145f1461096d5761091c6109158361091060026107ae565b6107fa565b600261081e565b5b9190916109686109566109507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9361067d565b9361067d565b9361095f610035565b91829182610885565b0390a3565b6109948261098e61097f5f879061077c565b91610989836107ae565b610877565b9061081e565b61091d565b6109ac6109a75f839061077c565b6107ae565b806109bf6109b98561012e565b9161012e565b106109e7576109d26109e29184906107fa565b6109dd5f849061077c565b61081e565b6108dd565b90610a059091925f93849363391434e360e21b8552600485016107c8565b0390fd5b5f90565b60ff1690565b610a1f610a2491610792565b610a0d565b90565b610a319054610a13565b90565b610a3c610a09565b50610a476005610a27565b9056fe60806040526004361015610013575b610788565b61001d5f3561014c565b806306fdde0314610147578063095ea7b31461014257806318160ddd1461013d57806323b872dd14610138578063313ce567146101335780633f4ba83a1461012e57806340c10f191461012957806342966c68146101245780635c975abb1461011f57806370a082311461011a578063715018a61461011557806379cc6790146101105780638456cb591461010b5780638da5cb5b1461010657806395d89b41146101015780639dc29fac146100fc578063a9059cbb146100f7578063dd62ed3e146100f25763f2fde38b0361000e57610755565b61071f565b6106bc565b610688565b610653565b61061e565b6105c9565b610595565b610562565b61052d565b6104da565b6104a7565b610455565b610422565b6103e8565b61038a565b61031b565b6102c3565b6101da565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f91031261016a57565b61015c565b5190565b60209181520190565b90825f9392825e0152565b601f801991011690565b6101b06101b96020936101be936101a78161016f565b93848093610173565b9586910161017c565b610187565b0190565b6101d79160208201915f818403910152610191565b90565b3461020a576101ea366004610160565b6102066101f56108e5565b6101fd610152565b918291826101c2565b0390f35b610158565b60018060a01b031690565b6102239061020f565b90565b61022f8161021a565b0361023657565b5f80fd5b9050359061024782610226565b565b90565b61025581610249565b0361025c57565b5f80fd5b9050359061026d8261024c565b565b9190604083820312610297578061028b610294925f860161023a565b93602001610260565b90565b61015c565b151590565b6102aa9061029c565b9052565b91906102c1905f602085019401906102a1565b565b346102f4576102f06102df6102d936600461026f565b906108ff565b6102e7610152565b918291826102ae565b0390f35b610158565b61030290610249565b9052565b9190610319905f602085019401906102f9565b565b3461034b5761032b366004610160565b61034761033661094e565b61033e610152565b91829182610306565b0390f35b610158565b90916060828403126103855761038261036b845f850161023a565b93610379816020860161023a565b93604001610260565b90565b61015c565b346103bb576103b76103a66103a0366004610350565b91610964565b6103ae610152565b918291826102ae565b0390f35b610158565b60ff1690565b6103cf906103c0565b9052565b91906103e6905f602085019401906103c6565b565b34610418576103f8366004610160565b6104146104036109b9565b61040b610152565b918291826103d3565b0390f35b610158565b5f0190565b3461045057610432366004610160565b61043a6109eb565b610442610152565b8061044c8161041d565b0390f35b610158565b346104845761046e61046836600461026f565b90610a15565b610476610152565b806104808161041d565b0390f35b610158565b906020828203126104a25761049f915f01610260565b90565b61015c565b346104d5576104bf6104ba366004610489565b610a21565b6104c7610152565b806104d18161041d565b0390f35b610158565b3461050a576104ea366004610160565b6105066104f5610a5b565b6104fd610152565b918291826102ae565b0390f35b610158565b9060208282031261052857610525915f0161023a565b90565b61015c565b3461055d5761055961054861054336600461050f565b610abb565b610550610152565b91829182610306565b0390f35b610158565b3461059057610572366004610160565b61057a610b29565b610582610152565b8061058c8161041d565b0390f35b610158565b346105c4576105ae6105a836600461026f565b90610b33565b6105b6610152565b806105c08161041d565b0390f35b610158565b346105f7576105d9366004610160565b6105e1610b6e565b6105e9610152565b806105f38161041d565b0390f35b610158565b6106059061021a565b9052565b919061061c905f602085019401906105fc565b565b3461064e5761062e366004610160565b61064a610639610bae565b610641610152565b91829182610609565b0390f35b610158565b3461068357610663366004610160565b61067f61066e610bc4565b610676610152565b918291826101c2565b0390f35b610158565b346106b7576106a161069b36600461026f565b90610bfa565b6106a9610152565b806106b38161041d565b0390f35b610158565b346106ed576106e96106d86106d236600461026f565b90610c06565b6106e0610152565b918291826102ae565b0390f35b610158565b919060408382031261071a578061070e610717925f860161023a565b9360200161023a565b90565b61015c565b346107505761074c61073b6107353660046106f2565b90610c3e565b610743610152565b91829182610306565b0390f35b610158565b346107835761076d61076836600461050f565b610ccb565b610775610152565b8061077f8161041d565b0390f35b610158565b5f80fd5b606090565b634e487b7160e01b5f52602260045260245ffd5b90600160028304921680156107c5575b60208310146107c057565b610791565b91607f16916107b5565b60209181520190565b5f5260205f2090565b905f92918054906107fb6107f4836107a5565b80946107cf565b916001811690815f146108525750600114610816575b505050565b61082391929394506107d8565b915f925b81841061083a57505001905f8080610811565b60018160209295939554848601520191019290610827565b92949550505060ff19168252151560200201905f8080610811565b90610877916107e1565b90565b634e487b7160e01b5f52604160045260245ffd5b9061089890610187565b810190811067ffffffffffffffff8211176108b257604052565b61087a565b906108d76108d0926108c7610152565b9384809261086d565b038361088e565b565b6108e2906108b7565b90565b6108ed61078c565b506108f860036108d9565b90565b5f90565b61091c9161090b6108fb565b50610914610cd6565b919091610ce3565b600190565b5f90565b5f1c90565b90565b61093961093e91610925565b61092a565b90565b61094b905461092d565b90565b610956610921565b506109616002610941565b90565b9161098e926109716108fb565b5061098661097d610cd6565b82908491610d33565b919091610dbf565b600190565b5f90565b90565b90565b6109b16109ac6109b692610997565b61099a565b6103c0565b90565b6109c1610993565b506109cc601261099d565b90565b6109d7610e5c565b6109df6109e1565b565b6109e9610f54565b565b6109f36109cf565b565b90610a0791610a02610e5c565b610a09565b565b90610a1391610f5e565b565b90610a1f916109f5565b565b610a3290610a2d610cd6565b610fbc565b565b60ff1690565b610a46610a4b91610925565b610a34565b90565b610a589054610a3a565b90565b610a636108fb565b50610a6e6005610a4e565b90565b610a85610a80610a8a9261020f565b61099a565b61020f565b90565b610a9690610a71565b90565b610aa290610a8d565b90565b90610aaf90610a99565b5f5260205260405f2090565b610ad1610ad691610aca610921565b505f610aa5565b610941565b90565b610ae1610e5c565b610ae9610b16565b565b90565b610b02610afd610b0792610aeb565b61099a565b61020f565b90565b610b1390610aee565b90565b610b27610b225f610b0a565b611061565b565b610b31610ad9565b565b90610b5091610b4b81610b44610cd6565b8491610d33565b610fbc565b565b610b5a610e5c565b610b62610b64565b565b610b6c611123565b565b610b76610b52565b565b5f90565b60081c90565b60018060a01b031690565b610b99610b9e91610b7c565b610b82565b90565b610bab9054610b8d565b90565b610bb6610b78565b50610bc16005610ba1565b90565b610bcc61078c565b50610bd760046108d9565b90565b90610bec91610be7610e5c565b610bee565b565b90610bf891610fbc565b565b90610c0491610bda565b565b610c2391610c126108fb565b50610c1b610cd6565b919091610dbf565b600190565b90610c3290610a99565b5f5260205260405f2090565b610c6391610c59610c5e92610c51610921565b506001610c28565b610aa5565b610941565b90565b610c7790610c72610e5c565b610c79565b565b80610c94610c8e610c895f610b0a565b61021a565b9161021a565b14610ca457610ca290611061565b565b610cc7610cb05f610b0a565b5f918291631e4fbdf760e01b835260048301610609565b0390fd5b610cd490610c66565b565b610cde610b78565b503390565b91610cf19291600192611182565b565b604090610d1c610d239496959396610d1260608401985f8501906105fc565b60208301906102f9565b01906102f9565b565b90610d309103610249565b90565b929192610d41818390610c3e565b9081610d56610d505f19610249565b91610249565b03610d63575b5050509050565b81610d76610d7087610249565b91610249565b10610d9c57610d939394610d8b919392610d25565b905f92611182565b805f8080610d5c565b50610dbb849291925f938493637dc7a0d960e11b855260048501610cf3565b0390fd5b9182610ddb610dd5610dd05f610b0a565b61021a565b9161021a565b14610e355781610dfb610df5610df05f610b0a565b61021a565b9161021a565b14610e0e57610e0c92919091611291565b565b610e31610e1a5f610b0a565b5f91829163ec442f0560e01b835260048301610609565b0390fd5b610e58610e415f610b0a565b5f918291634b637e8f60e11b835260048301610609565b0390fd5b610e64610bae565b610e7d610e77610e72610cd6565b61021a565b9161021a565b03610e8457565b610ea6610e8f610cd6565b5f91829163118cdaa760e01b835260048301610609565b0390fd5b610eb26112a0565b610eba610f06565b565b5f1b90565b90610ecd60ff91610ebc565b9181191691161790565b610ee09061029c565b90565b90565b90610efb610ef6610f0292610ed7565b610ee3565b8254610ec1565b9055565b610f115f6005610ee6565b610f19610cd6565b610f4f7f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa91610f46610152565b91829182610609565b0390a1565b610f5c610eaa565b565b80610f79610f73610f6e5f610b0a565b61021a565b9161021a565b14610f9557610f9391610f8b5f610b0a565b919091611291565b565b610fb8610fa15f610b0a565b5f91829163ec442f0560e01b835260048301610609565b0390fd5b9081610fd8610fd2610fcd5f610b0a565b61021a565b9161021a565b14610ff457610ff29190610feb5f610b0a565b9091611291565b565b6110176110005f610b0a565b5f918291634b637e8f60e11b835260048301610609565b0390fd5b60081b90565b90611034610100600160a81b039161101b565b9181191691161790565b90565b9061105661105161105d92610a99565b61103e565b8254611021565b9055565b61106b6005610ba1565b611076826005611041565b906110aa6110a47f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610a99565b91610a99565b916110b3610152565b806110bd8161041d565b0390a3565b6110ca6112d3565b6110d26110d4565b565b6110e060016005610ee6565b6110e8610cd6565b61111e7f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25891611115610152565b91829182610609565b0390a1565b61112b6110c2565b565b906111395f1991610ebc565b9181191691161790565b61115761115261115c92610249565b61099a565b610249565b90565b90565b9061117761117261117e92611143565b61115f565b825461112d565b9055565b90928161119f6111996111945f610b0a565b61021a565b9161021a565b1461126a57836111bf6111b96111b45f610b0a565b61021a565b9161021a565b14611243576111e3836111de6111d760018690610c28565b8790610aa5565b611162565b6111ed575b505050565b9190916112386112266112207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593610a99565b93610a99565b9361122f610152565b91829182610306565b0390a35f80806111e8565b61126661124f5f610b0a565b5f918291634a1406b160e11b835260048301610609565b0390fd5b61128d6112765f610b0a565b5f91829163e602df0560e01b835260048301610609565b0390fd5b9161129e92919091611321565b565b6112b16112ab610a5b565b1561029c565b6112b757565b5f638dfc202b60e01b8152806112cf6004820161041d565b0390fd5b6112db610a5b565b6112e157565b5f63d93c066560e01b8152806112f96004820161041d565b0390fd5b90611310929161130b6112d3565b611312565b565b9161131f92919091611375565b565b9061132c92916112fd565b565b634e487b7160e01b5f52601160045260245ffd5b61135161135791939293610249565b92610249565b820180921161136257565b61132e565b906113729101610249565b90565b9190918061139361138d6113885f610b0a565b61021a565b9161021a565b145f14611474576113b76113b0836113ab6002610941565b611342565b6002611162565b5b826113d36113cd6113c85f610b0a565b61021a565b9161021a565b145f14611448576113f76113f0836113eb6002610941565b610d25565b6002611162565b5b91909161144361143161142b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93610a99565b93610a99565b9361143a610152565b91829182610306565b0390a3565b61146f8261146961145a5f8790610aa5565b9161146483610941565b611367565b90611162565b6113f8565b6114876114825f8390610aa5565b610941565b8061149a61149485610249565b91610249565b106114c2576114ad6114bd918490610d25565b6114b85f8490610aa5565b611162565b6113b8565b906114e09091925f93849363391434e360e21b855260048501610cf3565b0390fdfecborAuxdataa2646970667358221220ce531c4ba48e221b172bf07c1ef10d1e0bd8302714ca0ef0960cd81f34898c6e64736f6c634300081a0033cborAuxdataa26469706673582212200c30c324a10d5d552877a7751dc6d864c78336aef3221a61da46defd6f9d3bc864736f6c634300081a0033

CBOR Auxdata

These values are what Sourcify extracted from the recompiled bytecode. If these values are different in the on-chain bytecode, they will show up in Transformations section.

CBOR Auxdata id: 1

View on IPFS Logo
Solidity metadata.json IPFS hash: QmTXmSUKQVNNfZ7Wrkdy8jy66bnfZBtWy7eTvRNfAerKcr
RawDecoded
Length: 53 bytes
0xa26469706673582212204d236f042c4ff6d285ae548fa48fd6601e15e0701d637513b922d4c5e76c503f64736f6c634300081a0033

CBOR Auxdata id: 2

View on IPFS Logo
Solidity metadata.json IPFS hash: QmY9kU9sgmjxTvfFNy88j128xb72iQkzgs8DXiGPZFnbdP
RawDecoded
Length: 53 bytes
0xa264697066735822122091c9fe197ec97a00f73d1744cb9ab2425597cbe8298909abd3730b5bec324eee64736f6c634300081a0033

Transformations

CBOR Auxdata Transformations

Byte OffsetsLength (bytes)Values
2162153
Original (recompiled):0xa264697066735822122091c9fe197ec97a00f73d1744cb9ab2425597cbe8298909abd3730b5bec324eee64736f6c634300081a0033
Transformed (onchain):0xa2646970667358221220ce531c4ba48e221b172bf07c1ef10d1e0bd8302714ca0ef0960cd81f34898c6e64736f6c634300081a0033
2167453
Original (recompiled):0xa26469706673582212204d236f042c4ff6d285ae548fa48fd6601e15e0701d637513b922d4c5e76c503f64736f6c634300081a0033
Transformed (onchain):0xa26469706673582212200c30c324a10d5d552877a7751dc6d864c78336aef3221a61da46defd6f9d3bc864736f6c634300081a0033

Storage Layout

SlotOffsetBytesLabelTypeContract
0020_owneraddresssrc/TokenFactoryCore.sol:TokenFactoryCore
1032agentTokenAddressesaddress[]src/TokenFactoryCore.sol:TokenFactoryCore
2032tokenRegistrymapping(address ⇒ struct TokenFactoryCore.AgentToken)src/TokenFactoryCore.sol:TokenFactoryCore
3032tokenNamesmapping(address ⇒ string)src/TokenFactoryCore.sol:TokenFactoryCore
4032tokenSymbolsmapping(address ⇒ string)src/TokenFactoryCore.sol:TokenFactoryCore
5016tokenCreationFeeuint128src/TokenFactoryCore.sol:TokenFactoryCore
51616fundingGoaluint128src/TokenFactoryCore.sol:TokenFactoryCore
6016initialPriceuint128src/TokenFactoryCore.sol:TokenFactoryCore
61616bondingCurveKuint128src/TokenFactoryCore.sol:TokenFactoryCore
7016minimumTokenPurchaseuint128src/TokenFactoryCore.sol:TokenFactoryCore
7162feeuint16src/TokenFactoryCore.sol:TokenFactoryCore
8020feeRecipientaddresssrc/TokenFactoryCore.sol:TokenFactoryCore
9020adminContractaddresssrc/TokenFactoryCore.sol:TokenFactoryCore
10020tradingContractaddresssrc/TokenFactoryCore.sol:TokenFactoryCore
11020torPriceContractaddresssrc/TokenFactoryCore.sol:TokenFactoryCore
12032collectedFeesuint256src/TokenFactoryCore.sol:TokenFactoryCore
13020paymentTokencontract IERC20src/TokenFactoryCore.sol:TokenFactoryCore

Standard JSON Input

This isn't the original compiler JSON data. Generated for compatibility.

Loading...

Standard JSON Output

This isn't the original compiler JSON data. Generated for compatibility.

Loading...