export declare const IntentSourceAbi: readonly [{
    readonly inputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "constructor";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "target";
        readonly type: "address";
    }];
    readonly name: "AddressEmptyCode";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "account";
        readonly type: "address";
    }];
    readonly name: "AddressInsufficientBalance";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "ArrayLengthMismatch";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "CannotFundForWithNativeReward";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "FailedInnerCall";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "InsufficientNativeReward";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "token";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "spender";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "amount";
        readonly type: "uint256";
    }];
    readonly name: "InsufficientTokenAllowance";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "IntentAlreadyExists";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "IntentAlreadyFunded";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "IntentNotClaimed";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "IntentNotExpired";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidRefundToken";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "NativeRewardTransferFailed";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "hash";
        readonly type: "bytes32";
    }];
    readonly name: "RewardsAlreadyWithdrawn";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "token";
        readonly type: "address";
    }];
    readonly name: "SafeERC20FailedOperation";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "hash";
        readonly type: "bytes32";
    }];
    readonly name: "UnauthorizedWithdrawal";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "WrongSourceChain";
    readonly type: "error";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: true;
        readonly internalType: "bytes32";
        readonly name: "hash";
        readonly type: "bytes32";
    }, {
        readonly indexed: false;
        readonly internalType: "bytes32";
        readonly name: "salt";
        readonly type: "bytes32";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "source";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "destination";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "inbox";
        readonly type: "address";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly indexed: false;
        readonly internalType: "struct TokenAmount[]";
        readonly name: "routeTokens";
        readonly type: "tuple[]";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "target";
            readonly type: "address";
        }, {
            readonly internalType: "bytes";
            readonly name: "data";
            readonly type: "bytes";
        }, {
            readonly internalType: "uint256";
            readonly name: "value";
            readonly type: "uint256";
        }];
        readonly indexed: false;
        readonly internalType: "struct Call[]";
        readonly name: "calls";
        readonly type: "tuple[]";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "creator";
        readonly type: "address";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "prover";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "deadline";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "nativeValue";
        readonly type: "uint256";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly indexed: false;
        readonly internalType: "struct TokenAmount[]";
        readonly name: "rewardTokens";
        readonly type: "tuple[]";
    }];
    readonly name: "IntentCreated";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: false;
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "funder";
        readonly type: "address";
    }];
    readonly name: "IntentFunded";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: false;
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "funder";
        readonly type: "address";
    }];
    readonly name: "IntentPartiallyFunded";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: false;
        readonly internalType: "bytes32";
        readonly name: "hash";
        readonly type: "bytes32";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "recipient";
        readonly type: "address";
    }];
    readonly name: "Refund";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: false;
        readonly internalType: "bytes32";
        readonly name: "hash";
        readonly type: "bytes32";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "recipient";
        readonly type: "address";
    }];
    readonly name: "Withdrawal";
    readonly type: "event";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32[]";
        readonly name: "routeHashes";
        readonly type: "bytes32[]";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "creator";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "prover";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "deadline";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "nativeValue";
            readonly type: "uint256";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly internalType: "struct TokenAmount[]";
            readonly name: "tokens";
            readonly type: "tuple[]";
        }];
        readonly internalType: "struct Reward[]";
        readonly name: "rewards";
        readonly type: "tuple[]";
    }];
    readonly name: "batchWithdraw";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "routeHash";
        readonly type: "bytes32";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "creator";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "prover";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "deadline";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "nativeValue";
            readonly type: "uint256";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly internalType: "struct TokenAmount[]";
            readonly name: "tokens";
            readonly type: "tuple[]";
        }];
        readonly internalType: "struct Reward";
        readonly name: "reward";
        readonly type: "tuple";
    }, {
        readonly internalType: "bool";
        readonly name: "allowPartial";
        readonly type: "bool";
    }];
    readonly name: "fund";
    readonly outputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly stateMutability: "payable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "routeHash";
        readonly type: "bytes32";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "creator";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "prover";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "deadline";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "nativeValue";
            readonly type: "uint256";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly internalType: "struct TokenAmount[]";
            readonly name: "tokens";
            readonly type: "tuple[]";
        }];
        readonly internalType: "struct Reward";
        readonly name: "reward";
        readonly type: "tuple";
    }, {
        readonly internalType: "address";
        readonly name: "funder";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "permitContact";
        readonly type: "address";
    }, {
        readonly internalType: "bool";
        readonly name: "allowPartial";
        readonly type: "bool";
    }];
    readonly name: "fundFor";
    readonly outputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint256";
                readonly name: "source";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "destination";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "inbox";
                readonly type: "address";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "target";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "data";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "value";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct Call[]";
                readonly name: "calls";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Route";
            readonly name: "route";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "creator";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "prover";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "deadline";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "nativeValue";
                readonly type: "uint256";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Reward";
            readonly name: "reward";
            readonly type: "tuple";
        }];
        readonly internalType: "struct Intent";
        readonly name: "intent";
        readonly type: "tuple";
    }];
    readonly name: "getIntentHash";
    readonly outputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }, {
        readonly internalType: "bytes32";
        readonly name: "routeHash";
        readonly type: "bytes32";
    }, {
        readonly internalType: "bytes32";
        readonly name: "rewardHash";
        readonly type: "bytes32";
    }];
    readonly stateMutability: "pure";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "getPermitContract";
    readonly outputs: readonly [{
        readonly internalType: "address";
        readonly name: "";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "getRewardStatus";
    readonly outputs: readonly [{
        readonly internalType: "enum IVaultStorage.RewardStatus";
        readonly name: "status";
        readonly type: "uint8";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "getVaultState";
    readonly outputs: readonly [{
        readonly components: readonly [{
            readonly internalType: "uint8";
            readonly name: "status";
            readonly type: "uint8";
        }, {
            readonly internalType: "uint8";
            readonly name: "mode";
            readonly type: "uint8";
        }, {
            readonly internalType: "uint8";
            readonly name: "allowPartialFunding";
            readonly type: "uint8";
        }, {
            readonly internalType: "uint8";
            readonly name: "usePermit";
            readonly type: "uint8";
        }, {
            readonly internalType: "address";
            readonly name: "target";
            readonly type: "address";
        }];
        readonly internalType: "struct IVaultStorage.VaultState";
        readonly name: "";
        readonly type: "tuple";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint256";
                readonly name: "source";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "destination";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "inbox";
                readonly type: "address";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "target";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "data";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "value";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct Call[]";
                readonly name: "calls";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Route";
            readonly name: "route";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "creator";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "prover";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "deadline";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "nativeValue";
                readonly type: "uint256";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Reward";
            readonly name: "reward";
            readonly type: "tuple";
        }];
        readonly internalType: "struct Intent";
        readonly name: "intent";
        readonly type: "tuple";
    }];
    readonly name: "intentVaultAddress";
    readonly outputs: readonly [{
        readonly internalType: "address";
        readonly name: "";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint256";
                readonly name: "source";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "destination";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "inbox";
                readonly type: "address";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "target";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "data";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "value";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct Call[]";
                readonly name: "calls";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Route";
            readonly name: "route";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "creator";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "prover";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "deadline";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "nativeValue";
                readonly type: "uint256";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Reward";
            readonly name: "reward";
            readonly type: "tuple";
        }];
        readonly internalType: "struct Intent";
        readonly name: "intent";
        readonly type: "tuple";
    }];
    readonly name: "isIntentFunded";
    readonly outputs: readonly [{
        readonly internalType: "bool";
        readonly name: "";
        readonly type: "bool";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint256";
                readonly name: "source";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "destination";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "inbox";
                readonly type: "address";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "target";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "data";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "value";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct Call[]";
                readonly name: "calls";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Route";
            readonly name: "route";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "creator";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "prover";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "deadline";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "nativeValue";
                readonly type: "uint256";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Reward";
            readonly name: "reward";
            readonly type: "tuple";
        }];
        readonly internalType: "struct Intent";
        readonly name: "intent";
        readonly type: "tuple";
    }];
    readonly name: "publish";
    readonly outputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint256";
                readonly name: "source";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "destination";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "inbox";
                readonly type: "address";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "target";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "data";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "value";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct Call[]";
                readonly name: "calls";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Route";
            readonly name: "route";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "creator";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "prover";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "deadline";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "nativeValue";
                readonly type: "uint256";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Reward";
            readonly name: "reward";
            readonly type: "tuple";
        }];
        readonly internalType: "struct Intent";
        readonly name: "intent";
        readonly type: "tuple";
    }, {
        readonly internalType: "bool";
        readonly name: "allowPartial";
        readonly type: "bool";
    }];
    readonly name: "publishAndFund";
    readonly outputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly stateMutability: "payable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint256";
                readonly name: "source";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "destination";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "inbox";
                readonly type: "address";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "target";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "data";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "value";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct Call[]";
                readonly name: "calls";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Route";
            readonly name: "route";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "creator";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "prover";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "deadline";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "nativeValue";
                readonly type: "uint256";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "amount";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct TokenAmount[]";
                readonly name: "tokens";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct Reward";
            readonly name: "reward";
            readonly type: "tuple";
        }];
        readonly internalType: "struct Intent";
        readonly name: "intent";
        readonly type: "tuple";
    }, {
        readonly internalType: "address";
        readonly name: "funder";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "permitContact";
        readonly type: "address";
    }, {
        readonly internalType: "bool";
        readonly name: "allowPartial";
        readonly type: "bool";
    }];
    readonly name: "publishAndFundFor";
    readonly outputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "routeHash";
        readonly type: "bytes32";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "creator";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "prover";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "deadline";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "nativeValue";
            readonly type: "uint256";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly internalType: "struct TokenAmount[]";
            readonly name: "tokens";
            readonly type: "tuple[]";
        }];
        readonly internalType: "struct Reward";
        readonly name: "reward";
        readonly type: "tuple";
    }, {
        readonly internalType: "address";
        readonly name: "token";
        readonly type: "address";
    }];
    readonly name: "recoverToken";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "routeHash";
        readonly type: "bytes32";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "creator";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "prover";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "deadline";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "nativeValue";
            readonly type: "uint256";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly internalType: "struct TokenAmount[]";
            readonly name: "tokens";
            readonly type: "tuple[]";
        }];
        readonly internalType: "struct Reward";
        readonly name: "reward";
        readonly type: "tuple";
    }];
    readonly name: "refund";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "intentHash";
        readonly type: "bytes32";
    }];
    readonly name: "vaults";
    readonly outputs: readonly [{
        readonly components: readonly [{
            readonly internalType: "uint8";
            readonly name: "status";
            readonly type: "uint8";
        }, {
            readonly internalType: "uint8";
            readonly name: "mode";
            readonly type: "uint8";
        }, {
            readonly internalType: "uint8";
            readonly name: "allowPartialFunding";
            readonly type: "uint8";
        }, {
            readonly internalType: "uint8";
            readonly name: "usePermit";
            readonly type: "uint8";
        }, {
            readonly internalType: "address";
            readonly name: "target";
            readonly type: "address";
        }];
        readonly internalType: "struct IVaultStorage.VaultState";
        readonly name: "state";
        readonly type: "tuple";
    }, {
        readonly internalType: "address";
        readonly name: "permitContract";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "version";
    readonly outputs: readonly [{
        readonly internalType: "string";
        readonly name: "";
        readonly type: "string";
    }];
    readonly stateMutability: "pure";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "routeHash";
        readonly type: "bytes32";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "creator";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "prover";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "deadline";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "nativeValue";
            readonly type: "uint256";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly internalType: "struct TokenAmount[]";
            readonly name: "tokens";
            readonly type: "tuple[]";
        }];
        readonly internalType: "struct Reward";
        readonly name: "reward";
        readonly type: "tuple";
    }];
    readonly name: "withdrawRewards";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}];
export declare const IntentSourceBytecode = "0x60808060405234601557612c10908161001b8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c908163111980f714610b66575080631299d61714610b17578063251043bf14610adc5780632c308f52146108f55780634f1c8070146108de578063526a72aa1461080e57806354fd4d50146107a7578063695a461c146106ec57806369f7cdc61461062457806381a09d34146105865780638616615e146102fd57806393a359e9146102db57806396c5c27214610297578063a900c65214610260578063ab4b583e14610194578063cca23bf21461010a5763fb4035f6146100da57600080fd5b346101055760606100f26100ed36610c1a565b611284565b9060405192835260208301526040820152f35b600080fd5b3461010557602036600319011261010557600435600052600060205260c0604060002061013681610d3e565b906001808060a01b039101541661018d604051809360809060ff815116835260ff602082015116602084015260ff604082015116604084015260ff60608201511660608401528160018060a01b0391015116910152565b60a0820152f35b6040366003190112610105576004356001600160401b03811161010557806004019060406003198236030112610105576024359182151583036101055760209281610245602461023f6101e961024e96611284565b509290978860005260008a5261022c6102056040600020610d3e565b61020f8b82611398565b6102258b8d61021e8b806110f5565b0135611da4565b8a8861188c565b019161023883866110e0565b90886113b7565b926110e0565b90339185611475565b6102584782611854565b604051908152f35b34610105576020366003190112610105576004356000526000602052602060018060a01b0360016040600020015416604051908152f35b346101055760206102c96102aa36610c1a565b6102c36102b682611284565b50919092858101906110e0565b916113b7565b6040516001600160a01b039091168152f35b346101055760206102f36102ee36610c1a565b611165565b6040519015158152f35b34610105576060366003190112610105576024356004356001600160401b03821161010557816004019060a06003198436030112610105576001600160a01b03610345610c85565b1691821561041e576040516020810190602082526103788161036a6040820186610e09565b03601f198101835282610d1d565b519020604051602081019184835260408201526040815261039a606082610d1d565b519020918260005260006020526103b46040600020610d3e565b92600360ff855116141580610577575b8061056a575b6105565792946084019260005b6103e1858561110a565b905081101561042f57858161041061040b6103fc898961110a565b6001600160a01b03949161113f565b610e72565b161461041e576001016103d7565b63cd91597b60e01b60005260046000fd5b508290868660208201906003825260408301600081526060840190600082526080850192835285600052600060205260ff60406000209551169063ff00000062ff000061ff008854975160081b16925160101b16935160181b1693600160201b600160c01b03905160201b1694600160201b600160c01b03199263ff000000199162ffffff191617161716171717905560018060a01b036104cf83610e72565b167f0ba6f12b978882904e7444c7a8fcadd2d9f692a6a97aa18e5fb44c3bbc5801236020604051848152a260405191610cd290818401928484106001600160401b0385111761054057849361052893611f098639610ea5565b03906000f51561053457005b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b6335bd755560e11b60005260045260246000fd5b50606486013515156103ca565b50600460ff85511614156103c4565b3461010557602036600319011261010557600060806040516105a781610d02565b8281528260208201528260408201528260608201520152600435600052600060205260a06105d86040600020610d3e565b610622604051809260809060ff815116835260ff602082015116602084015260ff604082015116604084015260ff60608201511660608401528160018060a01b0391015116910152565bf35b34610105576080366003190112610105576004356001600160401b0381116101055780600401906040600319823603011261010557602435916001600160a01b038316830361010557610675610c85565b606435908115158203610105576020948361069261025895611284565b509080978160005260008a526106e660246106b06040600020610d3e565b926106bc84868961188c565b6106cb858e61021e8a806110f5565b016106e06106d982886110e0565b86866113b7565b956110e0565b90611a61565b34610105576040366003190112610105576004356001600160401b0381116101055761071c903690600401610cd2565b6024356001600160401b0381116101055761073b903690600401610cd2565b908183036107965760005b838110156107945760008160051b908483101561078057509061077a826107716001948601866110e0565b90880135610ebc565b01610746565b634e487b7160e01b81526032600452602490fd5b005b63512509d360e11b60005260046000fd5b3461010557600036600319011261010557610800604080516107c98282610d1d565b600e8152602081016d0625c626e5c6c5ac8c86e6eca60760931b815282519384926020845251809281602086015285850190610caf565b601f01601f19168101030190f35b346101055760a0366003190112610105576024356004356001600160401b0382116101055760a0826004019260031990360301126101055761084e610c85565b916064356001600160a01b0381168103610105576084359081151582036101055760209461025893604051878101908882526108918161036a6040820186610e09565b519020604051888101918883526040820152604081526108b2606082610d1d565b519020958660005260008852866108cc6040600020610d3e565b926108d88184846113b7565b93611a61565b34610105576107946108ef36610c4d565b90610ebc565b346101055761090336610c4d565b6040516020810190602082526109208161036a6040820186610e09565b5190206040516020810191848352604082015260408152610942606082610d1d565b51902080600052600060205261095b6040600020610d3e565b600360ff825116141580610acd575b610a1b575b600360ff82511603610a12575b60026020828101918252600060408085018281526060860183815260808701848152888552848652929093209551865495519151935192516001600160c01b031990961660ff919091161760089190911b61ff00161760109290921b62ff0000169190911760189190911b63ff000000161791901b640100000000600160c01b03161790556001600160a01b036104cf83610e72565b6004815261097c565b602460206001600160a01b03610a32868301610e72565b1660405192838092634ce8a2d960e11b82528760048301525afa90811561053457600091610a9e575b506001600160a01b0316610a89576040830135421161096f57506332567f1d60e21b60005260045260246000fd5b506335bd755560e11b60005260045260246000fd5b610ac0915060203d602011610ac6575b610ab88183610d1d565b810190610e86565b85610a5b565b503d610aae565b50600460ff825116141561096a565b34610105576020610aec36610c1a565b610258610af882611284565b505091826000526000845282610b116040600020610d3e565b9161188c565b3461010557602036600319011261010557600435600052600060205260ff604060002054166005811015610b5057602090604051908152f35b634e487b7160e01b600052602160045260246000fd5b606036600319011261010557600435602435916001600160401b0383116101055760a0836004019360031990360301126101055760443580151581036101055783610c12602095848761024e960190888252610bc98161036a6040820186610e09565b51902060405188810191888352604082015260408152610bea606082610d1d565b519020958660005260008852610c0c87610c076040600020610d3e565b611398565b866113b7565b339185611475565b602060031982011261010557600435906001600160401b0382116101055760409082900360031901126101055760040190565b9060406003198301126101055760043591602435906001600160401b0382116101055760a09082900360031901126101055760040190565b604435906001600160a01b038216820361010557565b35906001600160a01b038216820361010557565b60005b838110610cc25750506000910152565b8181015183820152602001610cb2565b9181601f84011215610105578235916001600160401b038311610105576020808501948460051b01011161010557565b60a081019081106001600160401b0382111761054057604052565b90601f801991011681019081106001600160401b0382111761054057604052565b90604051610d4b81610d02565b608081935460ff8116835260ff8160081c16602084015260ff8160101c16604084015260ff8160181c16606084015260018060a01b039060201c16910152565b9035601e19823603018112156101055701602081359101916001600160401b038211610105578160061b3603831361010557565b9160209082815201919060005b818110610dd95750505090565b909192604080600192838060a01b03610df188610c9b565b16815260208781013590820152019401929101610dcc565b610e6f919060a090610e5f906001600160a01b03610e2682610c9b565b168452600180841b03610e3b60208301610c9b565b16602085015260408101356040850152606081013560608501526080810190610d8b565b9190928160808201520191610dbf565b90565b356001600160a01b03811681036101055790565b9081602091031261010557516001600160a01b03811681036101055790565b604090610e6f939281528160208201520190610e09565b9160249192604051602081019060208252610ede8161036a6040820189610e09565b5190206040516020810191838352604082015260408152610f00606082610d1d565b5190209360206001600160a01b03610f19828401610e72565b1660405195868092634ce8a2d960e11b82528960048301525afa938415610534576000946110bf575b50846000526000602052610f596040600020610d3e565b6001600160a01b039094168015948515806110b0575b806110a1575b610fa857868615610f945763dac420a360e01b60005260045260246000fd5b63313d14a960e11b60005260045260246000fd5b9091939592945060038152602081016001815260408201600081526060830160008152608084019185835286600052600060205260ff60406000209551169063ff00000062ff000061ff008854975160081b16925160101b16935160181b1693600160201b600160c01b03905160201b1694600160201b600160c01b03199263ff000000199162ffffff19161716171617171790557f6653a45d3871e4110fa55dac0269f9f93a6d9078d402f7153594e50573d7f0cd6020604051848152a260405191610cd290818401928484106001600160401b0385111761054057849361109593611f098639610ea5565b03906000f51561053457565b50600460ff8251161415610f75565b50600360ff8251161415610f6f565b6110d991945060203d602011610ac657610ab88183610d1d565b9238610f42565b903590609e1981360301821215610105570190565b90359060be1981360301821215610105570190565b903590601e198136030182121561010557018035906001600160401b03821161010557602001918160061b3603831361010557565b919081101561114f5760061b0190565b634e487b7160e01b600052603260045260246000fd5b602061117182806110f5565b013546036111a3578061119e61023f61118c610e6f94611284565b50919060208501926102c384876110e0565b611dc1565b50600090565b906020838281520160208260051b85010193836000915b8483106111d05750505050505090565b909192939495601f198282030185526000873590605e1985360301821215611281575083016001600160a01b0361120682610c9b565b1682526020810135601e198236030181121561010557810190602082359201906001600160401b0383116101055782360382136101055783836040608093602096879660608860019b015281606087015286860137600084840186015201356040830152601f01601f191601019801969501930191906111c0565b80fd5b61128e81806110f5565b60405160208101906020825282356040820152602083013560608201526040830135608082015260018060a01b036112c860608501610c9b565b1660a08201526112ef6112de6080850185610d8b565b60c080850152610100840191610dbf565b9260a0810135601e1982360301811215610105570192602084359401936001600160401b038111610105578060051b360385136101055761036a61134492849261135297603f198584030160e08601526111a9565b5190209160208101906110e0565b60405161136f8161036a6020820194602086526040830190610e09565b519020604051602081019083825282604082015260408152611392606082610d1d565b51902092565b5160ff166113a35750565b6330a4e71560e01b60005260045260246000fd5b909161142f61141f916020610cd29461036a6113f8604051946113dc858a0187610d1d565b88865284860198611f098a396040519283918683019586610ea5565b604051958694611410858701998a9251928391610caf565b85019151809385840190610caf565b010103601f198101835282610d1d565b5190209060405191602083019160ff60f81b83523060601b60218501526035840152605583015260558252611465607583610d1d565b905190206001600160a01b031690565b93906060810135801580156117ca575b50506080810192611496848361110a565b92905060009460005b84811061153a575050505050506000146114f757604080519283526001600160a01b0390911660208301527f97cf148f008486c490afd3b522e2398d5039247c7fffe81fcae2a8c6ee6221039190819081015b0390a1565b604080519283526001600160a01b0390911660208301527f2da42efda5225344c30e729dc0eafc2e56292ac9b9b5c2b16e0e74c86ea5921d9190819081016114f2565b61155161040b8261154b858761110a565b9061113f565b60206115618361154b868861110a565b6040516370a0823160e01b81526001600160a01b0388811660048301819052941693919092013591602081602481875afa90811561053457600091611799575b508281106115b6575b5050505060010161149f565b820391821161178357604051636eb1769f60e11b81526001600160a01b038c16600482018190523060248301529290602081604481885afa90811561053457600091611752575b506040516370a0823160e01b815260048101859052602081602481895afa90811561053457600091611721575b508082101561171a57505b60008282106116e95750505b80156115aa576116969260009283926040519160208301936323b872dd60e01b855260248401526044830152606482015260648152611681608482610d1d565b519082865af161168f611815565b9083611ea7565b80519081151591826116c5575b50506116b1578080806115aa565b635274afe760e01b60005260045260246000fd5b819250906020918101031261010557602001518015908115036101055738806116a3565b929b5091908a156116ff57505098600199611641565b915091606493638f87ba6760e01b8452600452602452604452fd5b9050611635565b906020823d821161174a575b8161173a60209383610d1d565b810103126112815750513861162a565b3d915061172d565b906020823d821161177b575b8161176b60209383610d1d565b81010312611281575051386115fd565b3d915061175e565b634e487b7160e01b600052601160045260246000fd5b906020823d82116117c2575b816117b260209383610d1d565b81010312611281575051386115a1565b3d91506117a5565b813410611800576000808093819382906117f7575b6001600160a01b03891690f115610534573880611485565b506108fc6117df565b86631368c98360e11b60005260045260246000fd5b3d1561184f573d906001600160401b0382116105405760405191611843601f8201601f191660200184610d1d565b82523d6000602084013e565b606090565b908061185e575050565b600080808093335af161186f611815565b50156118785750565b63da9a84fd60e01b60005260045260246000fd5b91600360ff82511614908115611a52575b50611a3e576118ac82806110f5565b359060206118ba84806110f5565b013560406118c885806110f5565b0135926118e060606118da87806110f5565b01610e72565b936118f86118ee87806110f5565b608081019061110a565b611904888093996110f5565b60a081013590601e198136030182121561010557018035906001600160401b038211610105576020018160051b3603811361010557602084019161194883866110e0565b61195190610e72565b9a61195c84876110e0565b60200161196890610e72565b9461197385886110e0565b604001359661198286826110e0565b6060013595611990916110e0565b6080810161199d9161110a565b9c90986040519b8c9b8c5260208c015260408b0152600160a01b600190031660608a01526080890161012090526101208901906119d992610dbf565b9087820360a08901526119eb926111a9565b60c086019390935260e08501528382036101008501526001600160a01b03908116971695611a1892610dbf565b037fd802f2610d0c85b3f19be4413f3cf49de1d4e787edecd538274437a5b9aa648d91a4565b635eaf4c6960e01b60005260045260246000fd5b5160ff1660041490503861189d565b93909692919495966060810135151580611d9a575b611d855760ff855116151580611d76575b611d615760ff85511615611d45575b602085019360008552600014611d3d576001975b60ff604087019916895260018060a01b0316918215159384600014611d35576001935b60ff6060890195168552608088019560018060a01b038b168752611d07575b50876000526000602052604060002060ff8851168b82549162ff000061ff008b5160081b16925160101b169063ff000000895160181b1692600160201b600160c01b038b5160201b1694600160201b600160c01b03199263ff000000199162ffffff1916171617161717179055604051610cd2808201908282106001600160401b0383111761054057858b8493611b8793611f098639610ea5565b03906000f51561053457855160ff16600203611bea575050604080519586526001600160a01b039096166020860152507f2da42efda5225344c30e729dc0eafc2e56292ac9b9b5c2b16e0e74c86ea5921d95509293849350830191506114f29050565b600160ff875116149182611cf6575b505015611cb4577f2da42efda5225344c30e729dc0eafc2e56292ac9b9b5c2b16e0e74c86ea5921d966002855285600052600060205260ff60406000209551169063ff00000062ff000061ff008854975160081b16925160101b16935160181b1693600160201b600160c01b03905160201b1694600160201b600160c01b03199263ff000000199162ffffff19161716171617171790556114f2604051928392839092916020906040830194835260018060a01b0316910152565b5050604080519384526001600160a01b03949094166020840152507f97cf148f008486c490afd3b522e2398d5039247c7fffe81fcae2a8c6ee622103935050a1565b611d009250611dc1565b3880611bf9565b8860005260006020526001604060002001906bffffffffffffffffffffffff60a01b82541617905538611aec565b600093611acd565b600097611aaa565b8315611d585760ff60015b168552611a96565b60ff6002611d50565b856330a4e71560e01b60005260045260246000fd5b50600160ff8651161415611a87565b8563d287282d60e01b60005260045260246000fd5b5081311515611a76565b4603611dad5750565b6305c2a22560e21b60005260045260246000fd5b906080820191611dd1838261110a565b9390508231606083013511611e9e5760005b848110611df4575050505050600190565b611e0561040b8261154b858761110a565b6024602080611e188561154b888a61110a565b6040516370a0823160e01b81526001600160a01b038a811660048301529290910135949093849290918391165afa90811561053457600091611e6d575b5010611e6357600101611de3565b5050505050600090565b906020823d8211611e96575b81611e8660209383610d1d565b8101031261128157505138611e55565b3d9150611e79565b50505050600090565b90611ecd5750805115611ebc57805190602001fd5b630a12f52160e11b60005260046000fd5b81511580611eff575b611ede575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ed656fe6080806040523461049457610cd2803803809161001c82856108d7565b8339810190604081830312610494578051602082015190916001600160401b038211610494570160a081840312610494576040519261005a846108bc565b610063826108fa565b8452610071602083016108fa565b602085015260408281015190850152606080830151908501908152608083015190926001600160401b038211610494570181601f82011215610494578051906001600160401b0382116108a657604051926100d260208460051b01856108d7565b82845260208085019360061b8301019181831161049457602001925b82841061085b575050505060808401908152604051632068274d60e21b8152600481018490529160a083602481335afa92831561034d576000936107cd575b5060208301805160ff1661060a57505060018060a01b0360808301511681515192600094600160ff6060840151161461059a575b5060005b84811061017f575050505050505b516001600160a01b0316ff5b83516001600160a01b039061019590839061091c565b5151169060206101a682875161091c565b5101516040516370a0823160e01b815230600482015290602082602481875afa91821561034d57600092610567575b508082106101ea575b50506001915001610165565b906101f491610946565b916001600160a01b0388168061038a575b5082610212575b806101de565b60ff60408501511692604051636eb1769f60e11b8152866004820152306024820152602081604481865afa90811561034d57600091610359575b506040516370a0823160e01b815260048101889052602081602481875afa90811561034d57600091610319575b508082101561031257505b8181106102de5750600193505b8061029d575b5061020c565b6102d791604051916323b872dd60e01b60208401528760248401523060448401526064830152606482526102d26084836108d7565b610bd9565b3880610297565b9192936001146000146102f657509060019291610291565b8583638f87ba6760e01b60005260045260245260445260646000fd5b9050610284565b906020823d8211610345575b81610332602093836108d7565b8101031261034257505138610279565b80fd5b3d9150610325565b6040513d6000823e3d90fd5b906020823d8211610382575b81610372602093836108d7565b810103126103425750513861024c565b3d9150610365565b600093919360405163927da10560e01b8152876004820152856024820152306044820152606081606481865afa90811561055c5782916104fb575b506040516370a0823160e01b8152600481018990526020816024818a5afa9081156104f05783916104bb575b506001600160a01b0382168111156104aa5750905b506001600160a01b031682811061049957506000915b8061042b575b50509138610205565b813b1561049457604051631b63c28b60e11b8152600481018890523060248201526001600160a01b03909116604482015260648101859052906000908290608490829084905af1801561034d57610483575b80610422565b600061048e916108d7565b3861047d565b600080fd5b806104a49193610946565b9161041c565b6001600160a01b0316919050610406565b90506020813d82116104e8575b816104d5602093836108d7565b810103126104e45751386103f1565b8280fd5b3d91506104c8565b6040513d85823e3d90fd5b90506060813d8211610554575b81610515606093836108d7565b81010312610550578051906001600160a01b03821682036104e45760408161054260206105499401610bc6565b5001610bc6565b50386103c5565b5080fd5b3d9150610508565b6040513d84823e3d90fd5b90916020823d8211610592575b81610581602093836108d7565b8101031261034257505190386101d5565b3d9150610574565b90945060405190635480632960e11b82526004820152602081602481335afa90811561034d576000916105d0575b509338610161565b90506020813d602011610602575b816105eb602093836108d7565b81010312610494576105fc906108fa565b386105c8565b3d91506105de565b91509250600160ff825116146000146106bc57506080018051610636906001600160a01b031684610969565b5190516001600160a01b039091169080610653575b50505b610173565b8181804710610696575b50600080808481945af161066f610ad2565b5061064b57600080516020610cb28339815191526020600092604051908152a3388061064b565b60009192506020600080516020610cb283398151915291604051908152a347813861065d565b909150600260ff825116146000146106e5575050805161064e906001600160a01b031682610969565b5160ff166003146106f7575b50610173565b6080015181516040516370a0823160e01b81523060048201526001600160a01b039283169392909116602082602481875afa91821561034d57600092610799575b5081156107845760405163a9059cbb60e01b60208201526001600160a01b03919091166024820152604480820192909252908152909161077e91906102d26064836108d7565b386106f1565b836308a285bb60e21b60005260045260246000fd5b90916020823d6020116107c5575b816107b4602093836108d7565b810103126103425750519038610738565b3d91506107a7565b909260a0823d60a011610853575b816107e860a093836108d7565b810103126103425750610847608060405192610803846108bc565b61080c8161090e565b845261081a6020820161090e565b602085015261082b6040820161090e565b604085015261083c6060820161090e565b6060850152016108fa565b6080820152913861012d565b3d91506107db565b604084830312610494576040805191908201906001600160401b038211838310176108a6576040926020928452610891876108fa565b815282870151838201528152019301926100ee565b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b038211176108a657604052565b601f909101601f19168101906001600160401b038211908210176108a657604052565b51906001600160a01b038216820361049457565b519060ff8216820361049457565b80518210156109305760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9190820391821161095357565b634e487b7160e01b600052601160045260246000fd5b90608082018051519160005b838110610983575050505050565b82516001600160a01b039061099990839061091c565b51511660206109a983865161091c565b510151906040516370a0823160e01b8152306004820152602081602481855afa90811561034d57600091610aa0575b508751600194939291906001600160a01b03878116911681148015610a97575b15610a575790918093868060a01b038b51168303610a36575b5050508481610a25575b5050505b01610975565b610a2e92610b11565b388084610a1b565b6020600080516020610cb283398151915291604051908152a3388281610a11565b50610a63838784610b11565b828111610a73575b505050610a1f565b610a89610a8f93868060a01b038b511692610946565b91610b11565b388080610a6b565b508382106109f8565b906020823d8211610aca575b81610ab9602093836108d7565b8101031261034257505160016109d8565b3d9150610aac565b3d15610b0c573d906001600160401b0382116108a65760405191610b00601f8201601f1916602001846108d7565b82523d6000602084013e565b606090565b60405163a9059cbb60e01b602082019081526001600160a01b0384166024830152604480830186905282529193929190610b4c6064826108d7565b6020600080938193519082895af115918219610bbb575b8215610b9f575b5050610b7557505050565b6040519182526001600160a01b03908116921690600080516020610cb283398151915290602090a3565b909150610bb25750823b155b3880610b6a565b60011415610bab565b50506000513d610b63565b519065ffffffffffff8216820361049457565b600080610c029260018060a01b03169360208151910182865af1610bfb610ad2565b9083610c50565b8051908115159182610c2c575b5050610c185750565b635274afe760e01b60005260045260246000fd5b81925090602091810103126104945760200151801590811503610494573880610c0f565b90610c765750805115610c6557805190602001fd5b630a12f52160e11b60005260046000fd5b81511580610ca8575b610c87575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15610c7f56fedce1598fdc26bc6ef7bef35c4bf92827604fbe4defdcb5c8569c2c8e035acde1a2646970667358221220f2996f53b872ac6571c75da08b2927bab90adb93321595735d663b77c6815a0b64736f6c634300081a0033";
export declare const IntentSourceDeployedBytecode = "0x608080604052600436101561001357600080fd5b60003560e01c908163111980f714610b66575080631299d61714610b17578063251043bf14610adc5780632c308f52146108f55780634f1c8070146108de578063526a72aa1461080e57806354fd4d50146107a7578063695a461c146106ec57806369f7cdc61461062457806381a09d34146105865780638616615e146102fd57806393a359e9146102db57806396c5c27214610297578063a900c65214610260578063ab4b583e14610194578063cca23bf21461010a5763fb4035f6146100da57600080fd5b346101055760606100f26100ed36610c1a565b611284565b9060405192835260208301526040820152f35b600080fd5b3461010557602036600319011261010557600435600052600060205260c0604060002061013681610d3e565b906001808060a01b039101541661018d604051809360809060ff815116835260ff602082015116602084015260ff604082015116604084015260ff60608201511660608401528160018060a01b0391015116910152565b60a0820152f35b6040366003190112610105576004356001600160401b03811161010557806004019060406003198236030112610105576024359182151583036101055760209281610245602461023f6101e961024e96611284565b509290978860005260008a5261022c6102056040600020610d3e565b61020f8b82611398565b6102258b8d61021e8b806110f5565b0135611da4565b8a8861188c565b019161023883866110e0565b90886113b7565b926110e0565b90339185611475565b6102584782611854565b604051908152f35b34610105576020366003190112610105576004356000526000602052602060018060a01b0360016040600020015416604051908152f35b346101055760206102c96102aa36610c1a565b6102c36102b682611284565b50919092858101906110e0565b916113b7565b6040516001600160a01b039091168152f35b346101055760206102f36102ee36610c1a565b611165565b6040519015158152f35b34610105576060366003190112610105576024356004356001600160401b03821161010557816004019060a06003198436030112610105576001600160a01b03610345610c85565b1691821561041e576040516020810190602082526103788161036a6040820186610e09565b03601f198101835282610d1d565b519020604051602081019184835260408201526040815261039a606082610d1d565b519020918260005260006020526103b46040600020610d3e565b92600360ff855116141580610577575b8061056a575b6105565792946084019260005b6103e1858561110a565b905081101561042f57858161041061040b6103fc898961110a565b6001600160a01b03949161113f565b610e72565b161461041e576001016103d7565b63cd91597b60e01b60005260046000fd5b508290868660208201906003825260408301600081526060840190600082526080850192835285600052600060205260ff60406000209551169063ff00000062ff000061ff008854975160081b16925160101b16935160181b1693600160201b600160c01b03905160201b1694600160201b600160c01b03199263ff000000199162ffffff191617161716171717905560018060a01b036104cf83610e72565b167f0ba6f12b978882904e7444c7a8fcadd2d9f692a6a97aa18e5fb44c3bbc5801236020604051848152a260405191610cd290818401928484106001600160401b0385111761054057849361052893611f098639610ea5565b03906000f51561053457005b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b6335bd755560e11b60005260045260246000fd5b50606486013515156103ca565b50600460ff85511614156103c4565b3461010557602036600319011261010557600060806040516105a781610d02565b8281528260208201528260408201528260608201520152600435600052600060205260a06105d86040600020610d3e565b610622604051809260809060ff815116835260ff602082015116602084015260ff604082015116604084015260ff60608201511660608401528160018060a01b0391015116910152565bf35b34610105576080366003190112610105576004356001600160401b0381116101055780600401906040600319823603011261010557602435916001600160a01b038316830361010557610675610c85565b606435908115158203610105576020948361069261025895611284565b509080978160005260008a526106e660246106b06040600020610d3e565b926106bc84868961188c565b6106cb858e61021e8a806110f5565b016106e06106d982886110e0565b86866113b7565b956110e0565b90611a61565b34610105576040366003190112610105576004356001600160401b0381116101055761071c903690600401610cd2565b6024356001600160401b0381116101055761073b903690600401610cd2565b908183036107965760005b838110156107945760008160051b908483101561078057509061077a826107716001948601866110e0565b90880135610ebc565b01610746565b634e487b7160e01b81526032600452602490fd5b005b63512509d360e11b60005260046000fd5b3461010557600036600319011261010557610800604080516107c98282610d1d565b600e8152602081016d0625c626e5c6c5ac8c86e6eca60760931b815282519384926020845251809281602086015285850190610caf565b601f01601f19168101030190f35b346101055760a0366003190112610105576024356004356001600160401b0382116101055760a0826004019260031990360301126101055761084e610c85565b916064356001600160a01b0381168103610105576084359081151582036101055760209461025893604051878101908882526108918161036a6040820186610e09565b519020604051888101918883526040820152604081526108b2606082610d1d565b519020958660005260008852866108cc6040600020610d3e565b926108d88184846113b7565b93611a61565b34610105576107946108ef36610c4d565b90610ebc565b346101055761090336610c4d565b6040516020810190602082526109208161036a6040820186610e09565b5190206040516020810191848352604082015260408152610942606082610d1d565b51902080600052600060205261095b6040600020610d3e565b600360ff825116141580610acd575b610a1b575b600360ff82511603610a12575b60026020828101918252600060408085018281526060860183815260808701848152888552848652929093209551865495519151935192516001600160c01b031990961660ff919091161760089190911b61ff00161760109290921b62ff0000169190911760189190911b63ff000000161791901b640100000000600160c01b03161790556001600160a01b036104cf83610e72565b6004815261097c565b602460206001600160a01b03610a32868301610e72565b1660405192838092634ce8a2d960e11b82528760048301525afa90811561053457600091610a9e575b506001600160a01b0316610a89576040830135421161096f57506332567f1d60e21b60005260045260246000fd5b506335bd755560e11b60005260045260246000fd5b610ac0915060203d602011610ac6575b610ab88183610d1d565b810190610e86565b85610a5b565b503d610aae565b50600460ff825116141561096a565b34610105576020610aec36610c1a565b610258610af882611284565b505091826000526000845282610b116040600020610d3e565b9161188c565b3461010557602036600319011261010557600435600052600060205260ff604060002054166005811015610b5057602090604051908152f35b634e487b7160e01b600052602160045260246000fd5b606036600319011261010557600435602435916001600160401b0383116101055760a0836004019360031990360301126101055760443580151581036101055783610c12602095848761024e960190888252610bc98161036a6040820186610e09565b51902060405188810191888352604082015260408152610bea606082610d1d565b519020958660005260008852610c0c87610c076040600020610d3e565b611398565b866113b7565b339185611475565b602060031982011261010557600435906001600160401b0382116101055760409082900360031901126101055760040190565b9060406003198301126101055760043591602435906001600160401b0382116101055760a09082900360031901126101055760040190565b604435906001600160a01b038216820361010557565b35906001600160a01b038216820361010557565b60005b838110610cc25750506000910152565b8181015183820152602001610cb2565b9181601f84011215610105578235916001600160401b038311610105576020808501948460051b01011161010557565b60a081019081106001600160401b0382111761054057604052565b90601f801991011681019081106001600160401b0382111761054057604052565b90604051610d4b81610d02565b608081935460ff8116835260ff8160081c16602084015260ff8160101c16604084015260ff8160181c16606084015260018060a01b039060201c16910152565b9035601e19823603018112156101055701602081359101916001600160401b038211610105578160061b3603831361010557565b9160209082815201919060005b818110610dd95750505090565b909192604080600192838060a01b03610df188610c9b565b16815260208781013590820152019401929101610dcc565b610e6f919060a090610e5f906001600160a01b03610e2682610c9b565b168452600180841b03610e3b60208301610c9b565b16602085015260408101356040850152606081013560608501526080810190610d8b565b9190928160808201520191610dbf565b90565b356001600160a01b03811681036101055790565b9081602091031261010557516001600160a01b03811681036101055790565b604090610e6f939281528160208201520190610e09565b9160249192604051602081019060208252610ede8161036a6040820189610e09565b5190206040516020810191838352604082015260408152610f00606082610d1d565b5190209360206001600160a01b03610f19828401610e72565b1660405195868092634ce8a2d960e11b82528960048301525afa938415610534576000946110bf575b50846000526000602052610f596040600020610d3e565b6001600160a01b039094168015948515806110b0575b806110a1575b610fa857868615610f945763dac420a360e01b60005260045260246000fd5b63313d14a960e11b60005260045260246000fd5b9091939592945060038152602081016001815260408201600081526060830160008152608084019185835286600052600060205260ff60406000209551169063ff00000062ff000061ff008854975160081b16925160101b16935160181b1693600160201b600160c01b03905160201b1694600160201b600160c01b03199263ff000000199162ffffff19161716171617171790557f6653a45d3871e4110fa55dac0269f9f93a6d9078d402f7153594e50573d7f0cd6020604051848152a260405191610cd290818401928484106001600160401b0385111761054057849361109593611f098639610ea5565b03906000f51561053457565b50600460ff8251161415610f75565b50600360ff8251161415610f6f565b6110d991945060203d602011610ac657610ab88183610d1d565b9238610f42565b903590609e1981360301821215610105570190565b90359060be1981360301821215610105570190565b903590601e198136030182121561010557018035906001600160401b03821161010557602001918160061b3603831361010557565b919081101561114f5760061b0190565b634e487b7160e01b600052603260045260246000fd5b602061117182806110f5565b013546036111a3578061119e61023f61118c610e6f94611284565b50919060208501926102c384876110e0565b611dc1565b50600090565b906020838281520160208260051b85010193836000915b8483106111d05750505050505090565b909192939495601f198282030185526000873590605e1985360301821215611281575083016001600160a01b0361120682610c9b565b1682526020810135601e198236030181121561010557810190602082359201906001600160401b0383116101055782360382136101055783836040608093602096879660608860019b015281606087015286860137600084840186015201356040830152601f01601f191601019801969501930191906111c0565b80fd5b61128e81806110f5565b60405160208101906020825282356040820152602083013560608201526040830135608082015260018060a01b036112c860608501610c9b565b1660a08201526112ef6112de6080850185610d8b565b60c080850152610100840191610dbf565b9260a0810135601e1982360301811215610105570192602084359401936001600160401b038111610105578060051b360385136101055761036a61134492849261135297603f198584030160e08601526111a9565b5190209160208101906110e0565b60405161136f8161036a6020820194602086526040830190610e09565b519020604051602081019083825282604082015260408152611392606082610d1d565b51902092565b5160ff166113a35750565b6330a4e71560e01b60005260045260246000fd5b909161142f61141f916020610cd29461036a6113f8604051946113dc858a0187610d1d565b88865284860198611f098a396040519283918683019586610ea5565b604051958694611410858701998a9251928391610caf565b85019151809385840190610caf565b010103601f198101835282610d1d565b5190209060405191602083019160ff60f81b83523060601b60218501526035840152605583015260558252611465607583610d1d565b905190206001600160a01b031690565b93906060810135801580156117ca575b50506080810192611496848361110a565b92905060009460005b84811061153a575050505050506000146114f757604080519283526001600160a01b0390911660208301527f97cf148f008486c490afd3b522e2398d5039247c7fffe81fcae2a8c6ee6221039190819081015b0390a1565b604080519283526001600160a01b0390911660208301527f2da42efda5225344c30e729dc0eafc2e56292ac9b9b5c2b16e0e74c86ea5921d9190819081016114f2565b61155161040b8261154b858761110a565b9061113f565b60206115618361154b868861110a565b6040516370a0823160e01b81526001600160a01b0388811660048301819052941693919092013591602081602481875afa90811561053457600091611799575b508281106115b6575b5050505060010161149f565b820391821161178357604051636eb1769f60e11b81526001600160a01b038c16600482018190523060248301529290602081604481885afa90811561053457600091611752575b506040516370a0823160e01b815260048101859052602081602481895afa90811561053457600091611721575b508082101561171a57505b60008282106116e95750505b80156115aa576116969260009283926040519160208301936323b872dd60e01b855260248401526044830152606482015260648152611681608482610d1d565b519082865af161168f611815565b9083611ea7565b80519081151591826116c5575b50506116b1578080806115aa565b635274afe760e01b60005260045260246000fd5b819250906020918101031261010557602001518015908115036101055738806116a3565b929b5091908a156116ff57505098600199611641565b915091606493638f87ba6760e01b8452600452602452604452fd5b9050611635565b906020823d821161174a575b8161173a60209383610d1d565b810103126112815750513861162a565b3d915061172d565b906020823d821161177b575b8161176b60209383610d1d565b81010312611281575051386115fd565b3d915061175e565b634e487b7160e01b600052601160045260246000fd5b906020823d82116117c2575b816117b260209383610d1d565b81010312611281575051386115a1565b3d91506117a5565b813410611800576000808093819382906117f7575b6001600160a01b03891690f115610534573880611485565b506108fc6117df565b86631368c98360e11b60005260045260246000fd5b3d1561184f573d906001600160401b0382116105405760405191611843601f8201601f191660200184610d1d565b82523d6000602084013e565b606090565b908061185e575050565b600080808093335af161186f611815565b50156118785750565b63da9a84fd60e01b60005260045260246000fd5b91600360ff82511614908115611a52575b50611a3e576118ac82806110f5565b359060206118ba84806110f5565b013560406118c885806110f5565b0135926118e060606118da87806110f5565b01610e72565b936118f86118ee87806110f5565b608081019061110a565b611904888093996110f5565b60a081013590601e198136030182121561010557018035906001600160401b038211610105576020018160051b3603811361010557602084019161194883866110e0565b61195190610e72565b9a61195c84876110e0565b60200161196890610e72565b9461197385886110e0565b604001359661198286826110e0565b6060013595611990916110e0565b6080810161199d9161110a565b9c90986040519b8c9b8c5260208c015260408b0152600160a01b600190031660608a01526080890161012090526101208901906119d992610dbf565b9087820360a08901526119eb926111a9565b60c086019390935260e08501528382036101008501526001600160a01b03908116971695611a1892610dbf565b037fd802f2610d0c85b3f19be4413f3cf49de1d4e787edecd538274437a5b9aa648d91a4565b635eaf4c6960e01b60005260045260246000fd5b5160ff1660041490503861189d565b93909692919495966060810135151580611d9a575b611d855760ff855116151580611d76575b611d615760ff85511615611d45575b602085019360008552600014611d3d576001975b60ff604087019916895260018060a01b0316918215159384600014611d35576001935b60ff6060890195168552608088019560018060a01b038b168752611d07575b50876000526000602052604060002060ff8851168b82549162ff000061ff008b5160081b16925160101b169063ff000000895160181b1692600160201b600160c01b038b5160201b1694600160201b600160c01b03199263ff000000199162ffffff1916171617161717179055604051610cd2808201908282106001600160401b0383111761054057858b8493611b8793611f098639610ea5565b03906000f51561053457855160ff16600203611bea575050604080519586526001600160a01b039096166020860152507f2da42efda5225344c30e729dc0eafc2e56292ac9b9b5c2b16e0e74c86ea5921d95509293849350830191506114f29050565b600160ff875116149182611cf6575b505015611cb4577f2da42efda5225344c30e729dc0eafc2e56292ac9b9b5c2b16e0e74c86ea5921d966002855285600052600060205260ff60406000209551169063ff00000062ff000061ff008854975160081b16925160101b16935160181b1693600160201b600160c01b03905160201b1694600160201b600160c01b03199263ff000000199162ffffff19161716171617171790556114f2604051928392839092916020906040830194835260018060a01b0316910152565b5050604080519384526001600160a01b03949094166020840152507f97cf148f008486c490afd3b522e2398d5039247c7fffe81fcae2a8c6ee622103935050a1565b611d009250611dc1565b3880611bf9565b8860005260006020526001604060002001906bffffffffffffffffffffffff60a01b82541617905538611aec565b600093611acd565b600097611aaa565b8315611d585760ff60015b168552611a96565b60ff6002611d50565b856330a4e71560e01b60005260045260246000fd5b50600160ff8651161415611a87565b8563d287282d60e01b60005260045260246000fd5b5081311515611a76565b4603611dad5750565b6305c2a22560e21b60005260045260246000fd5b906080820191611dd1838261110a565b9390508231606083013511611e9e5760005b848110611df4575050505050600190565b611e0561040b8261154b858761110a565b6024602080611e188561154b888a61110a565b6040516370a0823160e01b81526001600160a01b038a811660048301529290910135949093849290918391165afa90811561053457600091611e6d575b5010611e6357600101611de3565b5050505050600090565b906020823d8211611e96575b81611e8660209383610d1d565b8101031261128157505138611e55565b3d9150611e79565b50505050600090565b90611ecd5750805115611ebc57805190602001fd5b630a12f52160e11b60005260046000fd5b81511580611eff575b611ede575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15611ed656fe6080806040523461049457610cd2803803809161001c82856108d7565b8339810190604081830312610494578051602082015190916001600160401b038211610494570160a081840312610494576040519261005a846108bc565b610063826108fa565b8452610071602083016108fa565b602085015260408281015190850152606080830151908501908152608083015190926001600160401b038211610494570181601f82011215610494578051906001600160401b0382116108a657604051926100d260208460051b01856108d7565b82845260208085019360061b8301019181831161049457602001925b82841061085b575050505060808401908152604051632068274d60e21b8152600481018490529160a083602481335afa92831561034d576000936107cd575b5060208301805160ff1661060a57505060018060a01b0360808301511681515192600094600160ff6060840151161461059a575b5060005b84811061017f575050505050505b516001600160a01b0316ff5b83516001600160a01b039061019590839061091c565b5151169060206101a682875161091c565b5101516040516370a0823160e01b815230600482015290602082602481875afa91821561034d57600092610567575b508082106101ea575b50506001915001610165565b906101f491610946565b916001600160a01b0388168061038a575b5082610212575b806101de565b60ff60408501511692604051636eb1769f60e11b8152866004820152306024820152602081604481865afa90811561034d57600091610359575b506040516370a0823160e01b815260048101889052602081602481875afa90811561034d57600091610319575b508082101561031257505b8181106102de5750600193505b8061029d575b5061020c565b6102d791604051916323b872dd60e01b60208401528760248401523060448401526064830152606482526102d26084836108d7565b610bd9565b3880610297565b9192936001146000146102f657509060019291610291565b8583638f87ba6760e01b60005260045260245260445260646000fd5b9050610284565b906020823d8211610345575b81610332602093836108d7565b8101031261034257505138610279565b80fd5b3d9150610325565b6040513d6000823e3d90fd5b906020823d8211610382575b81610372602093836108d7565b810103126103425750513861024c565b3d9150610365565b600093919360405163927da10560e01b8152876004820152856024820152306044820152606081606481865afa90811561055c5782916104fb575b506040516370a0823160e01b8152600481018990526020816024818a5afa9081156104f05783916104bb575b506001600160a01b0382168111156104aa5750905b506001600160a01b031682811061049957506000915b8061042b575b50509138610205565b813b1561049457604051631b63c28b60e11b8152600481018890523060248201526001600160a01b03909116604482015260648101859052906000908290608490829084905af1801561034d57610483575b80610422565b600061048e916108d7565b3861047d565b600080fd5b806104a49193610946565b9161041c565b6001600160a01b0316919050610406565b90506020813d82116104e8575b816104d5602093836108d7565b810103126104e45751386103f1565b8280fd5b3d91506104c8565b6040513d85823e3d90fd5b90506060813d8211610554575b81610515606093836108d7565b81010312610550578051906001600160a01b03821682036104e45760408161054260206105499401610bc6565b5001610bc6565b50386103c5565b5080fd5b3d9150610508565b6040513d84823e3d90fd5b90916020823d8211610592575b81610581602093836108d7565b8101031261034257505190386101d5565b3d9150610574565b90945060405190635480632960e11b82526004820152602081602481335afa90811561034d576000916105d0575b509338610161565b90506020813d602011610602575b816105eb602093836108d7565b81010312610494576105fc906108fa565b386105c8565b3d91506105de565b91509250600160ff825116146000146106bc57506080018051610636906001600160a01b031684610969565b5190516001600160a01b039091169080610653575b50505b610173565b8181804710610696575b50600080808481945af161066f610ad2565b5061064b57600080516020610cb28339815191526020600092604051908152a3388061064b565b60009192506020600080516020610cb283398151915291604051908152a347813861065d565b909150600260ff825116146000146106e5575050805161064e906001600160a01b031682610969565b5160ff166003146106f7575b50610173565b6080015181516040516370a0823160e01b81523060048201526001600160a01b039283169392909116602082602481875afa91821561034d57600092610799575b5081156107845760405163a9059cbb60e01b60208201526001600160a01b03919091166024820152604480820192909252908152909161077e91906102d26064836108d7565b386106f1565b836308a285bb60e21b60005260045260246000fd5b90916020823d6020116107c5575b816107b4602093836108d7565b810103126103425750519038610738565b3d91506107a7565b909260a0823d60a011610853575b816107e860a093836108d7565b810103126103425750610847608060405192610803846108bc565b61080c8161090e565b845261081a6020820161090e565b602085015261082b6040820161090e565b604085015261083c6060820161090e565b6060850152016108fa565b6080820152913861012d565b3d91506107db565b604084830312610494576040805191908201906001600160401b038211838310176108a6576040926020928452610891876108fa565b815282870151838201528152019301926100ee565b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b038211176108a657604052565b601f909101601f19168101906001600160401b038211908210176108a657604052565b51906001600160a01b038216820361049457565b519060ff8216820361049457565b80518210156109305760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9190820391821161095357565b634e487b7160e01b600052601160045260246000fd5b90608082018051519160005b838110610983575050505050565b82516001600160a01b039061099990839061091c565b51511660206109a983865161091c565b510151906040516370a0823160e01b8152306004820152602081602481855afa90811561034d57600091610aa0575b508751600194939291906001600160a01b03878116911681148015610a97575b15610a575790918093868060a01b038b51168303610a36575b5050508481610a25575b5050505b01610975565b610a2e92610b11565b388084610a1b565b6020600080516020610cb283398151915291604051908152a3388281610a11565b50610a63838784610b11565b828111610a73575b505050610a1f565b610a89610a8f93868060a01b038b511692610946565b91610b11565b388080610a6b565b508382106109f8565b906020823d8211610aca575b81610ab9602093836108d7565b8101031261034257505160016109d8565b3d9150610aac565b3d15610b0c573d906001600160401b0382116108a65760405191610b00601f8201601f1916602001846108d7565b82523d6000602084013e565b606090565b60405163a9059cbb60e01b602082019081526001600160a01b0384166024830152604480830186905282529193929190610b4c6064826108d7565b6020600080938193519082895af115918219610bbb575b8215610b9f575b5050610b7557505050565b6040519182526001600160a01b03908116921690600080516020610cb283398151915290602090a3565b909150610bb25750823b155b3880610b6a565b60011415610bab565b50506000513d610b63565b519065ffffffffffff8216820361049457565b600080610c029260018060a01b03169360208151910182865af1610bfb610ad2565b9083610c50565b8051908115159182610c2c575b5050610c185750565b635274afe760e01b60005260045260246000fd5b81925090602091810103126104945760200151801590811503610494573880610c0f565b90610c765750805115610c6557805190602001fd5b630a12f52160e11b60005260046000fd5b81511580610ca8575b610c87575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15610c7f56fedce1598fdc26bc6ef7bef35c4bf92827604fbe4defdcb5c8569c2c8e035acde1a2646970667358221220f2996f53b872ac6571c75da08b2927bab90adb93321595735d663b77c6815a0b64736f6c634300081a0033";
