@xsolla/payment-client-core 0.5.1 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2dvb2dsZS1wYXkvZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBcGlWZXJzaW9uID0gbnVtYmVyO1xudHlwZSBBcGlWZXJzaW9uTWlub3IgPSBudW1iZXI7XG5cbmludGVyZmFjZSBBZGRyZXNzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzMTogc3RyaW5nO1xuICBhZGRyZXNzMjogc3RyaW5nO1xuICBhZGRyZXNzMzogc3RyaW5nO1xuICBsb2NhbGl0eTogc3RyaW5nO1xuICBhZG1pbmlzdHJhdGl2ZUFyZWE6IHN0cmluZztcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgcG9zdGFsQ29kZTogc3RyaW5nO1xuICBzb3J0aW5nQ29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEaXNwbGF5SXRlbXMgPSBBcnJheTx7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcHJpY2U6IHN0cmluZztcbn0+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uSW5mbyB7XG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcbiAgdG90YWxQcmljZVN0YXR1czogc3RyaW5nO1xuICB0b3RhbFByaWNlPzogbnVtYmVyIHwgc3RyaW5nO1xuICBjb3VudHJ5Q29kZT86IHN0cmluZztcbiAgdG90YWxQcmljZUxhYmVsPzogc3RyaW5nO1xuICBkaXNwbGF5SXRlbXM/OiBEaXNwbGF5SXRlbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxsb3dlZFBheW1lbnRNZXRob2Qge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHtcbiAgICBhbGxvd2VkQXV0aE1ldGhvZHM6IHN0cmluZ1tdO1xuICAgIGFsbG93ZWRDYXJkTmV0d29ya3M6IHN0cmluZ1tdO1xuICAgIGFsbG93UHJlcGFpZENhcmRzOiBib29sZWFuO1xuICAgIGJpbGxpbmdBZGRyZXNzUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgYmlsbGluZ0FkZHJlc3NQYXJhbWV0ZXJzOiB7XG4gICAgICBmb3JtYXQ6IHN0cmluZztcbiAgICAgIHBob25lTnVtYmVyUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbiAgdG9rZW5pemF0aW9uU3BlY2lmaWNhdGlvbjoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBnYXRld2F5OiBzdHJpbmc7XG4gICAgICAndmFudGl2Om1lcmNoYW50UGF5UGFnZUlkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRPcmRlcklkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRUcmFuc2FjdGlvbklkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRSZXBvcnRHcm91cCc/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc1JlYWR5VG9QYXlSZXF1ZXN0IHtcbiAgYXBpVmVyc2lvbjogQXBpVmVyc2lvbjtcbiAgYXBpVmVyc2lvbk1pbm9yOiBBcGlWZXJzaW9uTWlub3I7XG4gIGFsbG93ZWRQYXltZW50TWV0aG9kczogQWxsb3dlZFBheW1lbnRNZXRob2RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlQYXltZW50UmVxdWVzdCB7XG4gIGFwaVZlcnNpb246IEFwaVZlcnNpb247XG4gIGFwaVZlcnNpb25NaW5vcjogQXBpVmVyc2lvbk1pbm9yO1xuICBtZXJjaGFudEluZm86IHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gIH07XG4gIGFsbG93ZWRQYXltZW50TWV0aG9kczogQWxsb3dlZFBheW1lbnRNZXRob2RbXTtcbiAgdHJhbnNhY3Rpb25JbmZvOiBUcmFuc2FjdGlvbkluZm87XG4gIGVtYWlsUmVxdWlyZWQ6IGJvb2xlYW47XG4gIHNoaXBwaW5nQWRkcmVzc1JlcXVpcmVkOiBib29sZWFuO1xuICBjYWxsYmFja0ludGVudHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0IHtcbiAgdHJhbnNhY3Rpb25TdGF0ZTogJ1NVQ0NFU1MnIHwgJ0VSUk9SJztcbiAgZXJyb3I/OiB7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGludGVudDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhIHtcbiAgYXBpVmVyc2lvbjogbnVtYmVyO1xuICBhcGlWZXJzaW9uTWlub3I6IG51bWJlcjtcbiAgcGF5bWVudE1ldGhvZERhdGE6IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBpbmZvOiB7XG4gICAgICBjYXJkRGV0YWlsczogc3RyaW5nO1xuICAgICAgYXNzdXJhbmNlRGV0YWlsczoge1xuICAgICAgICBhY2NvdW50VmVyaWZpZWQ6IGJvb2xlYW47XG4gICAgICAgIGNhcmRIb2xkZXJBdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICAgICAgfTtcbiAgICAgIGNhcmROZXR3b3JrOiBzdHJpbmc7XG4gICAgICBiaWxsaW5nQWRkcmVzcz86IEFkZHJlc3M7XG4gICAgfTtcbiAgICB0b2tlbml6YXRpb25EYXRhOiB7XG4gICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICB0b2tlbj86IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBlbWFpbD86IHN0cmluZztcbiAgc2hpcHBpbmdBZGRyZXNzPzogQWRkcmVzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlcXVlc3RVcGRhdGUge1xuICBuZXdUcmFuc2FjdGlvbkluZm8/OiB7XG4gICAgZGlzcGxheUl0ZW1zPzogQXJyYXk8e1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgIHByaWNlOiBzdHJpbmc7XG4gICAgfT47XG4gICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG4gICAgdHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZTogc3RyaW5nO1xuICAgIHRvdGFsUHJpY2VMYWJlbD86IHN0cmluZztcbiAgICBjaGVja291dE9wdGlvbj86IHN0cmluZztcbiAgfTtcbiAgbmV3U2hpcHBpbmdPcHRpb25QYXJhbWV0ZXJzPzoge1xuICAgIGRlZmF1bHRTZWxlY3RlZE9wdGlvbklkOiBzdHJpbmc7XG4gICAgc2hpcHBpbmdPcHRpb25zPzogQXJyYXk8e1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB9PjtcbiAgfTtcbiAgbmV3T2ZmZXJJbmZvPzoge1xuICAgIG9mZmVyczogQXJyYXk8e1xuICAgICAgcmVkZW1wdGlvbkNvZGU6IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgfT47XG4gIH07XG4gIGVycm9yPzoge1xuICAgIHJlYXNvbjogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBpbnRlbnQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVJbml0RGF0YSB7XG4gIGlzUmVhZHlUb1BheVJlcXVlc3Q6IElzUmVhZHlUb1BheVJlcXVlc3Q7XG4gIHBheW1lbnREYXRhUmVxdWVzdDogR29vZ2xlUGF5UGF5bWVudFJlcXVlc3Q7XG4gIGFtZXhDYXJkTm90aWZpY2F0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVybWVkaWF0ZVBheW1lbnREYXRhIHtcbiAgY2FsbGJhY2tUcmlnZ2VyPzogJ0lOSVRJQUxJWkUnIHwgJ1NISVBQSU5HX0FERFJFU1MnIHwgJ1NISVBQSU5HX09QVElPTic7XG4gIHNoaXBwaW5nQWRkcmVzcz86IHtcbiAgICBhZG1pbmlzdHJhdGl2ZUFyZWE6IHN0cmluZztcbiAgICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICAgIGxvY2FsaXR5OiBzdHJpbmc7XG4gICAgcG9zdGFsQ29kZTogc3RyaW5nO1xuICB9O1xuICBzaGlwcGluZ09wdGlvbkRhdGE/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUGF5bWVudERhdGFDaGFuZ2VkSGFuZGxlciA9IChcbiAgaW50ZXJtZWRpYXRlUGF5bWVudERhdGE6IEludGVybWVkaWF0ZVBheW1lbnREYXRhLFxuKSA9PiBQcm9taXNlPFBheW1lbnREYXRhUmVxdWVzdFVwZGF0ZT47XG5cbmV4cG9ydCB0eXBlIFBheW1lbnRBdXRob3JpemVkSGFuZGxlciA9IChcbiAgcGF5bWVudERhdGE6IFBheW1lbnREYXRhLFxuKSA9PiBQcm9taXNlPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PjtcblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlDbGllbnRJbml0RGF0YSB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIHBheW1lbnREYXRhQ2FsbGJhY2tzPzoge1xuICAgIG9uUGF5bWVudERhdGFDaGFuZ2VkOiBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyO1xuICAgIG9uUGF5bWVudEF1dGhvcml6ZWQ6IFBheW1lbnRBdXRob3JpemVkSGFuZGxlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlDbGllbnRJbml0IHtcbiAgbmV3IChvcHRpb25zOiBHb29nbGVQYXlDbGllbnRJbml0RGF0YSk6IEdvb2dsZVBheUNsaWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlcXVlc3Qge1xuICB0cmFuc2FjdGlvbkluZm86IHtcbiAgICBjdXJyZW5jeUNvZGU6IHN0cmluZztcbiAgICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhUmVzcG9uc2Uge1xuICBwYXltZW50TWV0aG9kRGF0YToge1xuICAgIHRva2VuaXphdGlvbkRhdGE6IHtcbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdXR0b25PcHRpb25zIHtcbiAgb25DbGljaygpOiB2b2lkO1xuICBhbGxvd2VkUGF5bWVudE1ldGhvZHM6IEFsbG93ZWRQYXltZW50TWV0aG9kW107XG4gIGJ1dHRvbkNvbG9yPzogJ2RlZmF1bHQnIHwgJ2JsYWNrJyB8ICd3aGl0ZSc7XG4gIGJ1dHRvblR5cGU/OiAncGxhaW4nIHwgJ2J1eSc7XG4gIGJ1dHRvblNpemVNb2RlPzogJ3N0YXRpYycgfCAnZmlsbCc7XG4gIGJ1dHRvbkxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlMaWJyYXJ5IHtcbiAgcGF5bWVudHM6IHtcbiAgICBhcGk6IHtcbiAgICAgIFBheW1lbnRzQ2xpZW50OiBHb29nbGVQYXlDbGllbnRJbml0O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEdvb2dsZVBheUNsaWVudCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiB7IGVudmlyb25tZW50OiBzdHJpbmcgfSk7XG5cbiAgcHVibGljIGlzUmVhZHlUb1BheShcbiAgICBpc1JlYWR5VG9QYXlSZXF1ZXN0OiBJc1JlYWR5VG9QYXlSZXF1ZXN0LFxuICApOiBQcm9taXNlPHsgcmVzdWx0OiBib29sZWFuIH0+O1xuXG4gIHB1YmxpYyBjcmVhdGVCdXR0b24ob3B0aW9uczogQnV0dG9uT3B0aW9ucyk6IEhUTUxCdXR0b25FbGVtZW50O1xuXG4gIHB1YmxpYyBsb2FkUGF5bWVudERhdGEoXG4gICAgcGF5bWVudERhdGFSZXF1ZXN0OiBHb29nbGVQYXlQYXltZW50UmVxdWVzdCxcbiAgKTogUHJvbWlzZTxQYXltZW50RGF0YVJlc3BvbnNlPjtcblxuICBwdWJsaWMgcHJlZmV0Y2hQYXltZW50RGF0YShwYXltZW50RGF0YVJlcXVlc3Q6IEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0KTogdm9pZDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2dvb2dsZS1wYXkvZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBcGlWZXJzaW9uID0gbnVtYmVyO1xudHlwZSBBcGlWZXJzaW9uTWlub3IgPSBudW1iZXI7XG5cbmludGVyZmFjZSBBZGRyZXNzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzMTogc3RyaW5nO1xuICBhZGRyZXNzMjogc3RyaW5nO1xuICBhZGRyZXNzMzogc3RyaW5nO1xuICBsb2NhbGl0eTogc3RyaW5nO1xuICBhZG1pbmlzdHJhdGl2ZUFyZWE6IHN0cmluZztcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgcG9zdGFsQ29kZTogc3RyaW5nO1xuICBzb3J0aW5nQ29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEaXNwbGF5SXRlbXMgPSBBcnJheTx7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcHJpY2U6IHN0cmluZztcbn0+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uSW5mbyB7XG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcbiAgdG90YWxQcmljZVN0YXR1czogc3RyaW5nO1xuICB0b3RhbFByaWNlPzogbnVtYmVyIHwgc3RyaW5nO1xuICBjb3VudHJ5Q29kZT86IHN0cmluZztcbiAgdG90YWxQcmljZUxhYmVsPzogc3RyaW5nO1xuICBkaXNwbGF5SXRlbXM/OiBEaXNwbGF5SXRlbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxsb3dlZFBheW1lbnRNZXRob2Qge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHtcbiAgICBhbGxvd2VkQXV0aE1ldGhvZHM6IHN0cmluZ1tdO1xuICAgIGFsbG93ZWRDYXJkTmV0d29ya3M6IHN0cmluZ1tdO1xuICAgIGFsbG93UHJlcGFpZENhcmRzOiBib29sZWFuO1xuICAgIGJpbGxpbmdBZGRyZXNzUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgYmlsbGluZ0FkZHJlc3NQYXJhbWV0ZXJzOiB7XG4gICAgICBmb3JtYXQ6IHN0cmluZztcbiAgICAgIHBob25lTnVtYmVyUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbiAgdG9rZW5pemF0aW9uU3BlY2lmaWNhdGlvbjoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBnYXRld2F5OiBzdHJpbmc7XG4gICAgICAndmFudGl2Om1lcmNoYW50UGF5UGFnZUlkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRPcmRlcklkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRUcmFuc2FjdGlvbklkJz86IHN0cmluZztcbiAgICAgICd2YW50aXY6bWVyY2hhbnRSZXBvcnRHcm91cCc/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc1JlYWR5VG9QYXlSZXF1ZXN0IHtcbiAgYXBpVmVyc2lvbjogQXBpVmVyc2lvbjtcbiAgYXBpVmVyc2lvbk1pbm9yOiBBcGlWZXJzaW9uTWlub3I7XG4gIGFsbG93ZWRQYXltZW50TWV0aG9kczogQWxsb3dlZFBheW1lbnRNZXRob2RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVQYXlQYXltZW50UmVxdWVzdCB7XG4gIGFwaVZlcnNpb246IEFwaVZlcnNpb247XG4gIGFwaVZlcnNpb25NaW5vcjogQXBpVmVyc2lvbk1pbm9yO1xuICBtZXJjaGFudEluZm86IHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gIH07XG4gIGFsbG93ZWRQYXltZW50TWV0aG9kczogQWxsb3dlZFBheW1lbnRNZXRob2RbXTtcbiAgdHJhbnNhY3Rpb25JbmZvOiBUcmFuc2FjdGlvbkluZm87XG4gIGVtYWlsUmVxdWlyZWQ6IGJvb2xlYW47XG4gIHNoaXBwaW5nQWRkcmVzc1JlcXVpcmVkOiBib29sZWFuO1xuICBjYWxsYmFja0ludGVudHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0IHtcbiAgdHJhbnNhY3Rpb25TdGF0ZTogJ1NVQ0NFU1MnIHwgJ0VSUk9SJztcbiAgZXJyb3I/OiB7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGludGVudDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREYXRhIHtcbiAgYXBpVmVyc2lvbjogbnVtYmVyO1xuICBhcGlWZXJzaW9uTWlub3I6IG51bWJlcjtcbiAgcGF5bWVudE1ldGhvZERhdGE6IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBpbmZvOiB7XG4gICAgICBjYXJkRGV0YWlsczogc3RyaW5nO1xuICAgICAgYXNzdXJhbmNlRGV0YWlsczoge1xuICAgICAgICBhY2NvdW50VmVyaWZpZWQ6IGJvb2xlYW47XG4gICAgICAgIGNhcmRIb2xkZXJBdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICAgICAgfTtcbiAgICAgIGNhcmROZXR3b3JrOiBzdHJpbmc7XG4gICAgICBiaWxsaW5nQWRkcmVzcz86IEFkZHJlc3M7XG4gICAgfTtcbiAgICB0b2tlbml6YXRpb25EYXRhOiB7XG4gICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICB0b2tlbj86IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBlbWFpbD86IHN0cmluZztcbiAgc2hpcHBpbmdBZGRyZXNzPzogQWRkcmVzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlcXVlc3RVcGRhdGUge1xuICBuZXdUcmFuc2FjdGlvbkluZm8/OiB7XG4gICAgZGlzcGxheUl0ZW1zPzogQXJyYXk8e1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgIHByaWNlOiBzdHJpbmc7XG4gICAgfT47XG4gICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG4gICAgdHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgICB0b3RhbFByaWNlU3RhdHVzOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZTogc3RyaW5nO1xuICAgIHRvdGFsUHJpY2VMYWJlbD86IHN0cmluZztcbiAgICBjaGVja291dE9wdGlvbj86IHN0cmluZztcbiAgfTtcbiAgbmV3U2hpcHBpbmdPcHRpb25QYXJhbWV0ZXJzPzoge1xuICAgIGRlZmF1bHRTZWxlY3RlZE9wdGlvbklkOiBzdHJpbmc7XG4gICAgc2hpcHBpbmdPcHRpb25zPzogQXJyYXk8e1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB9PjtcbiAgfTtcbiAgbmV3T2ZmZXJJbmZvPzoge1xuICAgIG9mZmVyczogQXJyYXk8e1xuICAgICAgcmVkZW1wdGlvbkNvZGU6IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgfT47XG4gIH07XG4gIGVycm9yPzoge1xuICAgIHJlYXNvbjogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBpbnRlbnQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVJbml0RGF0YSB7XG4gIGlzUmVhZHlUb1BheVJlcXVlc3Q6IElzUmVhZHlUb1BheVJlcXVlc3Q7XG4gIHBheW1lbnREYXRhUmVxdWVzdDogR29vZ2xlUGF5UGF5bWVudFJlcXVlc3Q7XG4gIGFtZXhDYXJkTm90aWZpY2F0aW9uPzogc3RyaW5nO1xuICBlbnZpcm9ubWVudD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm1lZGlhdGVQYXltZW50RGF0YSB7XG4gIGNhbGxiYWNrVHJpZ2dlcj86ICdJTklUSUFMSVpFJyB8ICdTSElQUElOR19BRERSRVNTJyB8ICdTSElQUElOR19PUFRJT04nO1xuICBzaGlwcGluZ0FkZHJlc3M/OiB7XG4gICAgYWRtaW5pc3RyYXRpdmVBcmVhOiBzdHJpbmc7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgICBsb2NhbGl0eTogc3RyaW5nO1xuICAgIHBvc3RhbENvZGU6IHN0cmluZztcbiAgfTtcbiAgc2hpcHBpbmdPcHRpb25EYXRhPzoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFBheW1lbnREYXRhQ2hhbmdlZEhhbmRsZXIgPSAoXG4gIGludGVybWVkaWF0ZVBheW1lbnREYXRhOiBJbnRlcm1lZGlhdGVQYXltZW50RGF0YSxcbikgPT4gUHJvbWlzZTxQYXltZW50RGF0YVJlcXVlc3RVcGRhdGU+O1xuXG5leHBvcnQgdHlwZSBQYXltZW50QXV0aG9yaXplZEhhbmRsZXIgPSAoXG4gIHBheW1lbnREYXRhOiBQYXltZW50RGF0YSxcbikgPT4gUHJvbWlzZTxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlUGF5Q2xpZW50SW5pdERhdGEge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBwYXltZW50RGF0YUNhbGxiYWNrcz86IHtcbiAgICBvblBheW1lbnREYXRhQ2hhbmdlZDogUGF5bWVudERhdGFDaGFuZ2VkSGFuZGxlcjtcbiAgICBvblBheW1lbnRBdXRob3JpemVkOiBQYXltZW50QXV0aG9yaXplZEhhbmRsZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlUGF5Q2xpZW50SW5pdCB7XG4gIG5ldyAob3B0aW9uczogR29vZ2xlUGF5Q2xpZW50SW5pdERhdGEpOiBHb29nbGVQYXlDbGllbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudERhdGFSZXF1ZXN0IHtcbiAgdHJhbnNhY3Rpb25JbmZvOiB7XG4gICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gICAgdG90YWxQcmljZVN0YXR1czogc3RyaW5nO1xuICAgIHRvdGFsUHJpY2U6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGF0YVJlc3BvbnNlIHtcbiAgcGF5bWVudE1ldGhvZERhdGE6IHtcbiAgICB0b2tlbml6YXRpb25EYXRhOiB7XG4gICAgICB0b2tlbjogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uT3B0aW9ucyB7XG4gIG9uQ2xpY2soKTogdm9pZDtcbiAgYWxsb3dlZFBheW1lbnRNZXRob2RzOiBBbGxvd2VkUGF5bWVudE1ldGhvZFtdO1xuICBidXR0b25Db2xvcj86ICdkZWZhdWx0JyB8ICdibGFjaycgfCAnd2hpdGUnO1xuICBidXR0b25UeXBlPzogJ3BsYWluJyB8ICdidXknO1xuICBidXR0b25TaXplTW9kZT86ICdzdGF0aWMnIHwgJ2ZpbGwnO1xuICBidXR0b25Mb2NhbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlUGF5TGlicmFyeSB7XG4gIHBheW1lbnRzOiB7XG4gICAgYXBpOiB7XG4gICAgICBQYXltZW50c0NsaWVudDogR29vZ2xlUGF5Q2xpZW50SW5pdDtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBHb29nbGVQYXlDbGllbnQge1xuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogeyBlbnZpcm9ubWVudDogc3RyaW5nIH0pO1xuXG4gIHB1YmxpYyBpc1JlYWR5VG9QYXkoXG4gICAgaXNSZWFkeVRvUGF5UmVxdWVzdDogSXNSZWFkeVRvUGF5UmVxdWVzdCxcbiAgKTogUHJvbWlzZTx7IHJlc3VsdDogYm9vbGVhbiB9PjtcblxuICBwdWJsaWMgY3JlYXRlQnV0dG9uKG9wdGlvbnM6IEJ1dHRvbk9wdGlvbnMpOiBIVE1MQnV0dG9uRWxlbWVudDtcblxuICBwdWJsaWMgbG9hZFBheW1lbnREYXRhKFxuICAgIHBheW1lbnREYXRhUmVxdWVzdDogR29vZ2xlUGF5UGF5bWVudFJlcXVlc3QsXG4gICk6IFByb21pc2U8UGF5bWVudERhdGFSZXNwb25zZT47XG5cbiAgcHVibGljIHByZWZldGNoUGF5bWVudERhdGEocGF5bWVudERhdGFSZXF1ZXN0OiBHb29nbGVQYXlQYXltZW50UmVxdWVzdCk6IHZvaWQ7XG59XG4iXX0=
@@ -35,6 +35,8 @@ export class GooglePayService {
35
35
  this.analyticsEvent = new Subject();
36
36
  this.paymentInProgress = false;
37
37
  this.googlePaymentClient = null;
38
+ this.googlePayClientEnvironment = null;
39
+ this.serverEnvironment = null;
38
40
  this.paymentService = null;
39
41
  }
40
42
  get readyToPay$() {
@@ -87,6 +89,8 @@ export class GooglePayService {
87
89
  this.loggerService.error(new TaggedError('No initialization data', [ErrorTags.GOOGLEPAY]));
88
90
  throw new AppError('Google Pay: no initialization data');
89
91
  }
92
+ this.serverEnvironment = initData.environment ?? null;
93
+ this.setupGooglePayClient();
90
94
  this.googlePaymentClient
91
95
  .isReadyToPay(initData.isReadyToPayRequest)
92
96
  .then((response) => {
@@ -111,6 +115,7 @@ export class GooglePayService {
111
115
  });
112
116
  }
113
117
  async proceedCheckout() {
118
+ this.setupGooglePayClient();
114
119
  if (!this.googlePaymentClient) {
115
120
  this.loggerService.error(new TaggedError('Google payment client is not initialized to proceed checkout', [ErrorTags.GOOGLEPAY]));
116
121
  throw new AppError(`Google Pay. proceedCheckout: no google payment client`);
@@ -185,6 +190,12 @@ export class GooglePayService {
185
190
  buttonLocale: this.getLocaleForButton(configuration.locale),
186
191
  });
187
192
  }
193
+ resolveGooglePayEnvironment() {
194
+ if (this.serverEnvironment) {
195
+ return this.serverEnvironment;
196
+ }
197
+ return this.initParams.isSandbox ? 'TEST' : 'PRODUCTION';
198
+ }
188
199
  setupGooglePayClient() {
189
200
  if (!this.window.google) {
190
201
  this.loggerService.error(new TaggedError('Google Pay library is not available on window', [
@@ -192,7 +203,11 @@ export class GooglePayService {
192
203
  ]));
193
204
  return;
194
205
  }
195
- const environment = this.initParams.isSandbox ? 'TEST' : 'PRODUCTION';
206
+ const environment = this.resolveGooglePayEnvironment();
207
+ if (this.googlePaymentClient &&
208
+ this.googlePayClientEnvironment === environment) {
209
+ return;
210
+ }
196
211
  const googlePaymentClientData = {
197
212
  environment,
198
213
  };
@@ -204,6 +219,7 @@ export class GooglePayService {
204
219
  }
205
220
  this.googlePaymentClient =
206
221
  new this.window.google.payments.api.PaymentsClient(googlePaymentClientData);
222
+ this.googlePayClientEnvironment = environment;
207
223
  }
208
224
  onLoadScript() {
209
225
  if (!this.window.google) {
@@ -288,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
288
304
  type: Inject,
289
305
  args: [windowToken]
290
306
  }] }, { type: i1.LoggerService }, { type: i2.PaymentSystemProcessingService }, { type: i3.GooglePayCheckoutPaymentService }, { type: i4.GooglePayInstantPaymentService }, { type: i0.Injector }] });
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvZ29vZ2xlLXBheS9nb29nbGUtcGF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUVMLE9BQU8sRUFDUCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRWxGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBR3hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFFekgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlFQUF5RSxDQUFDOzs7Ozs7QUFLcEcsTUFBTSxPQUFPLGdCQUFnQjtJQWtCM0IsSUFBWSxxQkFBcUI7UUFDL0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVksaUNBQWlDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFFbUIsTUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsOEJBQThELEVBQzlELCtCQUFnRSxFQUNo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UUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3hFLENBQUM7K0dBM1lVLGdCQUFnQixrQkEyQmpCLFdBQVc7bUhBM0JWLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQTRCSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGZpbHRlcixcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2UsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwRXJyb3IgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9hcHAtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBDaGVja1N0YXR1c0FjdGlvbiB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi50eXBlJztcbmltcG9ydCB7IE5leHRBY3Rpb24gfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvbmV4dC1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSB9IGZyb20gJy4uL3BheW1lbnQtc3lzdGVtcy9wYXltZW50LXN5c3RlbS1wcm9jZXNzaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hlY2tQYXltZW50RGV2aWNlRGF0YSB9IGZyb20gJy4vY2hlY2stcGF5bWVudC1kZXZpY2UtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5SW5pdFBhcmFtcyB9IGZyb20gJy4vZ29vZ2xlLXBheS1pbml0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgR29vZ2xlUGF5Q2xpZW50LFxuICBHb29nbGVQYXlDbGllbnRJbml0RGF0YSxcbiAgUGF5bWVudEF1dGhvcml6ZWRIYW5kbGVyLFxuICBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyLFxufSBmcm9tICcuL2dvb2dsZS1wYXktbGlicmFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5Q2hlY2tvdXRQYXltZW50U2VydmljZSB9IGZyb20gJy4vcGF5bWVudC9nb29nbGUtcGF5LWNoZWNrb3V0LXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2UgfSBmcm9tICcuL3BheW1lbnQvZ29vZ2xlLXBheS1pbnN0YW50LXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlQYXltZW50U2VydmljZSB9IGZyb20gJy4vcGF5bWVudC9nb29nbGUtcGF5LXBheW1lbnQtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRhZ2dlZEVycm9yIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMnO1xuaW1wb3J0IHsgR29vZ2xlUGF5QnV0dG9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZ29vZ2xlLXBheS1idXR0b24tY29uZmlndXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQvdXNlci1iZWhhdmlvdXItZXZlbnQtdHlwZXMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzRXZlbnRQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZ29vZ2xlUGF5IH0gZnJvbSAnLi4vLi4vcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3BzNC1wYWdlcy9wYWdlcy1wYXltZW50LW1ldGhvZHMtaWQuY29uc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR29vZ2xlUGF5U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ29vZ2xlUGF5U2NyaXB0VXJsID0gJ2h0dHBzOi8vcGF5Lmdvb2dsZS5jb20vZ3AvcC9qcy9wYXkuanMnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlUb1BheSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbiB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRXaW5kb3dJc1JlYWR5ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50V2luZG93SXNDbG9zZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3IgPSBuZXcgU3ViamVjdDx1bmtub3duPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuYWx5dGljc0V2ZW50ID0gbmV3IFN1YmplY3Q8QW5hbHl0aWNzRXZlbnRQYXlsb2FkPigpO1xuXG4gIHByaXZhdGUgcGF5bWVudEluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBwcml2YXRlIGdvb2dsZVBheW1lbnRDbGllbnQ6IEdvb2dsZVBheUNsaWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGluaXRQYXJhbXMhOiBHb29nbGVQYXlJbml0UGFyYW1zO1xuICBwcml2YXRlIHBheW1lbnRTZXJ2aWNlOiBHb29nbGVQYXlQYXltZW50U2VydmljZSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgb25QYXltZW50RGF0YUNoYW5nZWQhOiBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyO1xuICBwcml2YXRlIG9uUGF5bWVudEF1dGhvcml6ZWQhOiBQYXltZW50QXV0aG9yaXplZEhhbmRsZXI7XG5cbiAgcHJpdmF0ZSBnZXQgbGlicmFyeVdhc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMud2luZG93Lmdvb2dsZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGdvb2dsZVBheW1lbnRDbGllbnRXYXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQ7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlOiBQYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBnb29nbGVQYXlDaGVja291dFBheW1lbnRTZXJ2aWNlOiBHb29nbGVQYXlDaGVja291dFBheW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ29vZ2xlUGF5SW5zdGFudFBheW1lbnRTZXJ2aWNlOiBHb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge31cblxuICBwdWJsaWMgZ2V0IHJlYWR5VG9QYXkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeVRvUGF5LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXltZW50V2luZG93SXNSZWFkeSQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucGF5bWVudFdpbmRvd0lzUmVhZHkuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnRXaW5kb3dJc0Nsb3NlJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50V2luZG93SXNDbG9zZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXJyb3IkKCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhbmFseXRpY3NFdmVudCQoKTogT2JzZXJ2YWJsZTxBbmFseXRpY3NFdmVudFBheWxvYWQ+IHtcbiAgICByZXR1cm4gbWVyZ2UoXG4gICAgICB0aGlzLmFuYWx5dGljc0V2ZW50LmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgdGhpcy5nb29nbGVQYXlDaGVja291dFBheW1lbnRTZXJ2aWNlLmFuYWx5dGljc0V2ZW50JCxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGlzUmVhZHlUb1BheSgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVhZHlUb1BheS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGluaXRHb29nbGVQYXlMaWJyYXJ5KGRhdGE6IEdvb2dsZVBheUluaXRQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRQYXJhbXMgPSBkYXRhO1xuICAgIHRoaXMub25QYXltZW50RGF0YUNoYW5nZWQgPSBkYXRhLm9uUGF5bWVudERhdGFDaGFuZ2VkO1xuICAgIHRoaXMub25QYXltZW50QXV0aG9yaXplZCA9IGRhdGEub25QYXltZW50QXV0aG9yaXplZDtcblxuICAgIGlmICh0aGlzLmxpYnJhcnlXYXNJbml0aWFsaXplZCAmJiB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnRXYXNJbml0aWFsaXplZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpYnJhcnlXYXNJbml0aWFsaXplZCAmJiAhdGhpcy5nb29nbGVQYXltZW50Q2xpZW50V2FzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuc2V0dXBHb29nbGVQYXlDbGllbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZS5sb2FkU2NyaXB0KFxuICAgICAgdGhpcy5nb29nbGVQYXlTY3JpcHRVcmwsXG4gICAgICB0aGlzLm9uTG9hZFNjcmlwdC5iaW5kKHRoaXMpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tQYXltZW50RGV2aWNlKGRhdGE6IENoZWNrUGF5bWVudERldmljZURhdGEpOiB2b2lkIHtcbiAgICB0aGlzLnBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZS5pbml0aWFsaXplJFxuICAgICAgLnBpcGUoZmlsdGVyKEJvb2xlYW4pLCB0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5nb29nbGVQYXltZW50Q2xpZW50KSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdHb29nbGUgcGF5bWVudCBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkJywgW1xuICAgICAgICAgICAgICBFcnJvclRhZ3MuR09PR0xFUEFZLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBuZXcgQXBwRXJyb3IoXG4gICAgICAgICAgICBgR29vZ2xlIFBheTogR29vZ2xlIHBheW1lbnQgY2xpZW50IGlzIG5vdCBpbml0aWFsaXplZGAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UgPSB0aGlzLmdldFBheW1lbnRTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IGluaXREYXRhID0gdGhpcy5wYXltZW50U2VydmljZS5wcmVwYXJlUGF5bWVudCh7XG4gICAgICAgICAgaW5pdFBhcmFtczogdGhpcy5pbml0UGFyYW1zLFxuICAgICAgICAgIGNoZWNrRGV2aWNlRGF0YTogZGF0YSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFpbml0RGF0YSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgIG5ldyBUYWdnZWRFcnJvcignTm8gaW5pdGlhbGl6YXRpb24gZGF0YScsIFtFcnJvclRhZ3MuR09PR0xFUEFZXSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBuZXcgQXBwRXJyb3IoJ0dvb2dsZSBQYXk6IG5vIGluaXRpYWxpemF0aW9uIGRhdGEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudFxuICAgICAgICAgIC5pc1JlYWR5VG9QYXkoaW5pdERhdGEuaXNSZWFkeVRvUGF5UmVxdWVzdClcbiAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZXN1bHQgJiYgdGhpcy5nb29nbGVQYXltZW50Q2xpZW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudC5wcmVmZXRjaFBheW1lbnREYXRhKFxuICAgICAgICAgICAgICAgIGluaXREYXRhLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkeVRvUGF5Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVhZHlUb1BheS5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdD8udG9TdHJpbmcoKSA/PyAnJztcbiAgICAgICAgICAgIGNvbnN0IGlzSGF2ZVBheW1lbnRDbGllbnQgPSBCb29sZWFuKFxuICAgICAgICAgICAgICB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQsXG4gICAgICAgICAgICApLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgR29vZ2xlIFBheTogcG9zc2libHkgbm8gcmVzcG9uc2UucmVzdWx0IG9yIGdvb2dsZVBheW1lbnRDbGllbnQgaXMgbWlzc2luZywgcmVzdWx0IC0gJHtyZXN1bHR9LCBpc0hhdmVQYXltZW50Q2xpZW50IC0gJHtpc0hhdmVQYXltZW50Q2xpZW50fWA7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAgIG5ldyBUYWdnZWRFcnJvcihtZXNzYWdlLCBbRXJyb3JUYWdzLkdPT0dMRVBBWV0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVhZHlUb1BheS5uZXh0KGZhbHNlKTtcblxuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAoZXJyb3IgYXMgc3RyaW5nKSA/PyAnJztcblxuICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgICAgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICAgICAgIGBHb29nbGUgUGF5OiBkZXZpY2UgaXMgbm90IHJlYWR5IHRvIHBheSwgJHttZXNzYWdlfWAsXG4gICAgICAgICAgICAgICAgW0Vycm9yVGFncy5HT09HTEVQQVldLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHByb2NlZWRDaGVja291dCgpOiBQcm9taXNlPENoZWNrU3RhdHVzQWN0aW9uIHwgbnVsbD4ge1xuICAgIGlmICghdGhpcy5nb29nbGVQYXltZW50Q2xpZW50KSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcihcbiAgICAgICAgICAnR29vZ2xlIHBheW1lbnQgY2xpZW50IGlzIG5vdCBpbml0aWFsaXplZCB0byBwcm9jZWVkIGNoZWNrb3V0JyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKFxuICAgICAgICBgR29vZ2xlIFBheS4gcHJvY2VlZENoZWNrb3V0OiBubyBnb29nbGUgcGF5bWVudCBjbGllbnRgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucGF5bWVudFNlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgcGF5bWVudCBzZXJ2aWNlIGlzIG5vdCBpbml0aWFsaXplZCB0byBwcm9jZWVkIGNoZWNrb3V0JyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKFxuICAgICAgICBgR29vZ2xlIFBheS4gcHJvY2VlZENoZWNrb3V0OiBubyBnb29nbGUgcGF5bWVudCBzZXJ2aWNlYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZ29vZ2xlIHN1cHBvcnQgb25seSBvbmUgcGF5bWVudCBpbiB0aW1lXG4gICAgaWYgKHRoaXMucGF5bWVudEluUHJvZ3Jlc3MpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5pdFBhcmFtcy5pc0luc3RhbnRQYXlGbG93KSB7XG4gICAgICB0aGlzLmFuYWx5dGljc0V2ZW50Lm5leHQoe1xuICAgICAgICBldmVudE5hbWU6IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuc3lzSW5zdGFudEZsb3dPcGVuLFxuICAgICAgICBldmVudFR5cGU6IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm9wZW4sXG4gICAgICAgIGluc3RhbmNlSWQ6IGdvb2dsZVBheSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHBheW1lbnREYXRhUmVxdWVzdCA9IHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0UGF5bWVudFJlcXVlc3QoKTtcblxuICAgIGlmICghcGF5bWVudERhdGFSZXF1ZXN0KSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcignTm8gZGF0YSBmb3IgcGF5bWVudCBkYXRhIHJlcXVlc3QnLCBbXG4gICAgICAgICAgRXJyb3JUYWdzLkdPT0dMRVBBWSxcbiAgICAgICAgXSksXG4gICAgICApO1xuICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKGBHb29nbGUgUGF5OiBObyBkYXRhIGZvciBwYXltZW50IGRhdGEgcmVxdWVzdGApO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrU3RhdHVzQWN0aW9uOiBOZXh0QWN0aW9uID0gdGhpcy5pbmplY3RvclxuICAgICAgLmdldDxDaGVja1N0YXR1c0FjdGlvbkNyZWF0b3I+KENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvcilcbiAgICAgIC5nZXRBY3Rpb25EYXRhKCk7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5wYXltZW50SW5Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICAgIHRoaXMucGF5bWVudFdpbmRvd0lzUmVhZHkubmV4dCgpO1xuXG4gICAgICBjb25zdCBwYXltZW50RGF0YSA9XG4gICAgICAgIGF3YWl0IHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudC5sb2FkUGF5bWVudERhdGEocGF5bWVudERhdGFSZXF1ZXN0KTtcblxuICAgICAgaWYgKCFwYXltZW50RGF0YT8ucGF5bWVudE1ldGhvZERhdGE/LnRva2VuaXphdGlvbkRhdGE/LnRva2VuKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoJ1Rva2VuIGlzIG1pc3NpbmcnLCBbRXJyb3JUYWdzLkdPT0dMRVBBWV0pLFxuICAgICAgICApO1xuICAgICAgICB0aHJvdyBuZXcgQXBwRXJyb3IoJ0dvb2dsZSBQYXk6IHRva2VuIGlzIG1pc3NpbmcnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wYXltZW50U2VydmljZS5oYW5kbGVTdWNjZXNzZnVsUGF5bWVudD8uKHBheW1lbnREYXRhKTtcblxuICAgICAgdGhpcy5wYXltZW50V2luZG93SXNDbG9zZS5uZXh0KCk7XG5cbiAgICAgIHRoaXMucGF5bWVudEluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNoZWNrU3RhdHVzQWN0aW9uO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICB0aGlzLnBheW1lbnRJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UuaGFuZGxlRmFpbGVkUGF5bWVudD8uKGVycm9yKTtcbiAgICAgIHRoaXMucGF5bWVudFdpbmRvd0lzQ2xvc2UubmV4dCgpO1xuICAgICAgdGhpcy5lcnJvci5uZXh0KGVycm9yKTtcblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gKGVycm9yIGFzIHsgbWVzc2FnZTogc3RyaW5nIH0pPy5tZXNzYWdlID8/ICcnO1xuICAgICAgY29uc3QgZXJyb3JTdGF0dXNDb2RlID1cbiAgICAgICAgKGVycm9yIGFzIHsgc3RhdHVzQ29kZTogc3RyaW5nIH0pPy5zdGF0dXNDb2RlID8/ICcnO1xuXG4gICAgICBjb25zdCBpc0Nsb3NlZEJ5VXNlciA9IHRoaXMuaXNDbG9zZWRCeVVzZXIoZXJyb3JNZXNzYWdlKTtcbiAgICAgIGNvbnN0IGlzQ2FuY2VsZWRTdGF0dXMgPSB0aGlzLmlzQ2FuY2VsZWRTdGF0dXMoZXJyb3JTdGF0dXNDb2RlKTtcblxuICAgICAgaWYgKGlzQ2xvc2VkQnlVc2VyIHx8IGlzQ2FuY2VsZWRTdGF0dXMpIHJldHVybiBudWxsO1xuXG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcihgR29vZ2xlIFBheTogcHJvY2VlZENoZWNrb3V0IGZhaWxlZCwgJHtlcnJvck1lc3NhZ2V9YCwgW1xuICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGNoZWNrU3RhdHVzQWN0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVCdXR0b24oXG4gICAgb25DbGlja0hhbmRsZXI6ICgpID0+IHZvaWQsXG4gICAgY29uZmlndXJhdGlvbjogR29vZ2xlUGF5QnV0dG9uQ29uZmlndXJhdGlvbixcbiAgKTogSFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuZ29vZ2xlUGF5bWVudENsaWVudCkge1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoXG4gICAgICAgICAgJ0dvb2dsZSBwYXltZW50IGNsaWVudCBpcyBub3QgaW5pdGlhbGl6ZWQgdG8gY3JlYXRlIGJ1dHRvbicsXG4gICAgICAgICAgW0Vycm9yVGFncy5HT09HTEVQQVldLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbG93ZWRQYXltZW50TWV0aG9kcyA9XG4gICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlPy5nZXRBbGxvd2VkUGF5bWVudE1ldGhvZHMoKSB8fCBbXTtcblxuICAgIHJldHVybiB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQuY3JlYXRlQnV0dG9uKHtcbiAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tIYW5kbGVyLFxuICAgICAgYWxsb3dlZFBheW1lbnRNZXRob2RzOiBhbGxvd2VkUGF5bWVudE1ldGhvZHMsXG4gICAgICBidXR0b25TaXplTW9kZTogJ2ZpbGwnLFxuICAgICAgYnV0dG9uVHlwZTogJ2J1eScsXG4gICAgICBidXR0b25Db2xvcjogY29uZmlndXJhdGlvbi5jb2xvciA/PyAnZGVmYXVsdCcsXG4gICAgICBidXR0b25Mb2NhbGU6IHRoaXMuZ2V0TG9jYWxlRm9yQnV0dG9uKGNvbmZpZ3VyYXRpb24ubG9jYWxlKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBHb29nbGVQYXlDbGllbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5nb29nbGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdHb29nbGUgUGF5IGxpYnJhcnkgaXMgbm90IGF2YWlsYWJsZSBvbiB3aW5kb3cnLCBbXG4gICAgICAgICAgRXJyb3JUYWdzLkdPT0dMRVBBWSxcbiAgICAgICAgXSksXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudmlyb25tZW50ID0gdGhpcy5pbml0UGFyYW1zLmlzU2FuZGJveCA/ICdURVNUJyA6ICdQUk9EVUNUSU9OJztcbiAgICBjb25zdCBnb29nbGVQYXltZW50Q2xpZW50RGF0YTogR29vZ2xlUGF5Q2xpZW50SW5pdERhdGEgPSB7XG4gICAgICBlbnZpcm9ubWVudCxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuaW5pdFBhcmFtcy5pc0luc3RhbnRQYXlGbG93KSB7XG4gICAgICBnb29nbGVQYXltZW50Q2xpZW50RGF0YS5wYXltZW50RGF0YUNhbGxiYWNrcyA9IHtcbiAgICAgICAgb25QYXltZW50RGF0YUNoYW5nZWQ6IHRoaXMub25QYXltZW50RGF0YUNoYW5nZWQsXG4gICAgICAgIG9uUGF5bWVudEF1dGhvcml6ZWQ6IHRoaXMub25QYXltZW50QXV0aG9yaXplZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5nb29nbGVQYXltZW50Q2xpZW50ID1cbiAgICAgIG5ldyB0aGlzLndpbmRvdy5nb29nbGUucGF5bWVudHMuYXBpLlBheW1lbnRzQ2xpZW50KFxuICAgICAgICBnb29nbGVQYXltZW50Q2xpZW50RGF0YSxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9uTG9hZFNjcmlwdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMud2luZG93Lmdvb2dsZSkge1xuICAgICAgY29uc3QgcmV0cnlUaW1lb3V0ID0gMTAwMDtcblxuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoXG4gICAgICAgICAgJ0dvb2dsZSBQYXk6IGxpYnJhcnkgbm90IGF2YWlsYWJsZSBhZnRlciBzY3JpcHQgbG9hZCwgcmV0cnlpbmcnLFxuICAgICAgICAgIFtFcnJvclRhZ3MuR09PR0xFUEFZXSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBpc0F2YWlsYWJsZUdvb2dsZUNsaWVudCA9ICEhdGhpcy53aW5kb3cuZ29vZ2xlO1xuXG4gICAgICAgIGlmIChpc0F2YWlsYWJsZUdvb2dsZUNsaWVudCkge1xuICAgICAgICAgIHRoaXMuc2V0dXBHb29nbGVQYXlDbGllbnQoKTtcblxuICAgICAgICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRJbml0aWFsaXplKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LCByZXRyeVRpbWVvdXQpO1xuXG4gICAgICB0aHJvdyBuZXcgQXBwRXJyb3IoJ0dvb2dsZSBQYXk6IGdvb2dsZSBsaWJyYXJ5IG5vdyBpcyBhdmFpbGFibGUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXR1cEdvb2dsZVBheUNsaWVudCgpO1xuXG4gICAgICB0aGlzLnBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZS5lbWl0SW5pdGlhbGl6ZSh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBheW1lbnRTZXJ2aWNlKCk6IEdvb2dsZVBheVBheW1lbnRTZXJ2aWNlIHtcbiAgICBpZiAodGhpcy5pbml0UGFyYW1zLmlzSW5zdGFudFBheUZsb3cpXG4gICAgICByZXR1cm4gdGhpcy5nb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2U7XG4gICAgcmV0dXJuIHRoaXMuZ29vZ2xlUGF5Q2hlY2tvdXRQYXltZW50U2VydmljZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDbG9zZWRCeVVzZXIobWVzc2FnZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygndXNlciBjbG9zZWQgdGhlIHBheW1lbnQgcmVxdWVzdCB1aScpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NhbmNlbGVkU3RhdHVzKHN0YXR1c0NvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0dXNDb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdjYW5jZWxlZCc7XG4gIH1cblxuICBwcml2YXRlIGdldExvY2FsZUZvckJ1dHRvbih1c2VyTG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFsbG93ZWRMb2NhbGVzID0gW1xuICAgICAgJ2VuJyxcbiAgICAgICdhcicsXG4gICAgICAnYmcnLFxuICAgICAgJ2NhJyxcbiAgICAgICdjcycsXG4gICAgICAnZGEnLFxuICAgICAgJ2RlJyxcbiAgICAgICdlbCcsXG4gICAgICAnZXMnLFxuICAgICAgJ2V0JyxcbiAgICAgICdmaScsXG4gICAgICAnZnInLFxuICAgICAgJ2hyJyxcbiAgICAgICdpZCcsXG4gICAgICAnaXQnLFxuICAgICAgJ2phJyxcbiAgICAgICdrbycsXG4gICAgICAnbXMnLFxuICAgICAgJ25sJyxcbiAgICAgICdubycsXG4gICAgICAncGwnLFxuICAgICAgJ3B0JyxcbiAgICAgICdydScsXG4gICAgICAnc2snLFxuICAgICAgJ3NsJyxcbiAgICAgICdzcicsXG4gICAgICAnc3YnLFxuICAgICAgJ3RoJyxcbiAgICAgICd0cicsXG4gICAgICAndWsnLFxuICAgICAgJ3poJyxcbiAgICBdO1xuXG4gICAgaWYgKFsnY24nLCAnemhfSEFOVCddLmluY2x1ZGVzKHVzZXJMb2NhbGUpKSB7XG4gICAgICByZXR1cm4gJ3poJztcbiAgICB9XG5cbiAgICBpZiAoWyd6aF9IQU5TJ10uaW5jbHVkZXModXNlckxvY2FsZSkpIHtcbiAgICAgIHJldHVybiAndHcnO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxvd2VkTG9jYWxlcy5maW5kKChsb2NhbGUpID0+IGxvY2FsZSA9PT0gdXNlckxvY2FsZSkgPz8gJ2VuJztcbiAgfVxufVxuIl19
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvZ29vZ2xlLXBheS9nb29nbGUtcGF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUVMLE9BQU8sRUFDUCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRWxGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBR3hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFFekgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlFQUF5RSxDQUFDOzs7Ozs7QUFLcEcsTUFBTSxPQUFPLGdCQUFnQjtJQW9CM0IsSUFBWSxxQkFBcUI7UUFDL0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVksaUNBQWlDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFFbUIsTUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsOEJBQThELEVBQzlELCtCQUFnRSxFQUNo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O1lBQ3JCLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7U0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3hFLENBQUM7K0dBbmFVLGdCQUFnQixrQkE2QmpCLFdBQVc7bUhBN0JWLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQThCSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGZpbHRlcixcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2UsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwRXJyb3IgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9hcHAtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBDaGVja1N0YXR1c0FjdGlvbiB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi50eXBlJztcbmltcG9ydCB7IE5leHRBY3Rpb24gfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvbmV4dC1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSB9IGZyb20gJy4uL3BheW1lbnQtc3lzdGVtcy9wYXltZW50LXN5c3RlbS1wcm9jZXNzaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hlY2tQYXltZW50RGV2aWNlRGF0YSB9IGZyb20gJy4vY2hlY2stcGF5bWVudC1kZXZpY2UtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5SW5pdFBhcmFtcyB9IGZyb20gJy4vZ29vZ2xlLXBheS1pbml0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgR29vZ2xlUGF5Q2xpZW50LFxuICBHb29nbGVQYXlDbGllbnRJbml0RGF0YSxcbiAgUGF5bWVudEF1dGhvcml6ZWRIYW5kbGVyLFxuICBQYXltZW50RGF0YUNoYW5nZWRIYW5kbGVyLFxufSBmcm9tICcuL2dvb2dsZS1wYXktbGlicmFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5Q2hlY2tvdXRQYXltZW50U2VydmljZSB9IGZyb20gJy4vcGF5bWVudC9nb29nbGUtcGF5LWNoZWNrb3V0LXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2UgfSBmcm9tICcuL3BheW1lbnQvZ29vZ2xlLXBheS1pbnN0YW50LXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlQYXltZW50U2VydmljZSB9IGZyb20gJy4vcGF5bWVudC9nb29nbGUtcGF5LXBheW1lbnQtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRhZ2dlZEVycm9yIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMnO1xuaW1wb3J0IHsgR29vZ2xlUGF5QnV0dG9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZ29vZ2xlLXBheS1idXR0b24tY29uZmlndXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQvdXNlci1iZWhhdmlvdXItZXZlbnQtdHlwZXMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzRXZlbnRQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZ29vZ2xlUGF5IH0gZnJvbSAnLi4vLi4vcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3BzNC1wYWdlcy9wYWdlcy1wYXltZW50LW1ldGhvZHMtaWQuY29uc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR29vZ2xlUGF5U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ29vZ2xlUGF5U2NyaXB0VXJsID0gJ2h0dHBzOi8vcGF5Lmdvb2dsZS5jb20vZ3AvcC9qcy9wYXkuanMnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlUb1BheSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbiB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRXaW5kb3dJc1JlYWR5ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50V2luZG93SXNDbG9zZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3IgPSBuZXcgU3ViamVjdDx1bmtub3duPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuYWx5dGljc0V2ZW50ID0gbmV3IFN1YmplY3Q8QW5hbHl0aWNzRXZlbnRQYXlsb2FkPigpO1xuXG4gIHByaXZhdGUgcGF5bWVudEluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBwcml2YXRlIGdvb2dsZVBheW1lbnRDbGllbnQ6IEdvb2dsZVBheUNsaWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGdvb2dsZVBheUNsaWVudEVudmlyb25tZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzZXJ2ZXJFbnZpcm9ubWVudDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaW5pdFBhcmFtcyE6IEdvb2dsZVBheUluaXRQYXJhbXM7XG4gIHByaXZhdGUgcGF5bWVudFNlcnZpY2U6IEdvb2dsZVBheVBheW1lbnRTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBvblBheW1lbnREYXRhQ2hhbmdlZCE6IFBheW1lbnREYXRhQ2hhbmdlZEhhbmRsZXI7XG4gIHByaXZhdGUgb25QYXltZW50QXV0aG9yaXplZCE6IFBheW1lbnRBdXRob3JpemVkSGFuZGxlcjtcblxuICBwcml2YXRlIGdldCBsaWJyYXJ5V2FzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy53aW5kb3cuZ29vZ2xlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZ29vZ2xlUGF5bWVudENsaWVudFdhc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZ29vZ2xlUGF5bWVudENsaWVudDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBFeHRlbmRlZFdpbmRvdyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlclNlcnZpY2U6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2U6IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2U6IEdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBnb29nbGVQYXlJbnN0YW50UGF5bWVudFNlcnZpY2U6IEdvb2dsZVBheUluc3RhbnRQYXltZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgcmVhZHlUb1BheSQoKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnJlYWR5VG9QYXkuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnRXaW5kb3dJc1JlYWR5JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50V2luZG93SXNSZWFkeS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGF5bWVudFdpbmRvd0lzQ2xvc2UkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRXaW5kb3dJc0Nsb3NlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvciQoKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFuYWx5dGljc0V2ZW50JCgpOiBPYnNlcnZhYmxlPEFuYWx5dGljc0V2ZW50UGF5bG9hZD4ge1xuICAgIHJldHVybiBtZXJnZShcbiAgICAgIHRoaXMuYW5hbHl0aWNzRXZlbnQuYXNPYnNlcnZhYmxlKCksXG4gICAgICB0aGlzLmdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2UuYW5hbHl0aWNzRXZlbnQkLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaXNSZWFkeVRvUGF5KCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeVRvUGF5LmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdEdvb2dsZVBheUxpYnJhcnkoZGF0YTogR29vZ2xlUGF5SW5pdFBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFBhcmFtcyA9IGRhdGE7XG4gICAgdGhpcy5vblBheW1lbnREYXRhQ2hhbmdlZCA9IGRhdGEub25QYXltZW50RGF0YUNoYW5nZWQ7XG4gICAgdGhpcy5vblBheW1lbnRBdXRob3JpemVkID0gZGF0YS5vblBheW1lbnRBdXRob3JpemVkO1xuXG4gICAgaWYgKHRoaXMubGlicmFyeVdhc0luaXRpYWxpemVkICYmIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudFdhc0luaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlicmFyeVdhc0luaXRpYWxpemVkICYmICF0aGlzLmdvb2dsZVBheW1lbnRDbGllbnRXYXNJbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5zZXR1cEdvb2dsZVBheUNsaWVudCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmxvYWRTY3JpcHQoXG4gICAgICB0aGlzLmdvb2dsZVBheVNjcmlwdFVybCxcbiAgICAgIHRoaXMub25Mb2FkU2NyaXB0LmJpbmQodGhpcyksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1BheW1lbnREZXZpY2UoZGF0YTogQ2hlY2tQYXltZW50RGV2aWNlRGF0YSk6IHZvaWQge1xuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmluaXRpYWxpemUkXG4gICAgICAucGlwZShmaWx0ZXIoQm9vbGVhbiksIHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoJ0dvb2dsZSBwYXltZW50IGNsaWVudCBpcyBub3QgaW5pdGlhbGl6ZWQnLCBbXG4gICAgICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRocm93IG5ldyBBcHBFcnJvcihcbiAgICAgICAgICAgIGBHb29nbGUgUGF5OiBHb29nbGUgcGF5bWVudCBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZSA9IHRoaXMuZ2V0UGF5bWVudFNlcnZpY2UoKTtcbiAgICAgICAgY29uc3QgaW5pdERhdGEgPSB0aGlzLnBheW1lbnRTZXJ2aWNlLnByZXBhcmVQYXltZW50KHtcbiAgICAgICAgICBpbml0UGFyYW1zOiB0aGlzLmluaXRQYXJhbXMsXG4gICAgICAgICAgY2hlY2tEZXZpY2VEYXRhOiBkYXRhLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWluaXREYXRhKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdObyBpbml0aWFsaXphdGlvbiBkYXRhJywgW0Vycm9yVGFncy5HT09HTEVQQVldKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRocm93IG5ldyBBcHBFcnJvcignR29vZ2xlIFBheTogbm8gaW5pdGlhbGl6YXRpb24gZGF0YScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXJ2ZXJFbnZpcm9ubWVudCA9IGluaXREYXRhLmVudmlyb25tZW50ID8/IG51bGw7XG4gICAgICAgIHRoaXMuc2V0dXBHb29nbGVQYXlDbGllbnQoKTtcblxuICAgICAgICB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnRcbiAgICAgICAgICAuaXNSZWFkeVRvUGF5KGluaXREYXRhLmlzUmVhZHlUb1BheVJlcXVlc3QpXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UucmVzdWx0ICYmIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudCkge1xuICAgICAgICAgICAgICB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQucHJlZmV0Y2hQYXltZW50RGF0YShcbiAgICAgICAgICAgICAgICBpbml0RGF0YS5wYXltZW50RGF0YVJlcXVlc3QsXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVhZHlUb1BheS5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJlYWR5VG9QYXkubmV4dChmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgICAgICAgICBjb25zdCBpc0hhdmVQYXltZW50Q2xpZW50ID0gQm9vbGVhbihcbiAgICAgICAgICAgICAgdGhpcy5nb29nbGVQYXltZW50Q2xpZW50LFxuICAgICAgICAgICAgKS50b1N0cmluZygpO1xuXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYEdvb2dsZSBQYXk6IHBvc3NpYmx5IG5vIHJlc3BvbnNlLnJlc3VsdCBvciBnb29nbGVQYXltZW50Q2xpZW50IGlzIG1pc3NpbmcsIHJlc3VsdCAtICR7cmVzdWx0fSwgaXNIYXZlUGF5bWVudENsaWVudCAtICR7aXNIYXZlUGF5bWVudENsaWVudH1gO1xuICAgICAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgICBuZXcgVGFnZ2VkRXJyb3IobWVzc2FnZSwgW0Vycm9yVGFncy5HT09HTEVQQVldKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5VG9QYXkubmV4dChmYWxzZSk7XG5cbiAgICAgICAgICAgIGxldCBtZXNzYWdlID0gKGVycm9yIGFzIHN0cmluZykgPz8gJyc7XG5cbiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAgIG5ldyBUYWdnZWRFcnJvcihcbiAgICAgICAgICAgICAgICBgR29vZ2xlIFBheTogZGV2aWNlIGlzIG5vdCByZWFkeSB0byBwYXksICR7bWVzc2FnZX1gLFxuICAgICAgICAgICAgICAgIFtFcnJvclRhZ3MuR09PR0xFUEFZXSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcm9jZWVkQ2hlY2tvdXQoKTogUHJvbWlzZTxDaGVja1N0YXR1c0FjdGlvbiB8IG51bGw+IHtcbiAgICB0aGlzLnNldHVwR29vZ2xlUGF5Q2xpZW50KCk7XG5cbiAgICBpZiAoIXRoaXMuZ29vZ2xlUGF5bWVudENsaWVudCkge1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoXG4gICAgICAgICAgJ0dvb2dsZSBwYXltZW50IGNsaWVudCBpcyBub3QgaW5pdGlhbGl6ZWQgdG8gcHJvY2VlZCBjaGVja291dCcsXG4gICAgICAgICAgW0Vycm9yVGFncy5HT09HTEVQQVldLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIHRocm93IG5ldyBBcHBFcnJvcihcbiAgICAgICAgYEdvb2dsZSBQYXkuIHByb2NlZWRDaGVja291dDogbm8gZ29vZ2xlIHBheW1lbnQgY2xpZW50YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBheW1lbnRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcihcbiAgICAgICAgICAnR29vZ2xlIHBheW1lbnQgc2VydmljZSBpcyBub3QgaW5pdGlhbGl6ZWQgdG8gcHJvY2VlZCBjaGVja291dCcsXG4gICAgICAgICAgW0Vycm9yVGFncy5HT09HTEVQQVldLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIHRocm93IG5ldyBBcHBFcnJvcihcbiAgICAgICAgYEdvb2dsZSBQYXkuIHByb2NlZWRDaGVja291dDogbm8gZ29vZ2xlIHBheW1lbnQgc2VydmljZWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIGdvb2dsZSBzdXBwb3J0IG9ubHkgb25lIHBheW1lbnQgaW4gdGltZVxuICAgIGlmICh0aGlzLnBheW1lbnRJblByb2dyZXNzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmluaXRQYXJhbXMuaXNJbnN0YW50UGF5Rmxvdykge1xuICAgICAgdGhpcy5hbmFseXRpY3NFdmVudC5uZXh0KHtcbiAgICAgICAgZXZlbnROYW1lOiBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLnN5c0luc3RhbnRGbG93T3BlbixcbiAgICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5vcGVuLFxuICAgICAgICBpbnN0YW5jZUlkOiBnb29nbGVQYXksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFBheW1lbnRSZXF1ZXN0KCk7XG5cbiAgICBpZiAoIXBheW1lbnREYXRhUmVxdWVzdCkge1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoJ05vIGRhdGEgZm9yIHBheW1lbnQgZGF0YSByZXF1ZXN0JywgW1xuICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcbiAgICAgIHRocm93IG5ldyBBcHBFcnJvcihgR29vZ2xlIFBheTogTm8gZGF0YSBmb3IgcGF5bWVudCBkYXRhIHJlcXVlc3RgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGVja1N0YXR1c0FjdGlvbjogTmV4dEFjdGlvbiA9IHRoaXMuaW5qZWN0b3JcbiAgICAgIC5nZXQ8Q2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yPihDaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IpXG4gICAgICAuZ2V0QWN0aW9uRGF0YSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucGF5bWVudEluUHJvZ3Jlc3MgPSB0cnVlO1xuXG4gICAgICB0aGlzLnBheW1lbnRXaW5kb3dJc1JlYWR5Lm5leHQoKTtcblxuICAgICAgY29uc3QgcGF5bWVudERhdGEgPVxuICAgICAgICBhd2FpdCB0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQubG9hZFBheW1lbnREYXRhKHBheW1lbnREYXRhUmVxdWVzdCk7XG5cbiAgICAgIGlmICghcGF5bWVudERhdGE/LnBheW1lbnRNZXRob2REYXRhPy50b2tlbml6YXRpb25EYXRhPy50b2tlbikge1xuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdUb2tlbiBpcyBtaXNzaW5nJywgW0Vycm9yVGFncy5HT09HTEVQQVldKSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKCdHb29nbGUgUGF5OiB0b2tlbiBpcyBtaXNzaW5nJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UuaGFuZGxlU3VjY2Vzc2Z1bFBheW1lbnQ/LihwYXltZW50RGF0YSk7XG5cbiAgICAgIHRoaXMucGF5bWVudFdpbmRvd0lzQ2xvc2UubmV4dCgpO1xuXG4gICAgICB0aGlzLnBheW1lbnRJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjaGVja1N0YXR1c0FjdGlvbjtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgdGhpcy5wYXltZW50SW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmhhbmRsZUZhaWxlZFBheW1lbnQ/LihlcnJvcik7XG4gICAgICB0aGlzLnBheW1lbnRXaW5kb3dJc0Nsb3NlLm5leHQoKTtcbiAgICAgIHRoaXMuZXJyb3IubmV4dChlcnJvcik7XG5cbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IChlcnJvciBhcyB7IG1lc3NhZ2U6IHN0cmluZyB9KT8ubWVzc2FnZSA/PyAnJztcbiAgICAgIGNvbnN0IGVycm9yU3RhdHVzQ29kZSA9XG4gICAgICAgIChlcnJvciBhcyB7IHN0YXR1c0NvZGU6IHN0cmluZyB9KT8uc3RhdHVzQ29kZSA/PyAnJztcblxuICAgICAgY29uc3QgaXNDbG9zZWRCeVVzZXIgPSB0aGlzLmlzQ2xvc2VkQnlVc2VyKGVycm9yTWVzc2FnZSk7XG4gICAgICBjb25zdCBpc0NhbmNlbGVkU3RhdHVzID0gdGhpcy5pc0NhbmNlbGVkU3RhdHVzKGVycm9yU3RhdHVzQ29kZSk7XG5cbiAgICAgIGlmIChpc0Nsb3NlZEJ5VXNlciB8fCBpc0NhbmNlbGVkU3RhdHVzKSByZXR1cm4gbnVsbDtcblxuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoYEdvb2dsZSBQYXk6IHByb2NlZWRDaGVja291dCBmYWlsZWQsICR7ZXJyb3JNZXNzYWdlfWAsIFtcbiAgICAgICAgICBFcnJvclRhZ3MuR09PR0xFUEFZLFxuICAgICAgICBdKSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjaGVja1N0YXR1c0FjdGlvbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQnV0dG9uKFxuICAgIG9uQ2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkLFxuICAgIGNvbmZpZ3VyYXRpb246IEdvb2dsZVBheUJ1dHRvbkNvbmZpZ3VyYXRpb24sXG4gICk6IEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmdvb2dsZVBheW1lbnRDbGllbnQpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgcGF5bWVudCBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkIHRvIGNyZWF0ZSBidXR0b24nLFxuICAgICAgICAgIFtFcnJvclRhZ3MuR09PR0xFUEFZXSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxvd2VkUGF5bWVudE1ldGhvZHMgPVxuICAgICAgdGhpcy5wYXltZW50U2VydmljZT8uZ2V0QWxsb3dlZFBheW1lbnRNZXRob2RzKCkgfHwgW107XG5cbiAgICByZXR1cm4gdGhpcy5nb29nbGVQYXltZW50Q2xpZW50LmNyZWF0ZUJ1dHRvbih7XG4gICAgICBvbkNsaWNrOiBvbkNsaWNrSGFuZGxlcixcbiAgICAgIGFsbG93ZWRQYXltZW50TWV0aG9kczogYWxsb3dlZFBheW1lbnRNZXRob2RzLFxuICAgICAgYnV0dG9uU2l6ZU1vZGU6ICdmaWxsJyxcbiAgICAgIGJ1dHRvblR5cGU6ICdidXknLFxuICAgICAgYnV0dG9uQ29sb3I6IGNvbmZpZ3VyYXRpb24uY29sb3IgPz8gJ2RlZmF1bHQnLFxuICAgICAgYnV0dG9uTG9jYWxlOiB0aGlzLmdldExvY2FsZUZvckJ1dHRvbihjb25maWd1cmF0aW9uLmxvY2FsZSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVHb29nbGVQYXlFbnZpcm9ubWVudCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNlcnZlckVudmlyb25tZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXJ2ZXJFbnZpcm9ubWVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbml0UGFyYW1zLmlzU2FuZGJveCA/ICdURVNUJyA6ICdQUk9EVUNUSU9OJztcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBHb29nbGVQYXlDbGllbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5nb29nbGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKCdHb29nbGUgUGF5IGxpYnJhcnkgaXMgbm90IGF2YWlsYWJsZSBvbiB3aW5kb3cnLCBbXG4gICAgICAgICAgRXJyb3JUYWdzLkdPT0dMRVBBWSxcbiAgICAgICAgXSksXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudmlyb25tZW50ID0gdGhpcy5yZXNvbHZlR29vZ2xlUGF5RW52aXJvbm1lbnQoKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuZ29vZ2xlUGF5bWVudENsaWVudCAmJlxuICAgICAgdGhpcy5nb29nbGVQYXlDbGllbnRFbnZpcm9ubWVudCA9PT0gZW52aXJvbm1lbnRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBnb29nbGVQYXltZW50Q2xpZW50RGF0YTogR29vZ2xlUGF5Q2xpZW50SW5pdERhdGEgPSB7XG4gICAgICBlbnZpcm9ubWVudCxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuaW5pdFBhcmFtcy5pc0luc3RhbnRQYXlGbG93KSB7XG4gICAgICBnb29nbGVQYXltZW50Q2xpZW50RGF0YS5wYXltZW50RGF0YUNhbGxiYWNrcyA9IHtcbiAgICAgICAgb25QYXltZW50RGF0YUNoYW5nZWQ6IHRoaXMub25QYXltZW50RGF0YUNoYW5nZWQsXG4gICAgICAgIG9uUGF5bWVudEF1dGhvcml6ZWQ6IHRoaXMub25QYXltZW50QXV0aG9yaXplZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5nb29nbGVQYXltZW50Q2xpZW50ID1cbiAgICAgIG5ldyB0aGlzLndpbmRvdy5nb29nbGUucGF5bWVudHMuYXBpLlBheW1lbnRzQ2xpZW50KFxuICAgICAgICBnb29nbGVQYXltZW50Q2xpZW50RGF0YSxcbiAgICAgICk7XG4gICAgdGhpcy5nb29nbGVQYXlDbGllbnRFbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBvbkxvYWRTY3JpcHQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5nb29nbGUpIHtcbiAgICAgIGNvbnN0IHJldHJ5VGltZW91dCA9IDEwMDA7XG5cbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgUGF5OiBsaWJyYXJ5IG5vdCBhdmFpbGFibGUgYWZ0ZXIgc2NyaXB0IGxvYWQsIHJldHJ5aW5nJyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaXNBdmFpbGFibGVHb29nbGVDbGllbnQgPSAhIXRoaXMud2luZG93Lmdvb2dsZTtcblxuICAgICAgICBpZiAoaXNBdmFpbGFibGVHb29nbGVDbGllbnQpIHtcbiAgICAgICAgICB0aGlzLnNldHVwR29vZ2xlUGF5Q2xpZW50KCk7XG5cbiAgICAgICAgICB0aGlzLnBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZS5lbWl0SW5pdGlhbGl6ZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSwgcmV0cnlUaW1lb3V0KTtcblxuICAgICAgdGhyb3cgbmV3IEFwcEVycm9yKCdHb29nbGUgUGF5OiBnb29nbGUgbGlicmFyeSBub3cgaXMgYXZhaWxhYmxlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0dXBHb29nbGVQYXlDbGllbnQoKTtcblxuICAgICAgdGhpcy5wYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2UuZW1pdEluaXRpYWxpemUodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXltZW50U2VydmljZSgpOiBHb29nbGVQYXlQYXltZW50U2VydmljZSB7XG4gICAgaWYgKHRoaXMuaW5pdFBhcmFtcy5pc0luc3RhbnRQYXlGbG93KVxuICAgICAgcmV0dXJuIHRoaXMuZ29vZ2xlUGF5SW5zdGFudFBheW1lbnRTZXJ2aWNlO1xuICAgIHJldHVybiB0aGlzLmdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2U7XG4gIH1cblxuICBwcml2YXRlIGlzQ2xvc2VkQnlVc2VyKG1lc3NhZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3VzZXIgY2xvc2VkIHRoZSBwYXltZW50IHJlcXVlc3QgdWknKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDYW5jZWxlZFN0YXR1cyhzdGF0dXNDb2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RhdHVzQ29kZS50b0xvd2VyQ2FzZSgpID09PSAnY2FuY2VsZWQnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbGVGb3JCdXR0b24odXNlckxvY2FsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBhbGxvd2VkTG9jYWxlcyA9IFtcbiAgICAgICdlbicsXG4gICAgICAnYXInLFxuICAgICAgJ2JnJyxcbiAgICAgICdjYScsXG4gICAgICAnY3MnLFxuICAgICAgJ2RhJyxcbiAgICAgICdkZScsXG4gICAgICAnZWwnLFxuICAgICAgJ2VzJyxcbiAgICAgICdldCcsXG4gICAgICAnZmknLFxuICAgICAgJ2ZyJyxcbiAgICAgICdocicsXG4gICAgICAnaWQnLFxuICAgICAgJ2l0JyxcbiAgICAgICdqYScsXG4gICAgICAna28nLFxuICAgICAgJ21zJyxcbiAgICAgICdubCcsXG4gICAgICAnbm8nLFxuICAgICAgJ3BsJyxcbiAgICAgICdwdCcsXG4gICAgICAncnUnLFxuICAgICAgJ3NrJyxcbiAgICAgICdzbCcsXG4gICAgICAnc3InLFxuICAgICAgJ3N2JyxcbiAgICAgICd0aCcsXG4gICAgICAndHInLFxuICAgICAgJ3VrJyxcbiAgICAgICd6aCcsXG4gICAgXTtcblxuICAgIGlmIChbJ2NuJywgJ3poX0hBTlQnXS5pbmNsdWRlcyh1c2VyTG9jYWxlKSkge1xuICAgICAgcmV0dXJuICd6aCc7XG4gICAgfVxuXG4gICAgaWYgKFsnemhfSEFOUyddLmluY2x1ZGVzKHVzZXJMb2NhbGUpKSB7XG4gICAgICByZXR1cm4gJ3R3JztcbiAgICB9XG5cbiAgICByZXR1cm4gYWxsb3dlZExvY2FsZXMuZmluZCgobG9jYWxlKSA9PiBsb2NhbGUgPT09IHVzZXJMb2NhbGUpID8/ICdlbic7XG4gIH1cbn1cbiJdfQ==
@@ -34,7 +34,11 @@ export class GooglePayCheckoutPaymentService {
34
34
  const checkoutData = this.checkout.request.form.fields;
35
35
  const paymentDataRequest = JSON.parse(checkoutData.paymentDataRequest);
36
36
  const isReadyToPayRequest = JSON.parse(checkoutData.isReadyToPayRequest);
37
- const result = { paymentDataRequest, isReadyToPayRequest };
37
+ const result = {
38
+ paymentDataRequest,
39
+ isReadyToPayRequest,
40
+ environment: checkoutData.environment,
41
+ };
38
42
  if (checkoutData.amexCardNotification) {
39
43
  result.amexCardNotification = JSON.parse(checkoutData.amexCardNotification);
40
44
  }
@@ -99,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
99
103
  providedIn: 'root',
100
104
  }]
101
105
  }], ctorParameters: () => [{ type: i1.PaymentSystemProcessingService }, { type: i2.LoggerService }] });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1jaGVja291dC1wYXltZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9nb29nbGUtcGF5L3BheW1lbnQvZ29vZ2xlLXBheS1jaGVja291dC1wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBYzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBRzVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7QUFLckYsTUFBTSxPQUFPLCtCQUErQjtJQU8xQyxZQUNrQiw4QkFBOEQsRUFDN0QsYUFBNEI7UUFEN0IsbUNBQThCLEdBQTlCLDhCQUE4QixDQUFnQztRQUM3RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUx2QyxhQUFRLEdBQTZCLElBQUksQ0FBQztRQUNqQyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO0lBS3BFLENBQUM7SUFFSixJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxjQUFjLENBQUMsRUFDcEIsVUFBVSxFQUNWLGVBQWUsR0FDTTtRQUNyQixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQ3RCLElBQUksV0FBVyxDQUNiLCtEQUErRCxFQUMvRCxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FDdEIsQ0FDRixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVE7WUFDWCxJQUFJLENBQUMsOEJBQThCLENBQUMsa0JBQWtCLENBQ3BELGVBQWUsQ0FBQyxrQkFBa0IsQ0FDbkMsQ0FBQztRQUVKLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQ3RCLElBQUksV0FBVyxDQUFDLHFEQUFxRCxFQUFFO2dCQUNyRSxTQUFTLENBQUMsU0FBUzthQUNwQixDQUFDLENBQ0gsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV6RSxNQUFNLE1BQU0sR0FBbUIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1FBRTNFLElBQUksWUFBWSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3RDLFlBQVksQ0FBQyxvQkFBb0IsQ0FDbEMsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWhDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNuQyxZQUFZLENBQUMsa0JBQWtCLENBQ0wsQ0FBQztRQUU3QixrQkFBa0IsQ0FBQyxlQUFlLEdBQUc7WUFDbkMsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQ25DLGdCQUFnQixFQUFFLE9BQU87WUFDekIsVUFBVSxFQUFFLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFO1lBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7U0FDbkQsQ0FBQztRQUVGLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUU5QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQzFCLENBQUM7UUFFN0IsT0FBTyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztJQUNsRCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBNkI7UUFDMUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsU0FBUyxFQUFFLHNCQUFzQixDQUFDLGdDQUFnQztZQUNsRSxTQUFTLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUN6QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsSUFBSSxFQUFFO1NBQ3BFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUVuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9DLFNBQVMsSUFBSSxlQUFlLElBQUksQ0FBQyxVQUFVLGVBQ3pDLElBQUksQ0FBQyxVQUNQLGdCQUFnQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFFM0MsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBYztRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUN2QixTQUFTLEVBQUUsc0JBQXNCLENBQUMsNEJBQTRCO1lBQzlELFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsSUFBSSxFQUFFO1NBQ2pFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsTUFBTSxVQUFVLEdBQUksS0FBaUMsRUFBRSxVQUFVLENBQUM7UUFDbEUsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFFLElBQUksZ0JBQWdCO1lBQUUsT0FBTztRQUU3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNsRSxJQUFJLENBQUMsOEJBQThCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxVQUFrQjtRQUMxQyxPQUFPLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLENBQUM7SUFDakQsQ0FBQzsrR0EvSFUsK0JBQStCO21IQUEvQiwrQkFBK0IsY0FGOUIsTUFBTTs7NEZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3BheW1lbnQtc3lzdGVtcy9wYXltZW50LXN5c3RlbS1wcm9jZXNzaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5Q2hlY2tvdXQgfSBmcm9tICcuLi9nb29nbGUtcGF5LWNoZWNrb3V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlJbml0UGFyYW1zIH0gZnJvbSAnLi4vZ29vZ2xlLXBheS1pbml0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgQWxsb3dlZFBheW1lbnRNZXRob2QsXG4gIEdvb2dsZUluaXREYXRhLFxuICBHb29nbGVQYXlQYXltZW50UmVxdWVzdCxcbiAgUGF5bWVudERhdGFSZXNwb25zZSxcbn0gZnJvbSAnLi4vZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBHb29nbGVQYXlQYXltZW50U2VydmljZSxcbiAgUHJlcGFyZVBheW1lbnRQYXJhbXMsXG59IGZyb20gJy4vZ29vZ2xlLXBheS1wYXltZW50LXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IEFuYWx5dGljc0V2ZW50UGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYWdnZWRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2VcbiAgaW1wbGVtZW50cyBHb29nbGVQYXlQYXltZW50U2VydmljZVxue1xuICBwcml2YXRlIGluaXRQYXJhbXMhOiBHb29nbGVQYXlJbml0UGFyYW1zO1xuICBwcml2YXRlIGNoZWNrb3V0OiBHb29nbGVQYXlDaGVja291dCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuYWx5dGljc0V2ZW50ID0gbmV3IFN1YmplY3Q8QW5hbHl0aWNzRXZlbnRQYXlsb2FkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlOiBQYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIGdldCBhbmFseXRpY3NFdmVudCQoKTogT2JzZXJ2YWJsZTxBbmFseXRpY3NFdmVudFBheWxvYWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hbmFseXRpY3NFdmVudC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlUGF5bWVudCh7XG4gICAgaW5pdFBhcmFtcyxcbiAgICBjaGVja0RldmljZURhdGEsXG4gIH06IFByZXBhcmVQYXltZW50UGFyYW1zKTogR29vZ2xlSW5pdERhdGEgfCBudWxsIHtcbiAgICBpZiAoIWluaXRQYXJhbXMgfHwgIWNoZWNrRGV2aWNlRGF0YS5iYXNlNjRjaGVja291dERhdGEpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgUGF5IGNoZWNrb3V0OiBtaXNzaW5nIGluaXRQYXJhbXMgb3IgYmFzZTY0Y2hlY2tvdXREYXRhJyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0UGFyYW1zID0gaW5pdFBhcmFtcztcbiAgICB0aGlzLmNoZWNrb3V0ID1cbiAgICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmdldERlY29kZWRDaGVja291dDxHb29nbGVQYXlDaGVja291dD4oXG4gICAgICAgIGNoZWNrRGV2aWNlRGF0YS5iYXNlNjRjaGVja291dERhdGEsXG4gICAgICApO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcignR29vZ2xlIFBheSBjaGVja291dDogZmFpbGVkIHRvIGRlY29kZSBjaGVja291dCBkYXRhJywgW1xuICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrb3V0RGF0YSA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcztcbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKGNoZWNrb3V0RGF0YS5wYXltZW50RGF0YVJlcXVlc3QpO1xuICAgIGNvbnN0IGlzUmVhZHlUb1BheVJlcXVlc3QgPSBKU09OLnBhcnNlKGNoZWNrb3V0RGF0YS5pc1JlYWR5VG9QYXlSZXF1ZXN0KTtcblxuICAgIGNvbnN0IHJlc3VsdDogR29vZ2xlSW5pdERhdGEgPSB7IHBheW1lbnREYXRhUmVxdWVzdCwgaXNSZWFkeVRvUGF5UmVxdWVzdCB9O1xuXG4gICAgaWYgKGNoZWNrb3V0RGF0YS5hbWV4Q2FyZE5vdGlmaWNhdGlvbikge1xuICAgICAgcmVzdWx0LmFtZXhDYXJkTm90aWZpY2F0aW9uID0gSlNPTi5wYXJzZShcbiAgICAgICAgY2hlY2tvdXREYXRhLmFtZXhDYXJkTm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGdldFBheW1lbnRSZXF1ZXN0KCk6IEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNoZWNrb3V0RGF0YSA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcztcbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgY2hlY2tvdXREYXRhLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICApIGFzIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0O1xuXG4gICAgcGF5bWVudERhdGFSZXF1ZXN0LnRyYW5zYWN0aW9uSW5mbyA9IHtcbiAgICAgIGN1cnJlbmN5Q29kZTogY2hlY2tvdXREYXRhLmN1cnJlbmN5LFxuICAgICAgdG90YWxQcmljZVN0YXR1czogJ0ZJTkFMJyxcbiAgICAgIHRvdGFsUHJpY2U6IGNoZWNrb3V0RGF0YS5zdW0/LnRvU3RyaW5nKCksXG4gICAgICBjb3VudHJ5Q29kZTogdGhpcy5pbml0UGFyYW1zLmNvdW50cnkudG9VcHBlckNhc2UoKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBheW1lbnREYXRhUmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbGxvd2VkUGF5bWVudE1ldGhvZHMoKTogQWxsb3dlZFBheW1lbnRNZXRob2RbXSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm4gW107XG5cbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICApIGFzIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0O1xuXG4gICAgcmV0dXJuIHBheW1lbnREYXRhUmVxdWVzdC5hbGxvd2VkUGF5bWVudE1ldGhvZHM7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlU3VjY2Vzc2Z1bFBheW1lbnQocmVzcG9uc2U6IFBheW1lbnREYXRhUmVzcG9uc2UpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc0V2ZW50Lm5leHQoe1xuICAgICAgZXZlbnROYW1lOiBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmdvb2dsZVBheUhhbmRsZVN1Y2Nlc3NmdWxQYXltZW50LFxuICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB2YWx1ZTogdGhpcy5jaGVja291dD8ucmVxdWVzdD8uZm9ybT8uZmllbGRzPy5yZXR1cm5TdWNjZXNzVXJsID8/ICcnLFxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm47XG5cbiAgICBsZXQgcmV0dXJuVXJsID0gdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzLnJldHVyblN1Y2Nlc3NVcmw7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzO1xuICAgIHJldHVyblVybCArPSBgJmNwZl9udW1iZXI9JHtkYXRhLmNwZl9udW1iZXJ9JmRlc2NyaXB0b3I9JHtcbiAgICAgIGRhdGEuZGVzY3JpcHRvclxuICAgIH0mcGF5bWVudERhdGE9JHtKU09OLnN0cmluZ2lmeShyZXNwb25zZSl9YDtcblxuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRTdGF0dXNVcmwocmV0dXJuVXJsKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVGYWlsZWRQYXltZW50KGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NFdmVudC5uZXh0KHtcbiAgICAgIGV2ZW50TmFtZTogVXNlckJlaGF2aW91ckV2ZW50TmFtZS5nb29nbGVQYXlIYW5kbGVGYWlsZWRQYXltZW50LFxuICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB2YWx1ZTogdGhpcy5jaGVja291dD8ucmVxdWVzdD8uZm9ybT8uZmllbGRzPy5yZXR1cm5GYWlsVXJsID8/ICcnLFxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm47XG5cbiAgICBjb25zdCBzdGF0dXNDb2RlID0gKGVycm9yIGFzIHsgc3RhdHVzQ29kZT86IHN0cmluZyB9KT8uc3RhdHVzQ29kZTtcbiAgICBjb25zdCBpc1N0YXR1c0NhbmNlbGVkID0gc3RhdHVzQ29kZSAmJiB0aGlzLmlzQ2FuY2VsbGVkU3RhdHVzKHN0YXR1c0NvZGUpO1xuXG4gICAgaWYgKGlzU3RhdHVzQ2FuY2VsZWQpIHJldHVybjtcblxuICAgIGNvbnN0IHJldHVyblVybCA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcy5yZXR1cm5GYWlsVXJsO1xuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRTdGF0dXNVcmwocmV0dXJuVXJsKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDYW5jZWxsZWRTdGF0dXMoc3RhdHVzQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXR1c0NvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2NhbmNlbGVkJztcbiAgfVxufVxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXBheS1jaGVja291dC1wYXltZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9nb29nbGUtcGF5L3BheW1lbnQvZ29vZ2xlLXBheS1jaGVja291dC1wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBYzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBRzVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7QUFLckYsTUFBTSxPQUFPLCtCQUErQjtJQU8xQyxZQUNrQiw4QkFBOEQsRUFDN0QsYUFBNEI7UUFEN0IsbUNBQThCLEdBQTlCLDhCQUE4QixDQUFnQztRQUM3RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUx2QyxhQUFRLEdBQTZCLElBQUksQ0FBQztRQUNqQyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO0lBS3BFLENBQUM7SUFFSixJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxjQUFjLENBQUMsRUFDcEIsVUFBVSxFQUNWLGVBQWUsR0FDTTtRQUNyQixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQ3RCLElBQUksV0FBVyxDQUNiLCtE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akQsQ0FBQzsrR0FuSVUsK0JBQStCO21IQUEvQiwrQkFBK0IsY0FGOUIsTUFBTTs7NEZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBheW1lbnRTeXN0ZW1Qcm9jZXNzaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3BheW1lbnQtc3lzdGVtcy9wYXltZW50LXN5c3RlbS1wcm9jZXNzaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgR29vZ2xlUGF5Q2hlY2tvdXQgfSBmcm9tICcuLi9nb29nbGUtcGF5LWNoZWNrb3V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBHb29nbGVQYXlJbml0UGFyYW1zIH0gZnJvbSAnLi4vZ29vZ2xlLXBheS1pbml0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgQWxsb3dlZFBheW1lbnRNZXRob2QsXG4gIEdvb2dsZUluaXREYXRhLFxuICBHb29nbGVQYXlQYXltZW50UmVxdWVzdCxcbiAgUGF5bWVudERhdGFSZXNwb25zZSxcbn0gZnJvbSAnLi4vZ29vZ2xlLXBheS1saWJyYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBHb29nbGVQYXlQYXltZW50U2VydmljZSxcbiAgUHJlcGFyZVBheW1lbnRQYXJhbXMsXG59IGZyb20gJy4vZ29vZ2xlLXBheS1wYXltZW50LXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IEFuYWx5dGljc0V2ZW50UGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYWdnZWRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVBheUNoZWNrb3V0UGF5bWVudFNlcnZpY2VcbiAgaW1wbGVtZW50cyBHb29nbGVQYXlQYXltZW50U2VydmljZVxue1xuICBwcml2YXRlIGluaXRQYXJhbXMhOiBHb29nbGVQYXlJbml0UGFyYW1zO1xuICBwcml2YXRlIGNoZWNrb3V0OiBHb29nbGVQYXlDaGVja291dCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuYWx5dGljc0V2ZW50ID0gbmV3IFN1YmplY3Q8QW5hbHl0aWNzRXZlbnRQYXlsb2FkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlOiBQYXltZW50U3lzdGVtUHJvY2Vzc2luZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIGdldCBhbmFseXRpY3NFdmVudCQoKTogT2JzZXJ2YWJsZTxBbmFseXRpY3NFdmVudFBheWxvYWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hbmFseXRpY3NFdmVudC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlUGF5bWVudCh7XG4gICAgaW5pdFBhcmFtcyxcbiAgICBjaGVja0RldmljZURhdGEsXG4gIH06IFByZXBhcmVQYXltZW50UGFyYW1zKTogR29vZ2xlSW5pdERhdGEgfCBudWxsIHtcbiAgICBpZiAoIWluaXRQYXJhbXMgfHwgIWNoZWNrRGV2aWNlRGF0YS5iYXNlNjRjaGVja291dERhdGEpIHtcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcbiAgICAgICAgbmV3IFRhZ2dlZEVycm9yKFxuICAgICAgICAgICdHb29nbGUgUGF5IGNoZWNrb3V0OiBtaXNzaW5nIGluaXRQYXJhbXMgb3IgYmFzZTY0Y2hlY2tvdXREYXRhJyxcbiAgICAgICAgICBbRXJyb3JUYWdzLkdPT0dMRVBBWV0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0UGFyYW1zID0gaW5pdFBhcmFtcztcbiAgICB0aGlzLmNoZWNrb3V0ID1cbiAgICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmdldERlY29kZWRDaGVja291dDxHb29nbGVQYXlDaGVja291dD4oXG4gICAgICAgIGNoZWNrRGV2aWNlRGF0YS5iYXNlNjRjaGVja291dERhdGEsXG4gICAgICApO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcignR29vZ2xlIFBheSBjaGVja291dDogZmFpbGVkIHRvIGRlY29kZSBjaGVja291dCBkYXRhJywgW1xuICAgICAgICAgIEVycm9yVGFncy5HT09HTEVQQVksXG4gICAgICAgIF0pLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrb3V0RGF0YSA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcztcbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKGNoZWNrb3V0RGF0YS5wYXltZW50RGF0YVJlcXVlc3QpO1xuICAgIGNvbnN0IGlzUmVhZHlUb1BheVJlcXVlc3QgPSBKU09OLnBhcnNlKGNoZWNrb3V0RGF0YS5pc1JlYWR5VG9QYXlSZXF1ZXN0KTtcblxuICAgIGNvbnN0IHJlc3VsdDogR29vZ2xlSW5pdERhdGEgPSB7XG4gICAgICBwYXltZW50RGF0YVJlcXVlc3QsXG4gICAgICBpc1JlYWR5VG9QYXlSZXF1ZXN0LFxuICAgICAgZW52aXJvbm1lbnQ6IGNoZWNrb3V0RGF0YS5lbnZpcm9ubWVudCxcbiAgICB9O1xuXG4gICAgaWYgKGNoZWNrb3V0RGF0YS5hbWV4Q2FyZE5vdGlmaWNhdGlvbikge1xuICAgICAgcmVzdWx0LmFtZXhDYXJkTm90aWZpY2F0aW9uID0gSlNPTi5wYXJzZShcbiAgICAgICAgY2hlY2tvdXREYXRhLmFtZXhDYXJkTm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGdldFBheW1lbnRSZXF1ZXN0KCk6IEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNoZWNrb3V0RGF0YSA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcztcbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgY2hlY2tvdXREYXRhLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICApIGFzIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0O1xuXG4gICAgcGF5bWVudERhdGFSZXF1ZXN0LnRyYW5zYWN0aW9uSW5mbyA9IHtcbiAgICAgIGN1cnJlbmN5Q29kZTogY2hlY2tvdXREYXRhLmN1cnJlbmN5LFxuICAgICAgdG90YWxQcmljZVN0YXR1czogJ0ZJTkFMJyxcbiAgICAgIHRvdGFsUHJpY2U6IGNoZWNrb3V0RGF0YS5zdW0/LnRvU3RyaW5nKCksXG4gICAgICBjb3VudHJ5Q29kZTogdGhpcy5pbml0UGFyYW1zLmNvdW50cnkudG9VcHBlckNhc2UoKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBheW1lbnREYXRhUmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbGxvd2VkUGF5bWVudE1ldGhvZHMoKTogQWxsb3dlZFBheW1lbnRNZXRob2RbXSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm4gW107XG5cbiAgICBjb25zdCBwYXltZW50RGF0YVJlcXVlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzLnBheW1lbnREYXRhUmVxdWVzdCxcbiAgICApIGFzIEdvb2dsZVBheVBheW1lbnRSZXF1ZXN0O1xuXG4gICAgcmV0dXJuIHBheW1lbnREYXRhUmVxdWVzdC5hbGxvd2VkUGF5bWVudE1ldGhvZHM7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlU3VjY2Vzc2Z1bFBheW1lbnQocmVzcG9uc2U6IFBheW1lbnREYXRhUmVzcG9uc2UpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc0V2ZW50Lm5leHQoe1xuICAgICAgZXZlbnROYW1lOiBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmdvb2dsZVBheUhhbmRsZVN1Y2Nlc3NmdWxQYXltZW50LFxuICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB2YWx1ZTogdGhpcy5jaGVja291dD8ucmVxdWVzdD8uZm9ybT8uZmllbGRzPy5yZXR1cm5TdWNjZXNzVXJsID8/ICcnLFxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm47XG5cbiAgICBsZXQgcmV0dXJuVXJsID0gdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzLnJldHVyblN1Y2Nlc3NVcmw7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5jaGVja291dC5yZXF1ZXN0LmZvcm0uZmllbGRzO1xuICAgIHJldHVyblVybCArPSBgJmNwZl9udW1iZXI9JHtkYXRhLmNwZl9udW1iZXJ9JmRlc2NyaXB0b3I9JHtcbiAgICAgIGRhdGEuZGVzY3JpcHRvclxuICAgIH0mcGF5bWVudERhdGE9JHtKU09OLnN0cmluZ2lmeShyZXNwb25zZSl9YDtcblxuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRTdGF0dXNVcmwocmV0dXJuVXJsKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVGYWlsZWRQYXltZW50KGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NFdmVudC5uZXh0KHtcbiAgICAgIGV2ZW50TmFtZTogVXNlckJlaGF2aW91ckV2ZW50TmFtZS5nb29nbGVQYXlIYW5kbGVGYWlsZWRQYXltZW50LFxuICAgICAgZXZlbnRUeXBlOiB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB2YWx1ZTogdGhpcy5jaGVja291dD8ucmVxdWVzdD8uZm9ybT8uZmllbGRzPy5yZXR1cm5GYWlsVXJsID8/ICcnLFxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNoZWNrb3V0KSByZXR1cm47XG5cbiAgICBjb25zdCBzdGF0dXNDb2RlID0gKGVycm9yIGFzIHsgc3RhdHVzQ29kZT86IHN0cmluZyB9KT8uc3RhdHVzQ29kZTtcbiAgICBjb25zdCBpc1N0YXR1c0NhbmNlbGVkID0gc3RhdHVzQ29kZSAmJiB0aGlzLmlzQ2FuY2VsbGVkU3RhdHVzKHN0YXR1c0NvZGUpO1xuXG4gICAgaWYgKGlzU3RhdHVzQ2FuY2VsZWQpIHJldHVybjtcblxuICAgIGNvbnN0IHJldHVyblVybCA9IHRoaXMuY2hlY2tvdXQucmVxdWVzdC5mb3JtLmZpZWxkcy5yZXR1cm5GYWlsVXJsO1xuICAgIHRoaXMucGF5bWVudFN5c3RlbVByb2Nlc3NpbmdTZXJ2aWNlLmVtaXRTdGF0dXNVcmwocmV0dXJuVXJsKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDYW5jZWxsZWRTdGF0dXMoc3RhdHVzQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXR1c0NvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2NhbmNlbGVkJztcbiAgfVxufVxuIl19
@@ -22,6 +22,7 @@ export class EventBuilderService {
22
22
  timezone: this.getTimezone(options.date),
23
23
  session_id: this.settingsService.unsafeUtilsResponse?.user?.session_id ?? null,
24
24
  referrer_url: this.window?.document?.referrer,
25
+ ancestor_origins: this.convertToEventParameterType(Array.from(this.window?.location?.ancestorOrigins ?? []), EventParameterType.stringArray),
25
26
  project_id: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.project?.id, EventParameterType.int),
26
27
  payment_country: this.convertToEventParameterType(options.invoice?.payment_country ??
27
28
  this.settingsService.unsafeUtilsResponse?.user?.country?.value, EventParameterType.string),
@@ -141,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
141
142
  type: Inject,
142
143
  args: [windowToken]
143
144
  }] }] });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy9ldmVudC1idWlsZGVyL2V2ZW50LWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQU1qRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ21CLGVBQWdDLEVBQ2hDLGdCQUFrQyxFQUVsQyxNQUFzQjtRQUh0QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUVsQyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtJQUN0QyxDQUFDO0lBRUcsV0FBVyxDQUNoQixPQUEwQyxFQUMxQyxrQkFBc0M7UUFFdEMsT0FBTztZQUNMLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDckMsT0FBTyxDQUFDLEtBQUssRUFDYixPQUFPLENBQUMsU0FBUyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FDL0M7WUFDRCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQyxZQUFZLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEMs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QUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50UGFyYW1ldGVyVHlwZSB9IGZyb20gJy4vZXZlbnQtcGFyYW1ldGVyLXR5cGVzJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudCB9IGZyb20gJy4vdXNlci1iZWhhdmlvdXItZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFB1cmNoYXNlIH0gZnJvbSAnLi9wdXJjaGFzZS50eXBlJztcbmltcG9ydCB7IENyZWF0ZUV2ZW50TWV0aG9kT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyQWdlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1hZ2VudC91c2VyLWFnZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IERldmljZSB9IGZyb20gJy4uLy4uL3VzZXItYWdlbnQvZGV2aWNlLmVudW0nO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgVXNlclNlc3Npb25PcHRpb25zIH0gZnJvbSAnLi4vdXNlci1zZXNzaW9uLW9wdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnRCdWlsZGVyU2VydmljZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckFnZW50U2VydmljZTogVXNlckFnZW50U2VydmljZSxcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBFeHRlbmRlZFdpbmRvdyxcbiAgKSB7fVxuXG4gIHB1YmxpYyBjcmVhdGVFdmVudChcbiAgICBvcHRpb25zOiBDcmVhdGVFdmVudE1ldGhvZE9wdGlvbnNJbnRlcmZhY2UsXG4gICAgdXNlclNlc3Npb25PcHRpb25zOiBVc2VyU2Vzc2lvbk9wdGlvbnMsXG4gICk6IFVzZXJCZWhhdmlvdXJFdmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGlvbjogb3B0aW9ucy5hY3Rpb24sXG4gICAgICB0eXBlOiBvcHRpb25zLnR5cGUsXG4gICAgICB2YWx1ZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMudmFsdWUsXG4gICAgICAgIG9wdGlvbnMudmFsdWVUeXBlID8/IEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgc3RhdGU6IG9wdGlvbnMuc3RhdGUsXG4gICAgICBkYXRlOiB0aGlzLmdldERhdGUob3B0aW9ucy5kYXRlKSxcbiAgICAgIG1pbGxpc2Vjb25kczogb3B0aW9ucy5kYXRlLmdldFRpbWUoKSxcbiAgICAgIHRpbWV6b25lOiB0aGlzLmdldFRpbWV6b25lKG9wdGlvbnMuZGF0ZSksXG4gICAgICBzZXNzaW9uX2lkOlxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy51c2VyPy5zZXNzaW9uX2lkID8/IG51bGwsXG4gICAgICByZWZlcnJlcl91cmw6IHRoaXMud2luZG93Py5kb2N1bWVudD8ucmVmZXJyZXIsXG4gICAgICBwcm9qZWN0X2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8ucHJvamVjdD8uaWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnQsXG4gICAgICApLFxuICAgICAgcGF5bWVudF9jb3VudHJ5OiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnZvaWNlPy5wYXltZW50X2NvdW50cnkgPz9cbiAgICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy51c2VyPy5jb3VudHJ5Py52YWx1ZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICBnZW90eXBlX2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnZvaWNlPy5nZW90eXBlX2lkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50LFxuICAgICAgKSxcbiAgICAgIGluc3RhbmNlX2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnN0YW5jZUlkID8/XG4gICAgICAgICAgdGhpcy5nZXRQYXltZW50TWV0aG9kSWQodXNlclNlc3Npb25PcHRpb25zLmluc3RhbmNlSWQpLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50LFxuICAgICAgKSxcbiAgICAgIHBheW1lbnRfbWV0aG9kX2NvbnRyX2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnZvaWNlPy5wYXltZW50X21ldGhvZF9jb250cl9pZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludCxcbiAgICAgICksXG4gICAgICBwc190eXBlOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnZvaWNlPy5wc190eXBlLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50LFxuICAgICAgKSxcbiAgICAgIGlzX3BheV93aXRoX3NhdmVkX21ldGhvZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy5pc1BheVdpdGhTYXZlZE1ldGhvZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmJvb2wsXG4gICAgICApLFxuICAgICAgcHVyY2hhc2VfaW52b2ljZV9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucHVyY2hhc2VfaW52b2ljZV9pZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludCxcbiAgICAgICksXG4gICAgICBwdXJjaGFzZV9leHRlcm5hbF9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnB1cmNoYXNlX2V4dGVybmFsX2lkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHB1cmNoYXNlX3R5cGU6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnB1cmNoYXNlXG4gICAgICAgID8ucHVyY2hhc2VfdHlwZSBhcyBQdXJjaGFzZSxcbiAgICAgIHB1cmNoYXNlX3N1bTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucHVyY2hhc2Vfc3VtLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuZmxvYXQsXG4gICAgICApLFxuICAgICAgcHVyY2hhc2VfY3VycmVuY3k6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLmludm9pY2U/LnB1cmNoYXNlX2N1cnJlbmN5LFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHB1cmNoYXNlX3NrdTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucHVyY2hhc2Vfc2t1LFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHB1cmNoYXNlX2RpZ2l0YWxfY29udGVudF9za3U6IG51bGwsXG4gICAgICBwdXJjaGFzZV9kZXNjcmlwdGlvbjogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucHVyY2hhc2VfZGVzY3JpcHRpb24sXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgdmlydHVhbF9jdXJyZW5jeV9hbW91bnQ6IG51bGwsIC8vIFRPRE86IGFkZCB2YWx1ZVxuICAgICAgZGlnaXRhbF9jb250ZW50X2NhcnRfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLmludm9pY2U/LmRpZ2l0YWxfY29udGVudF9jYXJ0X2lkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50LFxuICAgICAgKSxcbiAgICAgIGRpZ2l0YWxfZ29vZF9jYXJ0X2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnZvaWNlPy5kaWdpdGFsX2dvb2RfY2FydF9pZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludCxcbiAgICAgICksXG4gICAgICBjb3Vwb25fY29kZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy5jb3Vwb25Db2RlLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHRoZW1lX3ZlcnNpb246IHRoaXMudXNlckFnZW50U2VydmljZS5pc01vYmlsZURldmljZVxuICAgICAgICA/IERldmljZS5tb2JpbGVcbiAgICAgICAgOiBEZXZpY2UuZGVza3RvcCxcbiAgICAgIHN1YnNjcmlwdGlvbl9wYWNrYWdlX2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdXNlclNlc3Npb25PcHRpb25zLnN1YnNjcmlwdGlvblBhY2thZ2VJZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludCxcbiAgICAgICksXG4gICAgICBzdWJzY3JpcHRpb25fcHJvZHVjdF9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy5zdWJzY3JpcHRpb25Qcm9kdWN0SWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnQsXG4gICAgICApLFxuICAgICAgc3Vic2NyaXB0aW9uX3JlY3VycmVudF9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy5zdWJzY3JpcHRpb25SZWN1cnJlbnRJZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludCxcbiAgICAgICksXG4gICAgICB1c2VyX2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8udXNlcj8ucmVxdWlzaXRlcz8uaWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgdXNlcl9hY2Nlc3NfdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgICAgdXNlcl9uYW1lOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8udXNlcj8ucmVxdWlzaXRlcz8udjIsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgdXNlcl9lbWFpbDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LmVtYWlsPy52YWx1ZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICB1c2VyX2NvdW50cnk6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy51c2VyPy5jb3VudHJ5Py52YWx1ZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICB1c2VyX2lwOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8udXNlcj8uaXAsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgdXNlcl9tb2JpbGVfb3BlcmF0b3JfbmFtZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy51c2VyTW9iaWxlT3BlcmF0b3JOYW1lLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHVzZXJfb3BlcmF0aW9uX3N5c3RlbTogdGhpcy51c2VyQWdlbnRTZXJ2aWNlLnBsYXRmb3JtLFxuICAgICAgdXNlcl9icm93c2VyOiB0aGlzLnVzZXJBZ2VudFNlcnZpY2UuYnJvd3NlckRlc2NyaXB0aW9uLFxuICAgICAgdXNlcl9icm93c2VyX3ZlcnNpb246IHRoaXMudXNlckFnZW50U2VydmljZS5icm93c2VyVmVyc2lvbixcbiAgICAgIHVzZXJfYWdlbnQ6IHRoaXMudXNlckFnZW50U2VydmljZS51c2VyQWdlbnQsXG4gICAgICB1c2VyX2xvY2FsZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LmxvY2FsLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHVzZXJfdXRtOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8udXNlcj8udXRtX3BhcmFtZXRlcnMsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgeHNvbGxhX3Byb2R1Y3RfdGFnOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8ueHNvbGxhX3Byb2R1Y3RfdGFnLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIGV4cGVyaW1lbnRfaWQ6IG51bGwsXG4gICAgICBpc190ZXN0X3Nlc3Npb246ICtpc0Rldk1vZGUoKSxcbiAgICAgIGJhYmthX3ZhbHVlOiBudWxsLFxuICAgICAgZXh0cmFfdmFsdWU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5leHRyYVZhbHVlLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIGlzX3N1YnNjcmlwdGlvbjogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuaXNTdWJzY3JpcHRpb24oKSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmJvb2wsXG4gICAgICApLFxuICAgICAgaXNfaWZyYW1lOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy53aW5kb3cucGFyZW50ICE9PSB0aGlzLndpbmRvdyxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmJvb2wsXG4gICAgICApLFxuICAgICAgd2ViM3dhbGxldDogbnVsbCwgLy8gVE9ETzogYWRkIHZhbHVlXG4gICAgICBkaW1lbnNpb25fMTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnM/LmRpbWVuc2lvbjEsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgZGltZW5zaW9uXzI6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5kaW1lbnNpb24yLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIGRpbWVuc2lvbl8zOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucz8uZGltZW5zaW9uMyxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICBkaW1lbnNpb25fNDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnM/LmRpbWVuc2lvbjQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgZGltZW5zaW9uXzU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5kaW1lbnNpb241LFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIGNsaWVudF92ZXJzaW9uOiAnSGVhZGxlc3MgQ2hlY2tvdXQnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgbnVsbEluZGV4ID0gMDtcbiAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoJ1QnLCAnICcpLnJlcGxhY2UoJ1onLCAnJykuc3BsaXQoJy4nKVtcbiAgICAgIG51bGxJbmRleFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGdldFRpbWV6b25lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhvdXIgPSA2MDtcbiAgICBjb25zdCBudWxsSG91ciA9IDA7XG4gICAgY29uc3QgaG91ck9mZnNldCA9IC1kYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgLyBob3VyO1xuXG4gICAgaWYgKGhvdXJPZmZzZXQgPT09IG51bGxIb3VyKSB7XG4gICAgICByZXR1cm4gJzAnO1xuICAgIH1cblxuICAgIHJldHVybiBob3VyT2Zmc2V0ID4gbnVsbEhvdXIgPyBgKyR7aG91ck9mZnNldH1gIDogaG91ck9mZnNldC50b1N0cmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgdmFsdWU6IGJvb2xlYW4gfCBudW1iZXIgfCBudW1iZXJbXSB8IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICB0eXBlOiBFdmVudFBhcmFtZXRlclR5cGUsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgKTogYW55IHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZSA/IDEgOiAwO1xuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nOlxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgIGNhc2UgRXZlbnRQYXJhbWV0ZXJUeXBlLmludDpcbiAgICAgICAgdmFsdWUgPSBwYXJzZUludChTdHJpbmcodmFsdWUpLCAxMCk7XG4gICAgICAgIHJldHVybiBpc05hTih2YWx1ZSkgPyAwIDogdmFsdWU7XG4gICAgICBjYXNlIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmdBcnJheTpcbiAgICAgIGNhc2UgRXZlbnRQYXJhbWV0ZXJUeXBlLmludEFycmF5OlxuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdO1xuICAgICAgY2FzZSBFdmVudFBhcmFtZXRlclR5cGUuZmxvYXQ6XG4gICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdChTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgcmV0dXJuIGlzTmFOKHZhbHVlKSA/IDAgOiB2YWx1ZTtcbiAgICAgIGNhc2UgRXZlbnRQYXJhbWV0ZXJUeXBlLmJvb2w6XG4gICAgICAgIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFZhbHVlRm9yUG9zdE1lc3NhZ2UoXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlcltdIHwgbnVsbCxcbiAgKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTdWJzY3JpcHRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnB1cmNoYXNlPy5wdXJjaGFzZV90eXBlID09PVxuICAgICAgJ3N1YnNjcmlwdGlvbidcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXltZW50TWV0aG9kSWQoaW5zdGFuY2VJZDogbnVtYmVyIHwgbnVsbCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy5zZXR0aW5ncz8ucGF5bWVudF9zeXN0ZW0gPz9cbiAgICAgIGluc3RhbmNlSWRcbiAgICApO1xuICB9XG59XG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy9ldmVudC1idWlsZGVyL2V2ZW50LWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQU1qRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ21CLGVBQWdDLEVBQ2hDLGdCQUFrQyxFQUVsQyxNQUFzQjtRQUh0QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUVsQyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtJQUN0QyxDQUFDO0lBRUcsV0FBVyxDQUNoQixPQUEwQyxFQUMxQyxrQkFBc0M7UUFFdEMsT0FBTztZQUNMLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDckMsT0FBTyxDQUFDLEtBQUssRUFDYixPQUFPLENBQUMsU0FBUyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FDL0M7WUFDRCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQyxZQUFZLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN4QyxVQUFVLEVBQ1IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxJQUFJLElBQUk7WUFDcEUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVE7WUFDN0MsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUNoRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUMsRUFDeEQsa0JBQWtCLENBQUMsV0FBVyxDQUMvQjtZQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQzFDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFDckQsa0JBQWtCLENBQUMsR0FBRyxDQUN2QjtZQUNELGVBQWUsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQy9DLE9BQU8sQ0FBQyxPQUFPLEVBQUUsZUFBZTtnQkFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFDaEUsa0JBQWtCLENBQUMsTUFBTSxDQUMxQjtZQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQzFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUMzQixrQkFBa0IsQ0FBQyxHQUFHLENBQ3ZCO1lBQ0QsV0FBVyxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDM0MsT0FBTyxDQUFDLFVBQVU7Z0JBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFDeEQsa0JBQWtCLENBQUMsR0FBRyxDQUN2QjtZQUNELHVCQUF1QixFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDdkQsT0FBTyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFDeEMsa0JBQWtCLENBQUMsR0FBRyxDQUN2QjtZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQ3ZDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUN4QixrQkFBa0IsQ0FBQyxHQUFHLENBQ3ZCO1lBQ0Qsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUN4RCxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFDdkMsa0JBQWtCLENBQUMsSUFBSSxDQUN4QjtZQUNELG1CQUFtQixFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDbkQsT0FBTyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFDcEMsa0JBQWtCLENBQUMsR0FBRyxDQUN2QjtZQUNELG9CQUFvQixFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxvQkFBb0IsRUFDOUQsa0JBQWtCLENBQUMsTUFBTSxDQUMxQjtZQUNELGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLFFBQVE7Z0JBQy9ELEVBQUUsYUFBeUI7WUFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDNUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQzdCLGtCQUFrQixDQUFDLEtBQUssQ0FDekI7WUFDRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQ2pELE9BQU8sQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQ2xDLGtCQUFrQixDQUFDLE1BQU0sQ0FDMUI7WUFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUM1QyxPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksRUFDN0Isa0JBQWtCLENBQUMsTUFBTSxDQUMxQjtZQUNELDRCQUE0QixFQUFFLElBQUk7WUFDbEMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUNwRCxPQUFPLENBQUMsT0FBTyxFQUFFLG9CQUFvQixFQUNyQyxrQkFBa0IsQ0FBQyxNQUFNLENBQzFCO1lBQ0QsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLGtCQUFrQjtZQUNqRCx1QkFBdUIsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQ3ZELE9BQU8sQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQ3hDLGtCQUFrQixDQUFDLEdBQUcsQ0FDdkI7WUFDRCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQ3BELE9BQU8sQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLEVBQ3JDLGtCQUFrQixDQUFDLEdBQUcsQ0FDdkI7WUFDRCxXQUFXLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUMzQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQzdCLGtCQUFrQixDQUFDLE1BQU0sQ0FDMUI7WUFDRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWM7Z0JBQ2pELENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFDZixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDbEIsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUN2RCxrQkFBa0IsQ0FBQyxxQkFBcUIsRUFDeEMsa0JBQWtCLENBQUMsR0FBRyxDQUN2QjtZQUNELHVCQUF1QixFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDdkQsa0JBQWtCLENBQUMscUJBQXFCLEVBQ3hDLGtCQUFrQixDQUFDLEdBQUcsQ0FDdkI7WUFDRCx5QkFBeUIsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQ3pELGtCQUFrQixDQUFDLHVCQUF1QixFQUMxQyxrQkFBa0IsQ0FBQyxHQUFHLENBQ3ZCO1lBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFDOUQsa0JBQWtCLENBQUMsTUFBTSxDQUMxQjtZQUNELGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztZQUM3QyxTQUFTLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUM5RCxrQkFBa0IsQ0FBQyxNQUFNLENBQzFCO1lBQ0QsVUFBVSxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFDNUQsa0JBQWtCLENBQUMsTUFBTSxDQUMxQjtZQUNELFlBQVksRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQzlELGtCQUFrQixDQUFDLE1BQU0sQ0FDMUI7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQ2xELGtCQUFrQixDQUFDLE1BQU0sQ0FDMUI7WUFDRCx5QkFBeUIsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQ3pELGtCQUFrQixDQUFDLHNCQUFzQixFQUN6QyxrQkFBa0IsQ0FBQyxNQUFNLENBQzFCO1lBQ0QscUJBQXFCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVE7WUFDckQsWUFBWSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0I7WUFDdEQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWM7WUFDMUQsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTO1lBQzNDLFdBQVcsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFDckQsa0JBQWtCLENBQUMsTUFBTSxDQUMxQjtZQUNELFFBQVEsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFDOUQsa0JBQWtCLENBQUMsTUFBTSxDQUMxQjtZQUNELGtCQUFrQixFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxrQkFBa0IsRUFDNUQsa0JBQWtCLENBQUMsTUFBTSxDQUMxQjtZQUNELGFBQWEsRUFBRSxJQUFJO1lBQ25CLGVBQWUsRUFBRSxDQUFDLFNBQVMsRUFBRTtZQUM3QixXQUFXLEVBQUUsSUFBSTtZQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUNuQixrQkFBa0IsQ0FBQyxNQUFNLENBQzFCO1lBQ0QsZUFBZSxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDL0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUNyQixrQkFBa0IsQ0FBQyxJQUFJLENBQ3hCO1lBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFDbEMsa0JBQWtCLENBQUMsSUFBSSxDQUN4QjtZQUNELFVBQVUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3BDLFdBQVcsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQ25CLGtCQUFrQixDQUFDLE1BQU0sQ0FDMUI7WUFDRCxXQUFXLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUNuQixrQkFBa0IsQ0FBQyxNQUFNLENBQzFCO1lBQ0QsV0FBVyxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FDM0MsT0FBTyxFQUFFLFVBQVUsRUFDbkIsa0JBQWtCLENBQUMsTUFBTSxDQUMxQjtZQUNELFdBQVcsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQ25CLGtCQUFrQixDQUFDLE1BQU0sQ0FDMUI7WUFDRCxXQUFXLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUNuQixrQkFBa0IsQ0FBQyxNQUFNLENBQzFCO1lBQ0QsY0FBYyxFQUFFLG1CQUFtQjtTQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFVO1FBQ3hCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUNyRSxTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBVTtRQUM1QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRXBELElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUVELE9BQU8sVUFBVSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFTywyQkFBMkIsQ0FDakMsS0FBeUUsRUFDekUsSUFBd0I7UUFHeEIsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9CLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNO2dCQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixLQUFLLGtCQUFrQixDQUFDLEdBQUc7Z0JBQ3pCLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDbEMsS0FBSyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7WUFDcEMsS0FBSyxrQkFBa0IsQ0FBQyxRQUFRO2dCQUM5QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNDLEtBQUssa0JBQWtCLENBQUMsS0FBSztnQkFDM0IsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDbEMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2xDLEtBQUssa0JBQWtCLENBQUMsSUFBSTtnQkFDMUIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRU8sMEJBQTBCLENBQ2hDLEtBQStCO1FBRS9CLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxDQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGFBQWE7WUFDakUsY0FBYyxDQUNmLENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCLENBQUMsVUFBeUI7UUFDbEQsT0FBTyxDQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGNBQWM7WUFDbEUsVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDOytHQTFRVSxtQkFBbUIsaUZBSXBCLFdBQVc7bUhBSlYsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudFBhcmFtZXRlclR5cGUgfSBmcm9tICcuL2V2ZW50LXBhcmFtZXRlci10eXBlcyc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyRXZlbnQgfSBmcm9tICcuL3VzZXItYmVoYXZpb3VyLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBQdXJjaGFzZSB9IGZyb20gJy4vcHVyY2hhc2UudHlwZSc7XG5pbXBvcnQgeyBDcmVhdGVFdmVudE1ldGhvZE9wdGlvbnNJbnRlcmZhY2UgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckFnZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItYWdlbnQvdXNlci1hZ2VudC5zZXJ2aWNlJztcbmltcG9ydCB7IEV4dGVuZGVkV2luZG93IH0gZnJvbSAnLi4vLi4vZXh0ZW5kZWQtd2luZG93LmludGVyZmFjZSc7XG5pbXBvcnQgeyBEZXZpY2UgfSBmcm9tICcuLi8uLi91c2VyLWFnZW50L2RldmljZS5lbnVtJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IFVzZXJTZXNzaW9uT3B0aW9ucyB9IGZyb20gJy4uL3VzZXItc2Vzc2lvbi1vcHRpb25zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50QnVpbGRlclNlcnZpY2Uge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJBZ2VudFNlcnZpY2U6IFVzZXJBZ2VudFNlcnZpY2UsXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICkge31cblxuICBwdWJsaWMgY3JlYXRlRXZlbnQoXG4gICAgb3B0aW9uczogQ3JlYXRlRXZlbnRNZXRob2RPcHRpb25zSW50ZXJmYWNlLFxuICAgIHVzZXJTZXNzaW9uT3B0aW9uczogVXNlclNlc3Npb25PcHRpb25zLFxuICApOiBVc2VyQmVoYXZpb3VyRXZlbnQge1xuICAgIHJldHVybiB7XG4gICAgICBhY3Rpb246IG9wdGlvbnMuYWN0aW9uLFxuICAgICAgdHlwZTogb3B0aW9ucy50eXBlLFxuICAgICAgdmFsdWU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLnZhbHVlLFxuICAgICAgICBvcHRpb25zLnZhbHVlVHlwZSA/PyBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHN0YXRlOiBvcHRpb25zLnN0YXRlLFxuICAgICAgZGF0ZTogdGhpcy5nZXREYXRlKG9wdGlvbnMuZGF0ZSksXG4gICAgICBtaWxsaXNlY29uZHM6IG9wdGlvbnMuZGF0ZS5nZXRUaW1lKCksXG4gICAgICB0aW1lem9uZTogdGhpcy5nZXRUaW1lem9uZShvcHRpb25zLmRhdGUpLFxuICAgICAgc2Vzc2lvbl9pZDpcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8udXNlcj8uc2Vzc2lvbl9pZCA/PyBudWxsLFxuICAgICAgcmVmZXJyZXJfdXJsOiB0aGlzLndpbmRvdz8uZG9jdW1lbnQ/LnJlZmVycmVyLFxuICAgICAgYW5jZXN0b3Jfb3JpZ2luczogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIEFycmF5LmZyb20odGhpcy53aW5kb3c/LmxvY2F0aW9uPy5hbmNlc3Rvck9yaWdpbnMgPz8gW10pLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nQXJyYXksXG4gICAgICApLFxuICAgICAgcHJvamVjdF9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnByb2plY3Q/LmlkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50LFxuICAgICAgKSxcbiAgICAgIHBheW1lbnRfY291bnRyeTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucGF5bWVudF9jb3VudHJ5ID8/XG4gICAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8udXNlcj8uY291bnRyeT8udmFsdWUsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgZ2VvdHlwZV9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8uZ2VvdHlwZV9pZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludCxcbiAgICAgICksXG4gICAgICBpbnN0YW5jZV9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW5zdGFuY2VJZCA/P1xuICAgICAgICAgIHRoaXMuZ2V0UGF5bWVudE1ldGhvZElkKHVzZXJTZXNzaW9uT3B0aW9ucy5pbnN0YW5jZUlkKSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludCxcbiAgICAgICksXG4gICAgICBwYXltZW50X21ldGhvZF9jb250cl9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucGF5bWVudF9tZXRob2RfY29udHJfaWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnQsXG4gICAgICApLFxuICAgICAgcHNfdHlwZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucHNfdHlwZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludCxcbiAgICAgICksXG4gICAgICBpc19wYXlfd2l0aF9zYXZlZF9tZXRob2Q6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB1c2VyU2Vzc2lvbk9wdGlvbnMuaXNQYXlXaXRoU2F2ZWRNZXRob2QsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5ib29sLFxuICAgICAgKSxcbiAgICAgIHB1cmNoYXNlX2ludm9pY2VfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLmludm9pY2U/LnB1cmNoYXNlX2ludm9pY2VfaWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnQsXG4gICAgICApLFxuICAgICAgcHVyY2hhc2VfZXh0ZXJuYWxfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy5wdXJjaGFzZV9leHRlcm5hbF9pZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICBwdXJjaGFzZV90eXBlOiB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy5wdXJjaGFzZVxuICAgICAgICA/LnB1cmNoYXNlX3R5cGUgYXMgUHVyY2hhc2UsXG4gICAgICBwdXJjaGFzZV9zdW06IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLmludm9pY2U/LnB1cmNoYXNlX3N1bSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmZsb2F0LFxuICAgICAgKSxcbiAgICAgIHB1cmNoYXNlX2N1cnJlbmN5OiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnZvaWNlPy5wdXJjaGFzZV9jdXJyZW5jeSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICBwdXJjaGFzZV9za3U6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLmludm9pY2U/LnB1cmNoYXNlX3NrdSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICBwdXJjaGFzZV9kaWdpdGFsX2NvbnRlbnRfc2t1OiBudWxsLFxuICAgICAgcHVyY2hhc2VfZGVzY3JpcHRpb246IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLmludm9pY2U/LnB1cmNoYXNlX2Rlc2NyaXB0aW9uLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHZpcnR1YWxfY3VycmVuY3lfYW1vdW50OiBudWxsLCAvLyBUT0RPOiBhZGQgdmFsdWVcbiAgICAgIGRpZ2l0YWxfY29udGVudF9jYXJ0X2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnZvaWNlPy5kaWdpdGFsX2NvbnRlbnRfY2FydF9pZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludCxcbiAgICAgICksXG4gICAgICBkaWdpdGFsX2dvb2RfY2FydF9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8uZGlnaXRhbF9nb29kX2NhcnRfaWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnQsXG4gICAgICApLFxuICAgICAgY291cG9uX2NvZGU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB1c2VyU2Vzc2lvbk9wdGlvbnMuY291cG9uQ29kZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICB0aGVtZV92ZXJzaW9uOiB0aGlzLnVzZXJBZ2VudFNlcnZpY2UuaXNNb2JpbGVEZXZpY2VcbiAgICAgICAgPyBEZXZpY2UubW9iaWxlXG4gICAgICAgIDogRGV2aWNlLmRlc2t0b3AsXG4gICAgICBzdWJzY3JpcHRpb25fcGFja2FnZV9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy5zdWJzY3JpcHRpb25QYWNrYWdlSWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnQsXG4gICAgICApLFxuICAgICAgc3Vic2NyaXB0aW9uX3Byb2R1Y3RfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB1c2VyU2Vzc2lvbk9wdGlvbnMuc3Vic2NyaXB0aW9uUHJvZHVjdElkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50LFxuICAgICAgKSxcbiAgICAgIHN1YnNjcmlwdGlvbl9yZWN1cnJlbnRfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB1c2VyU2Vzc2lvbk9wdGlvbnMuc3Vic2NyaXB0aW9uUmVjdXJyZW50SWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnQsXG4gICAgICApLFxuICAgICAgdXNlcl9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LnJlcXVpc2l0ZXM/LmlkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHVzZXJfYWNjZXNzX3Rva2VuOiB0aGlzLnNldHRpbmdzU2VydmljZS50b2tlbixcbiAgICAgIHVzZXJfbmFtZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LnJlcXVpc2l0ZXM/LnYyLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHVzZXJfZW1haWw6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy51c2VyPy5lbWFpbD8udmFsdWUsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgdXNlcl9jb3VudHJ5OiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8udXNlcj8uY291bnRyeT8udmFsdWUsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgdXNlcl9pcDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LmlwLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHVzZXJfbW9iaWxlX29wZXJhdG9yX25hbWU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB1c2VyU2Vzc2lvbk9wdGlvbnMudXNlck1vYmlsZU9wZXJhdG9yTmFtZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICB1c2VyX29wZXJhdGlvbl9zeXN0ZW06IHRoaXMudXNlckFnZW50U2VydmljZS5wbGF0Zm9ybSxcbiAgICAgIHVzZXJfYnJvd3NlcjogdGhpcy51c2VyQWdlbnRTZXJ2aWNlLmJyb3dzZXJEZXNjcmlwdGlvbixcbiAgICAgIHVzZXJfYnJvd3Nlcl92ZXJzaW9uOiB0aGlzLnVzZXJBZ2VudFNlcnZpY2UuYnJvd3NlclZlcnNpb24sXG4gICAgICB1c2VyX2FnZW50OiB0aGlzLnVzZXJBZ2VudFNlcnZpY2UudXNlckFnZW50LFxuICAgICAgdXNlcl9sb2NhbGU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy51c2VyPy5sb2NhbCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICB1c2VyX3V0bTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LnV0bV9wYXJhbWV0ZXJzLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIHhzb2xsYV9wcm9kdWN0X3RhZzogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/Lnhzb2xsYV9wcm9kdWN0X3RhZyxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICBleHBlcmltZW50X2lkOiBudWxsLFxuICAgICAgaXNfdGVzdF9zZXNzaW9uOiAraXNEZXZNb2RlKCksXG4gICAgICBiYWJrYV92YWx1ZTogbnVsbCxcbiAgICAgIGV4dHJhX3ZhbHVlOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucz8uZXh0cmFWYWx1ZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICBpc19zdWJzY3JpcHRpb246IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLmlzU3Vic2NyaXB0aW9uKCksXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5ib29sLFxuICAgICAgKSxcbiAgICAgIGlzX2lmcmFtZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMud2luZG93LnBhcmVudCAhPT0gdGhpcy53aW5kb3csXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5ib29sLFxuICAgICAgKSxcbiAgICAgIHdlYjN3YWxsZXQ6IG51bGwsIC8vIFRPRE86IGFkZCB2YWx1ZVxuICAgICAgZGltZW5zaW9uXzE6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5kaW1lbnNpb24xLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIGRpbWVuc2lvbl8yOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucz8uZGltZW5zaW9uMixcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICBkaW1lbnNpb25fMzogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnM/LmRpbWVuc2lvbjMsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICApLFxuICAgICAgZGltZW5zaW9uXzQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5kaW1lbnNpb240LFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nLFxuICAgICAgKSxcbiAgICAgIGRpbWVuc2lvbl81OiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucz8uZGltZW5zaW9uNSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgICksXG4gICAgICBjbGllbnRfdmVyc2lvbjogJ0hlYWRsZXNzIENoZWNrb3V0JyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IG51bGxJbmRleCA9IDA7XG4gICAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKS5yZXBsYWNlKCdUJywgJyAnKS5yZXBsYWNlKCdaJywgJycpLnNwbGl0KCcuJylbXG4gICAgICBudWxsSW5kZXhcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUaW1lem9uZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBob3VyID0gNjA7XG4gICAgY29uc3QgbnVsbEhvdXIgPSAwO1xuICAgIGNvbnN0IGhvdXJPZmZzZXQgPSAtZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC8gaG91cjtcblxuICAgIGlmIChob3VyT2Zmc2V0ID09PSBudWxsSG91cikge1xuICAgICAgcmV0dXJuICcwJztcbiAgICB9XG5cbiAgICByZXR1cm4gaG91ck9mZnNldCA+IG51bGxIb3VyID8gYCske2hvdXJPZmZzZXR9YCA6IGhvdXJPZmZzZXQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgIHZhbHVlOiBib29sZWFuIHwgbnVtYmVyIHwgbnVtYmVyW10gfCBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgdHlwZTogRXZlbnRQYXJhbWV0ZXJUeXBlLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICk6IGFueSB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUgPyAxIDogMDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZzpcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICBjYXNlIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnQ6XG4gICAgICAgIHZhbHVlID0gcGFyc2VJbnQoU3RyaW5nKHZhbHVlKSwgMTApO1xuICAgICAgICByZXR1cm4gaXNOYU4odmFsdWUpID8gMCA6IHZhbHVlO1xuICAgICAgY2FzZSBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nQXJyYXk6XG4gICAgICBjYXNlIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnRBcnJheTpcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXTtcbiAgICAgIGNhc2UgRXZlbnRQYXJhbWV0ZXJUeXBlLmZsb2F0OlxuICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgIHJldHVybiBpc05hTih2YWx1ZSkgPyAwIDogdmFsdWU7XG4gICAgICBjYXNlIEV2ZW50UGFyYW1ldGVyVHlwZS5ib29sOlxuICAgICAgICByZXR1cm4gdmFsdWUgPyAxIDogMDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRWYWx1ZUZvclBvc3RNZXNzYWdlKFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXJbXSB8IG51bGwsXG4gICk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzU3Vic2NyaXB0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy5wdXJjaGFzZT8ucHVyY2hhc2VfdHlwZSA9PT1cbiAgICAgICdzdWJzY3JpcHRpb24nXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF5bWVudE1ldGhvZElkKGluc3RhbmNlSWQ6IG51bWJlciB8IG51bGwpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8uc2V0dGluZ3M/LnBheW1lbnRfc3lzdGVtID8/XG4gICAgICBpbnN0YW5jZUlkXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1iZWhhdmlvdXItZXZlbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy9ldmVudC1idWlsZGVyL3VzZXItYmVoYXZpb3VyLWV2ZW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHVyY2hhc2UgfSBmcm9tICcuL3B1cmNoYXNlLnR5cGUnO1xuaW1wb3J0IHsgSW52b2ljZSB9IGZyb20gJy4vaW52b2ljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC10eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckJlaGF2aW91ckV2ZW50IGV4dGVuZHMgSW52b2ljZSB7XG4gIGFjdGlvbjogc3RyaW5nO1xuICB0eXBlOiBrZXlvZiB0eXBlb2YgdXNlckJlaGF2aW91ckV2ZW50VHlwZXM7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXJbXSB8IG51bGw7XG4gIHN0YXRlOiBzdHJpbmcgfCBudWxsO1xuICBkYXRlOiBzdHJpbmc7XG4gIG1pbGxpc2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgdGltZXpvbmU6IHN0cmluZztcbiAgc2Vzc2lvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgcmVmZXJyZXJfdXJsOiBzdHJpbmcgfCBudWxsO1xuICBwcm9qZWN0X2lkOiBudW1iZXIgfCBudWxsO1xuICBwYXltZW50X2NvdW50cnk6IHN0cmluZyB8IG51bGw7XG4gIGluc3RhbmNlX2lkOiBudW1iZXIgfCBudWxsO1xuICBpc19wYXlfd2l0aF9zYXZlZF9tZXRob2Q6IG51bWJlciB8IG51bGw7XG4gIHB1cmNoYXNlX2V4dGVybmFsX2lkOiBzdHJpbmcgfCBudWxsO1xuICBwdXJjaGFzZV90eXBlOiBQdXJjaGFzZTtcbiAgdmlydHVhbF9jdXJyZW5jeV9hbW91bnQ6IG51bWJlciB8IG51bGw7XG4gIGNvdXBvbl9jb2RlOiBzdHJpbmcgfCBudWxsO1xuICB0aGVtZV92ZXJzaW9uOiBzdHJpbmcgfCBudWxsO1xuICBzdWJzY3JpcHRpb25fcGFja2FnZV9pZDogbnVtYmVyIHwgbnVsbDtcbiAgc3Vic2NyaXB0aW9uX3Byb2R1Y3RfaWQ6IG51bWJlciB8IG51bGw7XG4gIHN1YnNjcmlwdGlvbl9yZWN1cnJlbnRfaWQ6IG51bWJlciB8IG51bGw7XG4gIHVzZXJfaWQ6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJfYWNjZXNzX3Rva2VuOiBzdHJpbmcgfCBudWxsO1xuICB1c2VyX25hbWU6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJfZW1haWw6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJfY291bnRyeTogc3RyaW5nIHwgbnVsbDtcbiAgdXNlcl9pcDogc3RyaW5nIHwgbnVsbDtcbiAgdXNlcl9tb2JpbGVfb3BlcmF0b3JfbmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgdXNlcl9vcGVyYXRpb25fc3lzdGVtOiBzdHJpbmcgfCBudWxsO1xuICB1c2VyX2Jyb3dzZXI6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJfYnJvd3Nlcl92ZXJzaW9uOiBzdHJpbmcgfCBudWxsO1xuICB1c2VyX2FnZW50OiBzdHJpbmcgfCBudWxsO1xuICB1c2VyX2xvY2FsZTogc3RyaW5nIHwgbnVsbDtcbiAgdXNlcl91dG06IHN0cmluZyB8IG51bGw7XG4gIHhzb2xsYV9wcm9kdWN0X3RhZzogc3RyaW5nIHwgbnVsbDtcbiAgZXhwZXJpbWVudF9pZDogc3RyaW5nIHwgbnVsbDtcbiAgaXNfdGVzdF9zZXNzaW9uOiBudW1iZXIgfCBudWxsO1xuICBleHRyYV92YWx1ZTogc3RyaW5nIHwgbnVsbDtcbiAgYmFia2FfdmFsdWU6IHN0cmluZyB8IG51bGw7XG4gIGlzX3N1YnNjcmlwdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgaXNfaWZyYW1lOiBudW1iZXIgfCBudWxsO1xuICB3ZWIzd2FsbGV0OiBzdHJpbmcgfCBudWxsO1xuICBkaW1lbnNpb25fMTogc3RyaW5nIHwgbnVsbDtcbiAgZGltZW5zaW9uXzI6IHN0cmluZyB8IG51bGw7XG4gIGRpbWVuc2lvbl8zOiBzdHJpbmcgfCBudWxsO1xuICBkaW1lbnNpb25fNDogc3RyaW5nIHwgbnVsbDtcbiAgZGltZW5zaW9uXzU6IHN0cmluZyB8IG51bGw7XG4gIGNsaWVudF92ZXJzaW9uOiAnSGVhZGxlc3MgQ2hlY2tvdXQnO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1iZWhhdmlvdXItZXZlbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy9ldmVudC1idWlsZGVyL3VzZXItYmVoYXZpb3VyLWV2ZW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHVyY2hhc2UgfSBmcm9tICcuL3B1cmNoYXNlLnR5cGUnO1xuaW1wb3J0IHsgSW52b2ljZSB9IGZyb20gJy4vaW52b2ljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC10eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckJlaGF2aW91ckV2ZW50IGV4dGVuZHMgSW52b2ljZSB7XG4gIGFjdGlvbjogc3RyaW5nO1xuICB0eXBlOiBrZXlvZiB0eXBlb2YgdXNlckJlaGF2aW91ckV2ZW50VHlwZXM7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXJbXSB8IG51bGw7XG4gIHN0YXRlOiBzdHJpbmcgfCBudWxsO1xuICBkYXRlOiBzdHJpbmc7XG4gIG1pbGxpc2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgdGltZXpvbmU6IHN0cmluZztcbiAgc2Vzc2lvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgcmVmZXJyZXJfdXJsOiBzdHJpbmcgfCBudWxsO1xuICBhbmNlc3Rvcl9vcmlnaW5zOiBzdHJpbmdbXSB8IG51bGw7XG4gIHByb2plY3RfaWQ6IG51bWJlciB8IG51bGw7XG4gIHBheW1lbnRfY291bnRyeTogc3RyaW5nIHwgbnVsbDtcbiAgaW5zdGFuY2VfaWQ6IG51bWJlciB8IG51bGw7XG4gIGlzX3BheV93aXRoX3NhdmVkX21ldGhvZDogbnVtYmVyIHwgbnVsbDtcbiAgcHVyY2hhc2VfZXh0ZXJuYWxfaWQ6IHN0cmluZyB8IG51bGw7XG4gIHB1cmNoYXNlX3R5cGU6IFB1cmNoYXNlO1xuICB2aXJ0dWFsX2N1cnJlbmN5X2Ftb3VudDogbnVtYmVyIHwgbnVsbDtcbiAgY291cG9uX2NvZGU6IHN0cmluZyB8IG51bGw7XG4gIHRoZW1lX3ZlcnNpb246IHN0cmluZyB8IG51bGw7XG4gIHN1YnNjcmlwdGlvbl9wYWNrYWdlX2lkOiBudW1iZXIgfCBudWxsO1xuICBzdWJzY3JpcHRpb25fcHJvZHVjdF9pZDogbnVtYmVyIHwgbnVsbDtcbiAgc3Vic2NyaXB0aW9uX3JlY3VycmVudF9pZDogbnVtYmVyIHwgbnVsbDtcbiAgdXNlcl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgdXNlcl9hY2Nlc3NfdG9rZW46IHN0cmluZyB8IG51bGw7XG4gIHVzZXJfbmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgdXNlcl9lbWFpbDogc3RyaW5nIHwgbnVsbDtcbiAgdXNlcl9jb3VudHJ5OiBzdHJpbmcgfCBudWxsO1xuICB1c2VyX2lwOiBzdHJpbmcgfCBudWxsO1xuICB1c2VyX21vYmlsZV9vcGVyYXRvcl9uYW1lOiBzdHJpbmcgfCBudWxsO1xuICB1c2VyX29wZXJhdGlvbl9zeXN0ZW06IHN0cmluZyB8IG51bGw7XG4gIHVzZXJfYnJvd3Nlcjogc3RyaW5nIHwgbnVsbDtcbiAgdXNlcl9icm93c2VyX3ZlcnNpb246IHN0cmluZyB8IG51bGw7XG4gIHVzZXJfYWdlbnQ6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJfbG9jYWxlOiBzdHJpbmcgfCBudWxsO1xuICB1c2VyX3V0bTogc3RyaW5nIHwgbnVsbDtcbiAgeHNvbGxhX3Byb2R1Y3RfdGFnOiBzdHJpbmcgfCBudWxsO1xuICBleHBlcmltZW50X2lkOiBzdHJpbmcgfCBudWxsO1xuICBpc190ZXN0X3Nlc3Npb246IG51bWJlciB8IG51bGw7XG4gIGV4dHJhX3ZhbHVlOiBzdHJpbmcgfCBudWxsO1xuICBiYWJrYV92YWx1ZTogc3RyaW5nIHwgbnVsbDtcbiAgaXNfc3Vic2NyaXB0aW9uOiBudW1iZXIgfCBudWxsO1xuICBpc19pZnJhbWU6IG51bWJlciB8IG51bGw7XG4gIHdlYjN3YWxsZXQ6IHN0cmluZyB8IG51bGw7XG4gIGRpbWVuc2lvbl8xOiBzdHJpbmcgfCBudWxsO1xuICBkaW1lbnNpb25fMjogc3RyaW5nIHwgbnVsbDtcbiAgZGltZW5zaW9uXzM6IHN0cmluZyB8IG51bGw7XG4gIGRpbWVuc2lvbl80OiBzdHJpbmcgfCBudWxsO1xuICBkaW1lbnNpb25fNTogc3RyaW5nIHwgbnVsbDtcbiAgY2xpZW50X3ZlcnNpb246ICdIZWFkbGVzcyBDaGVja291dCc7XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  // eslint-disable-next-line @typescript-eslint/naming-convention
2
- export const PAYMENT_CLIENT_CORE_VERSION = '0.5.1';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnRUFBZ0U7QUFDaEUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfQ0xJRU5UX0NPUkVfVkVSU0lPTiA9ICcwLjUuMSc7XG4iXX0=
2
+ export const PAYMENT_CLIENT_CORE_VERSION = '0.5.3';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnRUFBZ0U7QUFDaEUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfQ0xJRU5UX0NPUkVfVkVSU0lPTiA9ICcwLjUuMyc7XG4iXX0=
@@ -13,7 +13,7 @@ import { CommonModule } from '@angular/common';
13
13
  import { provideTranslateHttpLoader } from '@ngx-translate/http-loader';
14
14
 
15
15
  // eslint-disable-next-line @typescript-eslint/naming-convention
16
- const PAYMENT_CLIENT_CORE_VERSION = '0.5.1';
16
+ const PAYMENT_CLIENT_CORE_VERSION = '0.5.3';
17
17
 
18
18
  class TranslateHelper {
19
19
  static init(service) {
@@ -2575,6 +2575,7 @@ class EventBuilderService {
2575
2575
  timezone: this.getTimezone(options.date),
2576
2576
  session_id: this.settingsService.unsafeUtilsResponse?.user?.session_id ?? null,
2577
2577
  referrer_url: this.window?.document?.referrer,
2578
+ ancestor_origins: this.convertToEventParameterType(Array.from(this.window?.location?.ancestorOrigins ?? []), EventParameterType.stringArray),
2578
2579
  project_id: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.project?.id, EventParameterType.int),
2579
2580
  payment_country: this.convertToEventParameterType(options.invoice?.payment_country ??
2580
2581
  this.settingsService.unsafeUtilsResponse?.user?.country?.value, EventParameterType.string),
@@ -10139,7 +10140,11 @@ class GooglePayCheckoutPaymentService {
10139
10140
  const checkoutData = this.checkout.request.form.fields;
10140
10141
  const paymentDataRequest = JSON.parse(checkoutData.paymentDataRequest);
10141
10142
  const isReadyToPayRequest = JSON.parse(checkoutData.isReadyToPayRequest);
10142
- const result = { paymentDataRequest, isReadyToPayRequest };
10143
+ const result = {
10144
+ paymentDataRequest,
10145
+ isReadyToPayRequest,
10146
+ environment: checkoutData.environment,
10147
+ };
10143
10148
  if (checkoutData.amexCardNotification) {
10144
10149
  result.amexCardNotification = JSON.parse(checkoutData.amexCardNotification);
10145
10150
  }
@@ -10352,6 +10357,8 @@ class GooglePayService {
10352
10357
  this.analyticsEvent = new Subject();
10353
10358
  this.paymentInProgress = false;
10354
10359
  this.googlePaymentClient = null;
10360
+ this.googlePayClientEnvironment = null;
10361
+ this.serverEnvironment = null;
10355
10362
  this.paymentService = null;
10356
10363
  }
10357
10364
  get readyToPay$() {
@@ -10404,6 +10411,8 @@ class GooglePayService {
10404
10411
  this.loggerService.error(new TaggedError('No initialization data', [ErrorTags.GOOGLEPAY]));
10405
10412
  throw new AppError('Google Pay: no initialization data');
10406
10413
  }
10414
+ this.serverEnvironment = initData.environment ?? null;
10415
+ this.setupGooglePayClient();
10407
10416
  this.googlePaymentClient
10408
10417
  .isReadyToPay(initData.isReadyToPayRequest)
10409
10418
  .then((response) => {
@@ -10428,6 +10437,7 @@ class GooglePayService {
10428
10437
  });
10429
10438
  }
10430
10439
  async proceedCheckout() {
10440
+ this.setupGooglePayClient();
10431
10441
  if (!this.googlePaymentClient) {
10432
10442
  this.loggerService.error(new TaggedError('Google payment client is not initialized to proceed checkout', [ErrorTags.GOOGLEPAY]));
10433
10443
  throw new AppError(`Google Pay. proceedCheckout: no google payment client`);
@@ -10502,6 +10512,12 @@ class GooglePayService {
10502
10512
  buttonLocale: this.getLocaleForButton(configuration.locale),
10503
10513
  });
10504
10514
  }
10515
+ resolveGooglePayEnvironment() {
10516
+ if (this.serverEnvironment) {
10517
+ return this.serverEnvironment;
10518
+ }
10519
+ return this.initParams.isSandbox ? 'TEST' : 'PRODUCTION';
10520
+ }
10505
10521
  setupGooglePayClient() {
10506
10522
  if (!this.window.google) {
10507
10523
  this.loggerService.error(new TaggedError('Google Pay library is not available on window', [
@@ -10509,7 +10525,11 @@ class GooglePayService {
10509
10525
  ]));
10510
10526
  return;
10511
10527
  }
10512
- const environment = this.initParams.isSandbox ? 'TEST' : 'PRODUCTION';
10528
+ const environment = this.resolveGooglePayEnvironment();
10529
+ if (this.googlePaymentClient &&
10530
+ this.googlePayClientEnvironment === environment) {
10531
+ return;
10532
+ }
10513
10533
  const googlePaymentClientData = {
10514
10534
  environment,
10515
10535
  };
@@ -10521,6 +10541,7 @@ class GooglePayService {
10521
10541
  }
10522
10542
  this.googlePaymentClient =
10523
10543
  new this.window.google.payments.api.PaymentsClient(googlePaymentClientData);
10544
+ this.googlePayClientEnvironment = environment;
10524
10545
  }
10525
10546
  onLoadScript() {
10526
10547
  if (!this.window.google) {