60c0604052600160125f6101000a81548160ff0219169083151502179055503480156200002a575f80fd5b506040518060400160405280600881526020017f4d6f616e613430340000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f4d4f414e413430340000000000000000000000000000000000000000000000008152506012610bb833805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000111575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000108919062000382565b60405180910390fd5b62000122816200024660201b60201c565b50846002908162000134919062000601565b50836003908162000146919062000601565b508260ff1660808160ff1681525050608051600a6200016691906200086e565b82620001739190620008be565b60a0818152505050505050505f600d5f6101000a81548160ff0219169083151502179055506001600e819055506001600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555068a2a15d09519be0000060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555062000908565b60015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556200027b816200027e60201b60201c565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200036a826200033f565b9050919050565b6200037c816200035e565b82525050565b5f602082019050620003975f83018462000371565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200041957607f821691505b6020821081036200042f576200042e620003d4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000456565b6200049f868362000456565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004e9620004e3620004dd84620004b7565b620004c0565b620004b7565b9050919050565b5f819050919050565b6200050483620004c9565b6200051c6200051382620004f0565b84845462000462565b825550505050565b5f90565b6200053262000524565b6200053f818484620004f9565b505050565b5b8181101562000566576200055a5f8262000528565b60018101905062000545565b5050565b601f821115620005b5576200057f8162000435565b6200058a8462000447565b810160208510156200059a578190505b620005b2620005a98562000447565b83018262000544565b50505b505050565b5f82821c905092915050565b5f620005d75f1984600802620005ba565b1980831691505092915050565b5f620005f18383620005c6565b9150826002028217905092915050565b6200060c826200039d565b67ffffffffffffffff811115620006285762000627620003a7565b5b62000634825462000401565b620006418282856200056a565b5f60209050601f83116001811462000677575f841562000662578287015190505b6200066e8582620005e4565b865550620006dd565b601f198416620006878662000435565b5f5b82811015620006b05784890151825560018201915060208501945060208101905062000689565b86831015620006d05784890151620006cc601f891682620005c6565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200076f57808604811115620007475762000746620006e5565b5b6001851615620007575780820291505b8081029050620007678562000712565b945062000727565b94509492505050565b5f826200078957600190506200085b565b8162000798575f90506200085b565b8160018114620007b15760028114620007bc57620007f2565b60019150506200085b565b60ff841115620007d157620007d0620006e5565b5b8360020a915084821115620007eb57620007ea620006e5565b5b506200085b565b5060208310610133831016604e8410600b84101617156200082c5782820a905083811115620008265762000825620006e5565b5b6200085b565b6200083b84848460016200071e565b92509050818404811115620008555762000854620006e5565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200087a82620004b7565b9150620008878362000862565b9250620008b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000778565b905092915050565b5f620008ca82620004b7565b9150620008d783620004b7565b9250828202620008e781620004b7565b91508282048414831517620009015762000900620006e5565b5b5092915050565b60805160a05161386d620009315f395f6109fb01525f81816112160152611c37015261386d5ff3fe608060405234801561000f575f80fd5b5060043610610204575f3560e01c80638da5cb5b11610118578063ce2858ea116100ab578063e0df5b6f1161007a578063e0df5b6f146105b2578063e30c3978146105ce578063e657087b146105ec578063e985e9c51461060a578063f2fde38b1461063a57610204565b8063ce2858ea1461053e578063d547cfb714610548578063d797258014610566578063dd62ed3e1461058257610204565b8063a9059cbb116100e7578063a9059cbb146104a6578063b88d4fde146104d6578063bd1870a3146104f2578063c87b56dd1461050e57610204565b80638da5cb5b1461041e57806395d89b411461043c5780639b19251a1461045a578063a22cb4651461048a57610204565b80634f91e48c1161019b5780635c975abb1161016a5780635c975abb1461038c5780636352211e146103aa57806370a08231146103da578063715018a61461040a57806379ba50971461041457610204565b80634f91e48c14610318578063504334c21461033657806353d6fd5914610352578063589210d91461036e57610204565b806323b872dd116101d757806323b872dd146102a4578063313ce567146102c057806342842e0e146102de5780634f02c420146102fa57610204565b806306fdde0314610208578063081812fc14610226578063095ea7b31461025657806318160ddd14610286575b5f80fd5b610210610656565b60405161021d91906129b6565b60405180910390f35b610240600480360381019061023b9190612a1a565b6106e2565b60405161024d9190612a84565b60405180910390f35b610270600480360381019061026b9190612ac7565b610712565b60405161027d9190612b1f565b60405180910390f35b61028e6109f9565b60405161029b9190612b47565b60405180910390f35b6102be60048036038101906102b99190612b60565b610a1d565b005b6102c8611214565b6040516102d59190612bcb565b60405180910390f35b6102f860048036038101906102f39190612b60565b611238565b005b610302611367565b60405161030f9190612b47565b60405180910390f35b61032061136d565b60405161032d9190612b47565b60405180910390f35b610350600480360381019061034b9190612d10565b611373565b005b61036c60048036038101906103679190612db0565b611389565b005b6103766113e9565b6040516103839190612b47565b60405180910390f35b6103946113ef565b6040516103a19190612b1f565b60405180910390f35b6103c460048036038101906103bf9190612a1a565b611404565b6040516103d19190612a84565b60405180910390f35b6103f460048036038101906103ef9190612dee565b6114a2565b6040516104019190612b47565b60405180910390f35b6104126114b7565b005b61041c6114ca565b005b610426611558565b6040516104339190612a84565b60405180910390f35b61044461157f565b60405161045191906129b6565b60405180910390f35b610474600480360381019061046f9190612dee565b61160b565b6040516104819190612b1f565b60405180910390f35b6104a4600480360381019061049f9190612db0565b611628565b005b6104c060048036038101906104bb9190612ac7565b611720565b6040516104cd9190612b1f565b60405180910390f35b6104f060048036038101906104eb9190612e76565b611734565b005b61050c60048036038101906105079190612dee565b611869565b005b61052860048036038101906105239190612a1a565b6118c8565b60405161053591906129b6565b60405180910390f35b6105466119cb565b005b6105506119fd565b60405161055d91906129b6565b60405180910390f35b610580600480360381019061057b9190612dee565b611a89565b005b61059c60048036038101906105979190612efa565b611ae9565b6040516105a99190612b47565b60405180910390f35b6105cc60048036038101906105c79190612f38565b611b09565b005b6105d6611b24565b6040516105e39190612a84565b60405180910390f35b6105f4611b4c565b6040516106019190612b1f565b60405180910390f35b610624600480360381019061061f9190612efa565b611b5e565b6040516106319190612b1f565b60405180910390f35b610654600480360381019061064f9190612dee565b611b88565b005b6002805461066390612fac565b80601f016020809104026020016040519081016040528092919081815260200182805461068f90612fac565b80156106da5780601f106106b1576101008083540402835291602001916106da565b820191905f5260205f20905b8154815290600101906020018083116106bd57829003601f168201915b505050505081565b6007602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600454821115801561072457505f82115b1561090c575f60095f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561081b575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610852576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360075f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516108fe9190612b47565b60405180910390a3506109ef565b8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109e69190612b47565b60405180910390a35b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60045481116110d55760095f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610abb576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b20576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610bde575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610c46575060075f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610c7d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c85611c34565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610cd09190613009565b92505081905550610cdf611c34565b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160095f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555f600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610e359190613009565b81548110610e4657610e4561303c565b5b905f5260205f200154905080600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600b5f8581526020019081526020015f205481548110610eb257610eb161303c565b5b905f5260205f200181905550600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480610f0b57610f0a613069565b5b600190038181905f5260205f20015f90559055600b5f8381526020019081526020015f2054600b5f8381526020019081526020015f2081905550600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f90919091909150556001600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610ff39190613009565b600b5f8481526020019081526020015f2081905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e0314876110ba611c34565b6040516110c79190612b47565b60405180910390a35061120f565b5f60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112015781816111849190613009565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61120c848484611c67565b50505b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611243838383610a1d565b5f8273ffffffffffffffffffffffffffffffffffffffff163b1415801561132b575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b81526004016112c9939291906130c9565b6020604051808303815f875af11580156112e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113099190613166565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611362576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60045481565b60115481565b61137b611d0e565b6113858282611d95565b5050565b611391611d0e565b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60105481565b5f600d5f9054906101000a900460ff16905090565b5f60095f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361149d576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6005602052805f5260405f205f915090505481565b6114bf611d0e565b6114c85f611db9565b565b5f6114d3611de9565b90508073ffffffffffffffffffffffffffffffffffffffff166114f4611b24565b73ffffffffffffffffffffffffffffffffffffffff161461154c57806040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016115439190612a84565b60405180910390fd5b61155581611db9565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6003805461158c90612fac565b80601f01602080910402602001604051908101604052809291908181526020018280546115b890612fac565b80156116035780601f106115da57610100808354040283529160200191611603565b820191905f5260205f20905b8154815290600101906020018083116115e657829003601f168201915b505050505081565b600c602052805f5260405f205f915054906101000a900460ff1681565b8060085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117149190612b1f565b60405180910390a35050565b5f61172c338484611c67565b905092915050565b61173f858585610a1d565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1415801561182b575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b81526004016117c99594939291906131bd565b6020604051808303815f875af11580156117e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118099190613166565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611862576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b611871611d0e565b5f60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b606060125f9054906101000a900460ff161561196e57600f80546118eb90612fac565b80601f016020809104026020016040519081016040528092919081815260200182805461191790612fac565b80156119625780601f1061193957610100808354040283529160200191611962565b820191905f5260205f20905b81548152906001019060200180831161194557829003601f168201915b505050505090506119c6565b5f600f805461197c90612fac565b9050116119975760405180602001604052805f8152506119c3565b600f6119a283611df0565b6040516020016119b39291906132fb565b6040516020818303038152906040525b90505b919050565b6119d3611d0e565b60125f9054906101000a900460ff161560125f6101000a81548160ff021916908315150217905550565b600f8054611a0a90612fac565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3690612fac565b8015611a815780601f10611a5857610100808354040283529160200191611a81565b820191905f5260205f20905b815481529060010190602001808311611a6457829003601f168201915b505050505081565b611a91611d0e565b600160135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6006602052815f5260405f20602052805f5260405f205f91509150505481565b611b11611d0e565b80600f9081611b2091906134b8565b5050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125f9054906101000a900460ff1681565b6008602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b611b90611d0e565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611bef611558565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f7f0000000000000000000000000000000000000000000000000000000000000000600a611c6291906136b6565b905090565b5f611c70611eba565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf1906137bc565b60405180910390fd5b611d05848484611efb565b90509392505050565b611d16611de9565b73ffffffffffffffffffffffffffffffffffffffff16611d34611558565b73ffffffffffffffffffffffffffffffffffffffff1614611d9357611d57611de9565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611d8a9190612a84565b60405180910390fd5b565b8160029081611da491906134b8565b508060039081611db491906134b8565b505050565b60015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611de68161223f565b50565b5f33905090565b60605f6001611dfe84612300565b0190505f8167ffffffffffffffff811115611e1c57611e1b612bec565b5b6040519080825280601f01601f191660200182016040528015611e4e5781602001600182028036833780820191505090505b5090505f82602001820190505b600115611eaf578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611ea457611ea36137da565b5b0494505f8503611e5b575b819350505050919050565b611ec26113ef565b15611ef9576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f80611f05611c34565b90505f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508460055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611fd59190613009565b925050819055508460055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540192505081905550600c5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166120f9575f8360055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120be9190613807565b84846120ca9190613807565b6120d49190613009565b90505f5b818110156120f6576120e989612451565b80806001019150506120d8565b50505b600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121cc575f83826121549190613807565b8460055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219d9190613807565b6121a79190613009565b90505f5b818110156121c9576121bc88612696565b80806001019150506121ab565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487876040516122299190612b47565b60405180910390a3600193505050509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061235c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612352576123516137da565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612399576d04ee2d6d415b85acef8100000000838161238f5761238e6137da565b5b0492506020810190505b662386f26fc1000083106123c857662386f26fc1000083816123be576123bd6137da565b5b0492506010810190505b6305f5e10083106123f1576305f5e10083816123e7576123e66137da565b5b0492506008810190505b612710831061241657612710838161240c5761240b6137da565b5b0492506004810190505b60648310612439576064838161242f5761242e6137da565b5b0492506002810190505b600a8310612448576001810190505b80915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124b6576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506125419190613009565b815481106125525761255161303c565b5b905f5260205f2001549050600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806125aa576125a9613069565b5b600190038181905f5260205f20015f90559055600b5f8281526020019081526020015f205f905560095f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560075f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61269e611eba565b6126a7816126aa565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361270f576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045f81548092919060010191905055505f60045490505f73ffffffffffffffffffffffffffffffffffffffff1660095f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127bb576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160095f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556001600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506128b89190613009565b600b5f8381526020019081526020015f2081905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612963578082015181840152602081019050612948565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6129888261292c565b6129928185612936565b93506129a2818560208601612946565b6129ab8161296e565b840191505092915050565b5f6020820190508181035f8301526129ce818461297e565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6129f9816129e7565b8114612a03575f80fd5b50565b5f81359050612a14816129f0565b92915050565b5f60208284031215612a2f57612a2e6129df565b5b5f612a3c84828501612a06565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a6e82612a45565b9050919050565b612a7e81612a64565b82525050565b5f602082019050612a975f830184612a75565b92915050565b612aa681612a64565b8114612ab0575f80fd5b50565b5f81359050612ac181612a9d565b92915050565b5f8060408385031215612add57612adc6129df565b5b5f612aea85828601612ab3565b9250506020612afb85828601612a06565b9150509250929050565b5f8115159050919050565b612b1981612b05565b82525050565b5f602082019050612b325f830184612b10565b92915050565b612b41816129e7565b82525050565b5f602082019050612b5a5f830184612b38565b92915050565b5f805f60608486031215612b7757612b766129df565b5b5f612b8486828701612ab3565b9350506020612b9586828701612ab3565b9250506040612ba686828701612a06565b9150509250925092565b5f60ff82169050919050565b612bc581612bb0565b82525050565b5f602082019050612bde5f830184612bbc565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c228261296e565b810181811067ffffffffffffffff82111715612c4157612c40612bec565b5b80604052505050565b5f612c536129d6565b9050612c5f8282612c19565b919050565b5f67ffffffffffffffff821115612c7e57612c7d612bec565b5b612c878261296e565b9050602081019050919050565b828183375f83830152505050565b5f612cb4612caf84612c64565b612c4a565b905082815260208101848484011115612cd057612ccf612be8565b5b612cdb848285612c94565b509392505050565b5f82601f830112612cf757612cf6612be4565b5b8135612d07848260208601612ca2565b91505092915050565b5f8060408385031215612d2657612d256129df565b5b5f83013567ffffffffffffffff811115612d4357612d426129e3565b5b612d4f85828601612ce3565b925050602083013567ffffffffffffffff811115612d7057612d6f6129e3565b5b612d7c85828601612ce3565b9150509250929050565b612d8f81612b05565b8114612d99575f80fd5b50565b5f81359050612daa81612d86565b92915050565b5f8060408385031215612dc657612dc56129df565b5b5f612dd385828601612ab3565b9250506020612de485828601612d9c565b9150509250929050565b5f60208284031215612e0357612e026129df565b5b5f612e1084828501612ab3565b91505092915050565b5f80fd5b5f80fd5b5f8083601f840112612e3657612e35612be4565b5b8235905067ffffffffffffffff811115612e5357612e52612e19565b5b602083019150836001820283011115612e6f57612e6e612e1d565b5b9250929050565b5f805f805f60808688031215612e8f57612e8e6129df565b5b5f612e9c88828901612ab3565b9550506020612ead88828901612ab3565b9450506040612ebe88828901612a06565b935050606086013567ffffffffffffffff811115612edf57612ede6129e3565b5b612eeb88828901612e21565b92509250509295509295909350565b5f8060408385031215612f1057612f0f6129df565b5b5f612f1d85828601612ab3565b9250506020612f2e85828601612ab3565b9150509250929050565b5f60208284031215612f4d57612f4c6129df565b5b5f82013567ffffffffffffffff811115612f6a57612f696129e3565b5b612f7684828501612ce3565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612fc357607f821691505b602082108103612fd657612fd5612f7f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613013826129e7565b915061301e836129e7565b925082820390508181111561303657613035612fdc565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82825260208201905092915050565b50565b5f6130b45f83613096565b91506130bf826130a6565b5f82019050919050565b5f6080820190506130dc5f830186612a75565b6130e96020830185612a75565b6130f66040830184612b38565b8181036060830152613107816130a9565b9050949350505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61314581613111565b811461314f575f80fd5b50565b5f815190506131608161313c565b92915050565b5f6020828403121561317b5761317a6129df565b5b5f61318884828501613152565b91505092915050565b5f61319c8385613096565b93506131a9838584612c94565b6131b28361296e565b840190509392505050565b5f6080820190506131d05f830188612a75565b6131dd6020830187612a75565b6131ea6040830186612b38565b81810360608301526131fd818486613191565b90509695505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f815461323181612fac565b61323b8186613209565b9450600182165f8114613255576001811461326a5761329c565b60ff198316865281151582028601935061329c565b61327385613213565b5f5b8381101561329457815481890152600182019150602081019050613275565b838801955050505b50505092915050565b5f6132af8261292c565b6132b98185613209565b93506132c9818560208601612946565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000815250565b5f6133068285613225565b915061331282846132a5565b915061331d826132d5565b6005820191508190509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026133777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261333c565b613381868361333c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6133bc6133b76133b2846129e7565b613399565b6129e7565b9050919050565b5f819050919050565b6133d5836133a2565b6133e96133e1826133c3565b848454613348565b825550505050565b5f90565b6133fd6133f1565b6134088184846133cc565b505050565b5b8181101561342b576134205f826133f5565b60018101905061340e565b5050565b601f8211156134705761344181613213565b61344a8461332d565b81016020851015613459578190505b61346d6134658561332d565b83018261340d565b50505b505050565b5f82821c905092915050565b5f6134905f1984600802613475565b1980831691505092915050565b5f6134a88383613481565b9150826002028217905092915050565b6134c18261292c565b67ffffffffffffffff8111156134da576134d9612bec565b5b6134e48254612fac565b6134ef82828561342f565b5f60209050601f831160018114613520575f841561350e578287015190505b613518858261349d565b86555061357f565b601f19841661352e86613213565b5f5b8281101561355557848901518255600182019150602085019450602081019050613530565b86831015613572578489015161356e601f891682613481565b8355505b6001600288020188555050505b505050505050565b5f8160011c9050919050565b5f808291508390505b60018511156135dc578086048111156135b8576135b7612fdc565b5b60018516156135c75780820291505b80810290506135d585613587565b945061359c565b94509492505050565b5f826135f457600190506136af565b81613601575f90506136af565b8160018114613617576002811461362157613650565b60019150506136af565b60ff84111561363357613632612fdc565b5b8360020a91508482111561364a57613649612fdc565b5b506136af565b5060208310610133831016604e8410600b84101617156136855782820a9050838111156136805761367f612fdc565b5b6136af565b6136928484846001613593565b925090508184048111156136a9576136a8612fdc565b5b81810290505b9392505050565b5f6136c0826129e7565b91506136cb83612bb0565b92506136f87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135e5565b905092915050565b7f5765206172652063757272656e746c7920726576696577696e672074686520755f8201527f7365722773206163636f756e7420666f7220616e7920737573706963696f757360208201527f2061637469766974792e20496620796f75206861766520616e79206f626a656360408201527f74696f6e732c20706c6561736520636f6e746163742075732100000000000000606082015250565b5f6137a6607983612936565b91506137b182613700565b608082019050919050565b5f6020820190508181035f8301526137d38161379a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613811826129e7565b915061381c836129e7565b92508261382c5761382b6137da565b5b82820490509291505056fea2646970667358221220be318205e2b34fadf4ae415b6e96ebbc1a5e3fe71864c2e46ee68c493bd6032f64736f6c63430008180033