0x608060405234801561001057600080fd5b5061337d806100206000396000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c80637bda19d61161015c578063a22cb465116100ce578063c87b56dd11610087578063c87b56dd146105c3578063ca15c873146105d6578063d547741f146105e9578063e985e9c5146105fc578063f2fde38b14610639578063f31d576c1461064c57600080fd5b8063a22cb46514610530578063a355125d14610543578063a58c12ae14610556578063b88d4fde1461058c578063c56dfcda1461059f578063c5ef3094146105b057600080fd5b806391d148541161012057806391d14854146104e8578063931688cb146104fb57806395d89b411461050e5780639683a30e146105165780639c3938471461051e578063a217fddf1461052857600080fd5b80637bda19d6146104805780637f3113181461048c5780638545f4ea146104b15780638da5cb5b146104c45780639010d07c146104d557600080fd5b806336568abe116101f55780635f0bb974116101b95780635f0bb974146104245780636352211e1461042c5780636673c4c21461043f5780636f8b44b01461045257806370a0823114610465578063715018a61461047857600080fd5b806336568abe146103a157806342842e0e146103b457806357d82291146103c75780635b11c681146103db5780635cdf36cd146103ff57600080fd5b806318160ddd1161024757806318160ddd1461031457806323b872dd1461032a578063248a9ca31461033d57806327ec4445146103605780632f2ff15d1461038457806332cb6b0c1461039757600080fd5b806301ffc9a71461028457806306fdde03146102ac578063081812fc146102c1578063095ea7b3146102ec5780630ead7afa14610301575b600080fd5b610297610292366004612e1d565b61065f565b60405190151581526020015b60405180910390f35b6102b4610670565b6040516102a3919061301e565b6102d46102cf366004612dc2565b610702565b6040516001600160a01b0390911681526020016102a3565b6102ff6102fa366004612cdf565b61079c565b005b6102ff61030f366004612ec3565b6108b2565b61031c610a77565b6040519081526020016102a3565b6102ff610338366004612c04565b610a88565b61031c61034b366004612dc2565b60009081526065602052604090206001015490565b61029761036e366004612dc2565b6101636020526000908152604090205460ff1681565b6102ff610392366004612dda565b610ab9565b61031c61015f5481565b6102ff6103af366004612dda565b610adf565b6102ff6103c2366004612c04565b610b5d565b610160546102d4906001600160a01b031681565b6102976103e9366004612dc2565b6101646020526000908152604090205460ff1681565b61029761040d366004612dc2565b6000908152610163602052604090205460ff161590565b6102ff610b78565b6102d461043a366004612dc2565b610b9a565b6102ff61044d366004612d08565b610c11565b6102ff610460366004612dc2565b610e6f565b61031c610473366004612b3a565b610e82565b6102ff610f09565b6101655460ff16610297565b61029761049a366004612dc2565b6000908152610164602052604090205460ff161590565b6102ff6104bf366004612dc2565b610f6f565b60c9546001600160a01b03166102d4565b6102d46104e3366004612dfc565b610f82565b6102976104f6366004612dda565b610fa1565b6102ff610509366004612e55565b610fcc565b6102b4610fe1565b6102ff610ff0565b61031c6101665481565b61031c600081565b6102ff61053e366004612ca5565b61101b565b6102ff610551366004612b86565b611026565b61057a610564366004612b3a565b6101676020526000908152604090205460ff1681565b60405160ff90911681526020016102a3565b6102ff61059a366004612c3f565b6111ea565b61016554610100900460ff16610297565b6102ff6105be366004612b3a565b61121c565b6102b46105d1366004612dc2565b61124c565b61031c6105e4366004612dc2565b61131c565b6102ff6105f7366004612dda565b611333565b61029761060a366004612b54565b6001600160a01b0391821660009081526101006020908152604080832093909416825291909152205460ff1690565b6102ff610647366004612b3a565b611359565b6102ff61065a366004612e88565b611424565b600061066a82611616565b92915050565b606060fb805461067f90613285565b80601f01602080910402602001604051908101604052809291908181526020018280546106ab90613285565b80156106f85780601f106106cd576101008083540402835291602001916106f8565b820191906000526020600020905b8154815290600101906020018083116106db57829003601f168201915b5050505050905090565b600081815260fd60205260408120546001600160a01b03166107805760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b50600090815260ff60205260409020546001600160a01b031690565b60006107a782610b9a565b9050806001600160a01b0316836001600160a01b031614156108155760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610777565b336001600160a01b03821614806108315750610831813361060a565b6108a35760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610777565b6108ad8383611656565b505050565b6101655460ff166109105760405162461bcd60e51b815260206004820152602260248201527f555576333a20566f78656c2047656e65726174696f6e206973206e6f74206f7060448201526132b760f11b6064820152608401610777565b61015f5461016154106109355760405162461bcd60e51b815260040161077790613154565b610941338484846116c4565b61098d5760405162461bcd60e51b815260206004820152601d60248201527f555576333a20436c61696d20496e76616c6964205369676e61747572650000006044820152606401610777565b6000838152610163602052604090205460ff161580156109bd57506000828152610164602052604090205460ff16155b6109d95760405162461bcd60e51b815260040161077790613083565b6109e861016180546001019055565b600083815261016360209081526040808320805460ff199081166001908117909255868552610164909352922080549091169091179055610a3233610a2d6101615490565b611738565b61016154604080518581526020810185905233917fd3480f45e255eea2035336883ba8587e3b18b08bc8f7049ec19f6cc40aab585b91015b60405180910390a3505050565b6000610a836101615490565b905090565b610a923382611752565b610aae5760405162461bcd60e51b8152600401610777906130b8565b6108ad838383611846565b600082815260656020526040902060010154610ad581336119e2565b6108ad8383611a46565b6001600160a01b0381163314610b4f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610777565b610b598282611a68565b5050565b6108ad838383604051806020016040528060008152506111ea565b6000610b8481336119e2565b50610165805460ff19811660ff90911615179055565b600081815260fd60205260408120546001600160a01b03168061066a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610777565b6000610c1d81336119e2565b8151835114610c8c5760405162461bcd60e51b815260206004820152603560248201527f555576333a20706172656e745f315f746f6b656e49647320616e6420616464726044820152740cae6e6cae640d8cadccee8d040dad2e6dac2e8c6d605b1b6064820152608401610777565b61015f54835161016154610ca091906131e0565b1115610cbe5760405162461bcd60e51b815260040161077790613154565b60005b8251811015610e6957610cd961016180546001019055565b6101636000858381518110610cfe57634e487b7160e01b600052603260045260246000fd5b60209081029190910181015182528101919091526040016000205460ff1615610d395760405162461bcd60e51b815260040161077790613083565b60016101636000868481518110610d6057634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550610dc2838281518110610db057634e487b7160e01b600052603260045260246000fd5b6020026020010151610a2d6101615490565b61016154838281518110610de657634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03167f7a688d4878cbd39da9b81cf43a08dadd22473d543d60975431287ab6d22e220c868481518110610e3857634e487b7160e01b600052603260045260246000fd5b6020026020010151604051610e4f91815260200190565b60405180910390a380610e61816132c0565b915050610cc1565b50505050565b6000610e7b81336119e2565b5061015f55565b60006001600160a01b038216610eed5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610777565b506001600160a01b0316600090815260fe602052604090205490565b60c9546001600160a01b03163314610f635760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610777565b610f6d6000611a8a565b565b6000610f7b81336119e2565b5061016655565b6000828152609760205260408120610f9a9083611adc565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610fd881336119e2565b610b5982611ae8565b606060fc805461067f90613285565b6000610ffc81336119e2565b50610165805461ff001981166101009182900460ff1615909102179055565b610b59338383611afc565b600054610100900460ff166110415760005460ff1615611045565b303b155b6110a85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610777565b600054610100900460ff161580156110ca576000805461ffff19166101011790555b6110d2611bc4565b6110da611bc4565b61113e6040518060400160405280601d81526020017f556e696e7465726573746564556e69636f726e7347656e6573697356580000008152506040518060400160405280600d81526020016c0aaaa408ecadccae6d2e640acb609b1b815250611beb565b611146611c39565b61114e611bc4565b611156611bc4565b61115e611c69565b683635c9adc5dea0000061016655611af461015f5561117c86611359565b611187600033611c98565b61119084611ae8565b61016080546001600160a01b038088166001600160a01b031992831617909255610168805486841690831617905561016980549285169290911691909117905580156111e2576000805461ff00191690555b505050505050565b6111f43383611752565b6112105760405162461bcd60e51b8152600401610777906130b8565b610e6984848484611ca2565b600061122881336119e2565b5061016080546001600160a01b0319166001600160a01b0392909216919091179055565b600081815260fd60205260409020546060906001600160a01b03166112c15760405162461bcd60e51b815260206004820152602560248201527f555576333a2055524920717565727920666f72206e6f6e6578697374656e74206044820152643a37b5b2b760d91b6064820152608401610777565b60006112cb611cd5565b905060008151116112eb5760405180602001604052806000815250610f9a565b806112f584611ce5565b604051602001611306929190612f3d565b6040516020818303038152906040529392505050565b600081815260976020526040812061066a90611dff565b60008281526065602052604090206001015461134f81336119e2565b6108ad8383611a68565b60c9546001600160a01b031633146113b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610777565b6001600160a01b0381166114185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610777565b61142181611a8a565b50565b61142f338383611e09565b61147b5760405162461bcd60e51b815260206004820152601c60248201527f555576333a204d696e7420496e76616c6964205369676e6174757265000000006044820152606401610777565b61016554610100900460ff166114e45760405162461bcd60e51b815260206004820152602860248201527f555576333a20566f78656c2047656e65726174696f6e202855434429206973206044820152673737ba1037b832b760c11b6064820152608401610777565b61015f5461016154106115095760405162461bcd60e51b815260040161077790613154565b6000828152610163602052604090205460ff16156115395760405162461bcd60e51b815260040161077790613083565b61154861016180546001019055565b6000828152610163602052604090819020805460ff1916600117905561016054610166549151632770a7eb60e21b815233600482015260248101929092526001600160a01b031690639dc29fac90604401600060405180830381600087803b1580156115b357600080fd5b505af11580156115c7573d6000803e3d6000fd5b505050506115d933610a2d6101615490565b6101615460405183815233907f1b1ff098d61971f9774405ac8f28224f841e7204e2c66943cc1c03069827d7769060200160405180910390a35050565b60006001600160e01b031982166380ac58cd60e01b148061164757506001600160e01b03198216635b5e139f60e01b145b8061066a575061066a82611e73565b600081815260ff6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061168b82610b9a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6040516bffffffffffffffffffffffff19606086901b1660208201526034810184905260548101839052600090819060740160408051601f198184030181529190528051602090910120905061171a8184611e98565b610168546001600160a01b039081169116149150505b949350505050565b610b59828260405180602001604052806000815250611ebc565b600081815260fd60205260408120546001600160a01b03166117cb5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610777565b60006117d683610b9a565b9050806001600160a01b0316846001600160a01b031614806118115750836001600160a01b031661180684610702565b6001600160a01b0316145b8061173057506001600160a01b038082166000908152610100602090815260408083209388168352929052205460ff16611730565b826001600160a01b031661185982610b9a565b6001600160a01b0316146118bd5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610777565b6001600160a01b03821661191f5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610777565b61192a600082611656565b6001600160a01b038316600090815260fe6020526040812080546001929061195390849061322b565b90915550506001600160a01b038216600090815260fe602052604081208054600192906119819084906131e0565b9091555050600081815260fd602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6119ec8282610fa1565b610b5957611a04816001600160a01b03166014611eef565b611a0f836020611eef565b604051602001611a20929190612f6c565b60408051601f198184030181529082905262461bcd60e51b82526107779160040161301e565b611a5082826120d1565b60008281526097602052604090206108ad9082612157565b611a72828261216c565b60008281526097602052604090206108ad90826121d3565b60c980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000610f9a83836121e8565b8051610b59906101629060208401906129a4565b816001600160a01b0316836001600160a01b03161415611b5e5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610777565b6001600160a01b0383811660008181526101006020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610a6a565b600054610100900460ff16610f6d5760405162461bcd60e51b815260040161077790613109565b600054610100900460ff16611c125760405162461bcd60e51b815260040161077790613109565b8151611c259060fb9060208501906129a4565b5080516108ad9060fc9060208401906129a4565b600054610100900460ff16611c605760405162461bcd60e51b815260040161077790613109565b610f6d33611a8a565b600054610100900460ff16611c905760405162461bcd60e51b815260040161077790613109565b600161012d55565b610b598282611a46565b611cad848484611846565b611cb984848484612220565b610e695760405162461bcd60e51b815260040161077790613031565b6060610162805461067f90613285565b606081611d095750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611d335780611d1d816132c0565b9150611d2c9050600a836131f8565b9150611d0d565b60008167ffffffffffffffff811115611d5c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611d86576020820181803683370190505b5090505b841561173057611d9b60018361322b565b9150611da8600a866132db565b611db39060306131e0565b60f81b818381518110611dd657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611df8600a866131f8565b9450611d8a565b600061066a825490565b6040516bffffffffffffffffffffffff19606085901b16602082015260348101839052600090819060540160408051601f1981840301815291905280516020909101209050611e588184611e98565b610169546001600160a01b0391821691161495945050505050565b60006001600160e01b03198216635a05180f60e01b148061066a575061066a8261232a565b6000806000611ea7858561235f565b91509150611eb4816123cf565b509392505050565b611ec683836125d0565b611ed36000848484612220565b6108ad5760405162461bcd60e51b815260040161077790613031565b60606000611efe83600261320c565b611f099060026131e0565b67ffffffffffffffff811115611f2f57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611f59576020820181803683370190505b509050600360fc1b81600081518110611f8257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611fbf57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611fe384600261320c565b611fee9060016131e0565b90505b6001811115612082576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061203057634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061205457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361207b8161326e565b9050611ff1565b508315610f9a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610777565b6120db8282610fa1565b610b595760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556121133390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610f9a836001600160a01b038416612712565b6121768282610fa1565b15610b595760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610f9a836001600160a01b038416612761565b600082600001828154811061220d57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60006001600160a01b0384163b1561232257604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612264903390899088908890600401612fe1565b602060405180830381600087803b15801561227e57600080fd5b505af19250505080156122ae575060408051601f3d908101601f191682019092526122ab91810190612e39565b60015b612308573d8080156122dc576040519150601f19603f3d011682016040523d82523d6000602084013e6122e1565b606091505b5080516123005760405162461bcd60e51b815260040161077790613031565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611730565b506001611730565b60006001600160e01b03198216637965db0b60e01b148061066a57506301ffc9a760e01b6001600160e01b031983161461066a565b6000808251604114156123965760208301516040840151606085015160001a61238a8782858561287e565b945094505050506123c8565b8251604014156123c057602083015160408401516123b586838361296b565b9350935050506123c8565b506000905060025b9250929050565b60008160048111156123f157634e487b7160e01b600052602160045260246000fd5b14156123fa5750565b600181600481111561241c57634e487b7160e01b600052602160045260246000fd5b141561246a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610777565b600281600481111561248c57634e487b7160e01b600052602160045260246000fd5b14156124da5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610777565b60038160048111156124fc57634e487b7160e01b600052602160045260246000fd5b14156125555760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610777565b600481600481111561257757634e487b7160e01b600052602160045260246000fd5b14156114215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610777565b6001600160a01b0382166126265760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610777565b600081815260fd60205260409020546001600160a01b03161561268b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610777565b6001600160a01b038216600090815260fe602052604081208054600192906126b49084906131e0565b9091555050600081815260fd602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008181526001830160205260408120546127595750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561066a565b50600061066a565b6000818152600183016020526040812054801561287457600061278560018361322b565b85549091506000906127999060019061322b565b905081811461281a5760008660000182815481106127c757634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106127f857634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061283957634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061066a565b600091505061066a565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156128b55750600090506003612962565b8460ff16601b141580156128cd57508460ff16601c14155b156128de5750600090506004612962565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612932573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661295b57600060019250925050612962565b9150600090505b94509492505050565b6000806001600160ff1b0383168161298860ff86901c601b6131e0565b90506129968782888561287e565b935093505050935093915050565b8280546129b090613285565b90600052602060002090601f0160209004810192826129d25760008555612a18565b82601f106129eb57805160ff1916838001178555612a18565b82800160010185558215612a18579182015b82811115612a185782518255916020019190600101906129fd565b50612a24929150612a28565b5090565b5b80821115612a245760008155600101612a29565b80356001600160a01b0381168114612a5457600080fd5b919050565b600082601f830112612a69578081fd5b81356020612a7e612a79836131bc565b61318b565b80838252828201915082860187848660051b8901011115612a9d578586fd5b855b85811015612ac257612ab082612a3d565b84529284019290840190600101612a9f565b5090979650505050505050565b600082601f830112612adf578081fd5b813567ffffffffffffffff811115612af957612af961331b565b612b0c601f8201601f191660200161318b565b818152846020838601011115612b20578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215612b4b578081fd5b610f9a82612a3d565b60008060408385031215612b66578081fd5b612b6f83612a3d565b9150612b7d60208401612a3d565b90509250929050565b600080600080600060a08688031215612b9d578081fd5b612ba686612a3d565b9450612bb460208701612a3d565b9350604086013567ffffffffffffffff811115612bcf578182fd5b612bdb88828901612acf565b935050612bea60608701612a3d565b9150612bf860808701612a3d565b90509295509295909350565b600080600060608486031215612c18578283fd5b612c2184612a3d565b9250612c2f60208501612a3d565b9150604084013590509250925092565b60008060008060808587031215612c54578384fd5b612c5d85612a3d565b9350612c6b60208601612a3d565b925060408501359150606085013567ffffffffffffffff811115612c8d578182fd5b612c9987828801612acf565b91505092959194509250565b60008060408385031215612cb7578182fd5b612cc083612a3d565b915060208301358015158114612cd4578182fd5b809150509250929050565b60008060408385031215612cf1578182fd5b612cfa83612a3d565b946020939093013593505050565b60008060408385031215612d1a578081fd5b823567ffffffffffffffff80821115612d31578283fd5b818501915085601f830112612d44578283fd5b81356020612d54612a79836131bc565b8083825282820191508286018a848660051b8901011115612d73578788fd5b8796505b84871015612d95578035835260019690960195918301918301612d77565b5096505086013592505080821115612dab578283fd5b50612db885828601612a59565b9150509250929050565b600060208284031215612dd3578081fd5b5035919050565b60008060408385031215612dec578182fd5b82359150612b7d60208401612a3d565b60008060408385031215612e0e578182fd5b50508035926020909101359150565b600060208284031215612e2e578081fd5b8135610f9a81613331565b600060208284031215612e4a578081fd5b8151610f9a81613331565b600060208284031215612e66578081fd5b813567ffffffffffffffff811115612e7c578182fd5b61173084828501612acf565b60008060408385031215612e9a578182fd5b82359150602083013567ffffffffffffffff811115612eb7578182fd5b612db885828601612acf565b600080600060608486031215612ed7578081fd5b8335925060208401359150604084013567ffffffffffffffff811115612efb578182fd5b612f0786828701612acf565b9150509250925092565b60008151808452612f29816020860160208601613242565b601f01601f19169290920160200192915050565b60008351612f4f818460208801613242565b835190830190612f63818360208801613242565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612fa4816017850160208801613242565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612fd5816028840160208801613242565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061301490830184612f11565b9695505050505050565b602081526000610f9a6020830184612f11565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f555576333a205555732068617665206265656e2075736564206265666f726521604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6020808252601b908201527f555576333a204e6f206d6f72652055557320617661696c61626c650000000000604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156131b4576131b461331b565b604052919050565b600067ffffffffffffffff8211156131d6576131d661331b565b5060051b60200190565b600082198211156131f3576131f36132ef565b500190565b60008261320757613207613305565b500490565b6000816000190483118215151615613226576132266132ef565b500290565b60008282101561323d5761323d6132ef565b500390565b60005b8381101561325d578181015183820152602001613245565b83811115610e695750506000910152565b60008161327d5761327d6132ef565b506000190190565b600181811c9082168061329957607f821691505b602082108114156132ba57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156132d4576132d46132ef565b5060010190565b6000826132ea576132ea613305565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461142157600080fdfea26469706673582212206b3caa50ad678e709a71403e192898cb996c2565e88a4c411aaabc9111326d9b64736f6c63430008040033