0 txs
0 calls
constructor
constructor(address _ecdsaVerifier, address _router)
functions
P256_VERIFIER
viewfunction P256_VERIFIER() view returns (address)
pccsRouter
viewfunction pccsRouter() view returns (address)
quoteVersion
viewfunction quoteVersion() view returns (uint16)
verifyQuote
viewfunction verifyQuote(tuple header, bytes rawQuote) view returns (bool success, bytes output)
verifyZkOutput
viewfunction verifyZkOutput(bytes outputBytes) view returns (bool success, bytes output)
events
No events.
errors
No errors.
creation bytecode
0x60e0346100d057601f61561138819003918201601f19168301916001600160401b038311848410176100d55780849260409485528339810103126100d057610052602061004b836100eb565b92016100eb565b6080919091526001600160a01b031660a052600460c0526040516155119081610100823960805181818160c10152614e06015260a05181818161010601528181610c0b01528181611d70015281816134ac0152614196015260c051818181607d0152818161152d0152818161188001528181611a1001526141690152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100d05756fe6080604052600436101561001257600080fd5b60003560e01c80630207783714610067578063536c633d146100625780639e0fb0bf1461005d5780639ffa5fd9146100585763f14951141461005357600080fd5b610213565b6101c6565b6100f0565b6100ab565b346100a65760003660031901126100a65761ffff7f00000000000000000000000000000000000000000000000000000000000000001660805260206080f35b600080fd5b346100a65760003660031901126100a6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100a65760003660031901126100a6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9181601f840112156100a6578235916001600160401b0383116100a657602083818601950101116100a657565b60005b8381106101755750506000910152565b8181015183820152602001610165565b9060209161019e81518092818552858086019101610162565b601f01601f1916010190565b6040906101c39392151581528160208201520190610185565b90565b346100a65760203660031901126100a6576004356001600160401b0381116100a6576101f96101ff913690600401610135565b90610672565b9061020f604051928392836101aa565b0390f35b346100a657366003190161010081126100a65760e0136100a65760e4356001600160401b0381116100a65761024f6101ff913690600401610135565b90610997565b906002116100a65790600290565b90929192836002116100a65783116100a657600201916001190190565b906030116100a65790603090565b90929192836030116100a65783116100a65760300191602f190190565b906040116100a65790604090565b906080116100a65760400190604090565b906082116100a65760800190600290565b906086116100a65760820190600490565b90610206116100a6576086019061018090565b90610246116100a6576102060190604090565b90610248116100a6576102460190600290565b9092919283610248116100a65783116100a6576102480191610247190190565b909392938483116100a65784116100a6578101920390565b634e487b7160e01b600052604160045260246000fd5b61018081019081106001600160401b0382111761038f57604052565b61035d565b608081019081106001600160401b0382111761038f57604052565b604081019081106001600160401b0382111761038f57604052565b606081019081106001600160401b0382111761038f57604052565b60e081019081106001600160401b0382111761038f57604052565b6101e081019081106001600160401b0382111761038f57604052565b90601f801991011681019081106001600160401b0382111761038f57604052565b6040519061044c60608361041c565b565b6040519061044c60c08361041c565b6040519061044c60a08361041c565b6040519061044c6101808361041c565b6040519061044c6101208361041c565b6001600160401b03811161038f57601f01601f191660200190565b604051906104b660408361041c565b601082526f556e6b6e6f776e20544545207479706560801b6020830152565b356001600160f01b03198116929190600282106104f0575050565b6001600160f01b031960029290920360031b82901b16169150565b634e487b7160e01b600052601160045260246000fd5b61ffff166002019061ffff821161053457565b61050b565b906048820180921161053457565b906020820180921161053457565b906040820180921161053457565b906060820180921161053457565b906080820180921161053457565b90610180820180921161053457565b906004820180921161053457565b906001820180921161053457565b6102480190816102481161053457565b906002820180921161053457565b90601b820180921161053457565b906019820180921161053457565b9190820180921161053457565b6040519061060060608361041c565b60268252650e6dac2e8c6d60d31b6040837f466f756e64206f6e65206f72206d6f726520636f6c6c61746572616c73206d6960208201520152565b9291926106478261048c565b91610655604051938461041c565b8294818452818301116100a6578281602093846000960137010152565b919060008160081161072457506001600160e01b03196004840135168015159081610715575b50610705576106cb6106c46106bf6106b96106b38588610255565b906104d5565b60f01c90565b610521565b61ffff1690565b926106df82826106da87610539565b610b6a565b9384156106fa576101c3926106f392610263565b369161063b565b5050506101c36105f1565b5090506107106104a7565b600091565b608160e01b1415905038610698565b80fd5b6040519061073482610373565b60606101608360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201526000610120820152826101408201520152565b6040519061079582610394565b60608083600081528160208201528160408201520152565b604051906107ba826103af565b816060815260206107c9610788565b910152565b604051906107db826103ca565b81606081526060602082015260408051916107f583610394565b6107fd610727565b8352606060208401528151610811816103af565b600081526060602082015282840152815161082b816103ca565b600081526000602082015261083e6107ad565b8382015260608401520152565b6001600160e01b03198116036100a657565b356101c38161084b565b61ffff8116036100a657565b6001600160f01b03198116036100a657565b359061044c82610873565b359061044c8261084b565b6001600160801b03198116036100a657565b359061044c8261089b565b35906bffffffffffffffffffffffff19821682036100a657565b91908260e09103126100a6576040516108ea816103e5565b60c06107c981839580356108fd81610867565b8552602081013561090d81610873565b602086015261091e60408201610890565b604086015261092f60608201610885565b606086015261094060808201610885565b608086015261095160a082016108ad565b60a0860152016108b8565b6040519061096b60408361041c565b602082527f6661696c656420746f207061727365206c6f63616c20697376207265706f72746020830152565b61099f6107ce565b506109ac82826004610f25565b93949192909415610ab557506109c56106f38683610280565b916001600160e01b03196109d9604461085d565b16610a45576109f0906109ea610727565b5061165a565b919015610a3757610a3395610a0d916106f3916101b05b9161028e565b92610a1661043d565b91610a223660046108d2565b83526020830152604082015261179c565b9091565b50505050505061071061095c565b9490608160e01b6001600160e01b0319610a5f604461085d565b1603610aa7576106f3610a8191610a78610a33986110eb565b93610278610a07565b92610a8a61043d565b91610a963660046108d2565b83526020830152604082015261140e565b5050505050506107106104a7565b9594505050505060009190565b359060208110610ad0575090565b6000199060200360031b1b1690565b519081151582036100a657565b91908260409103126100a6576020610b0383610adf565b92015190565b634e487b7160e01b600052602160045260246000fd5b60041115610b2957565b610b09565b6040513d6000823e3d90fd5b3d15610b65573d90610b4b8261048c565b91610b59604051938461041c565b82523d6000602084013e565b606090565b9091610bea610b89610b8f610b89610b8186610547565b868689610345565b90610ac2565b94610bb0610b89610b9f87610547565b610ba888610555565b908785610345565b94610bd1610b89610bc083610555565b610bc984610563565b908886610345565b94610be4610bde83610563565b92610571565b92610345565b6040805163943374c960e01b81526003600482015291946001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016949092909181602481885afa908115610dff57600090600092610e45575b5015918215610e3a575b5050610e31576040805163943374c960e01b8152600060048201529081602481875afa908115610dff57600090600092610e0f575b5015918215610e04575b5050610db35760408051630c64c7b960e41b8152600060048201529081602481865afa908115610dff57600090600092610dcd575b5015918215610dc2575b5050610dbb57604051630c64c7b960e41b6020820190815260026024830152600091829190610d0d81604481015b03601f19810183528261041c565b5190845afa90600080610d1e610b3a565b604051630c64c7b960e41b602082019081526001602483015291949190610d488160448101610cff565b51915afa610d54610b3a565b600091600094600014610d8e5750505080602080610d7793518301019101610aec565b90505b8214918215610d8857505090565b14919050565b919350915015610db35780602080610dab93518301019101610aec565b905090610d7a565b505050600090565b5050600090565b141590503880610cd1565b9050610df1915060403d604011610df8575b610de9818361041c565b810190610aec565b9038610cc7565b503d610ddf565b610b2e565b141590503880610c92565b9050610e2a915060403d604011610df857610de9818361041c565b9038610c88565b50505050600090565b141590503880610c53565b9050610e60915060403d604011610df857610de9818361041c565b9038610c49565b60851981019190821161053457565b602003906020821161053457565b60001981019190821161053457565b60011981019190821161053457565b9190820391821161053457565b60405190610ebe60408361041c565b601982527f71756f7465206c656e67746820697320696e636f7272656374000000000000006020830152565b60405190610ef960408361041c565b601882527f6661696c656420746f20706172736520617574686461746100000000000000006020830152565b9190606091610f326107ce565b90610f606001600160e01b0319610f4b6040880161085d565b16958287159182988315611030575b506119f4565b809691801561102457505060309060001461101b57610f7e9061057f565b610f8c6106f382848761028e565b94610fb5610faf610faa6106f3610fa28661058e565b86888b610345565b611b0e565b9261058e565b9382610fc18686610ea2565b1061100857505091610fe19391610be4610fdb94836105e4565b90611ba7565b919482828715610fef575050565b9350939450945050600093611002610eea565b93929190565b9450949550505050600093611002610eaf565b50610278610f7e565b97909650859450915050565b608160e01b14925038610f5a565b6040519061104b82610400565b60606101c0836000815282602082015282604082015260008382015260006080820152600060a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152826101a08201520152565b9060208251920151916001600160801b0319831692601082106110d0575050565b6001600160801b031960109290920360031b82901b16169150565b9061123f6110f761103e565b9261111a61110c61110783611e19565b6110af565b6001600160801b0319168552565b61112381611ecc565b602085015261113181611f55565b604085015261117861116761115761114b610faa85611fdd565b6001600160401b031690565b60c01b6001600160c01b03191690565b6001600160c01b0319166060860152565b61119e61118d61115761114b610faa85612065565b6001600160c01b0319166080860152565b6111c46111b361115761114b610faa856120ed565b6001600160c01b03191660a0860152565b6111cd81612175565b60c08501526111db816121fd565b60e08501526111e981612285565b6101008501526111f88161230f565b61012085015261120781612399565b61014085015261121681612423565b610160850152611225816124ad565b61018085015261123481612537565b6101a08501526125c1565b6101c0830152565b6040519060c082018281106001600160401b0382111761038f57604052600060a08360608152611275610788565b60208201526060604082015260405161128d816103ca565b606081528360208201528360408201526060820152606060808201520152565b604051906112bc60608361041c565b602982526843422053746174757360b81b6040837f4661696c656420746f206c6f6361746520612076616c696420464d535043205460208201520152565b60081115610b2957565b6040519061131360608361041c565b602d82526c6c65205443422053746174757360981b6040837f4661696c656420746f206c6f6361746520612076616c6964205444584d6f647560208201520152565b6040519061136460408361041c565b6016825275151116135bd91d5b194818da1958dac819985a5b195960521b6020830152565b80516020909101516001600160d01b03198116929190600682106113ab575050565b6001600160d01b031960069290920360031b82901b16169150565b634e487b7160e01b600052603260045260246000fd5b8051156113e95760200190565b6113c6565b80518210156113e95760209160051b010190565b6008821015610b295752565b929061143e9194929461141f611247565b5084516040015186906001600160e01b03191692604087015193613413565b9491156115ca57506040840180519161147660208701936020855197019661147088516001600160801b031990511690565b916136c5565b9791969096156115ba57805151608083015161149b916001600160801b031916613841565b9390929491501580156115a7575b611594575160408101516060909101516114cf9392906001600160c01b031916916139d0565b968715611583576101c396979861151260406115096115749660a06114f8819861151998613a21565b91015161150481610b1f565b613aa2565b98510151611389565b95516113ee565b5101519261156361152861044e565b61ffff7f000000000000000000000000000000000000000000000000000000000000000016815295608160e01b602088015260408701611402565b6001600160d01b0319166060850152565b608083015260a0820152613bac565b505050505050915050610710611355565b5050505050505050915050610710611304565b506115b1846112fa565b600684146114a9565b50505050509150506107106112ad565b60009450925050565b80516020909101516001600160e01b03198116929190600482106115f5575050565b6001600160e01b031960049290920360031b82901b16169150565b90602082519201519163ffffffff19831692601c821061162e575050565b63ffffffff19601c9290920360031b82901b16169150565b602081519101519060208110610ad0575090565b611662610727565b90610180815103611796578061168e61168061110761178b94611e19565b6001600160801b0319168452565b6116b36116a261169d8361264b565b6115d3565b6001600160e01b0319166020850152565b6116d56116c76116c2836126d3565b611610565b63ffffffff19166040850152565b6116f56116e46111078361275b565b6001600160801b0319166060850152565b611706611701826127e3565b611646565b60808401526117176117018261286b565b60a0840152611728611701826128f3565b60c08401526117368161297b565b60e084015261175961174d6106c4610faa84612a04565b61ffff16610100850152565b61177761176b6106c4610faa84612a8e565b61ffff16610120850152565b61178081612b18565b610140840152612ba2565b610160820152600191565b50600091565b9092826117c99395946117ad611247565b5083516040908101516001600160e01b03191694015193613413565b9291939084156115ca57506000928380805b60408401519182518810156118d4575050611806906117ff876020860151926113ee565b5190613c18565b919091958261181b57600101959190916117db565b94959293929190505b801580156118c1575b6118b357509061157460a061186c6118518695836101c39998015161150481610b1f565b9560406118648160208901510151611389565b9601516113ee565b5101519261156361187b61044e565b61ffff7f0000000000000000000000000000000000000000000000000000000000000000168152956000602088015260408701611402565b9550505050506101c36112ad565b506118cb826112fa565b6006821461182d565b915091949550929192611824565b604051906118f160608361041c565b60218252606d60f81b6040837f51756f7465206c656e677468206973206c657373207468616e206d696e696d7560208201520152565b356101c381610867565b6040519061194060408361041c565b601082526f0accae4e6d2dedc40dad2e6dac2e8c6d60831b6020830152565b356101c381610873565b6040519061197860408361041c565b602082527f556e737570706f72746564206174746573746174696f6e206b657920747970656020830152565b356101c38161089b565b604051906119bd60608361041c565b6022825261125160f21b6040837f4e6f7420612076616c696420496e74656c205347582051452056656e646f722060208201520152565b90916103fc60609310611ac757611a0a82611927565b61ffff807f000000000000000000000000000000000000000000000000000000000000000016911603611ab957600160f91b6001600160f01b0319611a516020850161195f565b1603611aab5715611a9e576f939a7233f79c4ca9940a0db3957f060760801b906001600160801b031990611a879060a0016119a4565b1603611a9257600191565b506000906101c36119ae565b50506000906101c36104a7565b5050506000906101c3611969565b5050506000906101c3611931565b5050506000906101c36118e2565b600181901b91906001600160ff1b0381160361053457565b8181029291811591840414171561053457565b603f81116105345760100a90565b60009190825b8151841015611b835760006020858401015190611b65611b50600f8460f81c9460fc1c9416611b4a611b458a611ad5565b611b00565b90611aed565b92611b4a611b45611b608a611ad5565b61059c565b82018092116105345750810180911161053457600190930192611b14565b925050565b908160209103126100a657516001600160a01b03811681036100a65790565b90611bb06107ce565b91611bbe6106f383836102ab565b8352611bcd6106f383836102b9565b60208401526006611be4610faa6106f385856102ca565b03611e0f57611bf9610faa6106f384846102db565b611c066106f384846102ec565b92611c7f611c1482856102ff565b611c296040890192602084510192369161063b565b90526040611c7861ffff611c466106c4610faa6106f3898c610312565b845184015161ffff8216905216926020611c69611c62866105aa565b888b610325565b9490925101510192369161063b565b90526105aa565b92611c9d6106c4610faa6106f3611c95886105ba565b888787610345565b93600561ffff861603611e045760609392611d366106f3611d41948863ffffffff611d18611d2a611ce78f99611ce26040611d3c9c01968f885101519061ffff169052565b6105ba565b6020611d10611d07610faa6106f38d86611d008161058e565b918d610345565b63ffffffff1690565b93849261058e565b9d8e96510151019063ffffffff169052565b1694610be486836105e4565b946105e4565b610e67565b03611dfc57611d4f8361165a565b60408601515215611dfc5760405163e99bba5360e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610dff57611db293600091611dcd575b50613d37565b604084810151606001510152928315611dc757565b60009350565b611def915060203d602011611df5575b611de7818361041c565b810190611b88565b38611dac565b503d611ddd565b506000939050565b506000969350505050565b5060009260609150565b80516010116100a657611e2c601061048c565b90611e3a604051928361041c565b60108252611e48601061048c565b6020830190601f19013682379060200160105b6020811015611e9c5780611e7d5750600019905b518251821691191617905290565b611e91611e8c611e9692610e76565b613e4b565b610e84565b90611e6f565b909182518152602081018091116105345791602081018091116105345790601f19810190811115611e5b5761050b565b80516040116100a657611edf603061048c565b90611eed604051928361041c565b60308252611efb603061048c565b6020830190601f1901368237603080920190915b6020811015611f255780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f19810190811115611f0f5761050b565b80516070116100a657611f68603061048c565b90611f76604051928361041c565b60308252611f84603061048c565b6020830190601f19013682379060600160305b6020811015611fad5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f19810190811115611f975761050b565b80516078116100a657611ff0600861048c565b90611ffe604051928361041c565b6008825261200c600861048c565b6020830190601f19013682379060900160085b60208110156120355780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f1981019081111561201f5761050b565b80516080116100a657612078600861048c565b90612086604051928361041c565b60088252612094600861048c565b6020830190601f19013682379060980160085b60208110156120bd5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156120a75761050b565b80516088116100a657612100600861048c565b9061210e604051928361041c565b6008825261211c600861048c565b6020830190601f19013682379060a00160085b60208110156121455780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f1981019081111561212f5761050b565b805160b8116100a657612188603061048c565b90612196604051928361041c565b603082526121a4603061048c565b6020830190601f19013682379060a80160305b60208110156121cd5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156121b75761050b565b805160e8116100a657612210603061048c565b9061221e604051928361041c565b6030825261222c603061048c565b6020830190601f19013682379060d80160305b60208110156122555780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f1981019081111561223f5761050b565b8051610118116100a657612299603061048c565b906122a7604051928361041c565b603082526122b5603061048c565b6020830190601f1901368237906101080160305b60208110156122df5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156122c95761050b565b8051610148116100a657612323603061048c565b90612331604051928361041c565b6030825261233f603061048c565b6020830190601f1901368237906101380160305b60208110156123695780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156123535761050b565b8051610178116100a6576123ad603061048c565b906123bb604051928361041c565b603082526123c9603061048c565b6020830190601f1901368237906101680160305b60208110156123f35780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156123dd5761050b565b80516101a8116100a657612437603061048c565b90612445604051928361041c565b60308252612453603061048c565b6020830190601f1901368237906101980160305b602081101561247d5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156124675761050b565b80516101d8116100a6576124c1603061048c565b906124cf604051928361041c565b603082526124dd603061048c565b6020830190601f1901368237906101c80160305b60208110156125075780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156124f15761050b565b8051610208116100a65761254b603061048c565b90612559604051928361041c565b60308252612567603061048c565b6020830190601f1901368237906101f80160305b60208110156125915780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f1981019081111561257b5761050b565b8051610248116100a6576125d5604061048c565b906125e3604051928361041c565b604082526125f1604061048c565b6020830190601f1901368237906102280160405b602081101561261b5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156126055761050b565b80516014116100a65761265e600461048c565b9061266c604051928361041c565b6004825261267a600461048c565b6020830190601f19013682379060300160045b60208110156126a35780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f1981019081111561268d5761050b565b80516030116100a6576126e6601c61048c565b906126f4604051928361041c565b601c8252612702601c61048c565b6020830190601f190136823790603401601c5b602081101561272b5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156127155761050b565b80516040116100a65761276e601061048c565b9061277c604051928361041c565b6010825261278a601061048c565b6020830190601f19013682379060500160105b60208110156127b35780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f1981019081111561279d5761050b565b80516060116100a6576127f6602061048c565b90612804604051928361041c565b60208252612812602061048c565b6020830190601f19013682379060600160205b602081101561283b5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156128255761050b565b80516080116100a65761287e602061048c565b9061288c604051928361041c565b6020825261289a602061048c565b6020830190601f19013682379060800160205b60208110156128c35780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156128ad5761050b565b805160a0116100a657612906602061048c565b90612914604051928361041c565b60208252612922602061048c565b6020830190601f19013682379060a00160205b602081101561294b5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156129355761050b565b8051610100116100a65761298f606061048c565b9061299d604051928361041c565b606082526129ab606061048c565b6020830190601f19013682379060c00160605b60208110156129d45780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f198101908111156129be5761050b565b8051610102116100a657612a18600261048c565b90612a26604051928361041c565b60028252612a34600261048c565b6020830190601f1901368237906101200160025b6020811015612a5e5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f19810190811115612a485761050b565b8051610104116100a657612aa2600261048c565b90612ab0604051928361041c565b60028252612abe600261048c565b6020830190601f1901368237906101220160025b6020811015612ae85780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f19810190811115612ad25761050b565b8051610140116100a657612b2c603c61048c565b90612b3a604051928361041c565b603c8252612b48603c61048c565b6020830190601f19013682379061012401603c5b6020811015612b725780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f19810190811115612b5c5761050b565b8051610180116100a657612bb6604061048c565b90612bc4604051928361041c565b60408252612bd2604061048c565b6020830190601f1901368237906101600160405b6020811015612bfc5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f19810190811115612be65761050b565b80516020116100a657612c3f602061048c565b90612c4d604051928361041c565b60208252612c5b602061048c565b6020830190601f1901368237602080920190915b6020811015612c855780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f19810190811115612c6f5761050b565b80516040116100a657612cc8602061048c565b90612cd6604051928361041c565b60208252612ce4602061048c565b6020830190601f19013682379060400160205b6020811015612d0d5780611e7d57509192915050565b909182518152602081018091116105345791602081018091116105345790601f19810190811115612cf75761050b565b60405190612d4c60408361041c565b6015825274496e76616c69642051455265706f7274206461746160581b6020830152565b60405190612d7f60608361041c565b60278252667920636865636b60c81b6040837f566572696669636174696f6e206661696c65642062792051454964656e74697460208201520152565b6001600160401b03811161038f5760051b60200190565b519061044c82610867565b519060ff821682036100a657565b9080601f830112156100a6578151612e0281612dbb565b92612e10604051948561041c565b81845260208085019260051b8201019283116100a657602001905b828210612e385750505090565b60208091612e4584612ddd565b815201910190612e2b565b51906001600160401b03821682036100a657565b519060088210156100a657565b81601f820112156100a65760208151910190612e8c8161048c565b92612e9a604051948561041c565b818452818301116100a6576101c3916020840190610162565b9080601f830112156100a6578151612eca81612dbb565b92612ed8604051948561041c565b81845260208085019260051b820101918383116100a65760208201905b838210612f0457505050505090565b81516001600160401b0381116100a657602091612f2687848094880101612e71565b815201910190612ef5565b51906001600160c01b0319821682036100a657565b9190916060818403126100a65760405190612f60826103ca565b81938151906001600160401b0382116100a65782612f87604094926107c994869401612e71565b8552612f9560208201612f31565b602086015201612f31565b81601f820112156100a657805190612fb782612dbb565b92612fc5604051948561041c565b828452602060608186019402830101918183116100a657602001925b828410612fef575050505090565b6060848303126100a657602060609160405161300a816103ca565b61301387612ddd565b8152613020838801612e50565b8382015261303060408801612e64565b6040820152815201930192612fe1565b9080601f830112156100a65781519161305883612dbb565b92613066604051948561041c565b80845260208085019160051b830101918383116100a65760208101915b83831061309257505050505090565b82516001600160401b0381116100a65782019060a0828703601f1901126100a6576130bb61045d565b9060208301516001600160401b0381116100a6578760206130de92860101612e71565b82526130ec60408401612f31565b60208301526130fd60608401612f31565b604083015260808301516001600160401b0381116100a65787602061312492860101612e71565b606083015260a0830151916001600160401b0383116100a65761314f88602080969581960101612fa0565b6080820152815201920191613083565b906080828203126100a65761317382610adf565b9260208301516001600160401b0381116100a657830182601f820112156100a6578051906131a082612dbb565b916131ae604051938461041c565b80835260208084019160051b830101918583116100a65760208101915b83831061321457505050509260408101516001600160401b0381116100a657836131f6918301612f46565b9260608201516001600160401b0381116100a6576101c39201613040565b82516001600160401b0381116100a65782019060c0828903601f1901126100a65761323d61044e565b9061324a60208401612dd2565b825260408301516001600160401b0381116100a65789602061326e92860101612deb565b602083015260608301516001600160401b0381116100a65789602061329592860101612deb565b60408301526132a660808401612e50565b60608301526132b760a08401612e64565b608083015260c0830151916001600160401b0383116100a6576132e28a602080969581960101612eb3565b60a08201528152019201916131cb565b9092919260408201936002821015610b2957602091835265ffffffffffff60d01b16910152565b6040519061332860408361041c565b601882527f544342206e6f7420666f756e64206f72206578706972656400000000000000006020830152565b6040519061336360408361041c565b601b82527f4661696c656420746f20766572696679205835303920436861696e00000000006020830152565b906133a260209282815194859201610162565b0190565b604051906133b560608361041c565b603882527f2f6f72207165207265706f7274207369676e61747572657300000000000000006040837f4661696c656420746f20766572696679206174746573746174696f6e20616e6460208201520152565b61341082610b1f565b52565b93949190606094613422611247565b94604088019081519261344b6101608551015160208c0195602060408851920151015191613e5a565b80156136b157506001600160e01b031916159283156136a75761347360005b84515190614146565b9a9080158015613694575b61367f575090839291604060606135019897965101510151936020855195015195600014613677576000965b7f000000000000000000000000000000000000000000000000000000000000000099600060018060a01b038c16996134e560408b0151611389565b60405163e69f638360e01b81529c8d92839290600484016132f2565b03818c5afa9a8b15610dff576000998a809c819e613644575b501561362857602060049160405192838092633fcb603b60e01b82525afa8015610dff57613552928a92600092613607575b5061432d565b80156135ee575061357c926135906135ab979695936135826020946040519788938785019061338f565b9061338f565b03601f19810186528561041c565b51015160a061359e886113dc565b51015191519351946146af565b9889156135d7576135bf9060a08901613407565b86526020860152604085015260608401526080830152565b50505050505092909150916135ea6133a6565b9190565b9c9d5050505050505050505050509250916135ea613354565b61362191925060203d602011611df557611de7818361041c565b903861354c565b50505050505050505050505050925090506000916135ea613319565b929d50909a50613667929b503d8091833e61365f818361041c565b81019061315f565b9c909b919a91929091903861351a565b6001966134aa565b989950505050505050509250916135ea612d70565b5061369e8c610b1f565b60028c1461347e565b613473600261346a565b9798505050505050509250916135ea612d3d565b9160009360009260009260008060009060009260005b8a5181101561380f576136ee818c6113ee565b5184156137f9575b83806137f2575b6137d7575b84806137c3575b15613793576001600160801b03198716156137825761372c604082015188614745565b613763575b508b5b613740576001016136db565b50505050505050909192505b831561375457565b60009350600792506000199150565b6080015160019c509099508b985061377a816112fa565b988098613731565b50505050505050509091925061374c565b5061379d856112fa565b600685146137ab578b613734565b50505050505050935050505060009060069060001990565b506137cd866112fa565b6006861415613709565b9450925060019260808501516137ec816112fa565b94613702565b50826136fd565b925090506138078287614722565b9190926136f6565b505050505050509091925061374c565b6040519061382e60408361041c565b60048252635444585f60e01b6020830152565b8060001a9060011a60609160009082156139bc579061357c916138b461386561381f565b60405160f887901b6001600160f81b03191660208201526138a690613896906138918160218101610cff565b61477f565b604051968793602085019061338f565b03601f19810185528461041c565b60009460009060005b88518110156139ad576138d0818a6113ee565b516138eb815188906020815191012090602081519101201490565b6138f857506001016138bd565b9697985050909192935060808501519360005b855181101561399e5761393261392c61392483896113ee565b515160ff1690565b60ff1690565b8510156139415760010161390b565b925050506040929394955061395991506001936113ee565b510151613965816112fa565b93613982602060608501519401516001600160401b0360c01b1690565b915b156139925760019493929190565b60009450600793929190565b50945094959150959150613984565b50959294965096925050613984565b505091505060019160009190606090600090565b92908351815181149485613a00575b505050826139ec57505090565b6001600160c01b0319918216911614919050565b613a179293955081613a119161519a565b9261519a565b14913880806139df565b600092916008811015610b2957600403613a9e57613a3e816112fa565b80158015613a8b575b613a82575b613a55816112fa565b60038114908115613a6e575b50613a6857565b60059150565b60029150613a7b816112fa565b1438613a61565b60049250613a4c565b50613a95816112fa565b60018114613a47565b9150565b91906003600093613ab281610b1f565b03613a9e576008811015610b295780158015613a8b57613a8257613a55816112fa565b602081016020825282518091526040820191602060408360051b8301019401926000915b838310613b0857505050505090565b9091929394602080613b26600193603f198682030187528951610185565b97019301930191939290613af9565b60f09190911b6001600160f01b03191681526001600160e01b03199091166002820152909392916008851015610b2957600d9460f81b600683015265ffffffffffff60d01b166007820152613b938251809360208785019101610162565b01613ba78251809360208685019101610162565b010190565b61ffff8151169063ffffffff60e01b602082015116916040820151916008831015610b2957613582610cff916101c39465ffffffffffff60d01b60608301511690613c0960a0608085015194015160405195869160208301613ad5565b60405197889660208801613b35565b613c2782608092949394614722565b9190930151906008821015610b295783613c4c575b508215613c465790565b50600790565b925038613c3c565b6040519061012082018281106001600160401b0382111761038f5760405260606101008360008152826020820152600060408201526000838201528260808201528260a0820152600060c08201528260e08201520152565b60405160809190613cbd838261041c565b6003815291601f19018260005b828110613cd657505050565b602090613ce1613c54565b82828501015201613cca565b90613cf782612dbb565b613d04604051918261041c565b8281528092613d15601f1991612dbb565b019060005b828110613d2657505050565b806060602080938501015201613d1a565b91929092600561ffff613d486107ad565b95613d51613cac565b87521603613e4357613d62906147e6565b9190938415613e3957613d91613d81613d7a856113dc565b5186614a3a565b83929192519060208501526113dc565b52613da4613d9f8451610e84565b613ced565b9460005b8651811015613de35780613dc6613dc060019361059c565b876113ee565b51613dd1828a6113ee565b52613ddc81896113ee565b5001613da8565b5092509293613df29194614b3c565b9060005b8251811015613e335780613e2c613e0f600193866113ee565b518651613e1b8461059c565b91613e2683836113ee565b526113ee565b5001613df6565b50929050565b6000945092509050565b506000929150565b601f8111610534576101000a90565b613ebf60209283613eae613e6f600095611646565b9660405192839181613e8a8185019788815193849201610162565b8301613e9e82518093858085019101610162565b010103601f19810183528261041c565b604051928392839251928391610162565b8101039060025afa15610dff576000511490565b60405190613ee082610373565b60606101608360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c0820152600060e08201526000610100820152600061012082015260006101408201520152565b519060038210156100a657565b519063ffffffff821682036100a657565b519061044c8261084b565b519061044c8261089b565b81601f820112156100a657805190613f8182612dbb565b92613f8f604051948561041c565b828452602060608186019402830101918183116100a657602001925b828410613fb9575050505090565b6060848303126100a65760405190613fd0826103ca565b8451613fdb81610867565b82526020850151602083015260408501519060048210156100a6578260209260406060950152815201930192613fab565b91906040838203126100a65761402183610adf565b926020810151906001600160401b0382116100a65701610180818303126100a65761404a61046c565b9161405482613f36565b835261406260208301613f43565b602084015261407360408301612e50565b604084015261408460608301612e50565b606084015261409560808301613f43565b60808401526140a660a08301613f54565b60a08401526140b760c08301613f54565b60c08401526140c860e08301613f5f565b60e08401526140da6101008301613f5f565b6101008401526101208201516101208401526140f96101408301612dd2565b6101408401526101608201516001600160401b0381116100a65761411d9201613f6a565b61016082015290565b90929160408201936003811015610b295760209161ffff91845216910152565b90600061419292614155613ed3565b506040518094819263b9f1b94f60e01b83527f00000000000000000000000000000000000000000000000000000000000000009060048401614126565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610dff57600092600092614230575b508215614228576020810151610a3393506001600160e01b03191660608201516001600160801b03191660c08301519161422261012061421861010087015161ffff1690565b95015161ffff1690565b94614c21565b505090600090565b90925061425091503d806000833e614248818361041c565b81019061400c565b9091386141d2565b6040519061426760408361041c565b601982527f496e74656c205347582050434b20506c6174666f726d204341000000000000006020830152565b604051906142a260408361041c565b601a82527f496e74656c205347582050434b2050726f636573736f722043410000000000006020830152565b9190916040818403126100a6576142e481610adf565b9260208201516001600160401b0381116100a6576101c39201612e71565b908160209103126100a6576101c390610adf565b6040906101c3939281528160208201520190610185565b8251600093849384938493849391929091906001600160a01b03165b828510614384575b505050505015928361437c575b5082614374575b508161436f575090565b905090565b915038614365565b92503861435e565b909192939597614392613c54565b5061439c84610e84565b870361449b57506143ad86836113ee565b51955b60406143bc82856113ee565b51015142119889614482575b891561447b5750602060006143f26101006143e385886113ee565b5101516040519182809261338f565b039060025afa15610dff5761441f60005160a060e061441185886113ee565b510151990198895191614d9c565b968715614475577f89f72d7c488e5b53a77c23ebcb36970ef7eb5bcf6658e9b8292cfbe4703a8473905160208151910120146144615760010193929190614349565b505050505091506001913880808080614351565b50614351565b9650614351565b9850606061449082856113ee565b5101514210986143c8565b956144ae6144a88261059c565b846113ee565b519660606144bb86610e93565b83036145b157506040516306980d0760e21b8152600060048201819052816024816001600160a01b038b165afa908115610dff5760009161458e575b505b8051614514575b508661450c57506143b0565b989650614351565b61454491975060209061452784876113ee565b515160405163cedb978160e01b8152938492839260048401614316565b0381865afa908115610dff57600091614560575b509538614500565b614581915060203d8111614587575b614579818361041c565b810190614302565b38614558565b503d61456f565b6145a9913d8091833e6145a1818361041c565b8101906142ce565b9050386144f7565b826144f9575060206145c383866113ee565b5101516145e66145d1614258565b82906020815191012090602081519101201490565b1561464257506040516306980d0760e21b8152600260048201526000816024816001600160a01b038b165afa908115610dff57600091614627575b506144f9565b61463a913d8091833e6145a1818361041c565b905038614621565b6146619061464e614293565b6020815191012090602081519101201490565b156146a0576040516306980d0760e21b8152600160048201526000816024816001600160a01b038b165afa908115610dff5760009161462757506144f9565b50505050505050505050600090565b60006146d06020929796979493948360405192828480945193849201610162565b8101039060025afa15610dff576146e991600051614d9c565b15610db35760006147096020928360405192828480945193849201610162565b8101039060025afa15610dff576101c391600051614d9c565b91906101c39060208061ffff86511661ffff845116111595015191015190614e64565b6010825103610dbb5760005b6010811061476157505050600190565b60ff61476d82856113ee565b511682821a10610db357600101614751565b90815191604051926022600285019482800186526f30313233343536373839616263646566600f5201908201915b8281036147c257506000815260200160405250565b60016002910191600f835116516001820153600f835160041c1651815301906147ad565b6147f06003613ced565b906000815191815b600383106148095750505050600191565b8215614887578381018082116105345761482761482c918385614ec0565b614f9a565b92919061483986896113ee565b5261484d61484786896113ee565b5161507a565b61485786896113ee565b5261486285886113ee565b501561487c57600191614874916105e4565b9201916147f8565b506000959350505050565b61482c82614f9a565b6020818303126100a6578051906001600160401b0382116100a65701610120818303126100a6576148bf61047c565b918151835260208201516001600160401b0381116100a657816148e3918401612e71565b6020840152604082015160408401526060820151606084015260808201516001600160401b0381116100a6578161491b918401612e71565b608084015260a08201516001600160401b0381116100a6578161493f918401612e71565b60a084015260c082015160c084015260e08201516001600160401b0381116100a6578161496d918401612e71565b60e08401526101008201516001600160401b0381116100a6576149909201612e71565b61010082015290565b9060206101c3928181520190610185565b906080828203126100a65781516149c081610867565b9260208301516001600160401b0381116100a657826149e0918501612deb565b9260408101516001600160401b0381116100a65783614a00918301612e71565b9260608201516001600160401b0381116100a6576101c39201612e71565b929190614a35602091604086526040860190610185565b930152565b9091614a44613c54565b50614a4d610788565b604051631dbcd30f60e11b81529390926001600160a01b031660008580614a778560048301614999565b0381845afa948515610dff57600095614b0f575b50614ab59160009160c08701519160405180958194829363740e383f60e11b845260048401614a1e565b03915afa908115610dff5761044c91600091829183918491614aea575b5060608701526040860152602085015261ffff168352565b92505050614b09913d8091833e614b01818361041c565b8101906149aa565b38614ad2565b600091955091614b33614ab5933d8085833e614b2b818361041c565b810190614890565b95915091614a8b565b81519192916001600160a01b0390911690614b5681612dbb565b91614b64604051938461041c565b818352601f19614b7383612dbb565b0160005b818110614c0a575050829460005b838110614b93575050505050565b806000614ba3614bbe93856113ee565b5160405180948192631dbcd30f60e11b835260048301614999565b0381875afa8015610dff57600192600091614bf1575b50614bdf82886113ee565b52614bea81876113ee565b5001614b85565b614c04913d8091833e614b2b818361041c565b38614bd4565b602090614c15613c54565b82828801015201614b77565b949091929593600092614c3e60c088015163ffffffff60e01b1690565b16614c63614c5660a089015163ffffffff60e01b1690565b6001600160e01b03191690565b6101008801516001600160e01b03199092161494906001600160801b03191616614ca8614c9b60e08901516001600160801b03191690565b6001600160801b03191690565b906001600160801b0319161496610120870151149061ffff614cd36106c46101408a015161ffff1690565b911614916000805b610160890180518051831015614d7d57614cf883614d01926113ee565b515161ffff1690565b61ffff80861691161115614d185750600101614cdb565b969798509050604092939450614d329150600195516113ee565b510151614d3e81610b1f565b955b84614d75575b5083614d6d575b5082614d65575b5081614d5f57509190565b90509190565b915038614d54565b925038614d4d565b935038614d46565b5050509495965050909195614d40565b908160209103126100a6575190565b600092918392614dba611701614db461170185612c2c565b93612cb5565b90614dd3611701614dcd61170184612c2c565b92612cb5565b91604051936020850195865260408501526060840152608083015260a082015260a08152614e0260c08261041c565b51907f00000000000000000000000000000000000000000000000000000000000000005afa614e2f610b3a565b9015614e4e57614e4a81602080600194518301019101614d8d565b1490565b634e487b7160e01b600052600160045260246000fd5b906010825114801590614eb4575b610dbb5760005b60108110614e8957505050600190565b60ff614e9582856113ee565b511660ff80614ea484866113ee565b51161611610db357600101614e79565b50601081511415614e72565b805160609493929083811115614f38575b81811115614f30575b50828110614ee757505050565b6040519281900380845292945001601f8201601f19165b8181015185820152601f1901908115614f175790614efe565b5050600083820160200152603f01601f19168201604052565b905038614eda565b925082614ed1565b60405190614f4f60408361041c565b601982527f2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d000000000000006020830152565b60405190614f8a60408361041c565b60018252600560f91b6020830152565b614fdb604051614fab60408261041c565b601b81527f2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d00000000006020820152826152e0565b614fec614fe6614f40565b836152e0565b916000198214801561506f575b6150615761501b8361500d615020946105c8565b615015614f7b565b93614ec0565b6151a9565b60009260605b825185101561504e5761504660019161503f87866113ee565b519061526d565b940193615026565b93509161505b91506105d6565b60019291565b505050600090606090600090565b506000198314614ff9565b90606091805180615089575050565b90925060038160021c02906003811690811561517f575001600019015b6040519281845260208401918401916003600460208501936000805160206154bc833981519152605b527804080c1014181c2024282c3034383c4044484c5054585c6064603b526ef8fcf800fcd0d4d8dce0e4e8ecf0f4601a525b0191825160ff81165160061c81601e1a516000805160206154bc833981519152161760061c81601d1a516000805160206154bc833981519152161760061c90601c1a516000805160206154bc8339815191521617815201908282101561516c57600390600490615101565b5050604060009201604052526000606052565b613d3d91508401511860ff81161590601e1a150190036150a6565b805182116100a6576020012090565b9190916151b683826153b8565b90602082018091600184510160051b8401916020830192825190526001855101855260005b81519060608352808203615217575b506020908851019101908382106151db57505050508193511561520b575050565b90516001190181529150565b604051818303808252949091601f8601601f19165b82820181015184820152601f1901918215615247579161522c565b9590506020939291506000848284010152603f601f1991011681016040528352906151ea565b60405181519093929160208201601f19165b8181015186820152601f1901908115615298579061527f565b505081519184820160208401601f19165b8281015182820152601f19019182156152c257916152a9565b5050500180830190600060208301528352603f601f19910116604052565b80518251919392849082151584156153ad57602185602060001999019585010301946020601f8216810360031b9301805192878710161561538657602082101561535f575050925b83815118821c1561534c5760010192848410156153455792615328565b5050505050565b91909103601f1901945061044c92505050565b90809295939120925b85815118821c1561538f575b60010194868610156153865794615368565b50505050505050565b83838220036153745793909303601f1901965061044c945050505050565b506000955050505050565b91908283916060948051825191818311156153d6575b505050505050565b82939495969750916020806021939401950192602060405101970103019360009160208410156154b1575b601f841660200360031b9051945b85815118821c15615458575b600101948686101561542e575b9461540f565b505050505050505b90602060405192601f198482030160051c8452016040523880808080806153ce565b96848461548a575b60208192601f19868c03018152019801901561541b57948686106154285750505050505050615436565b84908920036154995784615460565b96600101948686106154285750505050505050615436565b838120925061540156fefc000000fc00686c7074787c8084888c9094989ca0a4a8acb0b4b8bcc0c4c8cca2646970667358221220c3730fa543a2b23c7ca35ed187dc14c447853dfa88142ef8782476e3ccbf93f864736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000100000000000000000000000000729e3e7542e8a6630818e9a14a67e0cb7008a5e5