0x60806040523480156200001157600080fd5b5060405162003c3538038062003c35833981810160405281019062000037919062000864565b6040518060400160405280600781526020017f504143204e4654000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f50465400000000000000000000000000000000000000000000000000000000008152508160009081620000b4919062000b0b565b508060019081620000c6919062000b0b565b505050620000e9620000dd6200012560201b60201c565b6200012d60201b60201c565b60005b818110156200011c57620001073384620001f360201b60201c565b5080620001149062000c21565b9050620000ec565b50505062000e6d565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000620002056200026560201b60201c565b6200021c6008620002f660201b62000bab1760201c565b60006200023560086200030c60201b62000bc11760201c565b90506200024984826200031a60201b60201c565b6200025b81846200056060201b60201c565b8091505092915050565b620002756200012560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200029b620005da60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002eb9062000ccf565b60405180910390fd5b565b6001816000016000828254019250508190555050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200038c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003839062000d41565b60405180910390fd5b6200039d816200060460201b60201c565b15620003e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003d79062000db3565b60405180910390fd5b620003f66000838360016200064d60201b60201c565b62000407816200060460201b60201c565b156200044a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004419062000db3565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46200055c6000838360016200065360201b60201c565b5050565b62000571826200060460201b60201c565b620005b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005aa9062000e4b565b60405180910390fd5b80600660008481526020019081526020016000209081620005d5919062000b0b565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff166200062e836200065960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620006ff82620006b4565b810181811067ffffffffffffffff82111715620007215762000720620006c5565b5b80604052505050565b60006200073662000696565b9050620007448282620006f4565b919050565b600067ffffffffffffffff821115620007675762000766620006c5565b5b6200077282620006b4565b9050602081019050919050565b60005b838110156200079f57808201518184015260208101905062000782565b60008484015250505050565b6000620007c2620007bc8462000749565b6200072a565b905082815260208101848484011115620007e157620007e0620006af565b5b620007ee8482856200077f565b509392505050565b600082601f8301126200080e576200080d620006aa565b5b815162000820848260208601620007ab565b91505092915050565b6000819050919050565b6200083e8162000829565b81146200084a57600080fd5b50565b6000815190506200085e8162000833565b92915050565b600080604083850312156200087e576200087d620006a0565b5b600083015167ffffffffffffffff8111156200089f576200089e620006a5565b5b620008ad85828601620007f6565b9250506020620008c0858286016200084d565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200091d57607f821691505b602082108103620009335762000932620008d5565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200099d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200095e565b620009a986836200095e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009ec620009e6620009e08462000829565b620009c1565b62000829565b9050919050565b6000819050919050565b62000a0883620009cb565b62000a2062000a1782620009f3565b8484546200096b565b825550505050565b600090565b62000a3762000a28565b62000a44818484620009fd565b505050565b5b8181101562000a6c5762000a6060008262000a2d565b60018101905062000a4a565b5050565b601f82111562000abb5762000a858162000939565b62000a90846200094e565b8101602085101562000aa0578190505b62000ab862000aaf856200094e565b83018262000a49565b50505b505050565b600082821c905092915050565b600062000ae06000198460080262000ac0565b1980831691505092915050565b600062000afb838362000acd565b9150826002028217905092915050565b62000b1682620008ca565b67ffffffffffffffff81111562000b325762000b31620006c5565b5b62000b3e825462000904565b62000b4b82828562000a70565b600060209050601f83116001811462000b83576000841562000b6e578287015190505b62000b7a858262000aed565b86555062000bea565b601f19841662000b938662000939565b60005b8281101562000bbd5784890151825560018201915060208501945060208101905062000b96565b8683101562000bdd578489015162000bd9601f89168262000acd565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c2e8262000829565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000c635762000c6262000bf2565b5b600182019050919050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000cb760208362000c6e565b915062000cc48262000c7f565b602082019050919050565b6000602082019050818103600083015262000cea8162000ca8565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600062000d2960208362000c6e565b915062000d368262000cf1565b602082019050919050565b6000602082019050818103600083015262000d5c8162000d1a565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600062000d9b601c8362000c6e565b915062000da88262000d63565b602082019050919050565b6000602082019050818103600083015262000dce8162000d8c565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b600062000e33602e8362000c6e565b915062000e408262000dd5565b604082019050919050565b6000602082019050818103600083015262000e668162000e24565b9050919050565b612db88062000e7d6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde146102a4578063c87b56dd146102c0578063e985e9c5146102f0578063eacabe1414610320578063f2fde38b146103505761010b565b8063715018a6146102425780638da5cb5b1461024c57806395d89b411461026a578063a22cb465146102885761010b565b806323b872dd116100de57806323b872dd146101aa57806342842e0e146101c65780636352211e146101e257806370a08231146102125761010b565b806301ffc9a71461011057806306fdde0314610140578063081812fc1461015e578063095ea7b31461018e575b600080fd5b61012a60048036038101906101259190611ba9565b61036c565b6040516101379190611bf1565b60405180910390f35b61014861044e565b6040516101559190611c9c565b60405180910390f35b61017860048036038101906101739190611cf4565b6104e0565b6040516101859190611d62565b60405180910390f35b6101a860048036038101906101a39190611da9565b610526565b005b6101c460048036038101906101bf9190611de9565b61063d565b005b6101e060048036038101906101db9190611de9565b61069d565b005b6101fc60048036038101906101f79190611cf4565b6106bd565b6040516102099190611d62565b60405180910390f35b61022c60048036038101906102279190611e3c565b610743565b6040516102399190611e78565b60405180910390f35b61024a6107fa565b005b61025461080e565b6040516102619190611d62565b60405180910390f35b610272610838565b60405161027f9190611c9c565b60405180910390f35b6102a2600480360381019061029d9190611ebf565b6108ca565b005b6102be60048036038101906102b99190612034565b6108e0565b005b6102da60048036038101906102d59190611cf4565b610942565b6040516102e79190611c9c565b60405180910390f35b61030a600480360381019061030591906120b7565b610a54565b6040516103179190611bf1565b60405180910390f35b61033a60048036038101906103359190612198565b610ae8565b6040516103479190611e78565b60405180910390f35b61036a60048036038101906103659190611e3c565b610b28565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610447575061044682610bcf565b5b9050919050565b60606000805461045d90612223565b80601f016020809104026020016040519081016040528092919081815260200182805461048990612223565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b5050505050905090565b60006104eb82610c39565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610531826106bd565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610598906122c6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105c0610c84565b73ffffffffffffffffffffffffffffffffffffffff1614806105ef57506105ee816105e9610c84565b610a54565b5b61062e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062590612358565b60405180910390fd5b6106388383610c8c565b505050565b61064e610648610c84565b82610d45565b61068d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610684906123ea565b60405180910390fd5b610698838383610dda565b505050565b6106b8838383604051806020016040528060008152506108e0565b505050565b6000806106c9836110d3565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073190612456565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa906124e8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610802611110565b61080c600061118e565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461084790612223565b80601f016020809104026020016040519081016040528092919081815260200182805461087390612223565b80156108c05780601f10610895576101008083540402835291602001916108c0565b820191906000526020600020905b8154815290600101906020018083116108a357829003601f168201915b5050505050905090565b6108dc6108d5610c84565b8383611254565b5050565b6108f16108eb610c84565b83610d45565b610930576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610927906123ea565b60405180910390fd5b61093c848484846113c0565b50505050565b606061094d82610c39565b600060066000848152602001908152602001600020805461096d90612223565b80601f016020809104026020016040519081016040528092919081815260200182805461099990612223565b80156109e65780601f106109bb576101008083540402835291602001916109e6565b820191906000526020600020905b8154815290600101906020018083116109c957829003601f168201915b5050505050905060006109f761141c565b90506000815103610a0c578192505050610a4f565b600082511115610a41578082604051602001610a29929190612544565b60405160208183030381529060405292505050610a4f565b610a4a84611433565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610af2611110565b610afc6008610bab565b6000610b086008610bc1565b9050610b14848261149b565b610b1e81846116b8565b8091505092915050565b610b30611110565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b96906125da565b60405180910390fd5b610ba88161118e565b50565b6001816000016000828254019250508190555050565b600081600001549050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610c4281611725565b610c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7890612456565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610cff836106bd565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d51836106bd565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610d935750610d928185610a54565b5b80610dd157508373ffffffffffffffffffffffffffffffffffffffff16610db9846104e0565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610dfa826106bd565b73ffffffffffffffffffffffffffffffffffffffff1614610e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e479061266c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb6906126fe565b60405180910390fd5b610ecc8383836001611766565b8273ffffffffffffffffffffffffffffffffffffffff16610eec826106bd565b73ffffffffffffffffffffffffffffffffffffffff1614610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f399061266c565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46110ce838383600161176c565b505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611118610c84565b73ffffffffffffffffffffffffffffffffffffffff1661113661080e565b73ffffffffffffffffffffffffffffffffffffffff161461118c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111839061276a565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b9906127d6565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113b39190611bf1565b60405180910390a3505050565b6113cb848484610dda565b6113d784848484611772565b611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d90612868565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061143e82610c39565b600061144861141c565b905060008151116114685760405180602001604052806000815250611493565b80611472846118f9565b604051602001611483929190612544565b6040516020818303038152906040525b915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611501906128d4565b60405180910390fd5b61151381611725565b15611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90612940565b60405180910390fd5b611561600083836001611766565b61156a81611725565b156115aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a190612940565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46116b460008383600161176c565b5050565b6116c182611725565b611700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f7906129d2565b60405180910390fd5b806006600084815260200190815260200160002090816117209190612b9e565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16611747836110d3565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b60006117938473ffffffffffffffffffffffffffffffffffffffff166119c7565b156118ec578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026117bc610c84565b8786866040518563ffffffff1660e01b81526004016117de9493929190612cc5565b6020604051808303816000875af192505050801561181a57506040513d601f19601f820116820180604052508101906118179190612d26565b60015b61189c573d806000811461184a576040519150601f19603f3d011682016040523d82523d6000602084013e61184f565b606091505b506000815103611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90612868565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506118f1565b600190505b949350505050565b606060006001611908846119ea565b01905060008167ffffffffffffffff81111561192757611926611f09565b5b6040519080825280601f01601f1916602001820160405280156119595781602001600182028036833780820191505090505b509050600082602001820190505b6001156119bc578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816119b0576119af612d53565b5b04945060008503611967575b819350505050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611a48577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611a3e57611a3d612d53565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611a85576d04ee2d6d415b85acef81000000008381611a7b57611a7a612d53565b5b0492506020810190505b662386f26fc100008310611ab457662386f26fc100008381611aaa57611aa9612d53565b5b0492506010810190505b6305f5e1008310611add576305f5e1008381611ad357611ad2612d53565b5b0492506008810190505b6127108310611b02576127108381611af857611af7612d53565b5b0492506004810190505b60648310611b255760648381611b1b57611b1a612d53565b5b0492506002810190505b600a8310611b34576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611b8681611b51565b8114611b9157600080fd5b50565b600081359050611ba381611b7d565b92915050565b600060208284031215611bbf57611bbe611b47565b5b6000611bcd84828501611b94565b91505092915050565b60008115159050919050565b611beb81611bd6565b82525050565b6000602082019050611c066000830184611be2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c46578082015181840152602081019050611c2b565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c6e82611c0c565b611c788185611c17565b9350611c88818560208601611c28565b611c9181611c52565b840191505092915050565b60006020820190508181036000830152611cb68184611c63565b905092915050565b6000819050919050565b611cd181611cbe565b8114611cdc57600080fd5b50565b600081359050611cee81611cc8565b92915050565b600060208284031215611d0a57611d09611b47565b5b6000611d1884828501611cdf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d4c82611d21565b9050919050565b611d5c81611d41565b82525050565b6000602082019050611d776000830184611d53565b92915050565b611d8681611d41565b8114611d9157600080fd5b50565b600081359050611da381611d7d565b92915050565b60008060408385031215611dc057611dbf611b47565b5b6000611dce85828601611d94565b9250506020611ddf85828601611cdf565b9150509250929050565b600080600060608486031215611e0257611e01611b47565b5b6000611e1086828701611d94565b9350506020611e2186828701611d94565b9250506040611e3286828701611cdf565b9150509250925092565b600060208284031215611e5257611e51611b47565b5b6000611e6084828501611d94565b91505092915050565b611e7281611cbe565b82525050565b6000602082019050611e8d6000830184611e69565b92915050565b611e9c81611bd6565b8114611ea757600080fd5b50565b600081359050611eb981611e93565b92915050565b60008060408385031215611ed657611ed5611b47565b5b6000611ee485828601611d94565b9250506020611ef585828601611eaa565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f4182611c52565b810181811067ffffffffffffffff82111715611f6057611f5f611f09565b5b80604052505050565b6000611f73611b3d565b9050611f7f8282611f38565b919050565b600067ffffffffffffffff821115611f9f57611f9e611f09565b5b611fa882611c52565b9050602081019050919050565b82818337600083830152505050565b6000611fd7611fd284611f84565b611f69565b905082815260208101848484011115611ff357611ff2611f04565b5b611ffe848285611fb5565b509392505050565b600082601f83011261201b5761201a611eff565b5b813561202b848260208601611fc4565b91505092915050565b6000806000806080858703121561204e5761204d611b47565b5b600061205c87828801611d94565b945050602061206d87828801611d94565b935050604061207e87828801611cdf565b925050606085013567ffffffffffffffff81111561209f5761209e611b4c565b5b6120ab87828801612006565b91505092959194509250565b600080604083850312156120ce576120cd611b47565b5b60006120dc85828601611d94565b92505060206120ed85828601611d94565b9150509250929050565b600067ffffffffffffffff82111561211257612111611f09565b5b61211b82611c52565b9050602081019050919050565b600061213b612136846120f7565b611f69565b90508281526020810184848401111561215757612156611f04565b5b612162848285611fb5565b509392505050565b600082601f83011261217f5761217e611eff565b5b813561218f848260208601612128565b91505092915050565b600080604083850312156121af576121ae611b47565b5b60006121bd85828601611d94565b925050602083013567ffffffffffffffff8111156121de576121dd611b4c565b5b6121ea8582860161216a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061223b57607f821691505b60208210810361224e5761224d6121f4565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006122b0602183611c17565b91506122bb82612254565b604082019050919050565b600060208201905081810360008301526122df816122a3565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612342603d83611c17565b915061234d826122e6565b604082019050919050565b6000602082019050818103600083015261237181612335565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006123d4602d83611c17565b91506123df82612378565b604082019050919050565b60006020820190508181036000830152612403816123c7565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612440601883611c17565b915061244b8261240a565b602082019050919050565b6000602082019050818103600083015261246f81612433565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006124d2602983611c17565b91506124dd82612476565b604082019050919050565b60006020820190508181036000830152612501816124c5565b9050919050565b600081905092915050565b600061251e82611c0c565b6125288185612508565b9350612538818560208601611c28565b80840191505092915050565b60006125508285612513565b915061255c8284612513565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125c4602683611c17565b91506125cf82612568565b604082019050919050565b600060208201905081810360008301526125f3816125b7565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000612656602583611c17565b9150612661826125fa565b604082019050919050565b6000602082019050818103600083015261268581612649565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006126e8602483611c17565b91506126f38261268c565b604082019050919050565b60006020820190508181036000830152612717816126db565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612754602083611c17565b915061275f8261271e565b602082019050919050565b6000602082019050818103600083015261278381612747565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006127c0601983611c17565b91506127cb8261278a565b602082019050919050565b600060208201905081810360008301526127ef816127b3565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000612852603283611c17565b915061285d826127f6565b604082019050919050565b6000602082019050818103600083015261288181612845565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006128be602083611c17565b91506128c982612888565b602082019050919050565b600060208201905081810360008301526128ed816128b1565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061292a601c83611c17565b9150612935826128f4565b602082019050919050565b600060208201905081810360008301526129598161291d565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b60006129bc602e83611c17565b91506129c782612960565b604082019050919050565b600060208201905081810360008301526129eb816129af565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612a547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a17565b612a5e8683612a17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612a9b612a96612a9184611cbe565b612a76565b611cbe565b9050919050565b6000819050919050565b612ab583612a80565b612ac9612ac182612aa2565b848454612a24565b825550505050565b600090565b612ade612ad1565b612ae9818484612aac565b505050565b5b81811015612b0d57612b02600082612ad6565b600181019050612aef565b5050565b601f821115612b5257612b23816129f2565b612b2c84612a07565b81016020851015612b3b578190505b612b4f612b4785612a07565b830182612aee565b50505b505050565b600082821c905092915050565b6000612b7560001984600802612b57565b1980831691505092915050565b6000612b8e8383612b64565b9150826002028217905092915050565b612ba782611c0c565b67ffffffffffffffff811115612bc057612bbf611f09565b5b612bca8254612223565b612bd5828285612b11565b600060209050601f831160018114612c085760008415612bf6578287015190505b612c008582612b82565b865550612c68565b601f198416612c16866129f2565b60005b82811015612c3e57848901518255600182019150602085019450602081019050612c19565b86831015612c5b5784890151612c57601f891682612b64565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b600082825260208201905092915050565b6000612c9782612c70565b612ca18185612c7b565b9350612cb1818560208601611c28565b612cba81611c52565b840191505092915050565b6000608082019050612cda6000830187611d53565b612ce76020830186611d53565b612cf46040830185611e69565b8181036060830152612d068184612c8c565b905095945050505050565b600081519050612d2081611b7d565b92915050565b600060208284031215612d3c57612d3b611b47565b5b6000612d4a84828501612d11565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220eacde4a2690c1480cd7c20dd24eea8d4c6e740e0a23b091364b87f63229eb43464736f6c63430008120033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d644d4774766750797077446d76424d424772317863534b694b7559544a44524a647a373175786143624b67370000000000000000000000
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde146102a4578063c87b56dd146102c0578063e985e9c5146102f0578063eacabe1414610320578063f2fde38b146103505761010b565b8063715018a6146102425780638da5cb5b1461024c57806395d89b411461026a578063a22cb465146102885761010b565b806323b872dd116100de57806323b872dd146101aa57806342842e0e146101c65780636352211e146101e257806370a08231146102125761010b565b806301ffc9a71461011057806306fdde0314610140578063081812fc1461015e578063095ea7b31461018e575b600080fd5b61012a60048036038101906101259190611ba9565b61036c565b6040516101379190611bf1565b60405180910390f35b61014861044e565b6040516101559190611c9c565b60405180910390f35b61017860048036038101906101739190611cf4565b6104e0565b6040516101859190611d62565b60405180910390f35b6101a860048036038101906101a39190611da9565b610526565b005b6101c460048036038101906101bf9190611de9565b61063d565b005b6101e060048036038101906101db9190611de9565b61069d565b005b6101fc60048036038101906101f79190611cf4565b6106bd565b6040516102099190611d62565b60405180910390f35b61022c60048036038101906102279190611e3c565b610743565b6040516102399190611e78565b60405180910390f35b61024a6107fa565b005b61025461080e565b6040516102619190611d62565b60405180910390f35b610272610838565b60405161027f9190611c9c565b60405180910390f35b6102a2600480360381019061029d9190611ebf565b6108ca565b005b6102be60048036038101906102b99190612034565b6108e0565b005b6102da60048036038101906102d59190611cf4565b610942565b6040516102e79190611c9c565b60405180910390f35b61030a600480360381019061030591906120b7565b610a54565b6040516103179190611bf1565b60405180910390f35b61033a60048036038101906103359190612198565b610ae8565b6040516103479190611e78565b60405180910390f35b61036a60048036038101906103659190611e3c565b610b28565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610447575061044682610bcf565b5b9050919050565b60606000805461045d90612223565b80601f016020809104026020016040519081016040528092919081815260200182805461048990612223565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b5050505050905090565b60006104eb82610c39565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610531826106bd565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610598906122c6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105c0610c84565b73ffffffffffffffffffffffffffffffffffffffff1614806105ef57506105ee816105e9610c84565b610a54565b5b61062e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062590612358565b60405180910390fd5b6106388383610c8c565b505050565b61064e610648610c84565b82610d45565b61068d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610684906123ea565b60405180910390fd5b610698838383610dda565b505050565b6106b8838383604051806020016040528060008152506108e0565b505050565b6000806106c9836110d3565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073190612456565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa906124e8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610802611110565b61080c600061118e565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461084790612223565b80601f016020809104026020016040519081016040528092919081815260200182805461087390612223565b80156108c05780601f10610895576101008083540402835291602001916108c0565b820191906000526020600020905b8154815290600101906020018083116108a357829003601f168201915b5050505050905090565b6108dc6108d5610c84565b8383611254565b5050565b6108f16108eb610c84565b83610d45565b610930576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610927906123ea565b60405180910390fd5b61093c848484846113c0565b50505050565b606061094d82610c39565b600060066000848152602001908152602001600020805461096d90612223565b80601f016020809104026020016040519081016040528092919081815260200182805461099990612223565b80156109e65780601f106109bb576101008083540402835291602001916109e6565b820191906000526020600020905b8154815290600101906020018083116109c957829003601f168201915b5050505050905060006109f761141c565b90506000815103610a0c578192505050610a4f565b600082511115610a41578082604051602001610a29929190612544565b60405160208183030381529060405292505050610a4f565b610a4a84611433565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610af2611110565b610afc6008610bab565b6000610b086008610bc1565b9050610b14848261149b565b610b1e81846116b8565b8091505092915050565b610b30611110565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b96906125da565b60405180910390fd5b610ba88161118e565b50565b6001816000016000828254019250508190555050565b600081600001549050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610c4281611725565b610c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7890612456565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610cff836106bd565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d51836106bd565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610d935750610d928185610a54565b5b80610dd157508373ffffffffffffffffffffffffffffffffffffffff16610db9846104e0565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610dfa826106bd565b73ffffffffffffffffffffffffffffffffffffffff1614610e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e479061266c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb6906126fe565b60405180910390fd5b610ecc8383836001611766565b8273ffffffffffffffffffffffffffffffffffffffff16610eec826106bd565b73ffffffffffffffffffffffffffffffffffffffff1614610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f399061266c565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46110ce838383600161176c565b505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611118610c84565b73ffffffffffffffffffffffffffffffffffffffff1661113661080e565b73ffffffffffffffffffffffffffffffffffffffff161461118c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111839061276a565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b9906127d6565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113b39190611bf1565b60405180910390a3505050565b6113cb848484610dda565b6113d784848484611772565b611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d90612868565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061143e82610c39565b600061144861141c565b905060008151116114685760405180602001604052806000815250611493565b80611472846118f9565b604051602001611483929190612544565b6040516020818303038152906040525b915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611501906128d4565b60405180910390fd5b61151381611725565b15611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90612940565b60405180910390fd5b611561600083836001611766565b61156a81611725565b156115aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a190612940565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46116b460008383600161176c565b5050565b6116c182611725565b611700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f7906129d2565b60405180910390fd5b806006600084815260200190815260200160002090816117209190612b9e565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16611747836110d3565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b60006117938473ffffffffffffffffffffffffffffffffffffffff166119c7565b156118ec578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026117bc610c84565b8786866040518563ffffffff1660e01b81526004016117de9493929190612cc5565b6020604051808303816000875af192505050801561181a57506040513d601f19601f820116820180604052508101906118179190612d26565b60015b61189c573d806000811461184a576040519150601f19603f3d011682016040523d82523d6000602084013e61184f565b606091505b506000815103611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90612868565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506118f1565b600190505b949350505050565b606060006001611908846119ea565b01905060008167ffffffffffffffff81111561192757611926611f09565b5b6040519080825280601f01601f1916602001820160405280156119595781602001600182028036833780820191505090505b509050600082602001820190505b6001156119bc578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816119b0576119af612d53565b5b04945060008503611967575b819350505050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611a48577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611a3e57611a3d612d53565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611a85576d04ee2d6d415b85acef81000000008381611a7b57611a7a612d53565b5b0492506020810190505b662386f26fc100008310611ab457662386f26fc100008381611aaa57611aa9612d53565b5b0492506010810190505b6305f5e1008310611add576305f5e1008381611ad357611ad2612d53565b5b0492506008810190505b6127108310611b02576127108381611af857611af7612d53565b5b0492506004810190505b60648310611b255760648381611b1b57611b1a612d53565b5b0492506002810190505b600a8310611b34576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611b8681611b51565b8114611b9157600080fd5b50565b600081359050611ba381611b7d565b92915050565b600060208284031215611bbf57611bbe611b47565b5b6000611bcd84828501611b94565b91505092915050565b60008115159050919050565b611beb81611bd6565b82525050565b6000602082019050611c066000830184611be2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c46578082015181840152602081019050611c2b565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c6e82611c0c565b611c788185611c17565b9350611c88818560208601611c28565b611c9181611c52565b840191505092915050565b60006020820190508181036000830152611cb68184611c63565b905092915050565b6000819050919050565b611cd181611cbe565b8114611cdc57600080fd5b50565b600081359050611cee81611cc8565b92915050565b600060208284031215611d0a57611d09611b47565b5b6000611d1884828501611cdf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d4c82611d21565b9050919050565b611d5c81611d41565b82525050565b6000602082019050611d776000830184611d53565b92915050565b611d8681611d41565b8114611d9157600080fd5b50565b600081359050611da381611d7d565b92915050565b60008060408385031215611dc057611dbf611b47565b5b6000611dce85828601611d94565b9250506020611ddf85828601611cdf565b9150509250929050565b600080600060608486031215611e0257611e01611b47565b5b6000611e1086828701611d94565b9350506020611e2186828701611d94565b9250506040611e3286828701611cdf565b9150509250925092565b600060208284031215611e5257611e51611b47565b5b6000611e6084828501611d94565b91505092915050565b611e7281611cbe565b82525050565b6000602082019050611e8d6000830184611e69565b92915050565b611e9c81611bd6565b8114611ea757600080fd5b50565b600081359050611eb981611e93565b92915050565b60008060408385031215611ed657611ed5611b47565b5b6000611ee485828601611d94565b9250506020611ef585828601611eaa565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f4182611c52565b810181811067ffffffffffffffff82111715611f6057611f5f611f09565b5b80604052505050565b6000611f73611b3d565b9050611f7f8282611f38565b919050565b600067ffffffffffffffff821115611f9f57611f9e611f09565b5b611fa882611c52565b9050602081019050919050565b82818337600083830152505050565b6000611fd7611fd284611f84565b611f69565b905082815260208101848484011115611ff357611ff2611f04565b5b611ffe848285611fb5565b509392505050565b600082601f83011261201b5761201a611eff565b5b813561202b848260208601611fc4565b91505092915050565b6000806000806080858703121561204e5761204d611b47565b5b600061205c87828801611d94565b945050602061206d87828801611d94565b935050604061207e87828801611cdf565b925050606085013567ffffffffffffffff81111561209f5761209e611b4c565b5b6120ab87828801612006565b91505092959194509250565b600080604083850312156120ce576120cd611b47565b5b60006120dc85828601611d94565b92505060206120ed85828601611d94565b9150509250929050565b600067ffffffffffffffff82111561211257612111611f09565b5b61211b82611c52565b9050602081019050919050565b600061213b612136846120f7565b611f69565b90508281526020810184848401111561215757612156611f04565b5b612162848285611fb5565b509392505050565b600082601f83011261217f5761217e611eff565b5b813561218f848260208601612128565b91505092915050565b600080604083850312156121af576121ae611b47565b5b60006121bd85828601611d94565b925050602083013567ffffffffffffffff8111156121de576121dd611b4c565b5b6121ea8582860161216a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061223b57607f821691505b60208210810361224e5761224d6121f4565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006122b0602183611c17565b91506122bb82612254565b604082019050919050565b600060208201905081810360008301526122df816122a3565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612342603d83611c17565b915061234d826122e6565b604082019050919050565b6000602082019050818103600083015261237181612335565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006123d4602d83611c17565b91506123df82612378565b604082019050919050565b60006020820190508181036000830152612403816123c7565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612440601883611c17565b915061244b8261240a565b602082019050919050565b6000602082019050818103600083015261246f81612433565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006124d2602983611c17565b91506124dd82612476565b604082019050919050565b60006020820190508181036000830152612501816124c5565b9050919050565b600081905092915050565b600061251e82611c0c565b6125288185612508565b9350612538818560208601611c28565b80840191505092915050565b60006125508285612513565b915061255c8284612513565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125c4602683611c17565b91506125cf82612568565b604082019050919050565b600060208201905081810360008301526125f3816125b7565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000612656602583611c17565b9150612661826125fa565b604082019050919050565b6000602082019050818103600083015261268581612649565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006126e8602483611c17565b91506126f38261268c565b604082019050919050565b60006020820190508181036000830152612717816126db565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612754602083611c17565b915061275f8261271e565b602082019050919050565b6000602082019050818103600083015261278381612747565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006127c0601983611c17565b91506127cb8261278a565b602082019050919050565b600060208201905081810360008301526127ef816127b3565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000612852603283611c17565b915061285d826127f6565b604082019050919050565b6000602082019050818103600083015261288181612845565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006128be602083611c17565b91506128c982612888565b602082019050919050565b600060208201905081810360008301526128ed816128b1565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061292a601c83611c17565b9150612935826128f4565b602082019050919050565b600060208201905081810360008301526129598161291d565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b60006129bc602e83611c17565b91506129c782612960565b604082019050919050565b600060208201905081810360008301526129eb816129af565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612a547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a17565b612a5e8683612a17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612a9b612a96612a9184611cbe565b612a76565b611cbe565b9050919050565b6000819050919050565b612ab583612a80565b612ac9612ac182612aa2565b848454612a24565b825550505050565b600090565b612ade612ad1565b612ae9818484612aac565b505050565b5b81811015612b0d57612b02600082612ad6565b600181019050612aef565b5050565b601f821115612b5257612b23816129f2565b612b2c84612a07565b81016020851015612b3b578190505b612b4f612b4785612a07565b830182612aee565b50505b505050565b600082821c905092915050565b6000612b7560001984600802612b57565b1980831691505092915050565b6000612b8e8383612b64565b9150826002028217905092915050565b612ba782611c0c565b67ffffffffffffffff811115612bc057612bbf611f09565b5b612bca8254612223565b612bd5828285612b11565b600060209050601f831160018114612c085760008415612bf6578287015190505b612c008582612b82565b865550612c68565b601f198416612c16866129f2565b60005b82811015612c3e57848901518255600182019150602085019450602081019050612c19565b86831015612c5b5784890151612c57601f891682612b64565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b600082825260208201905092915050565b6000612c9782612c70565b612ca18185612c7b565b9350612cb1818560208601611c28565b612cba81611c52565b840191505092915050565b6000608082019050612cda6000830187611d53565b612ce76020830186611d53565b612cf46040830185611e69565b8181036060830152612d068184612c8c565b905095945050505050565b600081519050612d2081611b7d565b92915050565b600060208284031215612d3c57612d3b611b47565b5b6000612d4a84828501612d11565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220eacde4a2690c1480cd7c20dd24eea8d4c6e740e0a23b091364b87f63229eb43464736f6c63430008120033