0x60806040523480156200001157600080fd5b506040516200276c3803806200276c8339818101604052810190620000379190620002bc565b6040518060400160405280601381526020017f5a6f726120526567697374727920546f6b656e000000000000000000000000008152506040518060400160405280600381526020017f5a5254000000000000000000000000000000000000000000000000000000000081525060008260009080519060200190620000bd929190620001f6565b508160019080519060200190620000d6929190620001f6565b5080600360006101000a81548160ff021916908360ff160217905550505050600062000107620001ee60201b60201c565b905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000336565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023957805160ff19168380011785556200026a565b828001600101855582156200026a579182015b82811115620002695782518255916020019190600101906200024c565b5b5090506200027991906200027d565b5090565b620002a291905b808211156200029e57600081600090555060010162000284565b5090565b90565b600081519050620002b6816200031c565b92915050565b600060208284031215620002cf57600080fd5b6000620002df84828501620002a5565b91505092915050565b6000620002f582620002fc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200032781620002e8565b81146200033357600080fd5b50565b61242680620003466000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80637237cd0f116100a2578063a9059cbb11610071578063a9059cbb146102aa578063dd62ed3e146102da578063f00c298d1461030a578063f0dda65c14610326578063f2fde38b146103425761010b565b80637237cd0f146102205780638da5cb5b1461023e57806395d89b411461025c578063a8b5e6ea1461027a5761010b565b806323b872dd116100de57806323b872dd14610198578063313ce567146101c857806370a08231146101e6578063715018a6146102165761010b565b806306fdde0314610110578063095ea7b31461012e5780630d1118ce1461015e57806318160ddd1461017a575b600080fd5b61011861035e565b604051610125919061205c565b60405180910390f35b61014860048036038101906101439190611c34565b610400565b6040516101559190612026565b60405180910390f35b61017860048036038101906101739190611c34565b610415565b005b61018261056f565b60405161018f9190612214565b60405180910390f35b6101b260048036038101906101ad9190611ba9565b610579565b6040516101bf9190612026565b60405180910390f35b6101d06108fa565b6040516101dd919061222f565b60405180910390f35b61020060048036038101906101fb9190611b44565b610911565b60405161020d9190612214565b60405180910390f35b61021e61095a565b005b610228610ab2565b6040516102359190612041565b60405180910390f35b610246610ad8565b6040516102539190611ef8565b60405180910390f35b610264610b02565b604051610271919061205c565b60405180910390f35b610294600480360381019061028f9190611b44565b610ba4565b6040516102a19190612026565b60405180910390f35b6102c460048036038101906102bf9190611c34565b610bc4565b6040516102d19190612026565b60405180910390f35b6102f460048036038101906102ef9190611b6d565b610e43565b6040516103019190612214565b60405180910390f35b610324600480360381019061031f9190611bf8565b610eca565b005b610340600480360381019061033b9190611c34565b610ff5565b005b61035c60048036038101906103579190611b44565b61114f565b005b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103f65780601f106103cb576101008083540402835291602001916103f6565b820191906000526020600020905b8154815290600101906020018083116103d957829003601f168201915b5050505050905090565b600061040d338484611316565b905092915050565b60011515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480610522575060011515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016104ce9190611f13565b60206040518083038186803b1580156104e657600080fd5b505afa1580156104fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051e9190611c70565b1515145b610561576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610558906121f4565b60405180910390fd5b61056b8282611405565b5050565b6000600254905090565b600061059f60405180606001604052806028815260200161239f602891398585856115a7565b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561066a575081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156108ee576106c182600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164990919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061075682600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169e90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061082882600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169e90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fd1398bee19313d6bf672ccb116e51f4a1a947e91c757907f51fbb5b5e56c698f308585856040516108dd9493929190611fb8565b60405180910390a1600190506108f3565b600090505b9392505050565b6000600360009054906101000a900460ff16905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109626116e8565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e8906121d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b9a5780601f10610b6f57610100808354040283529160200191610b9a565b820191906000526020600020905b815481529060010190602001808311610b7d57829003601f168201915b5050505050905090565b60086020528060005260406000206000915054906101000a900460ff1681565b6000610c066040518060400160405280601b81526020017f7472616e7366657228746f3a2025732c2076616c75653a20257329000000000081525084846116f0565b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410610dfa57610c9e82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169e90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d3382600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164990919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fd1398bee19313d6bf672ccb116e51f4a1a947e91c757907f51fbb5b5e56c698f30338585604051610dab9493929190611f2e565b60405180910390a1610df16040518060400160405280601281526020017f7472616e7366657220737563636565646564000000000000000000000000000081525061178f565b60019050610e3d565b610e386040518060400160405280600f81526020017f7472616e73666572206661696c6564000000000000000000000000000000000081525061178f565b600090505b92915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ed26116e8565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f58906121d4565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3042b80e435ae46c334b2cfec51a66d64c9a8a8af4cd0c279a124c35a09e91dd8282604051610fe9929190611ffd565b60405180910390a15050565b60011515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480611102575060011515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016110ae9190611f13565b60206040518083038186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fe9190611c70565b1515145b611141576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611138906121f4565b60405180910390fd5b61114b8282611828565b5050565b6111576116e8565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dd906121d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90612154565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061133c6040518060600160405280602a81526020016123c7602a91398484876119ca565b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fa0175360a15bca328baf7ea85c7b784d58b222a50d0ce760b10dba336d226a61308585856040516113f29493929190611fb8565b60405180910390a1600190509392505050565b6114456040518060400160405280601981526020017f6275726e2866726f6d3a2025732c2076616c75653a202573290000000000000081525083836116f0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ac906121b4565b60405180910390fd5b61150781600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169e90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155f8160025461169e90919063ffffffff16565b6002819055507fd1398bee19313d6bf672ccb116e51f4a1a947e91c757907f51fbb5b5e56c698f308360008460405161159b9493929190611f73565b60405180910390a15050565b611643848484846040516024016115c1949392919061207e565b6040516020818303038152906040527f6eb7943d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611a6c565b50505050565b600080828401905083811015611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168b90612194565b60405180910390fd5b8091505092915050565b60006116e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a95565b905092915050565b600033905090565b61178a838383604051602401611708939291906120ca565b6040516020818303038152906040527f07c81217000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611a6c565b505050565b611825816040516024016117a3919061205c565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611a6c565b50565b6118686040518060400160405280601781526020017f6d696e7428746f3a2025732c2076616c75653a2025732900000000000000000081525083836116f0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90612174565b60405180910390fd5b61192a81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164990919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119828160025461164990919063ffffffff16565b6002819055507fd1398bee19313d6bf672ccb116e51f4a1a947e91c757907f51fbb5b5e56c698f30600084846040516119be9493929190611f2e565b60405180910390a15050565b611a66848484846040516024016119e49493929190612108565b6040516020818303038152906040527fa366ec80000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611a6c565b50505050565b60008151905060006a636f6e736f6c652e6c6f679050602083016000808483855afa5050505050565b6000838311158290611add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad4919061205c565b60405180910390fd5b5060008385039050809150509392505050565b600081359050611aff81612359565b92915050565b600081359050611b1481612370565b92915050565b600081519050611b2981612370565b92915050565b600081359050611b3e81612387565b92915050565b600060208284031215611b5657600080fd5b6000611b6484828501611af0565b91505092915050565b60008060408385031215611b8057600080fd5b6000611b8e85828601611af0565b9250506020611b9f85828601611af0565b9150509250929050565b600080600060608486031215611bbe57600080fd5b6000611bcc86828701611af0565b9350506020611bdd86828701611af0565b9250506040611bee86828701611b2f565b9150509250925092565b60008060408385031215611c0b57600080fd5b6000611c1985828601611af0565b9250506020611c2a85828601611b05565b9150509250929050565b60008060408385031215611c4757600080fd5b6000611c5585828601611af0565b9250506020611c6685828601611b2f565b9150509250929050565b600060208284031215611c8257600080fd5b6000611c9084828501611b1a565b91505092915050565b611ca2816122bb565b82525050565b611cb181612266565b82525050565b611cc081612278565b82525050565b611ccf816122cd565b82525050565b6000611ce08261224a565b611cea8185612255565b9350611cfa818560208601612315565b611d0381612348565b840191505092915050565b6000611d1b602683612255565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611d81601b83612255565b91507f43616e6e6f74206d696e7420746f207a65726f206164647265737300000000006000830152602082019050919050565b6000611dc1601b83612255565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000611e01601383612255565b91507f43616e6e6f74206275726e20746f207a65726f000000000000000000000000006000830152602082019050919050565b6000611e41602083612255565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611e81602d83612255565b91507f5265676973747279546f6b656e3a206f6e6c79206d696e746572206f72207a6f60008301527f726120617574686f72697a6564000000000000000000000000000000000000006020830152604082019050919050565b611ee3816122a4565b82525050565b611ef2816122ae565b82525050565b6000602082019050611f0d6000830184611ca8565b92915050565b6000602082019050611f286000830184611c99565b92915050565b6000608082019050611f436000830187611ca8565b611f506020830186611c99565b611f5d6040830185611ca8565b611f6a6060830184611eda565b95945050505050565b6000608082019050611f886000830187611ca8565b611f956020830186611ca8565b611fa26040830185611c99565b611faf6060830184611eda565b95945050505050565b6000608082019050611fcd6000830187611ca8565b611fda6020830186611ca8565b611fe76040830185611ca8565b611ff46060830184611eda565b95945050505050565b60006040820190506120126000830185611ca8565b61201f6020830184611cb7565b9392505050565b600060208201905061203b6000830184611cb7565b92915050565b60006020820190506120566000830184611cc6565b92915050565b600060208201905081810360008301526120768184611cd5565b905092915050565b600060808201905081810360008301526120988187611cd5565b90506120a76020830186611ca8565b6120b46040830185611ca8565b6120c16060830184611eda565b95945050505050565b600060608201905081810360008301526120e48186611cd5565b90506120f36020830185611ca8565b6121006040830184611eda565b949350505050565b600060808201905081810360008301526121228187611cd5565b90506121316020830186611ca8565b61213e6040830185611eda565b61214b6060830184611ca8565b95945050505050565b6000602082019050818103600083015261216d81611d0e565b9050919050565b6000602082019050818103600083015261218d81611d74565b9050919050565b600060208201905081810360008301526121ad81611db4565b9050919050565b600060208201905081810360008301526121cd81611df4565b9050919050565b600060208201905081810360008301526121ed81611e34565b9050919050565b6000602082019050818103600083015261220d81611e74565b9050919050565b60006020820190506122296000830184611eda565b92915050565b60006020820190506122446000830184611ee9565b92915050565b600081519050919050565b600082825260208201905092915050565b600061227182612284565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006122c6826122f1565b9050919050565b60006122d8826122df565b9050919050565b60006122ea82612284565b9050919050565b60006122fc82612303565b9050919050565b600061230e82612284565b9050919050565b60005b83811015612333578082015181840152602081019050612318565b83811115612342576000848401525b50505050565b6000601f19601f8301169050919050565b61236281612266565b811461236d57600080fd5b50565b61237981612278565b811461238457600080fd5b50565b612390816122a4565b811461239b57600080fd5b5056fe7472616e7366657246726f6d2866726f6d3a2025732c20746f3a2025732c2076616c75653a202573617070726f7665287370656e6465723a2025732c2076616c75653a2025732c2073656e6465723a202573a26469706673582212205a7696261da4b334c52e9f9e8aaa9bdc9b9d4a593af4f59222833be7b6e91ac864736f6c63430006080033000000000000000000000000c6490378f6458bcc0df55bea96fe1053b85d7018