diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..1521c8b --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +dist diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..5aa123b --- /dev/null +++ b/.eslintrc @@ -0,0 +1,23 @@ +{ + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:jest/recommended", + "plugin:prettier/recommended" + ], + "env": { + "node": true, + "es6": true + }, + "parserOptions": { + "project": "./tsconfig.json" + }, + "rules": { + "@typescript-eslint/no-use-before-define": [ + "error", + { + "functions": false + } + ] + } +} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..7d57a37 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,70 @@ +name: Build +on: [push, pull_request] + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + node-version: [12.x] + os: [ubuntu-latest] + + steps: + - id: setup-node + name: Setup Node + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Check out code repository source code + uses: actions/checkout@v2 + + - name: Install dependencies + run: yarn + + - name: Run build + run: yarn build + + # Publishing is done in a separate job to allow + # for all matrix builds to complete. + release: + needs: test + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/master' + strategy: + fail-fast: false + matrix: + node: [12] + + steps: + - name: Setup Node + uses: actions/setup-node@v1 + with: + node-version: 12.x + + - name: Check out repo + uses: actions/checkout@v2 + with: + fetch-depth: 2 + + # Fetch tags and describe the commit before the merge commit + # to see if it's a version publish + - name: Fetch tags + run: | + git fetch --tags + if git describe --exact-match --match "v*.*.*" HEAD^2 + then + echo "Found version commit tag. Publishing." + echo "::set-env name=publish::true" + else + echo "Version commit tag not found. Not publishing." + fi + - name: Publish + if: env.publish == 'true' + env: + NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} + run: | + echo "//registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN}" > .npmrc + yarn + npm publish diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4b6291c --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +node_modules/ +.j1-integration/ +.env +dist/ + +.eslintcache diff --git a/.huskyrc b/.huskyrc new file mode 100644 index 0000000..4d077c8 --- /dev/null +++ b/.huskyrc @@ -0,0 +1,5 @@ +{ + "hooks": { + "pre-commit": "lint-staged" + } +} diff --git a/.lintstagedrc b/.lintstagedrc new file mode 100644 index 0000000..dc74f71 --- /dev/null +++ b/.lintstagedrc @@ -0,0 +1,3 @@ +{ + "*.{js,jsx,ts,tsx,md,html,css}": "prettier --write" +} diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..1521c8b --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +dist diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..0d793d9 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "trailingComma": "all", + "proseWrap": "always", + "singleQuote": true +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d14b739 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to +[Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## 0.1.0 - 2020-05-18 + +### Added + +- Initial release. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a612ad9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/README.md b/README.md index a66dbc8..cc6cb89 100644 --- a/README.md +++ b/README.md @@ -1 +1,82 @@ -# graph-snipe-it \ No newline at end of file +# graph-snipe-it + +## Development Environment + +### Prerequisites + +You must have Node.JS installed to run this project. If you don't already have +it installed, you can can download the installer +[here](https://nodejs.org/en/download/). You can alternatively install Node.JS +using a version manager like [fnm](https://github.com/Schniz/fnm) or +[nvm](https://github.com/nvm-sh/nvm). + +### Setup + +#### Installing dependencies + +From the root of this project, run `npm install` to install dependencies. If you +have `yarn` installed, you can install dependencies by running `yarn`. + +#### Loading credentials + +Create a `.env` file at the root of this project and add environment variables +to match what is in `src/instanceConfigFields.json`. The `.env` file is ignored +by git, so you won't have to worry about accidentally pushing credentials. + +Given this example configuration: + +```json +{ + "apiToken": { + "type": "string", + "mask": true + } +} +``` + +You would provide a `.env` file like this: + +```bash +API_TOKEN= +``` + +The snake cased environment variables will automatically be converted and +applied to the camel cased configuration field. So for example, `CLIENT_ID` will +apply to the `clientId` config field, `CLIENT_SECRET` will apply to +`clientSecret`, and `MY_SUPER_SECRET_CONFIGURATION_VALUE` will apply to a +`mySuperSecretConfigurationValue` configuration field. + +## Running the integration + +To start collecting data, run `yarn start` from the root of the project. This +will load in your configuration and execute the steps stored in `src/steps`. + +## Project structure + +This is the expected project structure for running integrations. + +``` +src/ + /instanceConfigFields.json + /validateInvocation.ts + /getStepStartStates.ts + steps/ + exampleStep.ts + // add additional steps here +``` + +Each of the files listed above contribute to creating an +[integration configuration](https://github.com/JupiterOne/integration-sdk/blob/master/docs/development.md#the-integration-framework). + +Additional files can be placed under `src` and referenced from each of the +integration files. + +The template project hosted +[here](https://github.com/JupiterOne/integration-sdk/tree/master/template) +provides a simple example of how an integration can be setup. + +## Development Docs + +Please reference the `@jupiterone/integration-sdk` +[development documentation](https://github.com/JupiterOne/integration-sdk/blob/master/docs/development.md) +for more information on how to build integrations. diff --git a/docs/jupiterone.md b/docs/jupiterone.md new file mode 100644 index 0000000..60b2270 --- /dev/null +++ b/docs/jupiterone.md @@ -0,0 +1,40 @@ +# JupiterOne Managed Integration for Snipe-IT + +## Overview + +JupiterOne provides a managed integration for Snipe-IT. The integration connects +directly to [Snipe-IT REST API][1] to hardware and asset information. + +Configure the integration by providing an API Token with read-only permissions. +Obtain an API token from the bottom of the "Manage API Keys" page in your +Snipe-IT account. + +## Entities + +The following entity resources are ingested when the integration runs. + +| Snipe-IT Resources | \_type of the Entity | \_class of the Entity | +| ------------------ | -------------------- | --------------------- | +| Account | `snipeit_account` | `Account` | +| Service | `snipeit_service` | `Service` | +| Hardware | `hardware` | `Device` | +| Location | `location` | `Site` | + +## Relationships + +The following relationships are created: + +| From | Relationship | To | +| ----------------- | ------------ | ----------------- | +| `snipeit_account` | **PROVIDES** | `snipeit_service` | +| `snipeit_account` | **MANAGES** | `location` | +| `snipeit_account` | **MANAGES** | `hardware` | +| `location` | **HAS** | `hardware` | + +The following relationships are mapped: + +| From | Relationship | To | +| -------- | ------------- | ------------------ | +| `Person` | **HAS\|OWNS** | `snipeit_hardware` | + +[1]: https://snipe-it.readme.io/reference diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..c5ba829 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,12 @@ +module.exports = { + clearMocks: true, + setupFiles: ['./testSetup.ts'], + preset: 'ts-jest', + testMatch: ['**/__tests__/**/*test.(js|ts)'], + testPathIgnorePatterns: ['/dist/', '/node_modules/'], + globals: { + 'ts-jest': { + isolatedModules: true, + }, + }, +}; diff --git a/package.json b/package.json new file mode 100644 index 0000000..0cdaa9b --- /dev/null +++ b/package.json @@ -0,0 +1,54 @@ +{ + "name": "@jupiterone/graph-snipe-it", + "version": "0.1.0", + "description": "A graph conversion tool for https://snipeitapp.com/", + "license": "MPL-2.0", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "collect": "j1-integration collect", + "graph": "j1-integration visualize", + "start": "yarn collect; yarn graph", + "lint": "eslint . --cache --fix --ext .ts,.tsx", + "format": "prettier --write '**/*.{ts,js,json,css,md,yml}'", + "type-check": "tsc --noEmit", + "test": "jest --passWithNoTests", + "test:ci": "yarn lint && yarn type-check && yarn test", + "prebuild": "yarn test:ci", + "build": "tsc -p tsconfig.dist.json --declaration", + "prepack": "yarn build" + }, + "dependencies": { + "@jupiterone/integration-sdk": "^2.1.2", + "@lifeomic/attempt": "^3.0.0", + "base-64": "^0.1.0", + "node-fetch": "^2.6.0" + }, + "devDependencies": { + "@types/har-format": "^1.2.4", + "@types/jest": "^25.2.1", + "@types/node": "^13.11.1", + "@typescript-eslint/eslint-plugin": "^2.28.0", + "@typescript-eslint/parser": "^2.28.0", + "dotenv": "^8.2.0", + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.10.1", + "eslint-plugin-jest": "^23.8.2", + "eslint-plugin-prettier": "^3.1.3", + "husky": "^4.2.5", + "jest": "^25.3.0", + "jest-fetch-mock": "^3.0.3", + "lint-staged": "^10.1.3", + "prettier": "^2.0.4", + "ts-jest": "^25.3.1", + "ts-node": "^8.8.2", + "typescript": "^3.8.3", + "wait-for-expect": "^3.0.2" + } +} diff --git a/src/__tests__/validateInvocation.test.ts b/src/__tests__/validateInvocation.test.ts new file mode 100644 index 0000000..b4ad60b --- /dev/null +++ b/src/__tests__/validateInvocation.test.ts @@ -0,0 +1,50 @@ +import { createMockExecutionContext } from '@jupiterone/integration-sdk/testing'; + +import validateInvocation from '../validateInvocation'; + +import fetchMock from 'jest-fetch-mock'; + +beforeEach(() => { + fetchMock.doMock(); +}); + +test('rejects if apiToken is not present', async () => { + fetchMock.mockResponse('{}'); + + const context = createMockExecutionContext(); + context.instance.config['apiToken'] = undefined; + + await expect(validateInvocation(context)).rejects.toThrow( + /Provider authentication failed/, + ); +}); + +test('rejects if unable to hit provider apis', async () => { + fetchMock.mockResponse(() => + Promise.resolve({ + status: 403, + body: 'Unauthorized', + }), + ); + + const context = createMockExecutionContext(); + context.instance.config = { + apiToken: 'test', + }; + + await expect(validateInvocation(context)).rejects.toThrow( + /Provider authentication failed/, + ); +}); + +test('performs sample api call to ensure api can be hit', async () => { + fetchMock.mockResponse(JSON.stringify({ result: [] })); + + const context = createMockExecutionContext(); + context.instance.config = { + hostname: 'test', + apiToken: 'test', + }; + + await expect(validateInvocation(context)).resolves.toBe(undefined); +}); diff --git a/src/collector/ServicesClient.ts b/src/collector/ServicesClient.ts new file mode 100644 index 0000000..33af551 --- /dev/null +++ b/src/collector/ServicesClient.ts @@ -0,0 +1,116 @@ +/* eslint-disable @typescript-eslint/camelcase */ +import { retry } from '@lifeomic/attempt'; +import nodeFetch, { Request } from 'node-fetch'; + +import { retryableRequestError, fatalRequestError } from './error'; +import { PaginatedResponse } from './types'; +import { URLSearchParams } from 'url'; + +export interface ServicesClientInput { + hostname: string; + apiToken: string; +} + +/** + * Services Api + * https://snipe-it.readme.io/reference + */ +export class ServicesClient { + readonly hostname: string; + readonly apiToken: string; + + constructor(config: ServicesClientInput) { + this.hostname = config.hostname.toLowerCase().replace(/^https?:\/\//, ''); + this.apiToken = config.apiToken; + } + + test(): Promise { + return this.fetch('hardware', { limit: '1' }); + } + + listHardware(): Promise { + return this.iterateAll('hardware'); + } + + listLocations(): Promise { + return this.iterateAll('locations'); + } + + async iterateAll(url: string): Promise { + const data = []; + const limit = 500; + let offset = 0; + let total = 0; + do { + const response: PaginatedResponse = await this.fetch(url, { + offset: offset.toString(), + }); + if (!response.rows) { + break; + } + total = response.total; + offset += limit; + data.push(...response.rows); + } while (offset < total); + return (data as unknown) as T; + } + + fetch( + url: string, + queryParams: { [param: string]: string | string[] } = {}, + request?: Omit, + ): Promise { + return retry( + async () => { + const qs = new URLSearchParams(queryParams).toString(); + const response = await nodeFetch( + `https://${this.hostname}/api/v1/${url}${qs ? '?' + qs : ''}`, + { + ...request, + headers: { + Authorization: `Bearer ${this.apiToken}`, + ...request?.headers, + }, + }, + ); + + /** + * We are working with a json api, so just return the parsed data. + */ + if (response.ok) { + return response.json() as T; + } + + if (isRetryableRequest(response)) { + throw retryableRequestError(response); + } else { + throw fatalRequestError(response); + } + }, + { + maxAttempts: 10, + delay: 200, + factor: 2, + jitter: true, + handleError: (err, context) => { + if (!err.retryable) { + // can't retry this? just abort + context.abort(); + } + }, + }, + ); + } +} + +/** + * Function for determining if a request is retryable + * based on the returned status. + */ +function isRetryableRequest({ status }: Response): boolean { + return ( + // 5xx error from provider (their fault, might be retryable) + // 429 === too many requests, we got rate limited so safe to try again + status >= 500 || status === 429 + ); +} diff --git a/src/collector/error.ts b/src/collector/error.ts new file mode 100644 index 0000000..3654801 --- /dev/null +++ b/src/collector/error.ts @@ -0,0 +1,17 @@ +import { Response } from 'node-fetch'; + +export class RetryableError extends Error { + retryable = true; +} + +export function retryableRequestError(response: Response): RetryableError { + return new RetryableError( + `Encountered retryable response from provider (status=${response.status})`, + ); +} + +export function fatalRequestError(response: Response): Error { + return new Error( + `Encountered unexpected response from provider (status="${response.status}")`, + ); +} diff --git a/src/collector/index.ts b/src/collector/index.ts new file mode 100644 index 0000000..a04f853 --- /dev/null +++ b/src/collector/index.ts @@ -0,0 +1,22 @@ +import { IntegrationInstance } from '@jupiterone/integration-sdk'; +import { ServicesClient, ServicesClientInput } from './ServicesClient'; + +export * from './types'; + +/** + * Creates a ServicesClient from an integration instance using it's + * api key. + */ +export function createServicesClient( + instance: IntegrationInstance, +): ServicesClient { + const { hostname, apiToken } = instance.config as ServicesClientInput; + + if (!hostname || !apiToken) { + throw new Error( + 'Required configuration item "hostname" or "apiToken" is missing on the integration instance config', + ); + } + + return new ServicesClient({ hostname, apiToken }); +} diff --git a/src/collector/types.ts b/src/collector/types.ts new file mode 100644 index 0000000..c5ae233 --- /dev/null +++ b/src/collector/types.ts @@ -0,0 +1,11 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +export interface PaginationInput { + limit: string; + offset: string; +} + +export interface PaginatedResponse { + total: number; + rows: any[]; +} diff --git a/src/converter/entities.ts b/src/converter/entities.ts new file mode 100644 index 0000000..f06fec0 --- /dev/null +++ b/src/converter/entities.ts @@ -0,0 +1,86 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { + createIntegrationEntity, + getTime, + convertProperties, + Entity, +} from '@jupiterone/integration-sdk'; + +export const getAccountEntity = (instance: any): Entity => ({ + _key: `snipe-it:account:${instance.id}`, + _type: 'snipeit_account', + _class: ['Account'], + name: instance.name, + displayName: instance.name, + description: instance.description, +}); + +export const getServiceEntity = (instance: any): Entity => ({ + _key: `snipe-it:service:${instance.id}:itam`, + _type: 'snipeit_service', + _class: ['Service'], + name: 'Snipe-IT ITAM', + displayName: 'Snipe-IT ITAM', + description: 'IT Asset Management (ITAM)', + category: 'infrastructure', + function: 'ITAM', +}); + +export const convertHardware = ( + data: any, +): ReturnType => + createIntegrationEntity({ + entityData: { + source: data, + assign: { + ...convertProperties(data), + _key: `hardware:${data.id}`, + _type: 'hardware', + _class: ['Device'], + id: `hardware:${data.id}`, + assetId: data.id, + displayName: data.name, + activatedOn: getTime(data.activated_on), + username: data.assigned_to?.user_name, + assetTag: data.asset_tag, + category: data.category?.name, + manufacturer: data.manufacturer?.name, + make: data.manufacturer?.name, + model: data.model?.name, + serial: data.serial, + supplier: data.supplier?.name, + EOL: !!data.eol, + status: + data.status_label?.status_meta === 'deployable' + ? 'ready' + : data.status_label?.name?.match(/broken/i) + ? 'defective' + : data.status_label?.status_meta, + notes: data.notes ? [data.notes] : undefined, + location: data.location?.name, + locationId: data.location?.id, + createdOn: getTime(data.created_at?.datetime), + updatedOn: getTime(data.updated_at?.datetime), + }, + }, + }); + +export const convertLocation = ( + data: any, +): ReturnType => + createIntegrationEntity({ + entityData: { + source: data, + assign: { + ...convertProperties(data), + _key: `location:${data.id}`, + _type: 'location', + _class: ['Site'], + id: `location:${data.id}`, + locationId: data.id, + displayName: data.name, + createdOn: getTime(data.created_at?.datetime), + updatedOn: getTime(data.updated_at?.datetime), + }, + }, + }); diff --git a/src/converter/index.ts b/src/converter/index.ts new file mode 100644 index 0000000..697510e --- /dev/null +++ b/src/converter/index.ts @@ -0,0 +1 @@ +export * from './entities'; diff --git a/src/global.d.ts b/src/global.d.ts new file mode 100644 index 0000000..45cfd04 --- /dev/null +++ b/src/global.d.ts @@ -0,0 +1,11 @@ +import { + Request as NodeFetchRequest, + Response as NodeFetchResponse, + RequestInit as NodeFetchRequestInit, +} from 'node-fetch'; + +declare global { + export type Request = NodeFetchRequest; + export type Response = NodeFetchResponse; + export type RequestInit = NodeFetchRequestInit; +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..1f4e342 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,13 @@ +import { IntegrationInvocationConfig } from '@jupiterone/integration-sdk'; + +import instanceConfigFields from './instanceConfigFields'; +import validateInvocation from './validateInvocation'; + +import fetchAccount from './steps/fetch-account'; +import fetchHardware from './steps/fetch-hardware'; + +export const invocationConfig: IntegrationInvocationConfig = { + instanceConfigFields, + validateInvocation, + integrationSteps: [fetchAccount, fetchHardware], +}; diff --git a/src/instanceConfigFields.ts b/src/instanceConfigFields.ts new file mode 100644 index 0000000..9aed753 --- /dev/null +++ b/src/instanceConfigFields.ts @@ -0,0 +1,13 @@ +import { IntegrationInstanceConfigFieldMap } from '@jupiterone/integration-sdk'; + +const instanceConfigFields: IntegrationInstanceConfigFieldMap = { + hostname: { + type: 'string', + }, + apiToken: { + type: 'string', + mask: true, + }, +}; + +export default instanceConfigFields; diff --git a/src/steps/fetch-account/index.ts b/src/steps/fetch-account/index.ts new file mode 100644 index 0000000..c82b1c7 --- /dev/null +++ b/src/steps/fetch-account/index.ts @@ -0,0 +1,52 @@ +import { + IntegrationStep, + IntegrationStepExecutionContext, + createIntegrationRelationship, +} from '@jupiterone/integration-sdk'; + +import { createServicesClient } from '../../collector'; +import { + convertLocation, + getAccountEntity, + getServiceEntity, +} from '../../converter'; + +const step: IntegrationStep = { + id: 'fetch-account', + name: 'Fetch Account related data', + types: ['snipeit_account', 'location'], + async executionHandler({ + instance, + jobState, + }: IntegrationStepExecutionContext) { + const client = createServicesClient(instance); + + const accountEntity = getAccountEntity(instance); + await jobState.addEntity(accountEntity); + + const serviceEntity = getServiceEntity(instance); + await jobState.addEntity(serviceEntity); + + const accountServiceRelationship = createIntegrationRelationship({ + from: accountEntity, + to: serviceEntity, + _class: 'PROVIDES', + }); + await jobState.addRelationship(accountServiceRelationship); + + const locations = await client.listLocations(); + const locationEntities = locations.map(convertLocation); + await jobState.addEntities(locationEntities); + + const relationships = locationEntities.map((locationEntity) => + createIntegrationRelationship({ + from: accountEntity, + to: locationEntity, + _class: 'MANAGES', + }), + ); + await jobState.addRelationships(relationships); + }, +}; + +export default step; diff --git a/src/steps/fetch-hardware/__tests__/__recordings__/snipeit_hardware_2358207906/recording.har b/src/steps/fetch-hardware/__tests__/__recordings__/snipeit_hardware_2358207906/recording.har new file mode 100644 index 0000000..c43778a --- /dev/null +++ b/src/steps/fetch-hardware/__tests__/__recordings__/snipeit_hardware_2358207906/recording.har @@ -0,0 +1,455 @@ +{ + "log": { + "_recordingName": "snipeit_hardware", + "creator": { + "comment": "persister:JupiterOneIntegationFSPersister", + "name": "Polly.JS", + "version": "4.0.4" + }, + "entries": [ + { + "_id": "1227fbddad7f33c65d12b1b4c20c1c94", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "authorization", + "value": "[REDACTED]" + }, + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + }, + { + "_fromType": "array", + "name": "user-agent", + "value": "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" + }, + { + "_fromType": "array", + "name": "accept-encoding", + "value": "gzip,deflate" + }, + { + "_fromType": "array", + "name": "connection", + "value": "close" + }, + { + "name": "host", + "value": "develop.snipeitapp.com" + } + ], + "headersSize": 1328, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "offset", + "value": "0" + } + ], + "url": "https://develop.snipeitapp.com/api/v1/hardware?offset=0" + }, + "response": { + "bodySize": 95790, + "content": { + "mimeType": "application/json", + "size": 95790, + "text": "[\"1f8b0800000000000003ecbd6b731cc99125fa5760b4b56b336613a570f778f6fd443da775bbd56dd3a3d5ae1e4b8b888c2021a1012e1e922899fefb8dc842a12a2b33c1229959c8026246ea1681642151957e4ef8e31cffe7abdbab5b77f1ea2b2034fff1eafaea6f37afbefac33f5f9d37e54b06fee3d5a5fb31befaead5abff78e56e6ee2ed9b5bf736ffd1a1cc5fb989d7e7e52f97effe78d5c4fc3fefffeac3dffbd6057f75f597b3efafafce80fe9fff7b7775fbffbefad7fde56f2eef7ef4f13a5f26380ace35e49fc9c128ca2f18aff2cb5dde5d5ce49f73eb6eef6ede5c383ff423fe2bbae6c3d9edd5d9cfe3fb8bab0faf1eaebffdf0be7cbf69bfecfc45dc7eebc778ebbadfcaf714dc6d7c7b75fda1ff23be71ef6fafdedfb437ee2eef920bb777d7e5c6f72f7cfdfefdfab56eeef2ff3a2f97ac7f85cbabdb78b3f9c3d57513af1f7ef9f5d7c2d58fefdde587cd1f2faef2dd9c5f5d6efe7c7ddbbcd9ffdaf98fee6df9a1ef6e6fdfdf7cf5c79ffcf1274dfc6bbcb87abfbab93c7f1fcf6fddfbf7abfcba7ffcc95dfe355d73f3c79fb46f7bf9b77fbffaf3fbb7eb4ff5fced656cdedc5e6d5ef76feefada5dde7e78f3e3d5e5edbb9bde97e3dfdf9f5f6f7f9b701df31bd7bc71b7e5fd68f2ffbe3d6fdf0ce4c819970cec19375f21ff0acbe79aaeae7f74b7f92fe42bfefb2e9e7deb3e9c81fd8fb372f559b9ecf5b7e50dbc7bdfccf0aa17eee6f68dbb6bce6fdf94977cf874e2df87be9cdfabb8b987f557dedf5d8777ee26762e6b5f34bc8be12f57770f57e6372986f297db6f9c5ff65e215cdd3c5c7c7f4dfedadde56d7926f8fdd7f20b76be781dffef5dbcb9bde97cf12ec7e19be02e77eee1f6fa2ee697b8bbb9bdfaf14d3a8f17cd4d791bff2bbf0bf95fed17f21bf5e6fe397973ed7e7c53dec5bfba8bbb875fabbdeacdfa8d2d8ff66ffe7779077ff6fd6f075f22bcbf7b230e7b896f5fffecec75d3e447e866f0a57e74e18d5b7fff8dfcc84b5ec7b7f1eff9d9ff3ffff607ceac63e935fbe59ffe89fffac357ec4ffffe4ff9afee57ffc71f7ff2ea5ff90edc5fddf94509fb3739927344b5f7d17bf7361fdcfd1f2fae2ee3e60ff9de6eafaef31f93bbb8899ba775f3ddf573b3fe53fe710f70ca1f70225f71717691a3f9f6ae897bd8facdf7df7dff73c86068cca3204b0faff6c3dd7586a43880ab522aab4021575200707b5ab88a5b1a390fd7573757e9f604b0f566fd691c175ff557dc7e25e16348582efb047cb55fa1fe4a7e145fcb6523f83add4bf7307afdd20f2fabf2cbeebdda2fafcfcf7e7d77f9f06ae5652aa6574c9f10d3b51d3b2273807a44ae47e4c3219cbe42f915971f43c472d92740f827bf6a3d2257387d3a3835154e2b9c4e05a7e22bae0f003ef16970fa69af5ae1b4c2e9d3c1a9ae705ae17442383de41cf9e970fa09af5ae1b4c2e993c1298cf6c344863db492ec2ea80af0f94b040c8c4f8c5450cc692466114d4c96fba6f13de0950f3fe2fcfb77f986cfd4cd10dc0a23051047039238f10ddceed6c48071caffd98baddfc526c7d6750ebd36b6a0c5baa78167b125992b7f7e11cfda5ff8f3407aff925fc6f30bf6ff5dc5f7efdbdae11abc5ffd6c8d7467fec3d9cf7f7a76136386f157fb70fe8a009550025f3d02eaeb9fb7a5d7df9fc77ccf977f3d8f7f2b3fb08bf61fb9f80b68e0fc7d79cbd411a9c09c217cc5f95782ef3d58df5e5dae41db3c946e39fffe402ad8bcaafc84579d980af6cac903a1b3a6a587d0e10f37f199d4f1ca0ab3a282b9c7a28fafbffdc5d783889d3f8ef337702854174cfed33f41aee1f83f5ead81ea37f7f133f0f2ed537a1f606ff01092793a8cc7318c474bda4a507c17e39df54625a799848633e20299cf78cc944e142c49abbd9d17e373f48c060d3f1ac6e79f7b42088f02784678f97184dffe06bfcb4fd3d93757777f8d97e7eec7fc08be1b037ab993765cdf5ccd8cf30fcde00203f73ff7cff9d3bc9425d0eebff0f53fdcb97b77f6bbf38b8bf2ac9c5f67d4ea7cebd53d946d7ed9f585f1c7f6b38ddb770e10accadfb97f2ecacf2cbfdaa9d1cc7ea3f4c96866207a7fb8eb44ef97d38c96b06a470926a7997b60ad3c7300cfb4dfdc251a1a231a8d00da0ad1a9d028e135c998985756306a9260c63796c9c63b5231f820c2bc44038c7a8faabb3dfbb5bb3ca3e311cda92513682419a3edc7a906b6e341bfbaba0effc8973e964e3c72794d281698500c84cf7fbfbbdb0d9f2f477a909256340bd4d78ce2b3330a3106f4d6a2216e3a384fc9365105c982d189916914330e72429132c83ba2a669f3d22eceab7d9cd743b380995410a53156e4c7645ba2df8379c17aedad52337afd3e27bebac2fc18cc9391a502f87198df76b87f9acfebefdc75935fe1ed18ca8f5ffdc520af2bc84f0ef203c153aa463bc133c1715edb15da8af18bc2783986f1525823a5c55d8cb74153528eb380dc32ca173063f3e3130581930d57d4ca6be6c378cc4feac059e497d19f71516b4683082fb944d172f547007e9bd7fde6eafaf6ddd97f5f9fe727ea720ce17786dc5d7e3e2e2f9dbfbb7efb6e3e887f789b770a46b71731ffe47c53dbd2d5d587b36fc3af2e3e5c5eee578cbe693fecdd72d1f6c27ec50885447dfa15235c0ac50cc56ea6989dd89d208f30d2ae38d492d1c24a466a8c654068499ab8ed28867c93632f9886496b29f30c4a6695884ce424c270818a6b3d1fcfac3519fbb31d256e5a4d86dc3eab956776780600349a36c99ba137b1952bfc3e5ee40fe5ea6f9773330d7498c6353f9eefd0ccebf2c7b3dfdeb4ef4487655edf5fb8cb33f7d7f549c6f2f68475e21cb388ae04d8c1b86d4bbd0f710bf6cb39460b58195e3966611c333a320ad6a045a3a9d396e02eeaa091258a8691d7f9bdb11619f26495d2dc3669de7255e9800f1c874a5995cb9aca0c528cc89f4b3e4c1c90cb7c0ec53c92ff549aa934d36989f462b734bf7762f7cb53191456afec2c43569566be806646855e401289b4c04ec94cc846a0690cc3a43c23e48e398ec440241f62a42612ce9aca6886fb95dd752a737186baa632c33c630d97524c5e329bb3f55d4b66cfab6456d29981d85da7339bd89d209d4103b86a7fe5ca334be299517f061004005c9a4e3e2340426c5032242732cf9064d6f1fc0ca13219ce1c581b672e998d3cab97c7e499936bbfdb7c66306a7aaa397a32531bf05f58b9ea854f3b65f5103e53403d475cd12c95abda81ffdc0e3cf231a037064dfeb6eae4130ac0351102b3c80d230a05e7b5655af340266997717a4e9c871c40437655df85db336e2bce8f6514d26a65e1009cff9ccad5c7fe4e45fce521fe50209579c56d204d81f8caaa95a08af88b42fc5135b602435618d0bb88ef54d0e0f3e342063ca36802f349003346343e5989b631b3762a04c3a16a67990dc4daa918c17bc521675e661ebc7fa2d1abaad53bcd76c55000e7d47c2780a7d1ea616d8a2fac8a84a3a270e04a299b4fa41d1187d48994f50de38e022391f30c177c60dc182542e3ad6ed3c759451c6aa02bdecea1ab2ae2181bbd223000a656915e724e712fe3d80f9f722f3be13341635a915ed95a455a564e312ecace68ab01da6ee656ac278837ce4aa66de94a378298519e33151525990c054873e714630f2a1e0fe74f2ba7c8f99fce09e201283f66e47154d38f471209d949245206f5120eab77e7174d7cebae9b6d4ef1bbf3cbab4b77f6dd65737d1efee2f6f38af5b7f7f28a9d8b875ad4a0cce9e7168b6851dfe716fb81fc501c988a714029b3e275146a69c9c5a83e1c5008232c755bd4dc8120290cd35a58465a955128cacce362725e279f6cdf5670ca16b5e93fabad42fcee6de759ada4b3dba056dc20c903466e1f294a2d8577b0c33bedeb6da9e687f2c7b35faccefe337fc2fb44b3f9e61ed5dc5f3a50c202e4fcf469661125acd21e1f08ddf6bcf810ba53083b48cb95359566164633a3127528ca426eac569d7e89135ee6ff324a4dc348e467da867c4ef1da7aca99508a346f6e037d07ce87e9f0e399d79e16cde453392aa16b6a53539bc5a4360371dc2e66dbc6f104a90d685ac92a585f1ae78c0bd6516b2370edb2fdc03909950b226ae6bc928c0c66ba8932ff2fa9383601b477b34edf02f4970896f1c1df5cfdb5b344b072ce6ed78497b775ddb49c8e74b6f7f6d38cb0577fbbc94fe7cded1a8a2bf154e23960326c2898efe24e304f91ec582d56a2d6d496463ca32a7625890bc379a78fe39236526bcda48a39d7712632a355600e28631b3a017656752120e3fb61534a6a3f8fe18c639d061eebe4a0cc99e821562923b6274fee9052fbf45f84f0036153ee651b365320bcd1b82255fbf48bead38fcbc7d118a188cbce9a8e9c3bf0e01a5bc47c19e0ad02e6b8b64c72e24e422343eabba74febb888434f6a716d43ac0359a3a98590461ee2aa5b07b29e2dd0af4d0f7be153466f77c2678a1a92112b59817e59403faedf46a1494a0e9d0a92f442126578f7c2847c92978e59a3390b9c43f20101d48cbabe3a79fbd9e6ba422a98c9f3b0cafa4e10f18f32826bb458a92aeb5b14e2d3a890dbead6e6a12beb43a77ce348975a8d67044932271cb146c4e81089374acddca6ee390e94d24d696f61dd97317ab247b2e620c4575df46e4feae797f93d68c6f0fef1bf51d17e81683f1044adbb9aebbade7c19da13f215af828b65a1fda8881b404b2350984ea59e4bab64f282916ffd998460866264417a6dadb2c2699815ee89a119984a2a7b81d154b81f1b7fcd782f943a40c75d0b39cf1ae887c2c7ddee86cf145bf0ac9ea9275b81feb3817e5c422d2522e7863a126a515c39b836cc195ef6e03964de27c3a2e50d47e58510338e9fb686afb03fb6b6317c859db1b50af47b3a076badd6585bb22f10e0d75eabbdb0d978adaec36682962c19b58259863d2bbe7f36be8f2aa7a16cfa4052b67390b72a056b63623c906614caa82728ce1a04e2022dda386347763dead9dbc7bb990ee315df472d32a42e39d8c7f17d3b81f5fbf398eff9d169cfd18b2bc62f0fe38742a7e4c0dbd09944452669263fed0af29f0df2a352652d392137d2ec627c32ce351834b3e49b7c862f4b1b1225d6489441c7a89b3063b1a635591db4dc2bde9058f7cf8d2d6d0020a30fd0909dd072a06ab977927ae5a100deb824e3548be85070bd6ad776d711fe058df0d3f84aed0c4f565ad3d9750a4985e464c3b84a8691682273464766756c64a322c934a32bc66216d19d5a3e8188393994f6e36cb39df8fd6906f277eebac9aff0768c67c6afae19c5c2328a636d82539aafa02614cb4a28c605c2866bcd95ec3405ac6ac8522a0badbd6544f91f2642ce2f300943656d329f778c9ffa66f305e44bfbea7e6b43f5a41818e2b7a4c501d6479fa20f3e36c05775f0335207af3bd1bd505edfcb756701cb174a0a945c91aca9c5c2528bf11dd7682c0ad21df1980826fa9473d1647462044d261c671a16ad07d3649a8a382febc8fee9a88c9896b0a9a9c5b83a582017000714b26a6af18c538b81e0591fd93e4cb8645a19584115122c2bb718d7081b85cae62b3a286fa436825ba6234746425866291aa6540cce09ab859bb75901031ac7fbae1a1ecf03e2b4720bb260ac3924b7786467f492ec87c66ef3e1dcff70a3f5ecff250dec5ea895b6c236d4a6682b6884997c23ead9ff0bcefea382628b0a410075e465d2786db846061635cb7053c69482663c51f4da2a474acf3a86aa180ea5a9ed42dbba2774b4898d089a9b0378a19efd9fe9d9ff7e1bf47ef03c2c539f6c37282ab5c259dac7f5ecffb9677f312a222e277fe25674bcae054f5c36ca32e31b60e48d6419d833e847c3856e8289adc9d89cfe6f28f693d47777ad91158a8af2a3fe6f99ce35cc70fa1fbfbce2fcf2707e307ceee24ef84c3190aac1ae4ced1f2f0be71f910f1347abb4ea4ea4128f601bcfac358691329e79ee0d8b32242dbc848cfd15e81707f4a8b995ebdd7b27bbd7a042fce221de28b1525537bc2c841fd50d4bb0822ba13afe6f48c142e31c339613a3d8940d02a66149926d9ae08457f356f1b12f70df58d2ee0adc6b157ff71ccf39d72427efd43e91d860e4266b097f623e183292d8c6d914a51d03b032d5dc7f61257c312a35cee02c51668cee0c8dc694a23296056f1d23eef2e95f2464dc86e8b50cdeb5bb80e71c1a85fd47b59cf9cba41954cba03152505a6a50071849d4daceb33df8afe7347bd1b31e7e7b889e2f9fdf9142561fd0a786f9fd83ffa8d658589060b4ec8cef48d224ac4ef9a4ef654679915300d496914dc4ad33c6e8192b3beb21cd7dd9e4dad9eac319872a0d186ed316b720a00340fe73b4c64fe1035ae5c6a72a37be9f15ddbf973217b413c313cc8a4a892b55e7829696548cca8d9108090c749468e86c50de6b963286317218584632c7b8e2d2eae05c268b99a74561c81fbdf56051b59130a6459302f361ef001fd26a3bfdcc738b7b23a3fd202a67b66d104d6156676105b5a9b0acdc6254766c25496e94ec341522194e466806e8726e617382e1926b98cf9fade5d2019819770ce4e0b103a68a7797673fc4f7d58bf451d3699ddfd903bceaaa17e97384f7a1b029c7f96dd84cd133d6b412752a6859f0fe88bed75a23b8d41defa000200404c578d03ce37bd4cc50722c248d311995217a5e2f52deaf716e7ceaa0368dc746fc9555c21ed0345efa4a8187f779a766747b11dde565fea9db19a5ab0f67df865f5d7cb8bcdc2f1a7dd37edabb15a3ed85434612b21d573ff1a2d1623ad103c1bbf1a883a93ad10acdcacec232b566f40535a347b6100b00ceb9ea785e53d324244e4cc91033cf9414829360ca6a88b221e169dee535c8f8fe81a8f4d2ca1a554eb5133dbad380900baa1e752f379b58ef20ee05cf668537a7899a0320aa49ddd3e3fc7e3a31be83986cf12987161bb656a40a52f2f95c101a108c04cfe984c8f0eb2448cb9333664e986f35c334b4daa0c81ea9ae3618579359a1012accbf5c985f6b867bc1d35a913e04cf143d01e22baa92e145a1bc1c950c1b93cff284a253332aa32b2972c79ae0423ecb6bc14c20c9b4468da9012966960c9713c948dac98f6717746a20df2ac9501cd013a820ff7c417e28784a22bc0d9e49f60a8059a9ba6f7859283f2e182e633ea44dc7fa531aad39d9c882959a917696f9d0682633fc53d41e25ccdef9dd973d96a0695b58552f3cda1b006ead3207e8852bca3f5f941f0a9e32deb30d9e298ef252acb0eea25c16c88f6b86355a29bafab0048afb62ec66504746311fe7bdd5c8b4370d4f46526c9a59315ef65daa3653c7d5e26d7c94535853b6ca578c7fd1183f103c1b6ff4e92cde24f295aa55f96581fca80a188d2853deddd6ab81e0256f9808a288805362ce606089bbe00d0ae5dacf77ce75f2edd0c5d03a79d475c467f818afa134d9e9e310bf25fc6f5dfec42f2f9dbfbb7e3baa0c7b9ae531d899f0695f6f3bdef343f9e3d92f5667ff993fe3fd019fcd37f7a67cee2f1dd08501727efa233e8bd085ad97daf78277b3d47e1dbc53908c526625662917d5199fcf9ff191a33264cb0571ab4ca7f7ebc019a579605cc89079a6acb58ff9b98e6422363638e1fa6d81edb8ea6f2f6eaf5d3acf6f9ff8cb00d76486518210d028e4a215348fac3d1eca7bdbada94f5f34da0aed7e7e7ef3fec27d18259aedfbf2cdaf664c248cd456d2a90c92de6d1e919a4cccd016187467dc06ce14a39cdaace4f1ba027ff8d3931dd04715b55036c983d6d4a9b527148d11a499544914070764563bc1b406d52039ad5d5f523b3574c2b064a455043ebdd26a69d0a9058141fe71e47c52815545cc5915b44313c5db7899426265e73a182f0d31c7b7e12291e442988e2e55e824354ac374232423231a960134b2d8806e8063d3a4342f62b633e5b09fa715ce2c63b1f0d4be374bc34b809c2e707188a9d9b642d1db3f753c57b34791f323375aed2ea71d3eef47d95ddc8db22f1f3e378a56629656e67001e28840dbcbeac715a24203d7dc76cbc7dc362108094c834c654188cf67531e99914103480e06dcec48bb6487b1a5212d2951bca3e5c791f6739cc59e126d774ac8aef9f17c4721fabafcf1ecb737edfbd1a91fbfbebf70b7787c7f5dbf786c79ab34acb5e3d3f1140344bd8223ee197f4ae81e175d82b0a29cb03ac6908de44ac58c9fc2269ea15b20339a344381be113ea5a6b1739715b8617cbf81501e82d7776fcff8f1ba7fa75256a062d170d056d7058c76d4eac27c7db781b029d5856dd84c518fe562c55f4475617cf3a9353c475cc7e090732b1588c42082631495678e1acd34b9a64994b8394a6d810fd5e35bc9ad7872bdfad260b3dd5e8b87981bd646d63306ce7badfad0b6a49dc099e0d00940c71c7d7e3ae454a3d24024cb95dc138d281794e14d642a422a4be638330099cb924d80da4bd1f4174e4c7de25cb665e0d2a09348580e70802c707b3fbf3f8ff9861fdd30377a7185cdc5c1e6b10c03511bbbb22f02361f59ce69f2719350778aaca9113933b7913522358c803873baf14c28e34c88ce19eadbf04d3f00d053866e7cb58f28ab3e8d226b7e1741db03daff275563adcb1b4eafd0ba1e45e845eec6cc7b324d773ef3ca15bc8c1e991a55d129055a18d29d82416cb431dee463ae286bd6c85ae604eafca1600c9e079076fe82010c4cbe16f31677b9997cad05831d0422aea5c2c9f76ed63aeb099d7bcb4d0d844d39f7ee84cd14e502122b3cde92b5273cf78e2ad3b4000504bcd3a0cae7e0a4a327a68d20463eff2f631c675ec79c2b50f1a6ee6f2e9b61b6a0479e77eba7f1fed85b8173a75c600d1a5007688f17b446a602e8ac4dfea1b3e74ef84cb0384c915a29f31200745c7365a5cc474fd1d15c59e3289f32811908c8c809c1acf58a65a8b55c15dc8b7dcd95e902e84d3ea5bc3ffb2d0a904320ca9150824043fc1e8e874054f487f40a88be7e7f7dcc51d82f07d12d7ffd3ce6e4753e1815f92db587ac7f5ccaf9b37d4c2a7e4e8e9f439193f173277226c04f106ac58fe7e2f084f839aebc128aab7ca2848e8e40a16a624c92c57c122da2d5c0aca6c852d026fa0826b5cfdf3100b467b1bd790c16e04fbf3c00cd64680fcadf3fa700fbb1bf53b174a958da0ba276d6701b44536029e04accb2c47669583aaac95264744ea8b193cc87460ba582623ea8a6d8021b6674c847d368746385f6c4fb666293432967807d1beb323af7f3188ee901ffa57dac6301a99042d843daff9f03a4338e4f8d6268950b9c68176b206ecbbd6ce376126762c98f6a35f3945dac71a517374a6710151d0047b4da0b25998a6819a5e09897ce33b4c6f906a44eaa5f8d9d07c00707b8ca837052035cc7827004e424f100b3b0658c70d5e3ef5c003a38c3b58d9b490054c9953ade52ef273cfe8eaaadac150a9486ce560c8d31a6681213982423cc8f88f186b31095904d92cea52354125af4e472a092509e022e2b7af60fc06425223f4072f5c9ce048f5c5f3174a918da8b9ea2bbd946cf1418caa57e21183a2ebc22450046774ea014d068ee38a3987cc6d0d830eb7562e0c149eebd93f6082584f54cc0fe53b0b156bec7d053f01b385e090194407d00829e5431b616124eb090703f92d0c3f0bbb81bbd5f5e06565abd14db013daa01533c873e0175413c7aab52c4b233081819e998894d6029254ae0b90da9bf3868a696dafe76f242e56d37c05410ef4f2418e4870c766deffd1b777d73f5680de1498ec08fdc66b5e69ab8dfb61f61ad49c136c226189e25a55662968da1cb43da71d9980032c270e8080f5c0c1478a9d39ab2dac1a832bd604adfcd06eb0bda9afebae5196a0edc3018aa3914b70aa8358701b0cda765ade0008fae5a7378f63587a1e8690f2a0fd13349dd96ec4c07d685d51cf4a8780bc0641cd580dd2568b2095245c7a2682c2361911985c8acb55cca262aa38e735e5d869dece9802890554ae9034eac15449f37881ecb26562bf932c668f5a88e0bac142425763d6275686c22c11a2e3d23eb88d958145d3aa0e61425977d8fd839cea192e150cadfaec433f51cda8350c509511c720c1db72438b28341c5cfd9b649f642e7be68ba0e9d090ea142db17d1f742335a3205b01aa404d5d171696bf337327626993f0b520a990f0540831226a7f8c2cbbe53eb1624cebf77cdd9f7d75703c059d6b44b2d8dc81fa0206dc76ba5fb55a587c9e9a717c16e7fd3ff2e97dc3efd7e46b242e48fe6b464b0e7ef5df304c849fb5b6a9f1172de5741f763e7a1cf30a102d6aee40b501da019af817223058ad617772be012c9722132726ae51879ae8be0c0b39853776e6dcc27d5fed17362e41c5a61de7efab622673f6bb706695d5299b0cf34766d45cb05a2e5fe6ff88096763a7f5658e9597a464b43cbd162a750567025f76a9da4633e4e36cc70dde47326cf897ae081358e836ca41721f5fd592743cb761738ec3f89adddceddc5193cb5366b795889c22809fa80c1fe05f4e4c7f0f2e10677c6a85206c91209ab77e7174d7cebae9bed4cd5efce2faf2eddd97797cdf579f88bdb1fac5a7f7b6fb26ae7e2fe741596cd18471caf9a09c117d1f55faf04efc570e9fa6f63788a4a4171ccb22fa1e98f66bcd62ac19246bb375fe5a251809e490d8a11c4c8ac30c8a27628b48d3ea5be57acd8c5361ac06f2914e69f25adcea906b52ba187f05b0df7a87e7d77d9a9b22ffdb4bb4db1bf8997577fbd9a539ba5ad396851ec223613dce6a763f5feb21e7aa785cca1b0b98b3b613385412bd776655f8049169a51932c809cef6b2e79e7d4eb74f932108bb251c5e40598973cb1fc5f85da47d2d097154c8798bd2568e5312c1f3daf8839d8d6573985386497cb1317082a56ce849583bb3eb70133c92602342bfe22caa9e3865865b33617b2f5b279c04aaf8d72586c5b820146297f1c2679c3a203d3280756a93817569695ea3d0feb7b1f7310152bfb58694948e207f4ef17d485aab039d30e805eec94cc6c1b3b531c3105da957e0146d66846bdaf20639925b4dd55ab1c1352033ac3663e5d12d79c59700d23a7d199845cabbe11eb54b0b96cbf9405c2a63424443b81514f982f102a8fe193020076052f022a476da610ace69677269d84f648989151586558992465de92628a2c0f3ee6643c620f28b7a175fefdbb7cbf67ea666846541899b37c8e06f2a1a8f5121b5e0f88fb6a8bcda6337c7aadd29613bebdf2e717f1acfd8517d08a321ab53a1dc1d2f9fbf2bea9dac09f3c3f1f889fd2fed9c6cf14f9b95576658eb79afa9fafbefef6175f977fb75fc977f0e6fe097b933f8ff337a520f1577771f7f0a6b597bd59bf07f9eaebf836fe3d3fa0ffe70ff9dcf7a77f82fcd7fff8e34fcabbb086abdfdc47d1c0cbb78fe97d98bdc18ffc98d7bff9dfaf32f23e15d08f1a6201180453165fed423d2411bc691a064169462158e64ce0cc739f789328234ddf116b3aa85fcf660dedc46a674d8eb7136b78da60a9400f1251093d7dc36a461f9747c0fee167ef4c1fdc5e44777979b5e3e3f2cdd587b36fc3af2e3e5c5eeecf1b7cd37ee4bbc306db0b87660d646b4a5e670d269b161baa08ee44f014d362882b3aa2c340659b83e62246bdc38a6d58e91075bc10283a9bc946335b66808932e53855d61a37893ba19d4baa2fa198946d88811e38187debaecf403ff924f052f9868aa328ca03e681b7cfc3efe3457e8baffe36ca352397d67c6261f944b9a981b0590bcf1ec26602f904195ac1f1946715e10fc827ec232239ae05ef168ea4971940a4605aa950bc218979c49c8cea86675cb61a5c7f7479d2c291616dc778c8a683ab5a381ac377ad354a7e403eb1a01e6545fbf9bc6efa4194d17e1b4453d4deb5c415cc323d5cd1feb3d17e5cd797d1c18255a683f7892c37c90666445265a9bac9e7f9fc0fef7dc08c66e0b1bf547dd2f3bcec2b951e16033fbdb26fa9782f0470a1cca9784a54a49fd185b7173e9bc5c05309fd5070bbd2b54fb02ca41fd72496b20d90eaace004ab1be01e18a920183945cc705ee6678233dabba807cc83a63cd89779807deb93877980a7770d5a2ad0e7b7c54a2e0f00fa45285b2ad0cf384e33e402bc0d9f098ef456cb151ecfbdb2e2fc21383f2e5cc47c0acc60cf7771de9354a47c621c52d955af89f98481259f3c624ed988fa2392931ee8a1ffa0b6521c77b9099a7aa0efe3bc1560b8adf59b0af6e5a60662a855e76c63688253bd06beb2b57eb32cb41f175d92cc9f3a59ddb5b48bed86a79c05962a3d1997e13e9063c27bafb593c0ad9cb75eaf180c3933b5a25b5b8ff563f5fa62ab4c8708d6b769deb72e7fe89797cedf5dbf1ddde3f4c8e515e91786f4f79af5fddf706df3b1099f490445d2d673fdd2907e5c322a74c65c43d439d85b090d26971fe2849191158a79079a45135463a5554ef40df427457ac97008e95befda8af4e393378693e0136f7c9ac589af62fc6ca6cf4318bf0d9c4966f9a55ad95aa35f16c68feb5b8dc1fc0caa8e838a095e8203c314279f0ff31c99111458b2c278970085ebbb024c5ca3c79ec9ee5d6c8b8c8815e2c79ab11691d4096e66ad903f5fb5be17481bb1f83a90a638d6a3c155eb7855217f39903faad3d54a7069c0764ff551e9a464867c43969157967905894154ca436c1ce2bc905feb379fa7df3248d61cd296dd3e0fbf3f8ff99e1f3dd68f5e5c417e79207f94da0d2a6e57b682fcb2407e5ca32b38944a3d74866f32a23b6fc0b1064346f9901f1ea794644d8388c169c85f9ff760cffbd698e53cf25db83da6a3ec69697485b19c4b7940e5e6738ef5db47e8a7f1faf29dbb6ef24f7d3bb744973a12dd3fe7cff3b295a1de7fe1eb7fb873f7eeec77e71717aff614baeb6fbdea8a74ef2fec2b7401c19672e4892b74873c459f249f1888df724adbc6ef145493e1636566916f5585eee72b74edb84297b8046d8ceaac8994a421e70e82291091114060c668c3920687a6c164714e896eebfdc387f69417ef125ebd7f461b05399d10ea906567e3d4b104a2a949c5171afff482a7e81fb7c133c5de07a015d5c99f25e514c4c775ba6484154a50c7421828364672ce22c69c53240bccc8a099e05c9051e42c9f79a0bfa8ca0760be9c49f8d31b622e15e6019494561d30f9539d189e23c00f854d01f86dd84c31c86fc48a57805f16c08f4a73ad45b2b0e7eb66209960a3674e607138168e796315e3de69e5200ae4337706ccf03a952222af35a331b91619140033b5828f3bf5532b4687d38ccdd8fd158aaf7a4b3536dbdd37bdb4b372d9eb619a99eea57b54d51be5832177def6d57632f44fb79d18ac326f1163922a95c0959865a948ad527d76952a93c918bb19022005ddec450a4af9184ccc665e6424c9331b826129539c69124a63e664b7d6b5b4b75f71e37978bf23b5ba96f65d4b8b46cd1cb034ea13c5c847572d54c3d213372c1d5c70bc13bc53e8e350ae0456a25918d18ceaa1d190d182ba8676ca09e37d3e99d832654526138d23cf19058c2e69c16d985336b1d6430f9db55a2da7ac4433d67ad7caa88957723f45fa5437723f1bd21908e476dc6b1bc85f4e3a52534d6e96c739a3aa6cad2c57a4b0cb393c1177c632f0ce31723e30e315672124b4363ae5edcca67a3090dcdcdd7b701c2fb939b5d68c50ca587bc8506f5dbff38c9b34f7583f9460ec04d0040986b2b492c75b5e56b1fe902ecdb82c9b843660c1e85dac4f19e23140cc086f3067153c30e751320c9ed0a410b5987dda6a50b3d76e8aaa9abd51acd7648510076418d580e3d922fdfda2b521a5de367ca6e859209915d67efcb2907e549c2d24a245a53b1d0b6abc100e12338d528c446a98214c2c714ad10b6748cedcb1c8e1b36feabe71ca06550ff52340af84d6fc9086fc722b4915e1bfd022bb1f37f716d9a0a66b16e815cdd22ca808ffd9083faac5062cd326a07567b959b2ceba86248bda66884f8658692830b2920b0d1c7060bdfcc467f95edab919fede4d3b2bc4779513567314b6d66d5e36d6af4ff3fd00ba4f86d70134c1695e815de97a985f16d48f2ab22d68459cdbaed392525268ee59482930920198471158d304875a71a0d4cc7b984706fb69672930fe32fa33c0da151e1eaecdef292875c059fe136b364fe190fd70a33bede1f6f5b61de11fca1fcf7eb13afbcffc39eff78337dfdceb08df5f3a305f0bd8ae873bf16ef02214d9e5a60602b874837702788a0e01e895ae23484b6b078f2bb245d1717085b4cb36567a9e5c135934c933d236302b115988b271c2e6dca23173978e7ad3e30f5ba2a0b2cd7087006c3e074c4f3647f678aa3c73da3c3310ba1ba906878978464abd6ae7932bcd2c88666054116e416aa9bb9b3c4dd022a6e858502632f290df1ae1354b991b322141d02d96cdea0f4e43ea9ff2a4d2f1f4822757bc52c618c2033415d53cf68514b106026903f934958c0eac512b9a65d2b456b13ed757508db6a4a50690a8dad9c4edf21f6d78297c33895ae4678688791d38530229f168b4897dc8dfa2d60ff9636c7eb86df1e20c07701f25a0e5a485d0964c6b8437e2203bb46cbcb5c1544f8efbdbb7f47f7ef7f5f71f41fd6d15f1fbab8b0f19f7e6c37d4d089c1f905e2c68e1db4d79626ed64f4cc5fd39fc6487063cb68134c5281220aec4f17601fde14f4f06a6a3dd5f246b0d49de29d280000c326676f1a8199106e60d3a661b2d73a0a28db6efa73439982edc5469a9604a4a5a0d5c2d7ecaa722e8c97b2b01101e7398f3091174b4a92a8db05a10742a10e452543625a6223946281d33d10ae684d3402211977d97ebe91114069e817c1cfdcdd55f2b823e52ed2692a4acae08fab21174207aca19741b3d93eca33478cccdc34f88a0a39d429db33f69ba13e602634851304f9018b946e713286816b84e3c34c126d5c74fdc8788b39ffd2fe29c9f6570f9d9d5658ad7f132dc173b874abb16ade0023889761672f848da5b5fb721d523ee7d1c6e1e2e154e494861b83a6024f153e074c66a6ef87b796a56ef2fab8fc173f631581f92fbf19c0f48db789e646d0df2953ee22e812362fcbe41bf1e776e4663acd4b6a318354938a7a3614a358651e334b3a01213a9d13659de50ab303d36cc97d1d99e10eedeb51f9e5e47ba54a0079452a03ca07db700d7fe7190afa7e62f1d3bef69b037ba8dc944a4f9515b99e3498c9eeed4ac479d92c180d546cace30b7482e41233c6b78699ddae498b54d60ce7100d7b860da0fa70ba85b17b1f3ef5d73f6fdf5d570c541492d8dc81fa0a076e67fb8e28043d3752567c2a71f7cd8fea6ff5d2eb97dfa9107d006843dc0017f01bb135d538b0c3314197a0153e0721b3053c0a551b002f312e072d47a373386052351773a5d424bd1486f58631a970fa0c5595e43c39c30a1b131f1e8fbe29729f1b24ccf0fccb7b455faa73f692e102f3948a1f08059819d91c15f5d5d877fe44b1f83cc472eafa0b934d01c889a2238d946cd04a0a9b958d9590681978699e32eb2c4d14a2b3a93564dd28d91811871c8ff902931c3a566326a888abc93b15f9a9d16327148d7dad66c9e5e18be3cc8442c7b78675add3aeb506dc5ce794a9e437e98dbf099023bcb60d52c15cfa561e7a81b2a70424e80d4396f3a4de0b8494ca3cae069bccdf979cce0e9920d200477d8b7e09e0c3c5bad350e4d0414a926d2931b272d103ca14c77980312f405cda656e49c49e6dc8b9d829c3bb13381cc991bbb922f6126558fba8b22cfd8a9452b9ddc0a87a3963a48cba24b9c9142c17cf4548ce72045009eb03fe03f25720243313491ec2ecf5054e4ec23a721c50fda5bb0806e5045cc99aca37b31b3b18ebe8f992f474ce042afc44b98a0d2a3922842c90b6876103358ae9a7cae643e5993b3f51898d70d326743e4c98a4689be4be784893ad70362a8777767bfbebb5882186a79882940e68ff18044fd89b72157a89ca16d3e142cad72f0623ac1935662a62d5e4b43ca51bd93244b547cd03a5979481911856182f23f48a365a63d601a9973f826a06ae6ed9a23033d80943f8fe10c7445cafed95282d1ca9ec24eac0a9633d43087e22583e5365e269931d2b8c21751c41cd53681b0c2282945676ad34ad98074820599cf94144460b6689d3c9133657bbb1273a7e2832ed6ed469aa7777f5f1e5c820234fa10b85c8c297085cd59d2f1e184cc5d4ee7feae845de18b18351ad53319a554cee3da96eb0368a2733ce58324c3262646049a39528ef9c0794c42a6047d43f5294193facb5dd60fe2f56637d2d3f91e2e10320130f3d8c711f3131d0f8f5abdac7e87a7ed773810b26b17b9ebce3ab32fdcd60166a651fac5a993707c7729475446aa4eb33e58cce0e088c9467b465620733a04069e87d8a0e59af7d4495b52f8265e5efdf5eaecebfc0e5d9cfd2cdfecd9b91c406f291038c97c40238ea29d16e8a137b616cb66a092de5a2caf1f4b7c32f4de42e0cfe3cd5f6eafde8fc2b7da7b7766aca5a22650fa002dd22702f84c27de8bf6fd3897e3aad3670ce3fb4ff63383f181d8ddccdc6ceee5cbbb60a0cc917d6bffebf5b7e55f3d93c16bf7e39b02631ff516fc8f573ffbfeb7832f11dedfbd1187bdc4b7af7f76f6ba69f2837733f8523fbaf0c6adbfff467ee4251f8c15ffad382b3a965eb35ffee99ff8af3f7cc5fef4efff94ffea7eb5355dfcd7d391d9f876d67c94cf6ca6bb456ec185e55645c61d04468e2cb3a4329b696f445187717d1c3683e2eec6c7dcddf8d3177096c86765fd41fe980e28e12c6c8af731629bbb9c330faf2ca29cb3f648ec45d1babfbe89a249fc692c5fb5547a2c6fdc4a2b47a595bdaa168ece98e43c112dc8ee8c09372651681293bef8f4049bf2af428919610589a0a476bd79e6b948c5f645411be1393f5e81eba44885736de89025524fae3eae3432a361432f6ecabd6ce3660a1a3144c76ca6561a79621a195f372b01b42552d829b535ae541d1aa63ca9e2381c99f1185868003c61635db4c7e2113dac2f2c9358f7fac2ca237b3c92d91e8c5dbee570659119e717fbb2c23293f11035536c9b95fa98ae3f95449e984446e792141aa185d61dcf65ae1a5032162f0fb28c1a93988b115803924098c6d9b69f7b94768de8977c4b64be7e7f7dcc76cd497148315dd66dbf73c9d3ef9541666b930cc44c61909d9899a24dc2f531e59595429e9842c6d7d302496d94511d7313df98a854d22ce8569faf0533b2ec92421d92b386abd0d34ccd948714fbf1a116666b3f7ebc45b5a7c421a0b9e4421e50cfaa1cf2fc38e4deb27f685de03666a61006486e8fe9a65739e4693984c63dada590128502e836daad0aa198ba68e959493d98491e9953d637e040c470b4b13139bc00a6dd984c350f191a1c1358b604dbca212f9143eeb78c0fd9bcecc4cc047988b572a578e59097c221e336dea835588da2a31651d2373e1130af48328ac6e63c2472162dd7c2f824b0e9f9d2ce38acb52fb62cb1d98e99e89a870cae60b4f9edb407d4b2eab0d64b6095fb61adfd286aad701ea2688acc84801f7791796595276595c7dcce417225bad35a12b805329c25158191b396f99012135126af3c98188fd321c9ac62181f526fbdbe7b7bc66d65952156c99f3737755aeb65f3c840dc141ed9c6cd14d35a44fa98464195479e9847461de085254b20a853e052c61bf28537acf58c4811335137cc4525a235de36de1fb1c0b53f035fc2a14dd6552d700d16b84cfe4ced0105ae9a9cbc0452b92f79ed4751d9a7b113451308cd15a995a14a2a2f8554c6adf1816b32a84467755d9416ad6b8a65ac0f8c14cf8492f359e6bd12ae312415f4ed4ab7ad99efdedf9e7f7f11ff3e44255cf0b37ffbf6bffecbc0bf8f6423f96025076abeed0cbc3ca16c8476aebcb8988f44ac12f9233cc01e6501dece57f9c9789f9f8ca730947ac6bc712f1dd90f9b07c9959ccc870f68256b32f26278e3115dbbd1822bc13bba766fbd279b3c0b494496192332275364a88c80c0138964e6e18d75fa31e641745fc53a055b9663b1068016c45b33c965eb441ea38c871fbae3c692324f943058bd3bbf68e2dbcc5bafb679d0f9e5d5a53bfbeeb2b93e0f7f71aff6cc59d6df7ed5b566d9b9b86fcf82025479a24fdc9e65d88cee69929ffd182e73c73b313cc9dcb159e1115db62a8b3db13d0b8d0ae9810358036b77c19d4db48d89d0aeea8e8a51316af1523b2693d629c4fcd5d0df0c36158d89e1fcbf8cde9f5415ed68e90f2f6bbb0f306359d052b09a06cda85ce985cf46ed3559f9ac1c8c57aa2a579e2d81eca741e30a7ad40a38eabd6d3fcef1e0283041a57c56d699bb9c3a33cfad0c2a9001d99b3a9eaa7c0638bce7a9f8f11f7137daa9a44184064ce68f793a304f920e41271d72cd8f39141eeee375f9e3d96f6fdaf7a293fcbcbebf7037f7b9bfae9ff758de4ed49d78dab30857caf50e8d5ecc6e7668ac63768a4102a9f5cad6b4e7f9b2562fed7964970828294177bb3e3a68a51d27662094b4476be6a2172c6a6f097c23854db3d11667b41f8e9b55d8744a0acb63119721d4c61e50bedbded06faeae6fdfadb398ab5179cc2397d784676909cf7a877c2f704adf671b3813700709bd925565f96c99633fdf1955ea6bab90c874d7413b0f2a989cdf586705a39022b3361866b5925e47ee41f40cc3264c777a0ab14dba73af10abbcd149784881cafff771e2f84433fe472eafc4b144e218889c4dd2b18e9c290606b48615d64ad94b610e31aacfd78638086d3bdb0b5d8c32a5185888652db6295b5d1c3a269d550d29a3787fabcb64cc010c879effe24f819539facc212c80e50710476db4bc04fa18089fd2aadf86cf14f481a45750e7cd5e0c7d8c4bf3392a446b7527f3d089a3cfffcf8cc59c7960e4cca4444c1a4a3eb9cc207ca679b3b6623538ab5212ef93524d1e2df330642c095e09a412c8ba70d58b9f32e8b28d9f09084448bee2b36ce2aafcb144fe1815e10b90a557dfdd29198984569ca96835a34634cc79b4cc37a883311ac8c939dbf4438be8da969fa9ecd1670f0b36a7834bf702ab7c3167937cc893781b3193085c24ac6c1546be18c21855db0369a3b921d12d5891094dfe2ae351a74c1932530636c0c84bd1909614e74a385a810bec4f896c86e34154814b6febb0544ae101e9c6e74c761dbf4d5e87bb4e70b8ebfea67ac35defee76c3760241bf556aa566e9d0d7e1ae4510d7fe70971895f44b2981329d747c626c1383044fac119a67ba128ad9d42426305a6f38e62fb81989abe7b7f7a0ead255d232e09d6fad407140ae532b65cf3df3b95745eec7cf8641eee36702069186af445d2efc6c09643ff31995f64b545649b01d49a42165a149993a9413c511c6320fdc3029bd4ee0154aea99204fd869c1fde77f5329c6e3b91e9f4ae203420a386479d7274e063f89984574f29ddb8be82e2faf76529e6fae3e9c7d1b7e75f1e1f2723fe7f9a6fd9077339eed85434a7ed93e64279ef52c42c9bfeeeef4627633cf8f53792c0b302bb235e979b69cd54b7a4685fc99457262234d679331394ca6518e29e52d234e9c399e1ce3913469974c08b391568e4aea2d61bd5f5d41a7b4baf868f53a8e4691fc386dd5b9e4e79bed1423b381c0d9643b34d5f662e01257ed9a8f9aed3c4be6d8cf764615fcda96b1338d1d2524282d9d729c45e34dce760232abbd66023905ad398f7cbe6a593580f9c47c07add4604c658e97cc1cc7f27e416dd50aeb5e9717c31ca3227aa908480ae8cc94111880e812cbc794c488a463aec19c0f9b687514d11931eb44f21073b41395aaa61c43ccc1b9350778873df91697ca1a73ce21ef47cda652b58e9a29e6ca0ce04ad541e417c31ae30a7a12928ce5ddeebc479574522c9850c6cab861ce26c9824bae312a48cf67735ee1aa3f57b9d92959279187269101a535fc00eb959d8fe85757d7e11ff9d2c778e391cb2b732c9039862267b34772c289642156aa56aa5e0a73c851053db60a48def5ec4a3c78ab42c33080c9cc81c8bc8c9eb97cb655e0f2f9b6554ccec31c86c1be82ab546acbfe3b389e02f254faf2085609d0074c757ddaa296e3d3c6a377f9d0427fb8cfda46ff921593bd10dbac6685c9564c0ac16712bdd43efa223866bf8f2e4775f6445a0830a2b3d625bf07cef8989833c13292f9c1745c07062e9096c9476361b6a256e699a1f1f9e233c18fe7677c42e989252b81d776c84b4f4f8622a7dccb3672a618c1327ca56b5debd932c77e7632bee55e00e5e44441d7099fc068018959c51323e313f35a28e6b408c1470a4d13664b4f34c3a14592bfbebb38c3ba4872284111da587180c3d7c2b611570e992dff1888a172fadac6d0242e5f4aada0b6d45f0c898c8bee5183d41678678c57d860b50b8639c5891104c96c838ac908244372c2c6d97aea5c0d77074b8db7f6d407b58bc5a54d1f907ed475c4cf993806e2664d1c971376d52de815afc4f162886354f36e0c71a53574348b098df4893c73c13b465273e66212cce52f83266728ce27ffb003c987bb6dd771d7e46328f9b002501de2ef55cb56cf9b390622a74c316e2367929443e0ca56b5fb8b618ef145f6c21a65d0aa4ecae194f35c71cf8c4a89918d0d730988452d6dd0017c8a3319d3b70290de36b892729431763c9ecfd7e9500750ce180d1d50b7aabbb09e2f75ac052083bb4f7722e7cb0520d2cad5da55ae32c74b608ef1ddf1c0ad10a8a8c31ca89312d43e898e3312d2310bc6b04662631acebdc3d9569ae4a41b86a4b325e986aa39ef33872069389735e978d1ccb12e57f5226733040f5389ce313f6b2baa6b145f0c758caf8d178aab7c90e88cf2cae495e746b3483e338744c1bcb7f98f11126f94d392fc6c39073218920efe32fa33a8a2f301e640d4421fe22e5c4520cf9739ca4d0d444ec9d67722e7cb730e2069575845202f86391ed9dc9e6900b8806ed241de25992c8b602c239f42e9904ba6938b1e5368f2bf664b3a24c3a13d582518b1eec11aa00ec8e9a1865aae7ad1d4b176baea454e39746d23678aa443a0a8f5aa17441da3ca73030a4058d9f12b6984f7c168ce24c89c7438299917848c087dfe8fa768e7d30f5a86fb5b1aca0eacb6d3079539fad20e513622b743fd7507d68b648c818879982a81a9e48025d95075e9ee4b610c35aa3897208402c53b65aac6a7e4b817cc8ab23551e54031364a663936d2e98846abd91843331c72786bc7d1eb346e9f31a4305c9bbab3bdd2c746cdb11f3e6bc3924df84ca208942b358b297b658f25b2c7a8941c35712d759be26e677249349a50320e5e31024a2ce71c8a39db3893a4e57e464b7635bc71ba9d49af95aaa17c436732b707d0476d723c6fe218889c0715d4643624c6c08ad74ad58b618e512db936064b8fa3a3e60043a01d64aa2029189191cc276d98b00d159744d388f94c48725cd2c0f3df7a8452658efe48aee1648da9edf197ce1c4391534612b7913301739852b0aa32c017431ce3fa710089a05077bae38994881c1be6049a9c7334e577c1c4a04901a46ea4a3599963bf625b52eef6f93f5e8fe3543c12f307a40cd201cb0b3f7120f789dc471eee75678961fb82af1eeee787f2c7b35faccefe337fc8aff676186ebef9aabbc8f0fed2fe1643006c4fd027bec57011bbdbefd96ba843b98dde4954ec28576696e1ae6abfb808fedab75f54a33a76c8d867c980eaa43ede340e292466f2c3cf483bc50ce4c79380372eca2465fbf874096c0bc83fe487a4f9e1b6c5c3331ca03194651346717ed4f9874b31523ecb6cb6ef8b5a82e1d7eef20cf089a96cdb8df89fdf7dfdfdd9f7eff28734ca66dbe9baefaf2e3e64549fb184d666b27440cbfe733cb5e6c9866ecaf372b37e5ec6490d3aa4e69a1fcf77d6f2be2e7f3cfbed4dfb967418edf5fd85bb74767f5d9fce2cb758d96cb251e581006eab78db009e6054d948b9b2b354f186d9ec0f7f7a3a1c1fdfa12e1497866c270f51c27a678560147ceb6365981156b068721e22884b2f686e186f1f4deacd906c16d3c2f629a830beeb4e2248933007ecfc18db927e3c95e061f02d3bf09d327296e858bd3bbf68e25b77dd6cb1fc77e7975797eeecbbcbe6fa3cfcc5ed03fafadb7b88be73f1d0aa7550e6f4617d311ef103015d4a0c\",\"db809ea239a334ac6016ede2d2601dcc6863c25a49cacaeef22625bcd20a8089088a918c82b986138398f25b6f626345afa5bd85aef36f5d38fbfefa6aa8bad45aea2a6911414b35762c57fd15016526b095ae9e52577b7b33af3384c7199b13204b6fe280b57f0b9a8aca7f35bcbfbe7a8a0e857ed61d8aa1f8d94c854cb66203c9d0ca5601dfb32df1745b1460465b14c439f052f2dba5108c8d511403e3be3815924ccc93f34ca0c72862f4c6f53a14135208e0b06fcecf63d8f8e69c4293e268042228bf9d02e43c459d599c6e1fa18f870ecf4e3ef0e7fc515eb627dcfb2f7cfd0f77eede9dfdeefce2623f01587f6b2f01b8bf70a04351d6601df3f03f0f7b2da2a6533a1403a15b8ab2dbd09d80bd2cea95386249a7b2d7d33628c08c36284499cbd24276fa138e9027d09e599b3c236f88f9a629f4a58d8a8173a5e6cc80a0f8970ccc989418e04fdd9858207d815428b43aa09855e9abd2d7dcf4d50bdd722fdbd09daac13e4ff255f96b99fc35da98315a10376bf07be02f72416bc1138b4e2223131ae69c0346512190733c62af3133257f417fcae46151dbe9cc881d8dbf4818212c1cd053ffc421b179dae91fe5ae673c1ef6ccd96b20704bdd641bb853745eca02f879acea2b7b2d93bd1eb11cce999602613beb79ad69b8b199af30719e494b6b6694029640a9e8bcf64af7dcbfa6a42fde3fc39506543b2479bcf4eb841a5022bf23dc1eb2097e11ea98da7a9a71bc783f724aeb691b3953643f1a6125aa9dcbb3a58ffdd6d3a8ebb056844a5bd3194ae30665ce88386b420c8c30e9b29c97986ed04855bc2343cfce6532f2688d87f9509017fb54ae8f663c7c32b90f2ab06593d9b483684f31b5f0f2c6d0e621b3458ca1ad8d907b915c92a19d48fef2e962545caf7016a9674d8616c166bd6468d40a198dd6ca58d599a4485a06f4b16c98e78e91b585ce0099e52e7fc50005d9db153ce5309eee0f136d0ccaea30de20a119cdb93ec4d3727baef9fd79ccf7fc28a38d5e5cf3a0e5e5414351b3f1259b6c040f2cb72b59b7af3c5be6d8cf83468d9029a7c41644973830686e83764c06ed1935e498a7e8594a20ac0b216742694ee2500c861c66da29d4e339cc9c4c1e449c2b01e28011bc4f34d13f32713ccc59ec6441b71731ffdcab1d39e537571fcebe0dbfbaf87079b99ff77cd37eccbb49cff6c2a19c47b6ebe76ace33d9ecf890bbcd366a27202e8966d562554d799e2771eda73c76d4901908acd2666ffb8b126831360d139a6c7164d6cc88080c750c227185c1bb394b78c060687abc95159fd2bee2e3f57f14184987ecbaff9c01bc19ad6e6a0634a3347f688c7b27862690e683922b5197de3f5b22d9cb80ec23d6cc4290e4aab30a26210ad1a066e8338350e08279a92c5312a2f5a42d3571de29381c3ad795611aac63044339106901fa106f99aa637de614b21e46ebc5cf66180d271b2600e02ba92b85bc140a19b542289d1728b6079d4934a5a109c6b264936024b560b6b10dd304c26bf40d6fe69b44cb99881876287bfdfe7a63705433913d5f1b8ed6d803fc36b73fefa71989affe76939fb59bdb75f9687014ed91eb2b7d2c8c3eca4d0dc44e2940efc4ce04ed7bd0bacea2bd20fa18776ae68019774c2b47d8ee160b4ef910144b04c4a8d10d332606868d4f3265727166be4a569b82b4a2fea11404644d410652102b942171c038da22761957f6982ff9e845ce26f95847ce248b29c9ac2c55f67829ec31ea42a0ac4020213b8b29ad69909be8582344c3c826c5acf19cb948c165f89260e69b645eefa6dc0fc7b6845b96ebf1dac1efb91068a1251db222e69306bf9ec67e60f8161ffaec0f37597bed5fb4bc723fbed63e879bf89aa2be2509665a25539bed8be0985eb37ddcc399241752772b5cd458611a1198f43939a1c491791d63ce50ac031eacf77cbef962649c0682a0356fbede904cad70752b5c80c21ca6b5ac15aee79ba3949b1a889db54ff243ec4cd0639746afb036489e2d7fece7288f68f54153297375acd282d6c9296c18f765814b7e4b988f32307449942596ded37c4d766c0373dfb1a2288edb78842ab7dc678ff276a23a60caf853d496dbc1f4dfc78bfc315cfd6dc6ba5695593ea334e8fea646fd6f60aa3e8d04b3a23a73fc7c69ac97068dba06082da1cc14db5d1af32450a4463312c5b03a1ac13c06cd828da4a0494dce93e66dd4f0b17233af8d9a41cf4f8e42eb03761e8c17d096506eab29d0971a96edc74da9516fe3668a368db4b082dae47fb6dcb19f028d2af42103b94012d4993326256304af98713213080f9c39ad24b3c9f926104521e6e40e6e19df5f085552a01fe2fb336e2a770c7087e239976d9b67b584f6a2f96328764af9791b3b13f0079158c9dae57f31f431aad3c70ce5d64aded1e92b1e5c52ae61565b9ed9c313f34a2373002af0e480cfdb8019302c2fecd1ba1c1d6fc4f8640a68824b12eb0340f56aae5ecd4f6b4f3634dfbc13b813747fb8312b59c7079e2f79edaf80e6e35a7da1386636119d5503018b06a654ca340846a629fe6464993564a5f75c4839f3aa1c1832e92bfb3640d721b5fe7cb3019430fd7cf3d3396e56af99136cfcac57e5f44277b3e96d1dba93acca1176656d25b0974360e326012ae7521c3bab06a849c508cdb3200331a2289943151908cc4019790c7a4e810eb70cf7eb0f25064afd018f57bb3b19fa12889a4cbba364c2f985b16beb0043e5b1836a88bd182e73dcdb189e64df368799a44295c796c963a34e0590e9442b83ba33889784f51c5031251a951331ab98370d673172c3854f3ca459eb88b2bf3a6a3dc8fd61b3f3ad0e72f7ac0aa4b607cce2d5098667da815adfd4e0cab59db899c2288d7045b505f56cc9a3db82423e6a5360a5558650743440c92ba7858f4c5b1332758062267960ca36c6836c50473e27750886432e05c5a90365a58e8134481921b43d200daa2e05cf9a3c0622a7a41e3b9133c1ec34d734d3ec74258f2592c7a84b015a0556760c6e9413812c964dd3d1320a5133cb8b7c5407e71a1f5480dea6e9ed7cc437f1f2eaaf57675fe767e4e2ec67f94ecfcee5208d207092808638ae7befc3b6cd7cdfbbbc5d55e32ecf389d108da8bdf767c641b89c4466b63fc070730129c845fb669ccbd5fbcb4a23d3d2c840e46c0ccfef23678a1cc4d2ca561a79313432ea43208422ad6cd7ac199c46cd73fa11286946ca38e61b5dfe68b417994e7808472192f5ceb3a1e272bbbde978c6cd5fda94391e8de40f1451f20366e23ec7feffe864f2900aed3468fe9c3fcccbb6e570ff85afffe1ceddbbb3df9d5f5cec7764d6dfdaebc8dc5f38301687d06e3f3ff16ecc22c6e2ee57af0db9466f8377826e8c3576c567d93b509b318be0b25e3366dc1541904695ffd3192b08d2936db4618dd3392db20d31236560a28164b9d0c935f2586911e6281d088832277a1f9ca730e07d3c3643098a144c9e14cd3065f071161bb9c56ae436ed24762fc2ca10cf4e844d508513a4566a16116ae59c6572cea88381a6e2252a6c87729224c232c416bc0f8c620e15ab55c34c130c4f3e4ae03d15ea5c0994ecafbf7d30e539a5a5d1474ca1d07065d4011d9d8548526b356eb60c66207a369334932d8f560256edfc502dc63d4b32d92fc63d626960b8c82989ed6ce04c494ba1a5629813954c2648f97701604225138c335eab9ef5f47cf90b5703e1d0eadc546deb0c90892591d3d2031c423fc9887a8e45d29545e69487ee874dd9e4bc133653242542aedae1e74a232f824646ad0d20271f6415da8e38142535812bc112d79946487096cfb8c8d03b908d4d663d13768c9ce4d96ce33c1e8de48fb4384d1fd0d61931003d8e5768e590d3dec059942d540da65f0a87c0a8c1407e120c97163a7301188d048a0d0b228709952965a3b4603c099f246f8493e958652dd51f932947aa5fdf3d8cc9540ad91b30b34249610ee8a5d454e4d9d2c850dcace769367133058d685475bcec05d1c8a8cc1f38b7522a693bcbd490c828e52433de2323b0c40cf8c4c01a8f1ab88cbaa77199aba225868f55edd4fe296d753e622aa2941240a7b296b372c99c8a9721bbc29dd899442e49abf50ed8ca252f814b46a5f65610c2de5ace2602262f158bca0b46a802b3a43cc3a039091e481e332381fd9355e98d9493151c2f23399dd92e284a5494d3f3c8b133926a7d76b21363eb8ca817b79b4a024c96112993596c961e7f9d185b048ded4f8cc1b8ec5f7343c69a8ef3b46c5230da7b967cfe1d328511f38d4486dc066c44d0b29da43f1291f53c9436258223faa09d524a64551166e3c799ec899dd06a2e34238bf482662d75b99cce780c84502b5bdb33cf9644f673a151f53f70951fa8fcdf6e36e424220acb1aed14a3e4881925724aa41b152d573a1e291b6a7749f7ac94ca1c7ed9877b521664c7546e0a09921fb009a7b2c8736491f5a018f6c68ddd6d3b288676b28a1aaa15af2cf262586454fc4f8614582d3be3c6882108f2c802f79611d9c45c0389298dc2a355c234c712ff43fe8f1828a9959997cc8d3513e9938816a414560e79a11cb21e14eb054da9676d8366824c442bb1c2599cfc2b852c91424625f7c2e424442bea78584263bd49a09845ed1981b6cc059129049dd0dc196d9ade1e9ab98a59b6bf94f661a9e0292d733e621ea272269279e4e31c52e58fcf9c4b86a2a770c9367a26e98d909ea93752c964896432aaa5970a0512d7ddce8869321a7962149a26ffc3486632bf302414d28320688e267f148cf6437363f14abcdab7f4a904ace0625db13ef151b1dae43fd926ff7a54ad17b985c876227782c25a11f2635dd0f97c99acd7e41f95f21b494201171d83668e26274b31302855353251326f936146298a3eff15eb7a6b616674221b5a75d1fa24d5fecce0dcb3b15290396047cc23eba38fb76dba6645737a8c0df536776267023291d254579867cc25fb59d1b89c5f2a210984e9b4696420ed940a4ca746e7c30d48e64c70cc2607ceea00968e653106387cb82acb63ef0f5775f2b9e36a09dc68319747f3f1e9e4e1bdd9c98d5cf3e3f94e62f4bafcf1ecb737eddbd1c98b5edf5fb89b19dd5fd74f8b2c6fbd914e3c2b5a8a3ff350e0967bd906ee14436b39955da959043c352b5a0493ed674538ee2a00964b2dbbdd22cfa36a7813988cd4309216992785cc48cb938bc6721d8fd52d328c864e76afefde9e11d46ed1009719d292f30392a2edcd7febf2277f79e9fcddf5db51167be4f29a142d2d292aada281d0696be30fa133059748a295acc602cf964af692221c3716000dd668a24e81cd3636663cb22c2271464dc399b7de31a179661d611a7dbc0168c1b02707ddac033cde06b4134a8a2c492ee8805ed1a78cae3d55a3487692a194b9a384c6eaddf94513dfbaeb669b19fdeefcf2ead29d7d77d95c9f87bfb8fdf468fdedbdfc68e7e2a1d6112873fa49d2825a47bd40deb48e70aa856c42db994c0e6a8eb40862ebe548a3360728146a6594dd2536019674148999c608468190399e12b31a93714e3b1de058c456953d9fde39020584072c14f89c7adfc7fe4e4d9796962e959b1a88a2f5628187289aa087d4eea9a963dacf9655f6d3a551cf016da551c6f0ce649d0bbe11ca251644ce9188ca649de18a058f3624a929f1e38c69b7a402432da4120e70bcc9ba5322959c01eb9ceb1e5079535d826853a0f3cbfcfb376394f2f8dfa884b24c42e947d0fdb10ca69a7043c56105b32cdbac84b23c420131aafb51c2a0da1b49309c37ba21cf38ca9893142d98b306985464138f1e9c71fb7cb25be60ffeeaea2f67afcfaf076804a546ae1150089e8fd27a8846ca918ae1be5ea1381296e5e9b856fbd013d208ec14aede3fc622db0b5f67ea88336626965be0e2004fe845ccb4fdb87e46dcf9f5eacfef8f4e20fb2b5c9e19810cc44e2958efc4ce97130809b992953f5e0c7f8c4a7d904cce356c6710a0d14927889ed9d2b8218b82f926bafc5826611335940ccdcc1f345ceb2d87a8fb5a6fe58f0e7f482325e8032a5b4fba96a6f2c6ac89472f66d6f732617f04858215d54ad68b218e51618d206188ba96355c0ba192f34c68df30d246b0221a6506c83a14313a312b716099a48421a17499a404f9e4f5abe5110768290db666dea73037560964d629e45eec9456c83676a6301910dcae44dd8ef9620864544e432845d95ab64b208a0ce7dc19c6530865c57264de97853442f9d8041734f516d24c4e207c680f4d0902fef47b6896472028a10c4a1cb05879613df54a25b352492f8a3682163ed9924ccba976d55f0e95c851394b661930065076daea189d87641523b4391bf11698a546320e1138798c26eaf9db20fbddced68cbc9472752d63f57d6aca6e2134070832b779e94fe3f5e53b77dde457783b4623e3575702591e81dc374186e6047622e7cb8b59126a13fd25f1c7a888452a632c82da650f8dd619d500230832ffc30466a3cf8fa553400e3c5827f7\",\"d9633bf6f5c3dd7506d1383487259555a0902b2900b81d99c3ca29d07e846f545c5c3db16ae560ded861d3f3707d7573956ee71cee35602c3fa092f5e9735833a62137eb276588423e7ab70fda9287fb9d555f320fe52c425fb2164ef6426ea3395e87dc04398bd0726567a19caa2f5904e7ece94b408eea4b8cd1a52f223b05306b5434985cd91793a927c4c07c438959959cd5d204d7174e4ec53aebb6fbfef2a4cdece2fdc6b193c8578eca3b45e5270e2a803d69ebfd119ea9a9ca97f6ddf783a61cd576826682be3ba15d29acb9ca73e58dfd5c655441028468c162d7d1322ae98df08649d508466513b38f9a9826216483ae716e36dec0129723a3271f8ea9b13f31de105c6a8e078cfc2eac71529964ae0c64208cd6538f9b309aa26b425aadda45cb95495e04938cefaec4b2fd38e7209dba1782e25efb4c1d2925464247e622792683120149e9647a0af7093310643074986a2d5d6b0632261e4144a5963efc5b7963461fe4a1b47d2768a6901c0a51771ebf20de18dd56a9b591521bde19fd6d0c39032131c87f951142fe5550604e40b4778d242e7036dac80988eed76e5bbde1ddc531db25a7451b426ad4c21e50b85a84e6b0d2c75c69c740f0b482c387e099c231d22ab3a25976b254fa58227d8c2ad68d16c280c4ae050a78e5b9739939081859cf9943a79889d2e5d7921192dfa78f6d62f3bfbeffe10c68803d44d1c66b6dad448346e3c8cc2f67b8bfa9b504e377e1f60cc5a934dbb76cfaf3787131a362445832a00f586dbc90b5947f7f7f33de5d1ffd99b5b73ee53cf0408495cad636c2a6a0180eb812b39812d7e6fa2238a6d75c1f95b50392b54a49d511b69314a596d5301b9265641232af8d66a87988415ae5534f5e3211cbb4cdf5fe3ef08d3190385a69eb5458860bc8e9c90193c09fb8b172fbc8fcfe3ce6dff07282d4e4518619bbbf4a30d336e17bc1b569c2df07d71425302556ff3f7b6fd7243772a46bfe95325dec5dc022dce3c3fdec55cbe68ce6c8a4d1d8ca64da9dbb0844448b4754b1972dce58ebd79f086456652201904911096625a2d5a2355960152ab31c4ff8c7fb3ab5e9ad1d016659fe2ea93caf8d72e77c21c7e08c3342ea925463c4c217e5a548d53358f62a539a186fad96c548bb3032ffe97564be6531a7d7d4b9c2971be8ded7ef9b7c962e30f2b71f3ed7af4e65d5fadba7ffd93dfd5b1aa6854786f62f1ffcd5d8d2fe78e9d4ce5e2990f2571bdad9df8658f7b2f36b2e5c6b4a740ad7155222eb74a75a46b423602d6faf548eca130f60442c061549a5a1e46604a203c189b330b10f01fbc88627d6c36b124bce1dda6a08c8edea6edfdcb5d98a59a8cbdba7d5157dfe3b721a5ea0576bd97c233c2691536b09a7c8596352ac3c303a79936528ad65730ff0b868d9d8457d7d79964b061e74d9afe8c825fbf1bd0d22b3acfb4b3d098692f62467fa808c14b26ec9ce5d80439145a5d7df0dd9729dfbc6d5ae721de50c75a6edee7a5c5e5d263b7651d06febdc33811acd18282f63458b30d43b81098df0d9252101930b8cb19f6a2b4f43707fac3f851fe746d4502b83d20129421a96092d4864f832d7f97494c8f0dbc9754e2fc8bffdc7ed8005a89888afc874be6607e5d2b5df329476f8a96819ce2db43097f152273a4ff1b28a1646ca8e9a19e5c312e332c35914e35bc57541168e8a638638d9ac6c61052b81c6b2f05ea2884a670facb4b793718195808175dda99cf30eabeb4ee51bf20edb0818aae4a706af10537ee5b8c06df616376cdc6e49f0246a06139753d4acb03c85a83bfca8356aec811a8b5a7c2b95a9ae5323297e8f0653ec41508a50a5f859902adf4ccfd625dd4b2eacb9599aa1606679d0d1c31bde90fffd36d4506490e08abad8f7d54d3658dccca578764bdd2958d6284b59899d6e7afbddd062516f5f4ea80aac1bcbed7b48bd629422e8f22d20f54a90937da105f8286db6c14e56a6ac57942a3130b7fcfa8fe9a727b5dd0af96feca26cc30ad41a9c597f41e34dac893f838ccfdf641b4a5eb38635135e952fa7f05aa386258dbd510dabb53dee023093b6c7a232bf24a628d1f1a84f1f1359f6498adcabdaf690490499b3d021398ad9796f27d2caf5f21139dff91b845f6fa64fbf510d8ba4c66177f80dfcc0be1366461d7b1ffff6eef9d4b1ffa1fef6e94f3f0fafc5a85dffc3f1c2f35efdf1ba69af9e25436bd5afa9d4bc0cd87a243c05ec1a399191b6936d2e7947ccfadc027b83d6c2a886e6132b76a045445b9885590bdffb50e8e5d093574ae1c47cdf9e155e9e7f5d57b7fce9ffad8fd3991133832513038d50beee614860be01a3e62a15b5945c8ecf6fa60173a2c50f3f7ffaf976f8724a6b6daeb005f8ce2dfb7fa4e7bab6a595d36ed07b9904cc4bc7f21830dfde7b51250bef541b4a7e58725c96d31625fe8eea826123472dfb5077b438ef44954a88f298afabebb5150e548e1c8866dc2bd705c76177cb6509e27591c41b5a21b91538caabaaadd15748fdefcc08b991e486ab58e696b09e22688dc29951b28336fcb51b922c6af9016b2398f5c8d012216b175c14b9975620b924d8f459d8de49c909d2c139f1b624e11937e497fe0c35924c48024e81bb46e8d272900725c74cc4bcb65c68adf2153075d0160fef861ccba27a6d954465f458542fa5b3215991b4668158f8e1d12ad16713eb674b335ec8aba3c30ab8ac29bf288461bbd6fe9b41872244e06bb6b1dc85197203c80da58a977133acec7e8d9b35520f72aac3e6a5bf1780b84565bd9546ebba7d78341366a3f5e041a85e4681d65911fa3e954c248037cc217bdaa28875391bf99a82bfa141e2cdf8a18d3164aee8dedf892b7223c80d8b57979133f40d5f236715820077bad9e9ef86208b5277c79a10d4d888d265f4d66b23b8d756a02cf0087dd042452b212b1fd04f66be4e8d96ffefc38ffe8967e161a552e52386b556fa73535f6a6e915d1d22516f681fe409aabf4bcf1ffeebc30df16148e98390e86df5407e293f2bdd4fcf8d216b4f614d02e8650a4badb60992093a68ca94dd306451fdae1c5967148d56d14b93889555c2584d0203f5852631096f22c8ac3d199ca8df57644849c4d56590bf7806a937b4d26b3b860059026baee87edc913d64e3c78daa5893e0a9fc3805cf1afc00a33bd974f0bbe1c7f24e7ac55a422d649d03245b70d4672732c82050e92842ec5118ed83d5060cf73705889be9800c0079bf6507e41ba527dbe1437379bbdc0d1cf1376747738b7cd31294b9c03dc0ebfd8a2d98f24fa7e016f06a1294bba0d7a504c52d0af389cbc1b9643323098a0ce090bd16a8bd15d85b27bcb65a4874a9773ee760e1925ea709b377bff7fdd37f7cfc30432fa315b2b48601942bb9d502bd9450132397ea8defcb09eefbf75f4e08f897f4f35f3f07b0d3cdfc50a8956e98fe18cd5cf29f2ff3ebbbbab994bfdafff4f143ebbbac2e3f9989986107f82962565801a6ace9f8262bc05ace730fd4b8cc7916b5f686c93a6de428e5d14e12c5e08509758d71902808d1886c520f017d327d7f3368a86a6824e70c27aaa1913ca43ceabba53c77880c6591505f91f1fc334d979ba53d9f214853ddbfcd94672e705f6cfbe46a298fd1d0999bcc0cb494e72ee03549791655f70a8c74d638396af95008a49df142fa92e920545bb218a34049192859e8e56470794d7cc919f3d6e3d8c0d1bc750b7cbda19c47a1658bd7085e16d71e6fb523b9e53db79b1598444dbd9753d4acd5eb699ec78f8b8ecbbc675176af5029a3783cb18c7d88e84c1209b81748d60bea6510a1fce25c7940a9a95872cd62d98c916b1d56fed714eec1f5f80ec181b24ea5f315f3660d1c0f098e7a5333515325626751b3825f8bb5aa83068edd80635965cf4038dec815d1f6c9a213c657b7164824880a45b2778a63cf26e364fbf08af9469d92b9140bbf68bd8ec1d8ca65236820315b779b7ad98d742ead5af670d5b2b9b87dd136af27f237643abe09b85ab5ec2ec835a9962dcafc11495a966eecab1c224b2cb7ef9c97029db382546f452e19922dbf8055b783170c9b8ee62402c3a6a3ed34366f065e60abcfa8b9025ef732def64572b509b7b708b0e396b2cbd87ddded872b655e8ea1ed05d813bf68d165402989609c31a30937659d34ba4741c104817df6c2234ae16d00650122c689c9f29a00c3f9ecab3c74efc1dcec0e11a69c26ebf08a6ecf9d89445b09ef56209989a1c396e4d718fa769018839d698ecb0fcb918b0a1e2d5a0d94c4463b2c99d0a888c7364aabd008eb03098c9244e0be7c43e834007bcaf976181966dea63bccfcdf87d119b5ddccdb5bc2083a7616aec884ee62577283c7ed86ce66d7939d22678d321a4aeaa00d4cef851e72d964001c913a1c5f4f8b5ea22ed906471149f607ab339f2388de72b5a7882ad344237a5e9fe9ab87d5d30fef3ecef0a3643c201d28d05a2a1c9e770b46679747a857bba6ef9f865c2d14ddae0b6411345ce1d67f472e037f3bfca0f8771fbf0746e6dcc01e0723730154a7364f01b402469ce30e9bddd96e28b26835a009cb815e8e21120802c72c1257a3011bb2f021a892864470212b8ffd646c795d8854bfa6b9781cfc9a6483c8042264d1005f0191bb48411a3e6e6b7576792faf5e817235c77e32cdb17f47fc58d4fa6b064d4e8f77bd6495b5e2cc8272a8eb26ad149e498a58edfa15f712d34db310acb39813c3bf1a917516f3e898f926964d6e9785a0e6f23e5d51c45ade7cbcd99ee4c68f9b4e31cf7acd9e45ceb7b740b4d49d6e4e99bbc1c7b2ea5f2a32ba40e11c1fa48840f75a6857a081947be1d183c8d6667039434813d5ffcaf907085c6a82e09bf13adbae03c2c6ba6b1a205fc78e1b4d307f9e1e9fbdd1d789add75bbde9d4d66d4873b909f23bf64b264156c78e4f41b686d052b2eae826ddf636b67517acb91cdb92cb227dc98e4df965ec316303278028ca532c9564a50e7015448844ca9b907c56166f4e9bd9b59443e3b0b54c669215a99cba6a37cc3dec166bd9ca6d7bee73035ba7d05947acaf3a7d136fcb96aedc03422ed39565b17e75496667ed48ad1f8d436b8c162c7d55eb6b10818c15b14fc667a9b51d9c1e6ed9747762d004cf5abcea4690a93973f9a7bc45f60a847c2609b99ba4a541e45b0d922fa36770ba7c8d9e55dcc25075aa09f777039145e13e221be51c8e5a267df2ceb9927bf83c6c188b4e700ee5b7def7d141547dcc3767c8c433efa0de7fff6276d96a5ee7352f2c2febe059fd05822cedbbbf977efbeb5d9e891f7321460d88ee2fefdec7f4a3ff58758c2fb364ef9e3f3cfba73f3cc78feffabffa5f5d68210f1ffed558097976f1540d095a0d9b2e3653433e765d6d2e90ebbd9c02798d0900a76cabab3d32cf2675b54539bf52c42ccb797a54570b8561c8c3d858c692157114c1cb24306767804d08cedeb8aea6a6e7badacafcf70fffb56556f45688068cacedd08a7b238afe6bb8f6c0a2fedb60ec2e44fdb5b43713bdb5a6718ade35e6a0193b6ca2fefd50ecacc43fa598d5d6d048d30f010ab9c00b173008f42609821c44b6da59b431e47ceb51e82ac99c1945a861a0a095f666e49840920f4e536d926dc765bdb9c8a9f305a7c859a3ac67157487d19756d67b44805c94f5d4a29abf8af85c39408fa434012c20f64e305923b050a37c2b5470d227704a69d3c364ebd9ca93d05ac092af196c3709fd569220d4da21c01549d05dedb0b926137a4463ce074e810ebe6693d81da4a0a7d85dc151da19d7b99b68795a0e7417089be4408b9e020526ae1c68c89e338c7b9b7cb6bd908a9440ad8cf084200c3a72da86986db8710e24e797770e9ab6edf611bc1586014a967ad810b1626bea867e66ad3fb5a7fed45c34d7bcec14cd6bf4a724aa0eda3eea1d516dd1e3408131e5ff96477ed3182846538e581422092c8f52c1019cc80182b7314350fee6a9d9a44051e78eeaf1ee58da6b22d551694f966c5a62f3caf9de28b98b12df21419a16c78fc58d63047d7b8244683add1cd71e16249715be45af83921c49a7b5e3915a3504ae360750be03cb8523268a00aa171995b63657b9d18dd323c902e644107f4c3f3d41d30f4d39c20c06f515a37b77e6fbdc5072c3a9b99920aa35865310ad3235676ca75ab768372c59343e50464b234b923a763eb0ac3cc82c40fb585842490465ab2947ef92f132d37461f4ea2c990c8fd692730d8336053e3333a70ce8a13ab4eeccdcf790a2b681b9b7db2d3a106c12ba35193a85ee0a04636d3bba09c05a59ed2e083629ab2dda292059a3d8b9713694b321c34a180cb210cc39c1482434bbcc89386a936ede2c9acc8dbe7887362decacf59bb348ea0a2decd7b48b96ae6de9cf5da63f7351f3621bba9e06d65ad996173c303c2ed39f65230553ce7ee478a418f24e5bdfcb92f82864519e4abd204e5e44d9f786c8c6c893cd37ab3bf1c0dc92926a2702b6b163ca0eaeaf265d316ad0ac781e9d2033b15309728a9d150842ec3a6ec6a1bb01c8a289827296345b18b5f40b51746f8c11bd4727b0671214118563c8c826fa3468bd6ebbfd66d2901c36d17efab1a975668d78d8a165baa280d68c781e1e2173d1f3b23b6a35c58e92a43b328d217b61c8a26f41c93f9880c7463cda9133c61ac1c659813a07e1c128917c90010990b4bb791222798621f52025b9b560262d1889a0aec840de5433bf4976de6613662e785f2a0887e05d6509a8759dbc09c25a17e62e1876d9858145db02579e7e75507824d931ca196d4b8c64d70781085e10d4721a61e15b0a0cf1a689d061b6f9b21af03a9969db6cf314630a48a2b9a20b732aaafee7bb54eef9b36d98c58b5b0a747f29d071a279ae8a761637df3ed18cb50dd3b67f3e2c3d2e322058f62c708512caca510b1f017b63b4135e511218c90a52bd135966083d7394f1f66d986148726efd8e72ad8a366dc3389212aff1bc3925c3ff99de9717f7c37f2feefe5cb8b481e3fec071dc847019332fdb740e31b38e893577d4f67eee861ccb4e01a859590323b734ef74d0ce4811628802a52cdf8ab12c728c84561b13f8a626d6c3de4f39f17c3a6e2f944d5239d37f2999a26aed978690c3eacf49f0d49cfd2c7856b09b514677dc10b21b842ccaf2351b2de55894af0251949c0499de0b648322282011324149440830dc5400530882531d583d47fdde7f7c115336bfb4f33508004c60be0c90af14c07cbf4d084d00f3167b2ff5a66642b7960dce427785da99761ddea476d65a2f77c1af49eb65d10f00c154c7e861b9db89601488d9e5ba4e540b0ca1108cbd120894312569caaf379e417325f59a0983baff0365ab9e4d7320c364e4350298662bf3f889d06183ce2482ea19f014412bd4d2acc44eb726ccc372e4320f5ab6024027adb30023e7e8ecbdb62ca300ebaa1580b68243061150f7dc4b47d8dfd49eecb05474e21c7de4c8d17db67164c41109e4a4ba22176a42ca4766c7d4b3f9c88e43d4acd18721549d6e3e32bb81c7a2089f811439a54755348a0c7a70b5b4e4053a94827aa3449f7d8e75cb68b0b7cf41d46514bcacd4558d1d731d7c65cb29c05dd1886942ca8727c824765ece5d6a2d8258941d3421e56e00b2acc4af1656a4941ba960229627a1ef7b8118ea0c9843c1094b0a62744cd28301cbb727c89c21c51005cdc66576068c1d58f96582bc29214c63c9b7b2646e89e6298a5660096aeea8b164372c5916e597273b386bcda823926c3044be1739665952929484270d822c947f4d3df9e28d5962859c44c170a27a7e928d255396d4479431d76c416b629447a6c74cdc1c6a592f71b386a32441271b3d76438f4539be4254ae9c62c79e2e262972b2cf22c6a4051adb8b10bd172a6b24cd296bb8e94cf1c1127922c92a5130f8aa6e670af65626c2b4b46c8dbb91bbfe77d8c2dca4f86f701cece8877c19b7d547e314b76b48f1adb51dcb360ff6b0fcba9c07c34529feb01fc6948466544ae3e882ef814520ab0ac01044b0e40407062f394bb781ab254e8cc18f724adcced3ffeda43fe564c1a8f10a39656be43f6cf23317352f824a5ccb4e1f2cbb0e9a19d9c3d2e322fbc14529be93851da487dd0aafecb02463c82a09d9176c0c72185f32a4da906117b46670fae6ec80c9eae54f4747e4ed562fbf2576580974838d309fb9bc11e45e0932899d3a04738a9d753cf575671b4176439045493e013393198f1127c73e29a545823a0fc68604d9be175187a0b34d20f1c676969204cc99b954535768662e338dfc92625ad5928f3da3632e686af2710a9a35d0a12d77861a3af6828e4529be924ea2d1306ebdb0d105279a04f786ab9d7e2d5a7916a1e7c8c91889fec676faaa84e76518d4126edd4a241b3b66b20f651419778594b1f9b93c3c44e6a2e765139e5c0b224a0277b6416437105994c32b8d6ca505396a7f60f2e0aa0a3eb95a51edc108ef951151623601d9a1bc7109abc4e674b5dde0e8f24b5b08399b809054e538d0967a3584ccc54e3d809d62678d0930451db6ad90bb21c8a2129e90ca53dc98511602d93b523a8b4468043a9d84b7e5b1ee4c72c142261816b8dcd8126c3e083ebe00a4994a8e0062cb8b29e5155294cfb87cdd8b295803c8b77a72cd1fbe5e6367054f4906db619b21de0d4116e5f0466aed2e9642ea04104b70f4a4ad40082c7cae10e1ac5dc2acfa70eb04c4ced8090d52c6e766c8359f80e842f86b4c255b15ebb1097210a14cedec0609e3f37a665c0a8cea86736423c82e08b2ac8757ca1865ac1b2dd4b2aea748b2179a0a3ad0992002c42864d22e462e1ca19beae14b12a2a6c5dc41c3e89f5f5a212d0919afa6876aabd6f4f00d2667e9c84c140d8ac653147d7b3aa2c97687f98dc6923db064510f6fcb39d64ae2911cbe3ee8bda72c8cd6bd40edad08145184de46b4d6a9c0b7efaa4f7cb25fbaea479fec968f8c77339677d1ba66ecb85b741cbae993a879e9a61fa2668d912c006acbe977c48ee5e5f4a80118f568c1564820031b237cce2010632f02baf244cfac55f61182ba751aa2859a53450dfb49554b4326ec70c0750367cb421a4a4e37351344c348fc2988be3d0b0134b23545f68312bdac4b47748a01c73be20b60620059120f90b1e42111042183d0163d68d3e7928cdcbc2f2279a12f22b9e521d3655bd649477c85b54aebab3f32428ed65c97b1f3d21539c4ce0ad98891b673cd657e37045914a72b45523b7390359f9a221064042cdf4194251b91a0ca7ff546386feb62470fe1b6cb1a076de1eca29e2a936a9df5d94a1693d20e5b3ad2587262c94c14d57af0298ad6a86cb1b1cde964473059d4a96b6b581aa6b149b0cf36c4fa4897bd16c82a88e0cd417a88364615e2ad5796d819c3f9a3d969339c9f61093ba78dbe466ad854220f0e9099d0a9003985ce2a3bafc875a6016437005956ab6bb2e538e18047f52cc539582041500f343a0741f517ed82c914a57174fbd5f113c3d143487e7c310a6ebd91513d4b39d66cafe8ab9fda64ff99de9717f7c37f2fd6b2162e6de8b83f741cf421b326bd6731b3823e04ebae5d6ee8d80b3a1635eac6490dcc6e448e948de194bc28bf0481999220937be19c4769a2b3d8dfb813a2603a96f8e214d77c4e663b21d62a2bafa86335723c22390eee8ab303f1a7985921e9d04a75701377f7068e7b04c7f292766dc9485672e4aea843f5735705151cb540944af8a462494194c95e5a2479d325ed879c636ea07d383f3559c8941ca859da83e57e2b5bed9820c7dc638e2067b1b342eee1aabb495383ec052172b1896eadd3850ba3163a442b6318d4e85a09943d97242464911ca59c834d4037353739ecd99d97d7be7f52dbb5d0dfca762b45d668e7d6b736d93af978edd89f6db5fafbfbe49f9f3f9c2db6fadd875f9e7edfffe6fd2fcff50f479bad7e37bccde77bad4e174e575b8136c34fe066bbad2efb11eba00bee015dc7bdbe97515b0b06a7a85dc51f5871073711c5b7dd5677c1ae8bdd5612160b67440e6adb6534420c3e26ad9311ceb85ea0a22c7c24295c76b967cea9e778492f35a1d77f7cfcf0a4f0fffaff3f7df8fbff3d83315dee4a4a577596b23c7d71210f5242cdf55eaab0577da1f77202ea7fa4e7f8eef9c709be7ebafcf323bb5efefc4da0cb006b7657f8cadfc7f070f8e97b643c780b6ce8cb49ddef287f9f44c930717f8a92158427d2aa4edfc4cfb161e32eb0314e79242c57cd8c0274c6eab12397b4322b156a99acaf73c34e788346e8ec25d73163ec272b7d6f828d8314feb2c851cb6783a8f70bebad76820d70ce69c22be6bc4eae6cc3f8efc08177cfe55b8f4be8f8fcdf68f4b8237a1c15f097c1f2ea1bb1d63e2b2ba1733769d53778dc253c16bd1c155ae7acb330f293cf4a23262345263202b92711420997a8a34e1ea38bd3a524b783c7e434554b67351ed41716c3ef051e96acd2f20ac5e2f7764e69c0b80930260152ab54a700590318ac3b7d13916203c65d0263d9ba513ba7509b518b5eca54120aa78457e55b400f5190f54af4bdef63eaad6298d8ffde8817b24aad66b2ef3fa69f9ee4177cb7f6c20b34e8e00a5cdcc7f2dc068d1bb43666a2a49eaa4e51b2466bc349ddd28c3d5163d9a451527964dbf1d62a1d729d085682758c024d5fa8a18c13d0676db88fd94c4de36f9565c07483c2cb9ce397d657ed841a9a0bfaed35be28ad44f5d8f0980b965acf3d05cb0af070e8bac38acdc68e5db063d1a4916d9593a8b19c24600ada282b9cd752600c4690efeb42679d546f23e43c1122deaa2b5ef031e712f4af293c296e5df1c30b6995536fd026bef1e3060df29980a915abb38059a1416ec876b2251fbb01082e5b33d6a12a620b233314d2c947f0413848a6641f298ba0980563c68841d960266628b7aa599150732a80ea0da45a837cf04131206918eb6ec9c77ee171f0d19ac44aadef9e62658dca9504d5d99bd8a03478dc253c3ee3caa8a5262618353cbc46668e20721af61da2153ea8284025553e5ba0c32ccf26e9c7372ccedd093c403b640d574ce5b6f4e36604b92745e2edb7e522e28d568c3480dc2540169d18154acd96348eb20f1d922f29078b9064aebd0f12ec9c142e40a2a420bab8d9782e08b85c94f0e28b02aa651ff585741ac8e92b9c505afaf1c0f038f63ee6b68a9c826595f4c3e94e51a3c76ee8b168c38800d25aa54792c06c0ddbc04a28570e3398eab8952e893105ad72f91fb3db26fb18c673e5dc61aa4e1fcad6381f5e488d461abc22fb380dddfde7bb54eef9b3f3b98b173764dc19326642e445d1215733ee55966ee4bed8907197c85854916b6518d0e1a860654c8acecb2420d924d0a2115e05232ca3d61293cf2a6cd5ed70335b75ea92f54fefbfb8916a27c8402223f1d0bd6c32f27d62632e4c0eab12deafb77c4a5984ceddc438ab61e32eb1b12c23078bd2b0e6918cbcf00133272d30e4f20b6514d4bb287cb4a833fb90e5364ac061ce6a927ad780a86323f085adb83be10648b668e515a94653023e18310e73559300a989c659807c7b63c35460dcc4acb701e32e81b12c1d07206006331275106b6723903092a440035a902f2987a36a25ce68324fcc166f9768a84b2fb9971394829668d417d28265a5af98abfabe16ef0d17b7b137bc0c8fc342a997f05823c170409d6c3a8efdf06259396e8c030d309ea48a4625ccd994ef200681de92205649581db9f73929d0db083986315c3967bd53470b651bc31d128cfa1a68bac2a7aaf5321e92193321f232a92ed79abe55469a4eb6f6f77e98b1a81b57869c7646f1780b21914e16b5d06c4b8e910309b6c60843c623ab9263c8cd2c71613a8efeaa6532ad28559b1968c1115d313cd59a190fc98da3e4ef324c6acfef2c4c56d8026294e9a8e51afbe1c6a2669c344b2096236c48948e5472c27b55528d085a70b25a246fbcebadd59eb774359cb8541dc7a65473a91a528d027d83e8be8c8d6653f590d8387a1b5e86c9cbe8945acda60ad075a6b53476830dbdac142f0f1cc5ce8e7be0a46ccf5e6a4112a340f02842d241a86c728a00ec1d6e57a26a4af12fa41b464b2e79614b37f6cb8d4d44e225aded74c3c67eb0b1a81107a7ebeebff1de269352f014ac20042cd9463482143aa19db51872b2070bd68d3c71e132e0eb31aaba7d02366ad460d60ec9aa2f43e3f4e57e5d9ec21ffefbe7f273f6738de5056a7ceefa868d3bc3c64c9cd47b39c5c91ae90659d9e93672bb1f6e2c4ac38d46727563dc39377ac33a38d0426be6baee3c0836600467658ccc7d61ca36cd8dc3e2a6b981c261174d53861fb20d0b8ef98a6ca355a91e151b736152efe514266b34c549da4eb7a6f87eb0b1ac09672622ab4773b7a6d74458f20b13bd162537ed4528d7088a8ab5cd5a43725bf5c451c05c736330d8a1d6131f5e27e30af9af98a33a8d46fc3a7d7cfe8bff18cb67f871891acb573768dc11348e2e54930d1cfeefe741b2820b1514666063c66e98b1280a578a1d392bc7620d507d0846b370bdcf051a54ab55e5bbd1987b0ad653cc5be51a92045ec66685462dd9a26cb9c610cd4c46f115eabe966b3c24360e9d8d4998bccca81fc26495015c701db412d57eb8b1a80aa7e198aa46fdf03e27021b9c4899ca8f238117beba8a50b2549ed2aefcc9869d0de966c66f873d66ae51a3be90c61a85ee8a0a953acd45fce6c3c7fe1fe5d2cf89363e7379a3c69d5163264c6ab2710a9335a8a1113bd73c6ff7438d6569b891c052b21975c4bd07b6dc07918cd6a2a4182042efb2f08e884c9039e1561b376ac976696932b4ade207d374c5d6f015d2f0e625f278c4980b904a8c5380ac420c566dadf89e88b1280e6757cd440e235167da7093b3d320309824b0b282b4b442b9de06d96bf47ab3f2941372ae153eb8b1b556787d2195642677c50855e3c5e3f1622e3eeabd9ce2630d5e28c6b6d36f4fbc5814861be79cb57ac86a4f4b61134530210b4eca55b3422942d0247a262583f7466dd7033742ce9d9f6a6c4adb7ae0c3ebc4e5057457b4339af7d443e1e2705393f0a8f9f75978acb002d6a2ee4c2b48ed07178b7a7020d6e5c1adc61b60fb04d67b12c94916a80944418615bdc24c9e75d47e331b119cc6c321363f365cbc78a2035a494d0fbe676ccc84c9cbaecbd5b0a14cc932a04d4ded061b66510f8ea86df54c1fb5bf33a4de1a66a163b055d8174588e485e55efa24fb98f466db97d4b4af5763f3df3ffc576b7fbf2c0e774e5ed3fd6e86850f478cdac7988990aa043f45c82acb975076b6f53176430cb5bced55817168588d9ca71ce9de010761b3e16a58082270f0a2f74a7bc72650f2dbcdd9cacb90af99f7e0e0d9b4e0874606199278c5f6a5c68c1599a12fb71d7d4f93dbcbefb0d66e4f21b206338c931d3566ec87198b7a3e02a3aa3663bc20dcc8ac4bee219c4d051912b2f03682e8b3052753efc9f55b15a7b490978b02fef8e9f9e9879f4ad60dad385513452664c357e8f99ae9d44362a3ded44c980ca653a73059a1a741e83ad78a53fbc1c667247d86c9586947d52905b91a184ae19c750211ad08608cc01820ba581b2166abea54cd366602e25f52ff249bc9edc00d05ca1a734553a3a51a0fc78c5a9e9a09917ab43a85c81a6353a0a9538d19fb61c6a29c8f415a237198ea3fed780da88df359e8c459604612a4ca0f276b1950469fbddb4a9721ebe4f94cea5d854aaaa9c08fbee88872d8c2d3ac0a770b8eb940a97609a74059011c56ba0edab8ed7eb8b128e8abdc009438d2f30552212694c2fb2c05b20a8282ee057a871c9cce2e6ee38b8e422a017325aadffae7276825aaa1ab61a4d4605b57638fc4a837351322b5f17716222bcc4ea1931db654633fc85854f49567b575759fc639328031061d7b41060b28529580ab6ccb6f93d6d6ba14fd36db5e0764cca6de351e6473293c56a7b4c12b147dada9f1c0d49844c90b35e45a36854a4bd5747d7ba2c6a2ae4fa356a8c88c747d2c734801a390d955c3a96c04614ac2e86c1094b290e486052a3d130f43dead5b816a28378362b86697464b341e0e19c7d2d46588bcd670f56a5b34c87583037643c63e90b1a8edb34a2be9dc20f43cf534a23440d20a845890919c14c1b01101bd05434659da460a7e10694ca4e09f8e228de63535241a48b6641a5748c15ba6f1a8d8980b937ab23a85c92aceb6ba641a0d1bbbc1062cef7a551ab4061a56389e594ee9144a3a2a0cba2850a317a4c997134de0ba95c907b5592fdc0a35dbd328ff57d0b8515f48575f49862f73a3794e3d1e31e60264a84dbd06c80ac4700518dc4a53fb01c6f29657c58e957123659ff198345a277aa793402aa71866b02201851e434f216f559a52723e1caa6567e3c5510c0ee0cc152a8de638f568b0988b8e1743dbd560a11c62c72dbdd80f2d1685e08c4cecac1989fa92933a51ca22ca6c05668f82732221955658520b7dc8463632285473e28cb3d8dc7dfb5b3b627257e0a26dce78486cbcdcd417ee6585fe3772074d0bbe1f6c2c6bc1650107308c9a1910542c8488c2b8be60439a820de3b3208f2c95d5051e7aaba2941178e9f37cd8edfacb13361ff4a1ff4d7588415d51946afdef8743462d4bcd84c8c1a4f0254456d1f481698d8cdd2083eda20cbc3eb5c91dec8a4e89063bca60a2702687430f9ca5cc2279a8ce46c1a3de509a21e726a6860942fdf944e3744bff4ff2f197a7bf7f78fa97541e62bf4cc811873faeefca041e671f7a13fcd084e511015708fc4e729d3f971fa94373fbdd73f9eee312443eff37de1e492e2b3a0f4492e3f0eddc24d559e8ac907c48329dbe894bfaf1d9d740724f2059d4865b945681d2a38a95b4121525169460d0f84541c046700f564a2f95a2cd2a5620e0f2e4582b56ff9ac2136003c914248c400d240d24b3a1534749ce4267059028a2eee0b4dc40b203902c8ac50b4580add3a38c44423249662fb08f28300f4bc39316d69b88266b34c3f51b0d56cd6b9a3e3d7fd1976a4590a4f83630025075e30751efe731a2c750f8dd874fff959edff9bf959fc2c5ed1b5ffa3beba3e4f5b5a90f9ae3d7f6f16f25344eaf68fdedd39f7e1e5e8efcee63792a9e7fe457c727e5f1cf8ed7a5bf0def6a3a1b37388ca61d7f20ea97abdfd11b8398995bebf79dc6bda682dd9a0dbd86ed1aba12c9a663d5ea6a0f4bb1e18367185b14b01b90e82c9bd17c701fa9c78232813a3b81aea44214140863ca7f4b0e3a73de6adeeb1b967fec10635a29a589afc886be665678eb3ce8f50ecfe0950b376a54747f79f73ea61ffdc77822d99fdf3d7f78f64f7f788e1fdff57ff597383b7cf8826767174f99065a597afb50fb8acffa00fb492c96ccac416d3f505bd4d703d86115e2c80032f95eb2934e184e5120f55278a79cb021f758b234b26a2ba8499eee91aef150c5c35fdab3becb221f1a9608fa9a21b5d7afb7473bc8072ef01d34f793b0a905be53d8ac8211ed3adb0a7c0f4b918b02dfa2e21e355b30e5513e1a52e3e064c424a07756a0b54904b441384a3af6ce49529b2d2c4101979179d82efdf109b8758aa6236be88c2bf9ee1510d9f1a4f30323e4b05b77123415216741b3c6a4334337b8c33484ec00216e517dcfc40c46c991cf97322602f72474ce756349cf2250b4e5741333e998a4779bad49e4a95bea4b1e025f1053ee12215ab3330857d80b9f72d35fa78fcf7ff11f63f90c3f2e1164f9ea06903b02c8210799f5e03e85cc1a96f44edea892d5f87187fc5814e3231a9446c36858cdc45e93231006cca09301c18c5e6056392b4506799bcdecc3b0dab4aefb290d1337c7e64c4b414629886334ecaee0c7db9832682cf9c681b549f8540dcd59f87c7b32a295eaa8e5227b61c96776b66b8bda3a331a58c3f28f4fc0226aaa4e60a48577268b549efd06a4ed4ddacc09cc8961dfd3254c7efbe9fd93342d19992623d658d08370fb0b3081b377acbcf1cfcf3e7cfaf8e322473e737943c81d21a4a62333415311720a9a356498e45cc78d217b61c8a26e5f019076c68d97f1faa47de8418bbeef592046297c8f4a20648a864a7e93e3760c51971280c3d0f3fbf2c9dbb4d8c459526379585d4190af7424de50c6ff9afa9ccd8afdfd7d2a5ff3c3d9acf3ef3efcf2f4fbfe37ef7f797ebe9c0efbddf00e9f8f869d2e9c9b0c338387499b0c5b8b5f93803d8c3bbf04ec1a2d7d56b673d426c31e16601793616ed947c012212a1e55d4fa140c03f5c223ca023065844f4e098e3d1a55fe317a9b8ada30eeace66c35eaa4a4da6e32ecad000c2d81417ae3cbbb1ac2de32c2e642f645a1a05673c25156b52dc57b42d8a2838103231161bc09c695334e949085d5590bf4240539068126532f957516b6994b3b0c155caeb8a8f1307448bfb0096697753c65c8125fb3ebfe9e21d6ea78df3a56701934\",\"af9338abed85d1ac3bbc899d5aabe3dd03432eea78cbde054ec93a98369e4b4bde249348702187a8ee5c8273f9b94cda3919b2b466a365620737b5b941ffc1124ab5b982a97b810267e80a33ce46908724c8d146ed32665e1d08d54ac304e519d0e99b2cbe6f00b943802cba06282d3532a0b2e704619fa5363a8960b917d8e72c882d08300cd6b2440a9b4d36db791bb56aa301db3582de0e4194925a4b7b85c2b2d9a83d30480e0e34b3366aa7d0596745a5ecb0f971ee85248b527d8580041ac70bc76c8e5ef6310a1bad156864214928a949f2ca013b740ab7d1ea0fb9c86c665ecf55c77256cb45c60b65ac75d65d21b36c247960921c529249e8bca4f1c7d059416c095a77aee5247b21c9a25edf7179ec6830a394042965a54b4a02898240a7bd20ec41a42ab4d4b6571a3603c97de8f5df4a6bdf6a4906aee8ec7fd57e99efd0d79fbfbfd7f6fbeb1db616fc7dabfa8dc24ede2463691df8bb00cd45079e9665fda61c3ad8b9b12c5326ef20f5c2076b044a46e16d00117c0f39290c319bad48536274b251e3d33134b75b46f35648a3110d59587f0a7ab3a5c99fbfbb869a355133135baf1b6557db56c3283bbe89075963cd5db266d902c0586511e58835518720eb983246555bf5de15cc0414d66a644c56a6ed1437b6fc3b139b835f799bf69a69d53bad10ae68d57f8d41f3d2b5ad22764715b1a3bbff6c31f9355a56e8adb0e50e6d2b883d2a3bc605315a54fc83946c693c27dceb10a3852cb0c728d0185bbe11c9426b99422e9f2caacdcc63d4fc92e55a1dc636e43593a768b00aed1573c2cd7cec01f17168a8cc2e5d3e0b9915ea5cce74aaf91fef051fcb627f2c4f1b9472d44fe933291d54168411040644510813459f9dec353a63cc5652c96a7d313fa7f2fe49b611af197e486700e80af3b185c2d577ad7135727cab4fcc9231865c4d676f2477aaf956ee051d8b2afbaa46446971649def5049eca52cd4082c30da5e04f42c40c91c8832a4b099d598157059c43db8263d3f816ee898990e066590d66f913481c9db41c84cd0bc547a0f41b38ace5d9bceb6e2d55e10b2a8722f0f1c60a398468d0f9d7be9ea20b0c56cabc20444b0ca0b6f828bce49e737dbaface4fc98fc1ffabf3785c9ec4017a195a8bf8c90e656f9a808998b999a859c62660d8430ea1b35cf1b42ee10218b2a774346a38191572579e2148214b1ef7d01481f052b2051fe6fadb23e28d8ccea0ba6be411520ff92fa2dadbede0e404afea8f11a5d49cb411e162033315301728a995572102a006936297b01c8a2cadd223a4d766cb4c55537a2fa72fb3818e64b4198a548dcb3d35ef2a6a35753800cdea9cf0d20b3a357d26867f4159a92b67de5f15932173e877d13cfebb1841c74aac9dcf782924599bb63208784a3667ad03153f252e8de54e3fcde0936ec0468546c7b3296b6326dac07abb9701f0e566d13e44c331d65e1fdc10ba92d13de2741e682a64ef39e8266956cc4401be7dd0f4216f5ed4a3bab95544305e4e4b9c5aa4f59977cc4792d30242fd8062382ce12a3368161cb6dc273db20070f53d71832edaab3b2a04d5be0b56386cc054d1d453905cd2a2d11c04e3586ec8421bca85c5760956633689d4f6ac23eaa842988386cedea310b6f4c2f224ba9412686c15874a385c2c33ec3cb9256dd887a8ccca6091995b40c49ba6a07644b431e12218735c293a079d9c2fd722fdf8e102a08d137d9a1d5107287085916a49724441b2547b3bd5297bf914c10ce0c365bbd11e47a275c39e0f6ce720f516e38db7b07cebf6fc5fca41c08ac01758528e46bf4e8dbf7425eeff16c87562edca861d1fde5ddfb987ef41f6b67eee5bede3d7f78f64f7f788e1fdff57fad29f268a3d6e1c3bf1a2fd53abb786eab96b2f5f1d8b66abd21176262d37c561e996a173e2bbc2896570e194b048fc68d93b45991ccc2aa3e0b8c2e8940de8b60a5ec0de614ec56e3c692a7eb1d5e1604c9d6ec9f82cd19706caf1837fe2affc80d171bb7a4e81beb6ab32b844ef1b2023f1c71476d50ec61e97191132d4be581ac3692ed2829428e1c9d96350b8a022df5820c64d1db3e1a872993dda635d31c21bf5aee681c29794573ff9f1914dbd26fe5f555394b8b7cfcdbbbb3bdc23fd4df3efde9e7e1851825413f1c2f3ccf818ed74df31f96c3c8ec1b4f7fe616f93eaecda4b6d0414b7f1e176097e9cfa2621fd10148a346b3ce2179e729577f6d15046ad30bee290a0219fbbee02da50dc532b3e94f1db569e9cfdc7c9ab26008afa8ebb52d2c8f9d09cd85ce8bce6cb54c4829a2ceb6f6d0c392e422155ad6ed4b559ee652ead1a4b30c2665875684d4a3c0f260125e8312c9996cc05687fc0d0b693037b4390cdcb449e71992b8fa625e21bb6cae618f868eb9587929a2c15a03ce646c9b6fde0f3916e5fa4a2330699097c369c031b3b0e80a39623282a306a13d6374929c0d61c31c64ae88361ca49a6bd8941ce8584923afd829dcbcee1f0f1e73e1f2a2d597abf98581d19d69662f7ba1c7a2569f254bebc6fa4ae9336747a1b6ef0b3bb08409c5ac84b25602c988611877d924eb30f327a91a981b661d6fa501a32d58c9744503e62b95315b97ae5e6ff2acff327cae53ffe58ff5b74fffb37bfab7f2ee5eb6605e3e78d185395e3aedc2280552b636cc6a09d04cd81e76b6feb25e02a49ca11b795eb636cc5d40ecb20db36813600d3a53ce34a31448dac23129b54825391228c90a46170bcb3cf6266872466f3547804bf1f0f105634d9f331aaf26d225e75d9d634de1f936f2a0e372e2f9a3df6bcc7c7b2b1fc06167b8e5418f8a908b3ce8332e01868d966cdd0821a08245d022c6e804f6b67c2b567be1252b88b9cfd06fd67f21a12e05cf15213f7cfaf149359780b92a1a18b4f68a4e7e9b647e387ed41c642660aa26fa14306be420e59334cfcbbdf04349b96811602558525a8d469903c82ccb435d789d402056df7d887df9af54a8e2c824de4cdfc902e6160e0f3dc9b67078a69626adb2f21a7eb449b00727c94ce8bc8ebeacb57d1850a9ee50b96d24d90349169d02aca1c212376ac9006ab08940784b4920442a8988c9c25ae74ccad227b98d7df2e035034bb619f005af9953f9e53fd2737cf7fce304203f5dfef9911e2f7ffe26d04150df5fd746bf76c68a83a9cc243aaa2fd95974ac50b542826e582ad63a1ffb80c5b2fe1e998d91e446027cc97db2118c709eaa845297bcc3475357483a1503330f4fa78df67d4dcc5e5f76177dc9217927b800d25219b8a2db71fa7abf2e0fe20ffffd73f949fbf9ef875ef5ac1bd967ae6fe4b823721c967c4d02a5d6ab4e81b24696219dbd91f4be91e32ec9b128beaf9bbb9861dcf0509a6dccce0bf2460ad4e5bf428f255c94edd1a2b51eb61afd526a46ba58f28c7ffff05f5f942eee041cca194d788d8b654b341e0e1733e151138d5378ac224f44d9c99bc8131b2eee12178b4a7785d67101c278397dafc9db54738cc841a04c59f8608de803c96431f4e0b691ba638986f9ad12bff5cf2f89c6deeb52e5cd60826bd6d1b796c603d3a3ded44cb00c3691a760f9f63215c1ad3a1a0d1e77098f6575bbb10681d98d960a1b24950c58215991c05ea1e0de2b614374315be3a8dfcc401fa7a7a99701dd63b2b1777894e44f5b09576c816c7b841f161b3361f232937b0c9315ba1b86b1a3a6ebd80f3796b5edca18c38ec6da76a5ac4ade0761645f328fe0a5f04af6c2c4a432492dfb4c5b71430b39371af2c34f25206ce346e5063b6d155fe128dcb41c0fcb8d9930a9f77216266b70035d77d852ddb8b10b6e2caada1596a7b7d13c9aa1320cc1f54e0bd69c056a9504438f22789b629f2c27bdd9da60359d12a9f1508bb7c72991ddf736b4368eed15fe590d1b0f898d438f633a6a584e57a73059659909ea8e6e22016cd8b84b6c2ccac81598f2e4e68368ec347bab5d04159d30605960f2aea41b7549579ffb6865cf7dd826dd3858695d867c6dfa0dde406d98ea60e0abca8bc057f4389aecef2199311322f55e4e21b2c60213909d6ef3b7fb41c6a26ebc9a2f32228d328d02869263682d9c8e85181c5090a75e78240e9ac12867b62a5055e5dfcc11aacea397efaa15a8eaeb64c039ba62fcf69fd95ab2fd4ac7c68f6f14704c02a6b638ce02e6db4b550cd0a9d619df0d3fd4a26c5c151660d57e8ef41bbd96d113f622baa40596f3ac089a5824943607349e396f9472d4857097f150538e61211cb794a39e06b9e68c5754aa1a3f1e9c1fc7058a73f7728a9715f20f0ba6732dffd80f3f16c5e2a4594ae0b1fc2fa9f253e68216ca941f47d4da8820030b48c1651f93c6b00d3e86c12a75b98ffa109a1fcb276ff9c7e1b14185eb8d1f8d1f8711ab49c0d4f3d659c07c7bfe6194e9546b79ec841fe578fa99f4830d48c6113f501ad393d3223b6b0a3f42121cb2145632b027e952daa6533e6ce09dd6af3ea52134bf54bfdaa56d554d26cb5b6abe4c93e57dbadf7bfbeead09f21536e96f912033215385e46721b3c6b095949d6eeba7764210582c60a1d1609d19a902a5cd4e721f840b5cf8e17216c408c2c598c920c46c36b33d7442c99972ee6f3fbd7f52b2d91e4eb3110dea2a7cec59e5f1c000a925ac9998a962a853ccac50c262321db9c68f9df063b180858a4a1262c600716cfa08a045ca250740f020185539d710184e8942a42dfdab2e03f3d5bfea0bfd8f1d6ea05285f3d6c2156a8f7fa698b59937c92bb3cef64ffdeff2163e0f9bcf8e7ff0bffee1dff9bf3cfdf9ddfbf7bfbad83f75f8d0afc6dba78e17ce6c9f02358caa6fb67dea26fcba9bed537321fbeaa4b5560b86c076d09c511e176017cba760d1829199ac43674643c39843909941509620b02fdf4770a4451f43d67d24b995314a4981ecccfedd120ebf2d6950dbbf3bc3302319ad6d768c5b42849f24fe0f85ff032f138f9762eff1ac259fea653fcc4364bd4f3d01d17948a9c3a79d39149e7d36553fcdd7265e33915a6ff214a9abacfeb5d8715bfdfbb0e0bac8bc160d20b96459ca2a1c194046e36ce89d143e320bf435f34ae5409538c7de2115d86d289294970b7c5e4492b26dbc9a29dd194988e60adff9d6fa79cccadd5cc8bc0826e55a3bafc03175a6b57ef60290454b486bd190611c997af55653ce6c8519660794634181b2504691b3ec0cc4ad56265629989989cc410a665ae9ee523959de4d2bf10ae5a439bbf78f3f7ff8ac70f26cf4fd371f3ef6ff289ff676d2c9d7db3b2bdbe5828c1a11dd5fdebd8fe9c742af5305efcfef9e3f3cfba73f3cc78feffabffacb2adee1c31755bcb38ba7953cd0cad2dbafe47dc588ddcdc59c97115c79768ae0551222949d6ea5bcc705da6529ef333e95558de3ccd800c0a6089a642f205403005f90c65265d16ba3fb10bd8dd66fd78d9aa89beb38432d6d7fc900609739112a5bde507d05d4da3cc3c366453341f3d2c25dcd1240a1d39dbd89fb58cb8aee01221759d1a267a525a7a4c1916365396110c55c08e24157418e13418728c004089972e0b8a54dfe9c21c0e0fcdd06aae7261a4803992b7c8f3f93ea7cf7cca811e45bedf2e74c01ce826685916aa7751b89db0f4116dd2b4bae21b51e5bca80d73ef44189ba4f5e60ea8df05aa3d06c950acef481c28639c89ce7f1709cda6e93fc5b29ab21b025a22b26e2bea6acb6a98be5676eefb5d4f57a83addcf54d89ca6564bd66f76b2d9a2759f29456ed7a5ccc5c56bb96ed2ecb511f08e46800204172c01184096804624c825d322269453ef7bab77eabfe8da469f5b74aa17ff8f4e396fd9b3794aaa051ecae593cff35a859bab625297794a4d4e9b19970194cf65fc3650de719c2ce9896a33c2a3c2e729445e300b024b1ba078c86c7c803d91c85b27d10e85428ecf02042cae5710f21a72d93948986ad06c3a001d84ef7f9569214c50a25ca2b649f6fc383a6e977deb87e6732ab7d2c30aca63f0596d4e9e681f3b828bbc883f0331e9ce0c8a8c193e0d4f4af2003f0025cf916502b2f4895df4693bcb7d61a1a96596e35c73611f07c3aceb16d27e0792b2c43cb68e99a0d00ade0b6f782db4c64d5c9805364ad321980d0c99be44c8d3477499a45b30360328092471537eb92d6ce29d13b2f0546ef85d71845568531010350da660df2409a49c457a9688d0754ade2369d992628ef1cf29759b3e72d658f5d779b0b9aaada3c05cd1a1031863b7b9374a515deee8121e3c21b2eba0da043460da3ba9b894e72c95744afa313e865140c39096531529f9061d37d339745e8d7f519a68d974d2b6fca1aadae31cc6903ca0f4990e3ce99cba0a969c859d0ac305e264977dc5a377b21c8a2ee5f5b624bda8eca5dec830dae2f0f704f0521c84a78957b11c1c66cb23596379b509e59165ecbbf67cbc21b42464988b5a604f71513ca0d210f8b9099a0199affa7a05901212ca175fff7839045e53f123996872d96af0829bf85acbc15ca2b2b907b29425ff263e3192524ab75d8a663322064b244e305215fda3ab34b84003b46734519ab599e3d34436677359d45cd0aab2f2575e626e3c70d2177889045a9bd29047152db91ca25b9e45ca45e586f74c942d0085284c224b28624e498d256c3c7460cf6ae735b34805a2b64da767756235053daef952075047926685e5c360f41b3462b8494ecb029edf7829045a5bdd2d2a1d64ca36648e85348a6a421ba9a2e63d6b2308441a89091c0a245bfd9f24b23e452c04bd5d2906933c43a56ca5cc190b73186dc68f2ad8bcc2ebfc3c32accd7f059a1a645e46e3407dc687287345954dd2b20892c358c36d144891a9dcb82b2ea055a9904f76c0567eb832c044a79ab8ca40e2b4e0e572f66782d23991bce92d2c2357ec84d0ef960f438cef64e12f897a9f9b5721100899d6cf4d80b3d16b5f42515616919474d7565748e944918454660ec9508c647911df749628fbd86ed52113519522cf01822b3a522331d91ea856c06dfc0068f7dc1e378538bdfe16aa98702dd0d2ab2068f3dc063514caf24cbf2fc2d9438a787d7da7a9b9308085620252748d74cc418198206ef792b35bd2401733edcd55a029a13cb4ceac1161511367aec8e1e07279649b8d4d4e3142e2ba41e5a5107d0e0b10f78e865f53a3a360cc8a3ba1539276b37bd2eee7225f5283f95e4b8fc928354bdd2c6a42d87b1e6f6780d6325aea51ed34eba514ac3309ffd05782cec43feaeab931b3abe7506eb325806cfbb53b07c7be2a124c98eda10d65ed8b1a84757851a64a495a30e7ab62ef6ce18c1494681ca461152044149865c1ef6d6b96df69d1c3ae89766112f0325c77d278d1d63b7616dca89e0618cbc1a4dbeb5833e5917741c623c86cfb7d3441bd7a9665bbf17982c2ad395d4ceb8ea88314a44a2c9264b169ea8c0c4461244bd15d646697c94052cb4612272e9f6f37ab6d29bc1e4cdf868b172565d93869c662afef35d2af7fcd922d6e2c5b7b2d19aff82cd476be5ac656e71fd5964ad91b548eadc4d2a5ecd47eb2e4873e1a3a59725ec0875a5961b95bc94b1c08993c8b60efe1282e05cb21803d182b7917bda704d23cc4d2e560753683e5a3383bf24592abbf29294d62f790369cac1f077122e2f66ddb096831630d9265e7f607a5ce429cbe275048df230177a5a5b4f41e5021411b0aeade792b004a393b02e0090cccc7ab334a5fc3bb7a1f1f7fee393dc6e43e35b49533469ab595de17e721adefb75faf8fc17ff3196cff0e3123cbe83e1efc20db65465cd546526ba0ef7f21a5d6ba42a603a7593c9ae96aadc056c2e5395e595f2d2382467f468323846cf75d19660aab35d461b11ac0c42456903a1d72cb7990c06219d5093a573feef4fbffdf4fe496db7cef1ede42ada4a8bda5e619672af75b196ad7cd374d74cc0d462d72960d6c856ac721dda96ad3c2a402eb29545913b00d4d2c8b03ff6e493d207053d7a913c7881b25782d125d1db9e5cf22e2abb59b662ca91ea221aaa77e9d0626c565b537c94c4b3c0fd9a0e7d2b753d183c8e1df9cb70a9a3c167e1b242475eeb4ecac68e9db06359d22e0dd63e891d8d7729f4ac639f854c160442e6020f9442e7d4972713e53e6e957b2898f1693cae4e383aceb5dc63d493d78aea3ea1b58b5dcb573780dc11400eb2f649c8d4d6e22964d6c83ec85267da4cd75e08b2286b07664b528f57232665aaad961649f7540012ad60abade80d526fb2e71cb759373234daf17255683d4ed5ce216eb7e6f7ed00445b406de5159e28ad78f590f89809989aae9f0266057ca0a66e98076bf4d8033d1675edd6813486e5a876051e92928519495b27d060a14728e1125dcaec22834fdb6c1a1964ed9345d33518aa4eb72d899fb0c332a1a3950b576dafeea335d90f02f84960d59ee229b0d6f00176ca75a635d91f9733174d76f3990deeba3ce8d1a851a1abd00415792d6cca7d214d20e19d0d02554c449890336f451a3be3083134d99fb73450792ba4013d7449d65f8ab8bd80f1f5ebd6c7ccf16bfffd7d2aa02b77757ae13ffcf2f4fbfe37ef7f79ae7f98df7d2ccfc5d3877e757c52befc64be5e98fe36bcabe9fc953383feeaf81351bf6803d937806c266e0fbdfee7f59c5c1483ebdc4d0ced1bc8ee12648b827c035611c0782b8ad4d1a9289d00a74bc6a4d809afa017da44dd630a44c16d556f5342ce79b9fcfb87ff7a92ae71ec92638a0ac59c7d8494e98c5fb940a38644f79777ef63fad17f8c2792fdf95d019b7ffac373fcf8aeffabbfa4d9e1c317403bbb788e6887619646b4750a8033115cd505a7085e816896b0b337691f35a0dd25d0964d01c0a97294b763b50da0cfc014844aca0bd42188a075142eb173524170669b1d2d07a25dc666ad010ef1008d6897fd2387e574724562f6cfd8cb6c3985f09a3e9e71ed7f9737f17978521fffe07ffdc3bff37f79faf3bbf7ef2f4176f8d005c88e174e21a6400dfbb3df38c4bee2b3de1c6273be36a7a05d45306aa053cd6f603f145bf41b281493e5a907a3b4accfbd0ed238d1bbbaacb2804610062d8c4de55a6b30c4cd9655f2fc1cdd1fd34f6d8e6e768e0e99345f9197a953cdf9371f3ef6ff28977e2e35fbcce56d12e2be2621e662a60ed29d6266158668ee7493f13c2c42c6a31066d174809504652ed2a010ad49ba4f22503202932d04892517923e69a5a454566d9506d5eae2a583531da4aba236d08d2053c71a46d4a0ae70f86f93d80f0a909990a9958353c8aca20365d3d9a6e5d90b40167d04d8194689631b01523ea71cb2c09eea844374c2679784859e2c44235d549b006470ad51979dd2830ef4e39332cdb5e672960eac54ea8a04e46dd4d1d4a88ee6e3dfde9d0d37fc507ffbf4a79f87d7615444fbe178e1790ded78ddb486c692a195d056f4c199c4eb4188fa1aaf2b6c38b3a45a09ed91f17559425bf431a0a180c66329aa315af62e5b91720f02bdcd82b96e4f9292928eaae44671437e4dd6c50e56e91f5f62b3f9189c138c557d445ca1446d8b061e3c173ad2e4327a5e4f7fb4164d006547ad98f6b030b9c885167d0dd0803616ed4857245106d747141e590a4cae17641d0b6fca33df124af29b6dad01212fe3bd46c3bfa6f024b75bb6fc5672218492ace21592d47f862476fc7786f9f077cfe5e58a6daee05e30763f49d14ce0d643e059e0ae600ecac41db5e9b8c7e5d86552b468af60595a44b0e61c643168564625e1422deaa53014f5bcb0a9ae6351461f92a8adaca8275da1635224dbc69cc9709caee38b74c574dce7a9f45df7777ef1069b5276ddc46912612f89935c6d738e92d8d99b183234e2dc2571162d19ca03bf644f4eaad1285b70e8948f59784520d0da2c48b950b853e085a0820d5b39fa483b3528a9fa84aab86b8e3e731a238b9ad8343fd1fd15de0e02d55903ac53b8ac3184e0183bddece01e161fe3c29b5df65990d2c8927fc0a88b1323c790aa962620961f47ca8249167a04d733b2410a9b2d3360a1e6427318eae4468f99c56b86b5862b8a6f5f9fb26c5d7a6b24f9d679e8b9b553a7d059c3ea40b2ebb08db3ed85248b4607acb89c5b0de23948306709592b81a852f9c594ef440714a4814c0a3db9b8d9064f35ad045745cda0306b1b3c6740a2b5714a5eb186ada5218f078fb970a9629a53b8ac9186a0721db4feff5ee0b1682a608c3516cd78960c3c70089184f7a117d87b2f7ca25e800f9c0c599d07d86c24a69914756b645665806c629a99090063a9bc9c570c932db441be6bc7a4a1e31b6534936039147c5f82658dbcc32ad5e14dbc421b3aee101d8b4a7ea7d029a76894771005c8104184184bf2918c115c720d61cb1f3ab000e8b719433ee41d1325ff8b3d5353f2cfe41de0c048bdfafae7a6c37c2b00990b99da023985cc0a0021e7ba61037ce3c7e3f383dcf2c49651e529cee38538de83f73d2a91755dc7a9390bae46d325133139e79094deca09a6eef7980bf761bf47ab5bcdb4cfcb2bc2f69abad51e538fcbd6f28391632658ea61eb142c6ba41e04b693dcd0b113742c8e5e01384d0a0639ec29f5c8049a531429409dbc0214a1c64b54496692aef7bc8d82ff6001733916596bb8839fc5764e986f071d1ab59678cd9682868e4743c75cb0bc94786135074ac9d8f14de4f30d1df7870e5a9cbb2a8890e5093e5ea4a63df729a8280c9012482909ce7d14106c502e860c9ba1a3651d5f9b75b0a3f2cab6359c3bc5c736998723d5512b5aed051f8bc35660b024a1a44732c384c1499b7539c7d4ed686c58f83ef622f7d93279d2596fa6f9600113cdc7d1be189ae663061f0aa53357b887357a3c223de6e2e5c5ba18565baf49c49dbdc956b2468f3ba4c7e2b4154ab0082047d6c5964cf2da0511199dc01c92a0e49d304a79cf292318da841e553f3b2f81fae1a78f2f8ac1e6dc35dee12295c3617a6edded9a9fb9bc21e48e10526f6a26686a027216346b389d68eea84d5ded0521cbfb53b42670083c1abb0a6074602b4596c802fb9485cf3e086d7cb2bdc926e7adf65ad613d5642bde4b06b2dd5ecb37c4909250b2c32bdae64d37f8c02439262397a1f39a8cacb550b244aeebb035d1f74292c53d2aaa3cce4d395728356a85b051d8f72c74dfd756086be1a33522d91899bc559637130ec2b431580f56ff92fad6459f258962c9a8aed07e34923c3649e642a726f2a7d0598324e547ad43d348b213922c2e5451929ce1f2bf51531dd029eab1a043392f50491401ab32448167e38dc4ed721237adf2beee176a5d9199ae884167a4bba22dd2e6b11e8d1d73c1529d4a4fc1b2c65a7bed3addd0b117742cee3251f5cc8a96d5789b23272751291134b3407656907452a4be1c6fd1a2f466b365264a0c3e09134dad7f7e02db5a22d324046c491a6deba8ef111ff5a6660266b0513c05cc0aed1064d941b351dc0b3f16f7972840a99d4618a908650e595a492239edea4647551d14bd08213813a17cd06d937a1cf831f164f8940ee1b09deffbdbe187928cd6d197f1b15f11fae303e4326206f1d42962be1d201a74a75b3b7d2ffc5814a197a7b7b36c941b4909331a1d9d95a2b710045a55f20f764138e8ad639b5972bf5de94a2d79faa8668035937f58690dbb2bf420a7aff7ebf24cfef0df3f971fbb9f6b642f20e473d73788dc11440e45ac49d81cccdc5fc2669d563a74aab5d2f74291e55520d2386dc9d9d15096d1265ae70b4034965f3046e1c1965f02eade29e7206eb67d4a097569ecf372a652d8b290992a567931e5159b40da5cef4322e490874c6266d0a59f626685421681eb6c7371df09427851976e1c9673aba591116fafa92fc830c2a79005927782a48922b85eb3968cd0ebad080242cdcd26d67d9eca6d4690b7b2bf908c7176787cdc6011efb689c8ebd73c5bc3ebe3df4a549c5eccfadba73ffd3cbc12a31dbc3f1c2f3c5fc17bbc6eba82b7a4d5350ddf6c03ef4df8754f1b7827115befe52c6257e097d6a6839b481bdb3ec4bb00d8781f22f1a2345e59034ce446eb1073a088c1f42225af05666241d997ef27f5b5f0864193ddaa92c6d3ba729d6b19a6eb5b256d6608ac64bc4cfa0a88b54efec325404739ca5cebf21430abacb1b2a6933759a8db12a07be0c74502b4bc890489a8ae443cc70781f21c9c15c1c420b08f751fa255a2375e796fb445d8cc0eb812642601aa23f5b2ed439cc1876550d65da146d9e71aabc786c75cb8d47b3985cb2adb74adeeb88d81ed051e9f51c52b678c3672d4c64f4612a2065138e1053ac8b5f762440f59\",\"39cce55fb98db3ca60eb38156495e4a3bad4352de3dc1e2b76e511a1ae70046e1d988765c84cd0d404e414342b30443bd31a30fb41c8a21cdea094062d8d348cc96648492a1143d402c9b0201349281353f90793cc79bbf2d564b95b9d68a9d9f8869b10df4a03061d2b547ae5ece34bdd9a5b755fcca8fb920b366a58747f79f73ea61ffdc7786ac5fcf9ddf38767fff487e7f8f15dff577fd98f397cf8a2217376f1b429035a597afb5d993987f9ef54549b847195229fc2788da29a42eeec4df2a2d695b90baa5d766516b5f9506b30d6ca51590d3978909445619e13684d2adf8a4a8572a91cb9d960e2cdf4952548e7ecbb87d8546d326d3a99565e57767c4557a699bc3c707a74bca9c56103b552839f2477dcac8b1f162417e9d1b250df4079e8208fccc224271facf222c83e085468042942815971b214bdd9c82c6cb02e5666a6c0565d5895691c99264854de5265afe0089cbd63e58d7f7ef6e1d3c71f17a7d33e737923c89d116426686a32721634df4e1090863ad576a7ec05218b5a7d306c2c5b18ed4e411359cae04466650b424a1652b0a04430a4a523f6296ed6a39993ea1f17c6b701b139a93e69000dd7482d4f73efbff9f0b1ff47b9f47365b6cf5cde1072470839ac8c9f4e551e57c6af37240650b210db10b213842ccbf5914121a01d0d19636187c140c225ac3299f26319aaf1a4ed0b6fbcb4cad9ade4fa251c869982cb96650d07498d21d32931adc0a2bd8221adcfffc00c99044d1dad3c05cd1ab362da419b15db0f4316c5fa8520ca5aa74608f1c19ade181488501002a99a856110a90f29a154de6fd4e81f949693a9979a9457ddd67154ac55b246952c2c19a4ba8220cdabf8a1c871d038ce8e559ec5ca0a052c22dd51b379d90739cab3647944cc944304d1c86b3299a838782b7aaba00e1927c1247be174d5385ae795dd4ae158b73e5c36042b3986ad0f6d77fc4cf261ac6472b2f5d2770d92e3c294cbd0a9203985ce2a652c6d3b6acdf4bd8064798bbcb34c68c77b800b570c05cd22a52c054a8b827a2061d1f62a2648e4369b35a6695177e80b7efab17542e641e2ac4575c51ee026957f447ccc05cc307df21a306be0c349ee74cb43f6828f45a93c81036047237c24095653ce8252d0029576828c2511b456e08d96266c9687c8e961aad67307dd56cb4366667a253292ba62674a33bd7f4c80cc854cbd9753c8ace257acdd8dccba1a40ee10208b72f9aa95b75548301ae6ed215b8e28bc745960e6829268a3a0e000650ec1f6db74d151489c31bdff944a647e7c31bd6f2d908b4296632bdb0ef97d83a4ded44ce8d44ce42c7456e88858273b68a2f9bd806451344fd619c76a6cdaa54ccc7dcf559361ad40702c189212d6a868734e4ae5cd54214ac8cb01f797ed8d723b55c89b11cd2b0443d7680bff19dbe2edacbb9a65f157c1eb7e2c8b67c2f56577a45c4b8f829a3ad31c8b1f175e636d3ccb456d3c4a6b2d9727de39bd183d66f0bd90e04b1a64988577498b9411b4c959b1dd865e50637431e0b1adad9fe117589664aee0571b267ec804a8b6626682e6c55002d75a5f0f75ffb06ac3c40fcb908b04685116cfc8caa11d9bde3b8d36242985fa3fed5d5d8f24b791fc2b03bdb3c0cc2493cc4701f6d967c8f083601838e01e4856d569efd6b382a43d630ddc7f3fb2baa77bea6bdd2bd5d4f6075f04cd4ced6e75f744052333323296d4e2188df2d19616a10bceb7bda1b44f6af150495b341397724035132fb562c4174758ada43d36911c2a69736ff1c7e7d7d0d9a09266851baac3f18f4224eb8bec8d364e2c8e7b3250a4876fad6a5d599f229d5631e9a45a76bd031163fadd16d9d3b2362f70d8b194763b4c02968dc0052b24eb58ca1d52c762d9f915563658bde5c036c656ea7810ea581f8ab70065718a1f518789226c4b6a711bb4a2a0bd0a095125880e8592a1613de14e3bec710a876193eac7f74f686b1d6b5ec7b2de19d11784dfd76caebbe490c306fb196886d6e509345bd4b1acc5e6d0efab1cf2001cb23a145fbaf81a9c1d5188104b1b30a83645521453541ea255bdd1a937d24adfc6bdd48759b61497a43aac31c1730a1193f587ad8ee2c7e48f43b6e30c31c543f90a311b681001d7702d5f3d087fc0fa68bc982c2a1c8c8c60b645db1b0b655f3d28f21daa28c6aab6038cf9cb9e709f98f9c344e314efa701adda4a5fe883e4f7d5c2056d90ca1f77c81fc791c6591fbdf0c709315b2cdf426ea8ca8f47a18ff5ddf1363f6f84c58ea35522b6ce0751d64acafc6140890450bef5ae28130a835ed92bd771a98f3e44d4edb7bff1568cc440ce93a50be4c7af3112ef1a0f7c3280bdf212ff77fe189f87dfbde337fefd9fe15df8e1e96fefdebf9fda890f3f9af8898f17cefdc48030e4dc5643f166c9924bf96067d86e325669a1196ce0d5517c9f34367114c3ea647e7eee2168f2381acd6746df494aaa8b422a3f17838aad09ca8b8fbab7c6fa761f1e1bea6843eacc521d4dbb3a10336dc4688f8c17f461ea3c4c9d8779931ade0cad2f35bc235a37d9cf026f148c5ce9eb2ae96b351780bcd54e138f7620b3005befbdc24c2b8a7a9d05580c5eb5645a707d68a3ec132c73f0a04deb23275f8d54f69aa60230517e425ca0c2be701c666fe63223e6fae57d179e9f3fbc22afef3e7c7afa73fac3fb4fcfcf53f6fa6ef8805f73d7f9c2a565c77638badd387f5dc5b2e3a30f6eb99e79c2eb063d280fd0c09bf8e02a7f5d257fadc6118036f9c4eeac8c084c0b23b58655dff9a02849ab3cf6ac3ad3f6be25708e64af3694cc0151e4d7b0fd5b6a19714a60f90315ebdea88cb8672faa56116f55869556d8026acbbd9c51bb85150fbc6bcc9b58292a8d5d258dade612802660f67e3c0be4d8718ac42aff9814e992cf669955608960a33381775b51631774d890cff6694f1d76436e8a219680aa9de231ed14879b9a41e690cbf6693b29940fba8da9f99e77cb20133bc56a2a81b1de09801f6d5a860e7ae1c48a13a122f0a2a447a7821572f9f2ac9cf47efc310c1f2d8101a8f2c7bc0f2596b4f51704dbd45482bbe79119740e811e27e8fc761eb1861ba9f19e8fc223aba104c61b971fc5c31cc1794f0d5b0ad6a09236651e3111328fe4d7127c12e156020f7916bb94d37839ebe94f1f9ff70c48bb99721a33029a37b233ec9a9156eb69b75c4f5b80ed10f37982ed26cbd6981b7a1312abf5b4ab60b1693d6d3d200105f2f959eca82d24bd8edc19afd045ab288156d19a4e79ef5c707d87b1333bf118949d390b7aa86c1f843a9db4c064ce94b5469b1b1b6acee76d08a1c3c6ce19664a0dfa8c992d9a325e5ce36ac6cedd72c8480979b33adf2a9915d0c02829dae6677a6b4494eda15344d62b31c0aac7e43b71a2f74a8a3eec395832fd0cc1e935e6738140f26900ac716f2385fed59fb9392ec12f78eadf1a971cf70e4ce1735a13b255d42770e6125333a31f854b56875dc91b47f9713e229364ad8bbe14d4889d2297ff131cb65997d884c83161d827e973a8aa0d44375523459e1f9159ab6aaf733e89f39b7901957cd1eee7af30e4ba7c7fa7b2d7e90edfb2f4f5364c731d8ee843e96b86ada25aced8da24d54d7463ab95ec7ea9665cfaf26675201519ad113f162e3a257121f52a9001455de895948405369cd94177ba75bb6dfa4485bc500afeb72e3e2157e132770270a15f5f8d640fab551610530c00af10b3c55a02f2cd21bea36a957b24908956599d08f5d60099c34ac873b4b44899cae855d4296b156c9df291a2c29e7a04c0d8f7fbecb739e4ba4ddb9a853f86942aa89d93b95a316234d1054eb2075c4b70cfd4718c749b82a550c7192c5bf4dd09b0819ae9f628d4b13e8c998fa988687194e966ada354e2a43d52504426bf1488ac38466823485624fba4090c6b09f4548b9761cc92b0aef7ab73dd0e77987c18b070499ec0678a575fbdd65539e437ae259881e6659787deac80c5e81a5f63a51f8543d6272191348b367eb45f537a4d62f2133c84c22121bf0ecf6c1506977a6e3b21dc2d4f2dab71b3c021831a37b57eb5b0da86bd27ae05acc7649063016b0a99722faf20b34101cb79d7b8da6c7f1406591f8534448e1c8f0a5841739bc425055076a3e92c8c2572548153f40175f0b2cf28fdd534db6f8740407bd6be1ab72a97ecd64e7fbb4992ca2557c825abe39042ac094743f53d05b6e2bd7229b0a2089449a40cd56b6b75b08c7ea772d6108e09b38489e38266a8e198b362166967f8926cb16bdeb179fa275fcd410e7fd737a7bbf8be7cf9f4fbe6e98ff9a3fd663207f9f2c36fc69390c74b17262101b5fe66bf49c837b2835dc524e421207386d997405bd82a1506f3a3a8e137e9c8543bd85510d8d40eb63a0929e09cf7cca3f504145ab40e59695fdaf9aecf6a28b0a884d006b4c641d867cde7908f3933b7bc24ed1dcd2d550d8de65804bdd197ec69fb22f3f1eac555005d99005a004c21903360b668e91b2d8daeb96277cb1f1301b4ba259a00b3a4a17137a66bcb24bd65e5b848202b5902258e2af9167b0e8060f71983c402d119de0f12e8d313ee17af7c3bf4014e1bb6c37b56bb318f49200b9079c913c3adb28d818c6bf84d36a45502b93e02b1eb63f42c5a8c71a360e3d48246065068a8cb0482a904537ad5f5419cd1ec21c17e7662bd94ae571c929a2a81ccf587f5969d5c4020d54e7c77d4b10096979dea07b06c128b4fbec1dac87f14ea589d9a476711b493d124a369fb60b14dcaa7322bdf174f980d41a10fdc4a14cb431d7baf4994291a4efbd22b752c38c190c57877c124ca3537602a85fcd6899429688675b427d06ca13eb8c4e2d7fefda350c8fa76666d48186814676c3a6d312650c90754e4d0a8685d54217adf0a588e711f3331966de5305bf7fac3c7615b39b84a21730a319e344aa59007a69025d0949aef19341b50086711626b0ce4a330c8ea383c94a02702d1a30e88edd0672122aae74e14b5a9579950587909b1b7f9d9dfd13e792a0385e8a53c958206bd5f03fd564c6040e42d0f8ea66d8384bf8209ec6e9724df7924d812644bcdf90cd96da6f2b9b16f12e8523d60574161130f985d9fcb1770de8b1e85e143fe461b7454bab785c26254d261526d1b7d6b4d0f1ded365249f3035da9090c9e4857472ae73d188f0edc055b5daa08ba4b1174f411cf2a07c342d6136636f0117b033514ec8e2964a282d6a7f2ad58832c23116420763df44e396ea3228aa862fe9eeaa3e4034c07ad4bbb4dc218054b43f9dffe98d1b0df50fecd8820eb88042ee8e1ff9a91caaf90630c232514dabfbf7b2583be2d5f3efdf5e7e19d18a9a06f8f17bed641c7ebe62248b4e0ed6ba0ab99835940ecd03c3d237683007eef75a3eb46b0fb25b0a9065a4d0510678d6572e3c5968268bde9559b9f868abc37ca23a00a2990d6644c8ab41f83e9250d54f0a0f7d340b7c260941fc6e8fc05a132f6d5bdfff4f387cf0ec1ec69623edddd2be2ea33671444343fbc7bdf76ff95fffd338bfdedddf387e7f0f497e7f6a777e97fc294ca0e3f9e70d9ab8b978a7a3084f2dc38a15d4551ef40683300bf109ade4a90958c9bc336d7ca670fc167abc904599011583f36c775dee94c5946c53e0545cc5189e14e19f0a94bb195887bf9aa4b937666157d69d25673dc9cd1cae66dc397c4a4d5a8cdbb2cea1d9d0d4bc30867d06ce1afd6de342cb5a877af1c3229eaad460364312490f5cf28add9636fba185a254c56916b5945ee3b65c574a809da56ef432143d226d8053494d840b0b52db4109446565f94d65c93d2ee9c4c0ea99b33f894619d57f0f9ed82c45adb986a937b142e59cd09c84f1d8f8430f61820256780a2b2897419d6f12ac6d6a86422eb3eb59ed36ef535988fae0db98165e12b553259080a3068ccb024b7ce793e1a752c8065d8937106cb1681cda01ba96b631e843b78352200acd66c8c0c9af41cf9af750bba0b2a266f144563946f132bd6c9696c5dcf7637ee20054b914b83d7a6aeac5ce00ec3c2462e886ce6b1a8183cd6ef9ef3ab6fd728e4f37fa232c99531c902740ef77282ce066d7e2db6c137698b5426b94226594d0c0066ad85611476d95b97d8f75e69c758029b33a510a16ad9852c594447b3d7b8a796b9e9a554b44a76dfd1f4529b22e3dd311ac1f20522a4865dde1d7d1cc22e67802935ac33603669880837be36441e853e56d302081c952eeca8a7dee7ef580c5eb99ebc22e83a151d05e5c1ba00c60b5ab76343646a77293df5a1a28b5587cc758814dfbabdc0e7fc252eb1b56b2b795c11791c1b2053b89cfa87b891f610ab1b5727641e853b5673021804b30ee551333db3491718ac8a985891ee8d0abd4eaa071d404332c6ed191330eb7f1c93666acee51277403e5c6602b9c08f75760de747f2877ffc9c7feb7efee5e0a65d34647de6faca2157c421c751fd351be366899700061a5fbbe88f4222eb83fae8d890a3b10249d845e1e855dbb5a8a8e356453649651ca4c851239b7d7657d280d1e991ea30a9ffa92a90451641e3912e30f55647d69d93c9f1a6a6e839ccec7fda5290602335faf251b86475649f9948d0f038fad26ab202c58bd54795e50967412256f57d4fc9b5a6f5fd6eee5e50301d462eeabc784c002a952cacaf7428c65c2048aa21ebee9863012cc3cef033583668a30be9c6d6a55f8f421dabb3f2000c8cc06319623ac2de6605c22d9b224392f23ecb902e6ae99963f2daefd547e70cd305555e96806b5b8b5973eed0c6a0bda41152b77edd2183944efa026486e3d609325b14b2347303d588f5280cb23a9dce0eadd3e446dd904ec4f5dc76191d368b0f31a0a4e53ef38966694d5f44c88e75aca545460332f79b06b999b41544f4682e089cfc923efa8e2eac1ab67267612b0bf87dd961099b0da830db663803d7b495fba4b349da0aaf8ecab37842f6c342887382b2335911a5a03add654164a408a2fccb2929a4a0ade950f6c9bf3c74f797667d87366515440b82882d78bca096568d61f7a78596d052fa3067b46ce12a26c1066a23e66ec963a2853e331aaf0b7d901d4da53886d660d7a9209d2be1c95145ed44054e68a86746eaf6220fbd5c1af84bfaa592c71279205ae3adb960874ccddfbf5b0e59004d39719d41b3058708fac6550e79100e71eb23f25ad0229ac13e72e21026e75324abba60aca2946ce9e6ebd291e13e1add05d97117b29e42f36517b296ba856c5a50f3944f0cfa8235965fd68ff9ccceb2b72aaaaddce0a9d475bac55aeefaf5cd9b0574bd2c4d3ea06b03b2f159af0c93d0b5da759f6433a976b9f5317ad0d65a436ea458585c721150f9ce748a34b0121b4b2a8bb4a099a44f6647c5b214c8321cbeeacecb39db8846810ba6e8bfa4daf515b8a63670ee85d196105c1c3c67046f6147b0e02ba53d12a5ad8ff69376444646fa49274adab64eb584bd226aa3126c755652ae17d363dbede4681b46fb71090f6556196bc4d84203478c3668375e00533b3837507d3b8cf6cfe0f232da8f9bc58a0151a36b2eccddb2c7a4fab63adbef9d7810af476e36834e77add52ab44499327aab42687bd5228880276b78b7a9cc9a6dfc850d1c2e417154edd08f4b207b241c1ba71bfb26f2a3f2c715f2c7ea58bf85cc095ecc883f041c4463a2f2ce97725a318e5930cac716ac0140de2f969297f38dcb6c00ec574ebb1dfe00c7de18bec03e56f9e30ef9e3304e3383cccb041a6c56bf02320dd770b1472190d5597ed096a5f4585e13489f4ff5ad4854ce9328f22da81829a936b468d0637e46ed663fce1c321d4f2e04f2bb2e3d69a8fd98097d588bac874dd49ba7e37f85a6cc676eb29a00b66c992c80ac50ce19641b500e796a5c5d307cbf9433ed98ac86001870dab3181e15bd9c85d67a5226da2c5abc8b2a380645c6677a327d84b04fa0e5a1e8353d819d14fc7e1d935be11c106b81f4f69ee5fd5a26a7db7be50118feae73dbfffbf2e5d3ef9ba73f7603fd8c9afe2f3f9cb4fd8f97ce5bfe250154df7ecb7fca195fb3e4b6b40ae6156037e8d918d08d7e930c9b4a60574960ab1904502c6a1e10462b29753090380ba66406d564b40a64592178221738b346dc4f35e152025a39d0e17eaae976ca6ef9700a5ee3056bc56acffffe4a6e4b7029133767b86ca07f844c037527e5ddb2c7a8e2e6645dfd68041236a3f44ccfc67481b48a9d6645497b158337ca782f963d059ff69ab7c96018b69c2d81015ce58eb9fef1a5e1c6174cdcd49594fede7964069de2963943678bc94d27bed13509ed5188645d8578122bde8e7aff3e3adb27ed940ea1578410946f7d529c3aeea2217471b7debf53b034b8f9a78fef9fa00e6ece6cc740c65a7d41e7ff339d986b28a3995119ed97f75d787ece7773be8b0f9f9efe9cfef0fed3f3f3b48ef6ddf001bf2ea19d2f5c1a9cb18362dbad8af626ec75355da025bc0e65ef135e3760af7c506a6ced02dd2f7b8d8b68f9acb24a5f46d86b2366947c46ae379efba4428f90f92bb64a209398b0049d5a1b82d933786066c4c94268188daedeb539833904effd05d66738a751fce1c34fe99ff9d2cf95d13e73795540d7a5809630730aebd8cabce6049b6180bc0aa0bba4908900fa4cfc1931b1208e8c046d881eda3628dd759819448b0a62cb50b0e368fb809af7da8c99d130773f1fd1b0a3fbf956141039ed8c5c129df9850a68dfb5985505ddb40a5ac0ec4b20ce86f66b8106df642d67954157c161132f815ecd5f6391cc51a447066c2d49526f4149979c220f5e798941b5ae4f5d6c119393bd384c14ce360bfef0f1e9fbeec727c4aa82e6ed200bd6915c60877bdc099e3b17410b902976ea3364b6a01036d250554177cb20e3091ebd1ea9a6adb3c8442315241de8be0facac1413b5a3a8847b546d8bd63ae404b8cf469c83194daf744551570699eba0fc66bac3e759cd680fc71e4b702902e40c974d4c04e01a5703041e853d56d3cb8c9152721993475f7a2dce5865bbac3c08c1294960f2ff196270c1b1dbad0963d5cc7c5ace520599b89f89e076c8c33182f5171899cf991283b5ecbb0f1fffb77b7e17fe9e7f0d572772fed59fa95c725d5cb2849e976566b8554bdf3868dc9bd4b22a955c2195ac669901966067edfda89425da7096aaacfabeac324b84ca437e315d744e5aedb5edf7e49229de5f5673a2af5c320f337362acc50b96735632790c3299bec2a2e3cff0d9a2ac85888da965ad476193d564332027e22d98119bb80e53afd967786422a19e930ad6b48aa26d75d7717e5cedd8dcc7a568ccd22844aa6c322f6b5967d8e305bb02ea9ccc9d33c902745e7aec07e86c51e232c6375299e45198643de28c9cb5623d8e98c43b4f16a0535c923209d8a84028ca9944da85aeef609f697d52da2cf40b8bd1f8c79f5e5aec356479bc2513bd457b81d3f8ec1dfc8fee7d7e733ffc63d524b67269e58e2be28e72530b602925ad5760d920ebc5696ea8e6f33f0a77ac0feba376c6d2249fdf32c62e90b25971284a2c4a6c67556afb286dec3dedb4603953072d88901f3e6664fef422426a54d92be2d01ad95ee2cdfa3505addd18e4f496bc721887f6efef5ed98bbf2d5f3efdf5e7e15d18b98bbf3d5ef8da5f7cbc6e6e2e163dec35ba716ff1d5e4942da0f5702f27b46e915386a6e137d13dd55b7c15e475f416ffe7fffd3fd1dd57cd78260c00\"]" + }, + "cookies": [ + { + "domain": "develop.snipeitapp.com", + "httpOnly": true, + "name": "snipeitv5demo_session", + "path": "/", + "secure": true, + "value": "[REDACTED]" + } + ], + "headers": [ + { + "name": "server", + "value": "nginx" + }, + { + "name": "date", + "value": "Tue, 19 May 2020 22:05:23 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "transfer-encoding", + "value": "chunked" + }, + { + "name": "connection", + "value": "close" + }, + { + "name": "vary", + "value": "Accept-Encoding, Authorization" + }, + { + "name": "cache-control", + "value": "private, must-revalidate" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "expires", + "value": "-1" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "referrer-policy", + "value": "same-origin" + }, + { + "name": "x-xss-protection", + "value": "1;mode=block" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "[REDACTED]" + }, + { + "name": "content-encoding", + "value": "gzip" + } + ], + "headersSize": 524, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2020-05-19T22:05:20.795Z", + "time": 2502, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 2502 + } + }, + { + "_id": "1227fbddad7f33c65d12b1b4c20c1c94", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "authorization", + "value": "[REDACTED]" + }, + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + }, + { + "_fromType": "array", + "name": "user-agent", + "value": "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" + }, + { + "_fromType": "array", + "name": "accept-encoding", + "value": "gzip,deflate" + }, + { + "_fromType": "array", + "name": "connection", + "value": "close" + }, + { + "name": "host", + "value": "develop.snipeitapp.com" + } + ], + "headersSize": 1330, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "offset", + "value": "500" + } + ], + "url": "https://develop.snipeitapp.com/api/v1/hardware?offset=500" + }, + "response": { + "bodySize": 92692, + "content": { + "mimeType": "application/json", + "size": 92692, + "text": "[\"1f8b0800000000000003ecbd696f2449762df85788c2603003b485ec2eb6f57caa56ab5bead78bf05a42635a7a53b0cd2b536291f998cc6e9504fdf7318b6030c2b7ccc84aa76730c20a89aa22e919f4588e1f3ff79e7bee7f7df378ffe86fbff93910da9f7df370ffd7f7dffcfc5ffeeb9bb7e99b9f5b697ef6cd9dff217ff3f36fbef9d937fefdfbfcf8dda3ffbe7c09a49421a3b52b3f789f1fded687f846fb2e24d65ac4649d2013a2080c417004993d91ed1296e37fb84fb91cbefb25f0fc2b7ee763b8bffff79b7f7cb8bf01fa3ffff787fbc7ffe79bff7e3afcbbbb0f3f84fc500e63892ca501202bc16a2a0f98efb70f97fc637d1c94484272f9537ed4dd3ffce01f1f73f94ddffcd3877cf3edbb871bc93fbba907d5077fffe81f3fbcffeed687a953fa9fd9a71f6f1eef6f7e99dfdddefff8cdf3f18f3fbeab3f4fdb6ffb709b0f3ffa213ffafe8fcaaf89e5d4bebf7ff871fc2b7eebdf3ddebf7bbf7da2feee43e7e3e38787fa4487077efbeeddeeb1de7f28fff776ea905fe5b7b7e27fdce777efea7177f78fb9bc99dffced432ebf3ddd841f6f7ef98b9bf739a7f2777ff6cdfd43f9efd1cb0a4852ebfafec4fb1fdef9bb72ae771f6e6f7ff6cded7d39fbb7f777fbdf679f7fdf2ff2c3dd1bff90ca237c5f7fe3c363faeef4a3dffee0bfafdf7ff3f8f8eefdcffff56ffef56f52fe4bbebd7fb7797ff7f65d7efbe8dfbddb9473f9d7bff9505e4a9fdeffebdf6c3f0af5bfe1dde6dfde7dbffb50befdfe2ea7ef1eeff7e7fb57fff0e0ef1e7ffcee87fbbbc737ef47dfcefff1eeed437efe7edcbd3cdff9c7fd67e8f1ed0f4f9f2329a412606f107e2ee5cfd10e3e50bfbbbfbbf99dfff106ecf603256f5c39ec1f7f579fdc8777e9c4476577faa3defaf78fdff90fe9ede377bb0ffbee29dce5ff98fa7679adf2fe1c76df79f7e121bef1eff3d361c790919390f9a37f3c868c7c3e89f826c77fbffff0fcc8e545cdb1feb2ed0fdede8d7e63bc7fff582f1cd2ca8dac4ff9e9c0f2830f778ff523289fbe571eb5f7cd87fcbf3fe4f78fef7bdffc502e3adf457f7774228f0f1f7279880fef1fef7ff8ae7b9b6fd3fbfa14ffe7b7bfabffd97ea39cc0774f1faeef1efc0fdfd58bc75ffced87e7976c7bd477bb57a062eef7ff6f7dc67ffb8fff3cf910f1dd87eff8b487f8ddb77f7bf36d4ae573f77ef2a17ef0f13bbffbf977ea130ff990bfcfff5100f3fffd5fff2285f3a2fb56fcea7ffd17fef7bffc5cfcaffffbbfd47ff7bffb7ffcebdf7cf3dfe50cfc5ffcdbdb7a3dfaae5c620a40b7e7317af5f6efded397b7f77779ff4539b7c7fb87f265e76fdfe7fd477cffd3dd876df755f9757b06b1730c628cb3dab255c704228d8d2e6312014d1694cad3085239a1b2b2da27ec2099550804051440d00432ff101f6f246dd1808d408e09442a4043eed304c2cfbfef4fe52375f3dbfb0f7fc9776ffd0fe573f8668e463ef5771a999c1199809b84cf3fbdf970041f705f4c26a8addd14526a64721d64e266e5084b23594bd363138b64cbf5dd0813bb50d8443ae1a523a1a3edc058ea4c58914d60786ff5ab87b75b3800373619b10980458ddbbb834fb0c941a3fef96d2ee77cf797b7f9af7334327b70e38fb3e38f1160f6b75f3bc02cc11fa86903a6f1c775f007c85931c2ca2930ba471f910988028aa4cb159c945522a4604586d4c5c41022af451f85b9504fa0e18ff9dd0dea461f63fa6005454c7e9a3dd4d1a93fbcbfff2879cc1ddbb8e3bcb8630a2d557b1cd0b20077944b036f001b775c0977c01c77308292c4168fb9c36787265914acd00aeab41781490a4b29c4ac12ca14d7ea84808029eef88dbfbb01dd3a2163eeb00a11a46e85acab27937a5213f0a96472049f2fef8a14a10b1ba44626574226385bc84234288bd4e06336a140a4add7c2640582201625e295161e9dd6e0c89ac8eb2991515db73609ebbd556b8b4cb545b4d2161535297275ecb19322e336c8877c049725a488d56a43aab1c795b007cdb20730b331cee963f650dee76c240be6e405f91885af5f2a891d60523632acc51e566ccbadc770f853b9847efbe1fb1b308d3d46ec411294b1708216c1a377acbcf177773e7c78f87e56867ce4f0c62167c62113a0d9fab29e41b3048730c88d6aadf46be1109ee390720947e7d8f428c4652494bab047642d483b128ec8891875e73c2180576b95b350204e50c8af72b8416ce5ac31856843ca2137017275e4514f6a022e953c8ee0b240f9ca906cbd90eb210f354b1eccaee8130bc7e4d1f9149df3286c7028088dab7d74125e774a0246837ac5ead5e4ad5495e34d7f4c55af2c8251aa35d2af8f3c76d5ab115cf6d5abe5940739bb91cd84752de4a1e79587d552e3b65e7a501e6482051344a7551654848608c62a912ce564b30f06f28a8df429346c3b816635e5517eefaba00eb46cb8dc18be4c1bfd708ebf2857f1fbbfbe2f9fd3f7f552f02234f2fc3beb45e6e9f7faf44381c5e1d5ac5fdefcf3fbed4bd1bd7d2857c4e39f7cf374957cfaded371f987ed3b9a0faf9a93aede473f7d18eaafabcfe8951198827320b0a7e6fd10b2d5767f04d905d40f93d9e08b8c343e5d571b837d5d06dbfef088c266c7e28d04698cc69e8fb85094e30041e42e2541da830801a2e0e4b9cb8a52b7757eac328602627b411e16cf7e7fff971b924dff4cf888ad926edb1ffb04891d6693fe9c6fcb8b7bffd7bb39ee9a39b4a99ff3523f5360a9c582035816503fc6c2c6b5d6fdc552c740fccc8ec317de50ce1920d3b31193d7644d51e232d9421d5d14015d124c6c20fa4e866e9d4015ac101da1618fcc15a9e3b5a81f56d6229e421c0737c7efef1f1edfdcfcd3c3dbf2c1fafae4f1accd8e34cfe36df67777f747b2e7b7f73fdefc2efefaf6c7bbbba1eef9edf6fd3d563d8703c7c20759a179fdca67d86bf96aa5bb09b856dbf201ae4b94ee24bbcdb678df94cf65d2d750f9cc4ee01b6915e802e263fab240d0c52885666441c658e1a2972269c718bdf1d6ade53c2b377330d507ad3773808dbe86f465ac55ce2c3d7ebfaaebec63e7f7cc33cf67d8b8e64b84d2085bb5307ec0d6025c6319365637aab916aac1d9617d226290ba9ff522bde4ceb011012814a564a3f0ca299142046f930e14d619b8dc29a56101bcc2617beb058d6a862536c3ca2879823fed332dce5fa345843db9b47dac8356fa63fdf2e6ef36377f5fdedba15adaff7020999e0e1deb250094f2f5eba5b3e8143de9a5e1b9d44ed101b44be4cd00ba0d34bd743d24369b1a00d23aab50c95ebd2f05a9b3729d8818b3a0804958e95118cac63aa914e4d558cc8d6feaf691332b0aa657d42ab245fd3a3e81c73e464c5f9fc85ad3e84b2d73232df4943db398164223e546b5b8808ba5917ed70867e30288510329ec65cfc498c820b3401d6a6e992f520813176524a953514767bbf5aa6ea348f17a57552b0372bdd8cbd72285d030109f1015f0994a68e59e511341af54044dc1b59ecb01ae4b348d34ab8d7d11f26a22e82cd86b2882e6f30a100c484db2b745062173004fc2850214a21884739d1660b48cc623065c67d874c75f43ffe83320dabcd00483290bd6a9134cdf873180ade97beb7a787b579e7d9a63b18fff8d2684ce4b084d41a70aa1037416e0125547879a7bee629964a083e6430b7461914226bdd121e62e861aff2f7d4d4d632c8ce29d16289d07f21d1bbb62fcff96b3862da19a668eaae9a061294d5aa5184f10426d74a88d0ebdd802821164f71b3b76905d460bc1463757c3e532d8500bcd462790450306a13f3a4459c750833fb7feefce6811344b9128b00d1c386ee7ced6924243c4ef4d3ed2362934223157de4b3a4509b5053697aa7f86cff0b9f46d976a0439ab375b0f6d134017491f0301349b9d604d553fd8f7c4e9e493cb21882e170aa194b2b0526ad12545de99ac0b87ace5263002a762a37ff3e1f6065b6cf4983daaa295ea0433c1678e0f7de4f0c620e7c5205398d9e68d3c6366194b1a6da845b75d0b83cc461780b5000ab8b77840a694983b10188217645d8d6e934eb8e0bbc22c9dc5d5ac04d20a39356450537065f3a34df9d1b472cab4c503d7491e1370a9f2e30097657c6876635a68f4b590c76c7a416df90218277b7dfc24a3e46845c29a7b939311de120b9f7580808649ae18dd3632b6d4dc9b9a03f5e4436bd16d475d7c0400b9cb646ce1052dbce02bc4b68de0baad161ce0fae5b16d4ee90ddbd67ab958f21ab65e66b30b40021b05768baa43ef058cccb97c1a55ce3579d47b614d4e221897a50f9cac4b6b691f3da17dea0ec20f774dfb4c12987356bb137a2f6d14e78225d0046afe58107340cd221d18c0171ae96c12e81c58a42f81683695c0a02367187a12c85ae7adf551245f078cd12661c1a1e8eafe67a921c4b8560706ca9f21de2b1a7e99e31e998d437a113892b5d5063f4d220759fc8b2236def887541ee1fb390a993fba11c87911c814646ad5e000992508c4026de845744823903324908f240290b6ce22f7548837e55b3ad585cf2e098a01ca53512c5cd691b3545a7676ad225a0d05985021759594746df3da440f5f81d427ecee6c0eb08ba38fddeab5115eea1dd7115ebebc8a050876c3ad7f7f2df4311b050044aaf67b5daf810f10d9fb6c4570c60aca210b9f4c16d932b854ae8cd1f9f58a58938b3bab1cc796c039b20feb7267d852d15a20c0572ea14d6e0f3d6076111781c18d7b110a6b9d98b3e0b0412786e60301989435daf45d68a9436f0abf88e43008b25dd1405da1b3ac3065055057c3ada78140cf6820d04d038d5d685a2ba9955bdc4ad08cccaf49088d40b317424fa059400819c60db746ccc592c84008cd66010019a3a9fcd1c71c12d1ba9074273c7828422897ffeb3a2fd0ab805d9793f3ab2da12e37555370d8de54e9268486bd7c960a104f6090cfebc37c855d043327d896112c2c5986e87a2e33e8a5248b64bba117099e6992e52cd866285966e7f6b5d3a08ced2598799555b587094f640475d20a9fb9300edb1095f2b8f3d6ae2258683c865ce150ae79fbb1fd26588ee986a06609c109deb1b6f1f3e284ca0458ea9dd911581658170d2c37da34a172a9d431102a1f99d9272667542fb4cc6bc968b5119dd25a10cb4222218250098d0e49054a6bad4cab51e6c3427445c336cabcedb11955ba5cad7469fb69e2f89c79cbafd1ae51bd764d5738a34262f3e6ed6dcadf17d172e8ddfce9edddfd9dbff9c35d7a781bffdd0fbb37bb1f0f7a3747074f0dd2c0f6157ce5fd9bb311431310ae777f07082f1162c6450cd91721b42686ce82d18662683644c014e6524e53cfc266bb9ca23559188b450dc98022042c5f9a4e76c1849ccd6a2102468c10bf1ba4b9bdc166829e28be59e5c0cae661bb4645f4944133a5880e8059668686da3a9b0be68f81229a8d11206515b1eaad44232247ba7322cacc82aced8435a085f4d669ad1497ffacc41e20a70d9d3512f6c9d0d9d8a3c71ee41cf12973988d3d2e913da60053e5c701308bf46294de50638f6b618ff9317e36aeb005ba5e414d5b47a9d35e60eaea187f8d30b39144512992822ae422692dfe0001535b00b67bd2d7db02f07af8c31aed943dc103fd53d6007ceaef34323933329940cf3e5019960ae427321b6cc398d7c12546cf2a1134404669ec514952d6135825b2f64a50d0a95049b6c21245ddc96458afe321dbfa90c785ac4225d55289adad3fd5d60727159d20453e739e66551bd94b33c8d4aebb0b61909d0f79049aca2047a0f9f2f67eb9c3dcc8a646ae854166d58835c622407f9adf589b34a017da271645aab0f03674c281342ea165dbad33c9b26d85d05477bf5676a975f747fca19990cd09ddfdcf9c6359b19875e9a1982fc25ee7d3cb9f00ecced8bc07ec02fac749de60db4776b9f4d56fe51b339b6786e5676c9cee356374f25d113941c850576ada0422e4cca2032a92486bd4b04e9cc0d6d88cc38cd87a3357bd9ad8229d47ad1829416de7ca17dfcbbc72a8f3474e70e5419a0be69b9d197a04b05a623802d802539bc0bc916df6ff7a086736ff0c1d6890ba1fa0c92128542e0947b10826e7b4a89b0384a22e45695d4e49ad2598b490d3f75f7737b209a691603240d53df6ba0b6e179f5ff3321c7646f93523cceef36be4529a0941f346bfc8169cc66167c961b3216c64952552ba175fe32c3b2c542592d64a5067bd7035c7332b2f31d8accb7f577420c8e13ddd9b0fbb1eaa6c0e847108b4b56cd12c1e3e704921d017dc347ab21d0c2153ebe407c82c31426341be900c6a5da37360907ed7c8cc07a00139ac0402c70c9273a7759741a0d45e10138872892791cab5091d3b0a19d7524156c8e152daaa82b67b05d75be4fc5a5450514016ec2916b6cf6c1badef5e6bdda3575bcd7bda073ab580fd80db259410116c54534297cb634325349bc2860681f48e469e79aceb182c5927b2534e50705a38c34ee8e03c40cc0ad60b37d0d3eda36d4c143725345642a6dae7f80403c4b5cef25cb60e9a024c3d9703601689825672a35b88e7c5f2c74007cda6aaa154004e732f564da3ecb2334e04678320e8a270b1b322a245eb9df3d6adb60b478d0bcb7b643e35839affba471fa48db127b0071c1c29bfbe7f88ff590efd683ecefce18d41ce8841762735c2ccceb1f38c992f371430c98d7911035b2390332490d9703520504a6bc69e9dc029651c4425d0b116e46510b69346441720464f89c35a610245908f726a2b1aaa205f3105faf5300831b3653c611fe7752f75be6012d9d5b146b0a9e77280cd12ed18d466e3da18e8b5b0c86c9e59a109e5d0a99e0c0113b30cd18a2245b220c7467853f052b777b20a8939af43225b13344df5f3ab47936433410f2984189596cb7bd2e6123d5fd09036797acd00bdac017a04aeddb93c83ebcbf58ad66a83d03a26174b35c38ec96ce400906285b0ab611d140b4b029950a0975e50905938e42c92f7d1a91c0384d50cd056c82136eb40c0b685d816788e2a5ee50d0544f569b2f929e935ab8f8d42aff1efd30f6f8fbafedfd62f6ffef9fdf675e835fdbf7d3af0b8edff74dcb8e7efe4760de42b6ff99f8df97902affb0a835c6a79a741b5312fd2b069fc7596fc351b78a0581ab4daf63afea1cb9c9c66c1d13841ac8db01964213276b1439d08e34af405f5cf04347f99e30dac475fafa7e086c868ac3bc1bbd63afe97586a9b024c2d2e1c00b344c79f516eb075fc2f963ffaa5363b9b37405cb49192aed7af915906473689dcb9aa7e7c163e61123275e4bce2cc72cd6d3853c8dcaed268e1cf13f4010e914e495c6bfd9acb259129d8541239c066897e8d318544daf8ccb590c86c868075921529d90badc19cbdd23e8a4e95eb38459d848f1d0b159c73d597c4dbfece2afd1a186738d512da6ffcdd3e74add9c6fa1a4449d0bbe5528d44ae9244ea494dc0666bd63fc06681bd9c04b8c1b697f35a48647688df506104e6ad8bf0402288d251504229ec04a165110caaa244d0a1cec924bbda4ae73abd3281cc1a632b752391f1664e6d511b7702897ce610e6470e6f1472661432019aaa438e40b344f6336fa0d9c6ae8541e6a7f8ebd5db18963d0a09a9733e3b231863d121c6a0f0da90d09652b93a6174619df0cc6d0e8c1ceed2a8d3c035d442b64d3453ce316990f084f995cfcfcffcf8df6844724644b2cb83194167bfc4492eb5860610ccc63426b91626991da3073658b708f402c5b2d648d465816a3bc59241040e20ba4ea94e15e6e1b0ce42e5ed1ce4a847b89fe97a6aaa3703f271bc2318a7e80403f24ff184ad4d24cd18f60a8d614f273565e43c02ed976b21cb7ae39ab1f972296c600cb3b3b3fc408096a4d33d637328c4628ae211beeba220a95938254978259d970c2a847586f9b77b9d71ea96aeaea9c5f5d4d06b21314dac192f6288a6a53abf3afedaad951ee1b5de741ef0ba48aab3921bd9b2ccae87c03e9225406cc019ea1198f45629cb9d503186a2c28a14f31d66613aaf23771019d6b2364b2b602edc0f5a28e7683287ebcb7a4290c01c237d7d3fc147ceafcd802e3b433342d67ee60d168bcd348636aa69a5eba19ad9c0014026327a373678c8cd349a2da5206c504a50b446788b46b0a72c11725cabe0d76cd09fef605306c1c20963a02df9ec527b46ab98a095311bd53cd017cb218396d14772049894d4a07ae603db19e4e46af2999675f374105e052f6472d1226745bcce24cdd6043d9a4bde26c9fabb7d8e40f3af0d2669a42df70527504833415f2689ec4cd0e3f88d422247b059c0040d8e36bbda6e63912b6091d9697e305a6b76bd411a4790b58628206623c8fb2c824928029364a53a4e76b5960d08984a23df6e655a2fbeffb554bc9018194e5943f3537c076b376e9ae3e0d5756c26e0fabc7770a9e501b5a1bc51aa95d12e96bc066534371b2660506b4294bd868dee82373649e16b0c0d2925852d24262c18db395fee7c565a1fb0ada2e128b7f343de1604b0ede19c68d9a09544fc4204b6fe32b52685beb09e36824f35001ce0b3443d4df3c6be48ffbf29a1732093be12721fc914402409a6b791536a458e0c8b64635773cd2a97182982cd1224a6e0655e8f4be4f0deaa2ea8ad60906d93d9984bc89577e8242e69b96617ca1e23c0d415b607c02cc01e9af446b730816b618fd9308172a951aafcd91aee0fdd18ed0376d90899910459cdc267630b9bb02717b275db18cd955608e0b0ac5cd15053ceb1756326a44879471177a30d8bfa9f3f7278a39033a290dd6a801168ea3dd7116896e8c530bfd0084de39033e490f9380152462963555f82b0f46c34082d8d12641489500e12ce6184c01162c76b7563e478b978856635e4cbf5fcc7af87430ab2a502a71b875c2987eca65846a0a93d91036896e88938431b6855ac6be190f9200160cdce22f638a4ab96b0e482a06c9220b0245c9793486083271581c36aae301eabf2add3feddc3be8cd574488f439010d92c3cc6b25e2fbfb1c717299009b86c47be0e7059408118e35a38fff5b0c7fc083fb8720d7756f6d8035ca7181084e29ace6fa21216cb6d4d08d6ab48cc5eada34076393443c0efaa58059aa6e5d08cdae9922c9f9243f3994329eb77d23f7e9a6d1872e1dc98e133dc55bd9e41b604e7d04b714e73719d05e90c5c5c6ab6f36e0c02950b7f7f16520719404a0154cb5e8849f81ca3305d5496d10536eba4f9d740d9b10d653bc85230d15c5c539d778d5a9f921cd314cb852996da769f40cb767ee5192d4bd4bb14db8d6c8ae562c9a3af58d47cdf5d69ed405ad5b3002b0521392585ea42ed99200b0f4e09e3a10397a5d7db7d55ab908719977febcdd46f3edcb69ec9a466b1967857bffc047b1c46637f911feedef887541ee1fb39fe983fba31c89931c80464aac83f40660906b1ca6df48b4c91340639430699edbab3b26059516f216546a9937241a48eb4a0885984643b61591b955d74e8d47abe5f9c5a03b335c1eb462013bbc480ad5327f87edb18fd0593c8046cf6592c3bd82c40226c60c34d855c0b87cc77dd2590d180d873ffe66c286a1985c6680569b022907622d56d870643a73daee7dcc2a9cd7adb28556873f4430de2486a7a01ef6fcb3e3e6ffa3a9f49fa09c0eead963bc02e524543dea8d683b95c021bf660663bff758b192aab7a41305d86688840741c5050974804302054172319705df9ce5a0406623be53fb98ec9361534eec1c87243a2a995d1ae56014d41a6def31d20b3c4fc23bb8d6c3962174b200305349f9dafd82281963d0584a603a76bf1acb34110b314416a2fc05194853e82566b11486d4b0e91b92b2adfdd600b349e20906a1347774219adcdae5c2a854c81a6ba8f0fa059647645998d6c9d986be190f9507cd0ac4843bf156393a394541268eb3a65f6287ca11591b3a32e776033ac6504abf176737754d044c81487685296e5a739e4d09efbfdfdc3e39bdd52cb9d8d778a433e7278e390f3e29029d03c47b82e25431cc936427f3d14321b8a6f016b23867b2aa40359384469d1c96c0565cac21646118c1113ab2e5017d66be68fdd60e5866a9b49d4dc606306b14a5737d8a709e49070fde77c5b5edbfbbfce92c7cca18d38ce8b38a6b0b20f4f5dcc068644dc461faf8739e683f0999d026d6c6f0a058d92a97352187651904a5258ef407044b4268428e35a466228ec31ec085643cb2f73bc91ebb5f05f0f752872e546e084ec95b690eb5229640a33d57c7fc0cc021442441bad1b835c0783e8d9307a606bb5d3763b6e7d60909add51d487e892af0bb99885d32e0850aec3ac18a45fcb495c938846d5dc0f4ff15debb5405e8b09cc395ddeae13f8e315ac0f3e32817585322a24366fdedea6fcbd7f480747d89fdededddff99b3fdca587b7f1dffdd013b6fbf1c0117674f0d815860cdabe7e57d8594ce63f65894d35310f085ea41fc372235f84d09a2bec2c186de00ad3b393f9249d9144aed7900928c9b86085ec8c116493152128233086a8d9b3e9c25a99f86d3dd8e7b563142a694f5930f953b6abacaa8b4e38cd9609b37017e7c5377b69491b6a76e4eb219ed9b17e7244389ce98fd242954f0e41502ecfc27b9b442630d2f89ccc366777952e8e1d3b2b2b30bffdf0fd9a66e4d7423b405292e2139a38af612b25f5d4d4bf95f7f06e7b957efac63ffca77febdfdcfce9ededed503eed7e34904f4f074e0cd4e02e38fa954ba77319a899c26c25b0036697e826696b36c63606bb1a069b0ff307569a94eb25690632ac83cce55e0a6a31d017e9943c8964b2f19aa50a72ad2cff6aed1cded0552fdbd6dad9d6898d598ceb0beae08454b36645b8b43ed214589e130097523fe80836dc4c6c17cb1d8346d26c9a0039d69a4c7f92466a19a48f42c64e0bead80b1b240af6441d782943b7569640f5e50c81b9dfcadada48e3a21b0096fb42f569def8cc399a1517517efcfc5aa16d61d7db14ed1dd0b588eb0dd5065f646d65d32967c135439d323bf86fad3592d0f506ff41b92c5d70a29354936b300a973889e08c93ae33a8745a4fa78cf0b08f935d916d5e914e71dbf53f6de7d875eb9549a7cf01340b9088d27a63dae8ffc552c840ae7c64f45f932bda957bdd1a1d4175ca888ea1766b120a674d1dc1f1ac0c67021fd73309e0549c6c6d5d629bb9996010060dce9dd0af69539b97ca2053a0a9836a07d02c21430060a35e4486340a39430a999ffc4702455a61afe30fd9c4987412d92527a82e1ff396b4089e52962aa5c8eb6cadc48a519a5a0153a1496d05cc44cf5fe942227c82d5ac71c8a572c81468aa743f8066010e31ca6d5c9bbeb9120a81d9a6890665a4e1ed4dcba1df6e5db9305b1208b22b2a2448615d4c82b30fda441f7c5a67f29f8484e9baee6ffc731dabed3deeefae0449842764c75ce716b1a99d1017c21df5a426e0b22dfb1ee0f2e53b28c191deb836fc7f2de431db042942544a30aed7724fd246a34c166cd90b729d1596ca955c1bf2ca749423af55c2aaf5dc6183f2b90982ade53ede3fa9acc113c4c76c0ffdab37403e767e2b37dc5f8469cea7e13e81ade75e092e355369506ef845322e5bc3fd2ca866d07087f9760948ac2d5ad3532a2ad630190fa20b3e0b82f2c174809d309c583a4b1dc775862a8b52c18951af0ff9e65739ec872ad7502aaf856cd894b7b268954f93cd4f996e59dde405bdf1169f7e28a838bc94f5cb9b7f7ebf7d1d7ab32ddf3e1d783cdaf274dc78b4c5c9ed9dd66a932d2f43606731d9524f6a02afd58f7984d72f974ab58ab2e117e9f637023b4b029b6fd690612719fba5b6720db4c14014dc3927c81a5f0735ad302926c9813525b31681918061ef7207ce87f2e0add436de98298d36a724dd5c7352da85d7db26305349e408330bd4dbd0e046b5a4ff8be59041bd6d36a659b392851d748f415c0c603d29913a438292f22264c7e5cb9c299b884ef9b5ea6d6ebcf7e279796c331d4f300833913a25e8ff9a4dc7174c214f1b97a74cc707d02c61192bf8dd70ebf75f0b857c24af59b2ad97f25ecf46525758c57602439705756485f71c848f59479d7db4b45a484c8d9f9d80668503b49ecda8676395d578c294e44fa9a2ad3666df6a68afb086b6e3ae1158f7377cb054130895752f247f5a0ded2cc86b5043c3f9ac685938c416aad2c7ece56b688cd45a24eaa2a8bbb344f916948f6687d9110554abc5c39871e2c5ae2b7adbe261260dcf58de5036270ccd7c96e760c5fe4f533f5fc4201380d9ed97bd5d3022c62adc1036f573a904d2573f381bccacd129d4caf596d530c6ce440bc2da7205a760a2709d0e42669f03211995d7da73062870786f57d150176fe07acb6a5e8df8610267cd09bb967f8afaf9d4df6932a8c9a0e77d3923d8d6a9cf036c97f0c2019a0dbf0889351974162c369441b331cf8a9d344526f554106b93ad4a4900db20a85c1985f76445ce923a1b74f2611d27c12eea4ccdd4f0a46a2a68ac82acb1d2e8163e73cd4a680234fb5ada0e340b9088756aa3641342974a210321341fb34cac98a5d2fdd11d132087227d5cc7d54d2db508a6c8a19894f1842eb25e6dee93c65b6cf7c61ab99e19edd528216b19c09da084ce3937e059771de99fc7db5c68ebfe4802fdf6fec79bdfc55fdffe787737d440bfddbec7c70ae870e0d49635b58d1278e52ae82c2682765eb8c9c5d347905dc050adb4dae8a6822e97c2862a683eef19b42304ee45702600d3b14f22ab54282c91172ea311cee568c91736c375029fb71436aa0aecf1f054cc6b14764461ce82b4a70c047d26857d85f9d34661af96c2260b794790fd720ad3566db644d918ec3a186c363fc168a5ed30443ab18d26582f3278144401848b3a09adb023ea3047588dc126eadafb91d61519ecf5d4f148b201b58b667cbd32acd5f1be70ae74049afd5ce9621c02864dcb6fbb600e1914f266631194026283d44b91064e39d8ae135a230bb2c1090b5a1711d4254c2e2acf6bad9a96661c6658efa8aabfa725804e56f2d829452750486b055d2485ec4c71e304d072df7500cd227e02a537ba2d22b8160a990f26501acb3d2b1979cc215e52844c5a181f6b206de510559e4c323227c26c12ade58a2b70180d59ef3da2d036114cd8091c01415b4470dd1432c2ccfebe0b965a4450ee29cdc6343bc1b550c86c3001805344cad81e85580b31f872f6e0580ad20944800c2246ad928c0e545a6b1d1ac8b1b9a652c81fe26373a44dc6b3314825db58ce95d2c7145e2a7d1cf0b2047d28d21b78914e48a38f33a48fd95002879a0d58d5638f8ca872d24e44925110aa280a996891c91ad6992899d5c67240c070e748b566d6ad4e60da58ce30d54649b672b7927df9b19c55d3d1da44ce2b9dc899406c9dc33e207609feb2802fb4cab375f2cf82c0069d7c9a0d2640d4baaeab773dfd63127ba8c3615a869aaa9345c0984407e839765dca76b5541d3bc643d53fdf7ef87e4d067b3dfa87cafba6dcae3cfe710e9b09c9f9aa793a4dfc7c51ed6c022c55fc1cc0b244268171bc81b6c4f362b9a32f7e68369300d06a658cd6bd259e3149d929238547d282eac7d2aa2005a75cae4b0ec8d8d546717822a0b0c2e1ddc33ed5b3b9c07adc61eaab2a4fd03fad787671fc514f6a0230db9bad036016708011e98d69fc712dfc311f06205151b988f71c6039a604212a1155dde0d9d550689559b0a410828c04c9ae283d86669667e9d11c6013e53328d7073627488fd6bebf480a79922053b6c903689690209ad446d94621574221f369004582a06680de62811c722c12240a19bb20c85a2dacf3585dc4917cf4c9ad57bed2028770d86e81fe7057a0d01a3023ff1790643a6194f2b304c8c1fef18bfc70f7c63fa4f2ebbe7fc9c64bdbe3f9f24c3301adfd8e5c5c8a6958998d7e9185d1ad5172164c336c94cc0eed03021a636cbf53e2c9b0519645ee580be2ce0a17d88b1cc8820255671fd7932b9381b4f5ceab25384f39c5cabd03e853ac626d60e582e5ca38f6fc49ae2c97e28cd66e54b38b5d2c890ce4caecd83c48ab908d7670cc21215aa4144024954cf58b2951d8a33c9994d82a6542a2b89e5c915370d8ee466f1c32d131d18ccaaab64af39a39640234bba1c73d6816e010e368836d60e55a2864766cbe5008a1534ef5f22fad93a86420e1432814a2bb202c7251251cd95b549d97ab2d6356d35d932d32656bba8f6b5e602cbb53e6e6e7cb585fbbe8d508e48bdaee1390a99edf23c82c903f496436dc44c8b530c8ecd4bcb6a89572a697dd1512f894b31446e724c89b2c026816a62b0a04930b9cd6746d4dc5106d4d282d7d729c3ec952d95312f8db22cd36aff22296b1a9a4bd23b47e397729341bfb228eb1d685390bee1a76613e32af6f0ca0835e13a643cbc116194ea8bd2092b509e3a460abd0799572a7d72aa0819cb61cd7f1e3270765ebf71f939751d2b9135a306d0f5a63b1174d0d18c1b6b2d801b64bb481c050db83764d34369b1ba0a464a7d9f4f6a081ef0cc5c4c2ba7257459d7322644542c5427899b2ef925a4b835101e9048dd538f1276c360d761c660fb6bca427189f3fd349a0fb0cb6f53dbfbd2b2f557a49fe9a3bc9665f5b52384d406c57277f86d80245bf720ddae816d97f3594c3b383fea43418867e56a60cc4282989e07db5afd92c2c9011e443ec0226e7bad5fa462c7088cde7614d6c7da331e968670cab1386355bdfe842fb461390791ed7c4a528c41adee816d87fb10cd2ef1bf147c6fd499124d0ea9841c84495a3eb041b5578c3252f7c1db8099c353a0919789d599bc2202070981cbb9db5f17737d8366f8e57be685d5e537a99dadb57d85d46bdb2dbbf95b7f16e7bb7fff48d7ff84fffd6bfb9f9d3dbdbdb61e56df7a341e9ede9c071e90d10b60b4c5aed6d19169b80ed768ee700db0542071078b36d543521749934361442b3b103c6488bda60cf4057976e9ada38d2bc8d1d20251c6b2888895e514e2e925b51084dcdb56defead633d0bd161a034d4eda53326bce798ae7f9571e31d8f6b10efcf5c7fae5cddf6d6efebebcb54306dbff70c0614f874e7018a0948dc39654625363de47985d408939ed36a615f3ae87c366730f9c64d6125d2f794d6bca2e282948612de1f922c5027742676dbb2ed9e4699d59d41d870d11ff5c99d0ad983716635cfe317c828baf25af5d6a296ff80cab05fc08300bd8e8f8a5fc07ad92770ef431a8e4cd461958634849763d05d441928a6bc8b3ce56102b2c0aa87c326d4a16a2ca0c2c5732d149379d21f5c7fcae05af4dfb0f54b91d60f569f66853a817c920750a750234d5c27600cd2249069a37dc82d7ae854266930cb42344a3a817644039745925129d9758048855d5ca8602a2493e58c8d9ad96dda90b20a68aca75267b3d1ff6eba1102290d2ca13ba41cd4d70a1043201992a410e9059224f8dcc06dbeae66be18fd91803e52c18ada0ef25702979c4aeaa0f23c8a4246a695f8458f7b566cb69a5d501dbcdcd72ca8d56b7d04a6cfc31d18601027342fdaad1c785d2c704627629387bc42ca13fa42efcd176075c0b7fcc86182863cb3fa617fb8c88944c573e8a1d51dd3cc3c2dac4823b0aca6aa378cd2c4e184d45d71e7e4d4187461f13c1cf8a48ee92763fce1f1f1f893987219ac6235fba4060089d6d27e4193a0bf08893b0e196a6762d34321f27a0502990d44f53cb949d755ded9cbbea69862402d77801c90cd163f416d76ba48f89e4295e03d60bc3793d44825632d2f293982dd3f97530c8ae973e6690a74932582a92868ddee8d64bbf1606999de40754961530f4e2d49447c8297a21c9b0200e35d239963b1b97b395c118d47e2d064181c339e3ca20bfcae106d71be57f3d0c02969c72a774425a33fd62296402343583f008340bf879b9c69ab544ce2be110353b9a0f0456aa5ea4990d4e655259782227888c171eb0136854d60e3b48b89a04c189c2ee9b0f5b2cc8f506f35fcb3c0adaf24a2a3c21ceb98d55b6b1ca17a5b07107f3c3dd316c970807a823292f120ed04652ce82c3fa23295acf0b216999a576bd960c48cd107c142aab2428a9f2540c28a1a432c9790ed1ad962f534d6113d8dce2a18da48c894c912eafec093c76ad1329ea4524d050767c4dfe18e2e5f9b66fb18914701b6ad93217cb1e3d05a4cdbc02528ca4ad829e9f58f9d479dbb1c048758fb3d3c26793457449d7567f7089d76be88f62cef75d496c0dfd317b18d4c6e20b85cbac1fecdcb8e44bb76c0ed1f3bc9a76a99e3e90c4b622ed7ac86436a8cc68622bb9ef2d4e64bccf320b173b29485a2dacca5664dbe994817330ab2dd9b4420e038ff66890d4b864cc25b6c845d51a32d7cd2023ccecf734ef30b30483488d1be6c62057c220b31161804a6a5707547ab6b0141387421c59d562560851d80eb2e07281469d94b1dd3a4dfded9a99111c2a34ebbe8a4621535d19d0e52d556dc9e6d532c814646a3deb009925e653b4b41bf52231938d41ce90416603ba08b56564d5eb8674061164b0222ad709f2ec8597a44457c40c58d5c50ed7998fdffa8a2709a47a2465cb4a1e79c28c2bd787972a67add813797e512e6e41d98bb0d7f974f327f0ba5f8a2b970a4946c7b8512d60f272e96bd0cd37f3116185db9041f56b68c8967d36c2c4a805191b45e13010da4488de44cd2eaf258060222fcf3fdefcfefe2ffbbcbc26807a0c065ce7f3e5a7196c66e5f357dd0edda4cf17499f09b0d41180035816903edaf1c6b656fec552c740f9cc268315cd53648ee11e739457c025e794f03ab2209b8cf0098b10d2045d9762eee46acc51fe4c8d19fc32c71b681b9a47b960a8114ee9bda8a3537f787fff5113d86abcf17c6a4772a72b6451c1b079f3f636e5effd433a689f3fbdbdbbbff3377fb84b0f6fe3bffba100dafd78a0808e0e1eaba0720fa5edeb974167b134b332d904786b11ef00de25da4028cdc6bd484859934167c1654319341b53068aad538ea017b46fbd43af158854430228582f6c9df3b449762c7d484aae339cb3cd291b2d4fdae794e17a8da0d7c2660c04d2b86555d01cf3bd149d4d9ddacaab992f9b65a640b58f32c3a55a45eccc46aa4632574332b35966c0542ff38e8f39c6a40cd1e6283aae9b996d281c23bbf2a564b0d67426d38a660398da4d513ba7d06a6d132c834cdac81342680ebfef17e5a27cffd7f7e563f7fe71a711261d6b1f39be55ddceacea36019b6af33cc06609c30168da70cb10b858161994dde693cc58832b77b64a1eb308e944c652143e7620483b231c99f2a5928e3b36a1dbeeff6daee7336411aaf3f0a04f6091830be5f7f70f8f6f760997f7b37ae52387370e392f0e59c7f64cce6d746bdd5c0b87cc8ff083b24085477a69984107033919c1c9cb9a6526452095840117c879466d575b8d8cd32e98ed4cf27aaeb557c421ce6ab4ea8458fecf69dfac57f06aecf1a523fc5326cf23b87cb9698c146ca84d5d5e0979d8d9117e04835ab2ecc59849a363265d67648c1694298822527cf997949112644aeb6c7429dc5157024cb40e7fe71f6e4836c7f32805d33a6394fd34739c7390f2f3af3ceaff6f1febd0f2ff63fdf2e6ef36377f5fdeda61c37fffc341cbffe9d0890c3340295f7fbbff6c5ccf1398dd9dcb3366bf9cc0ca754b6dcc8b4c7db64ecc5950d8a013636793032c709147dbd8a383752d70344a261193ae1fc704c27ac8c2ea983a2a37d7d1af237f764b2da722ccb61bfa5a236682c49cb104f684ad32ad84769122e869ade5548ed901344bb46188a8cd7d5e30850c54d07c72806349647b639fde6765cac74ca8ae80a4289e4e14a2494291b5ca7380a0d25a228805f20430eb1819722ba04d15d08a08da16441b835c2383ec662f47a0d9cf5e3e81668965006037b2d5d1ae854166930300b496e59a03bd268c4b9d4dca27114c8d0eb0ce1401c251388d5d4e0173d866d5aca2429cd82ebb19f624ff98dfdd80692a649c3d63a4213e65b7651bbdbc28eea8ea63022cd54a7c00cb120d7c63f18552f81b779c2177cc4eedebf27192caf5932f037a0cf5b3d841210c4a7550c575286264c356917166350f981130b7231cb051c7b880c5aa805b9e30afd2d6225f38914c40a78a90037496286349a537ee4586521a919c2191cc0ef183746c5083ece5f15b0808d953511d5609ca85446c725974c6942b64cc06d38aad90494d5eabba4f9abccd3d1e4b106bcc76b9c28236b0554b586d92ffc2662c2700bcef65ee00bc8830d2ea85f8acb5f6cf82d086adfdf9497ed64e59d39b8e0929d9d845233a8985cfc876c26b8fa2d3b2cb9dd3c841aed598818974daaa8cfc5d73364f36668c5360f1044a6b339617aa8aea494dc0667b1b7880cd97b76618ddc6b6ceccc572c84014cdcee91bc9ae70487f4c5fa74e1b2b0578aa3b01b888a3e0bdd0c18271ced8c223ebf5657064707e2a35a36c9268b8ded228bb336a2c5e595b75afcc274fb245c32cdbcf1981ac12ce01640bc896ed564cdb54cbc532ce50b5cc4ff5832c576d437d4bb28c4e53b4b1e63063d12d3908e7340b69ca3721b081b0ce56e56d47470e6f06f76569695b47679c0da3eaab6a4fc98669cbcc2e51b5ec7a3923d0ec6a5f7bd02cd1cb61361bd596995d2c890c64cbec543f49d60e95ee95be3466743aa3701d74821cb1f0da8248296326e333e5753cc9bb28ff21de2b856cd3c955a3907133074d79474fa190b6cbec3209640a32f55c0e9059804008d5c6b591962be10f373bd85faedcac1964bf75020ce8248bced55098109c082a75226874853c6220b78e1f791b0a33cad9ab035e35e5e2299eb2b54e7afc51de4c23ed09a6b2731eed6f0cf285d1309399ae47a05962b25eebb64ff97a286476ae1ea8e8134b72b00ed34b1f6d5682bb2244284a27ac3651904f527746b14babb5dfcb9fa9bd12356842bac621630e91da906a1ae48a19640232fb6c9627c82cc020d2a98d348d41ae844166e7ea9d01d652434f843847dc39eb8472d90a4a648afe282c423e771e657431f27afeadc9be6035a2e07ae962af8740080bb4d99ce0dffa291b953ff5771a999c19994cc067db1139c0670932a122475a45eb5ac8e42323f6ca3201632fab527551a68e8d801cea744b00e1103aa172223239b8e457ebaabbf102a2679749cbca9fe8aa5b2bebcaea977073b539c957c3244f06ada9cce303741649ccd772a35b61eb5a986476e01e74b99c97bbd85e560bb99c22692d42a84422eb58498a20a4578819d14519d722123bd11bf990b7fb23565cddf55a3cc108c64866b37867e42b8c4ab6d0e3cfb4189f45e8f16ee7cb08b3dbb8b167cc2e32e90f66a3b1798c2f96c2061e63f791597f666d89facd19e728e8884a68a34c51439e84354e0a2d93d6dee62cd56a8163e74162af470d81d316e9942dc74d0dbd8c1a9a6e8c5c289728a337d056505e2c930cc4d0ec88bd95caa1c16d4ac6338f602030ec8d50ce7782749744283248944b57e46c52c2d8add7a39153c195db6161d37a34e31e4d793991f409dbc35af8f14532c8d384fd5480e51168bebc33630137b2c58e5d0b83cc4ed8832355ee26a0c720ded94eb22ae0c808820a7b08679045675df04e0783dd3a3bc4763b8c87a145d526b65dc7da52c7c6b38eda596996df60bca64becd95070544d7bbccdfeeeae9ccfe125bffff1e677f1d7b73fdedd0dcb69bfddbec5c795b4c3815331630acdeb2fa69dcdbcfe0462abcff980d8258a6956f266f7316fc5b48b24b061316d7e609f94740a94ee4530772e06dd85a27a547682283861b3ce823892731e1276ab89201ee7c8fea95cc9eb328ba708e62682fa46355bde4e7d8251ed705bf3e7b7b99cf347c333670f6e02e8cc04d00460b60c7200cc02d634a5edc6bc483ba629a073209081029a1dd667a70ca2d13d671a386bca353d8bc854480333140514a4501222a071d9db750665b6b9cb30c47ba58f1adb0a6d587faa864648567d9a3d3e277979eed8c61d67c41dbb90e3115ab615e767b42c6146032737a6cdc85c077718393ba8ef245a6687bd80ca002ea59c58d4d53082125ae10948504030364bd621afc41df5f70f4dfef54eea0ff171bfcdbb55cf8ebaf80681994ef0347fa6196d45e9d1ac68afda8a3685d87ab77740ec12fc25995ec84cddaa67674160fdea9991b339011a910894353df5439a03592d74aafbcb32b0f0ca5aa1a2ec50a68e40ae13b1dcd6277f7e07a8c81f40db0c0457aa8156db9e8c0a37dc1c04174b21030d349b1300b08d2ab3aa171480e8d090cfc297ffabdb939508928d606fb224e3955a29a57f6b4283a994feeaa781f582025e8b08d2465211418b13c85788e86f1682576821d839e04688dd477bc052d904482c37f2454cd44d049d05830d45d06c3a812363c0f677386789ca469385255f088c1508273d943b2be55297b20cb89a074e8defe72a815568aeb879f3f56820d4465977ca344e4bbab97039545b4213f0a96c7280cf227b2f2d6c946e72e852c964208766f309ac321248aa5e3e814a0e8cf3286cb75343525867ca95bdebb2c64edb046b65ff4b37beb7aa0dd29ad601ebb5845e1199a0e1f2829e3092d3d65e5e30894cc066bfea0f96eacba071b0312d2eed5a48643620c04a4b58ee607bf90014003b6f4ca18e9a0f50febaf0819570d1382e7204bbb05a490da7c39b6b96790b6f9ef2a44990d6e10924d216005c2485ec16008c40b35f00b05c7c3359dcb8b63af95a2864361ac059a31412f72824bb0e129924ba586dcd3907e12ba3a8a4a38a3ae9e4d7ca490318e76454a34b5da8d472d2c6d634658d017782abf9a794b40ee6f83fe7dbf276dcfff54583d2a0d797f1e987b7474d996feb9737fffc7efb2af47a32df3e1d78dc95793a6edc9271d2e1ebefc89c8d2d6d02adb56a7040eb22b66aa68d79114b41ebc89c05790d3b32f3b104a4246aabb9379563135baf751452a79a90a692b05d8c825cee42ca4cba5b31214d0edba5fb843489ad8c36564016a5b5963f4d602d21ed8275d05340c0103afb84b41d7416d9c5acdd86db88cec552c94007cdc603284470f58a7e4c24ce396b95e984b560056915844b052fd1056583e798133622394f22511650aae5136e9ac1b931484f8d204333385f0f83cc0604004be6a22dfa3332315bd9a18d42837345817449f8ae7c3693ce9dccb6f39957f3879d474bffb594d2b8f007593ea194f699bd98f533d2da98e72bada7ad62270024deb8e670be5c0a1bd4d36036a8405b36d69a7e5081b5c9a81849d4429b20d505e12d2a91cae531a0b492b63ba6d6524153d8dcded14153416312d3ecacdead13f9842b6d7eeee6ab8fe93419f4a53268089ae76c5c5888442cd9cd361db8a9a08ba490be0a82d9a00057ee008d29ff3e661008b5ff526f66bc9482c0b3f0094d11411ad1e6c839fbf5fc04a39ac0de4fd0ea6853be6657db31a72cf06c433297cf2553f0d937f8976bca382337d44a6ad74226b39901e8481a4d46f79a32947c76318914a8c811e994b05675c22a452606ee945b6748669b3a23a732376b828654cddf3ceeee1b32acf8047f738b6cbe38fad845ce8c00b38f6c7e02cc02de662c5a4435fab816fa989fd777855b90a157cd926cb389a6135d0a4e90b7202c042f287ad721749c1daf471f3044e673e27f1b8f99328741794df884a67ea38f05e8c3dd48fa39d89fcba91dafdb477d1a47b9a9877d3b4d1fcb3df4888206dca2044e45626ee7f78fd2607ec29681a9719c23907e396591b21b6ad5b3eb602c8db3a900463a6976f37fcf84657c270dd77dcf0a8c20d45978db25c14ee5dc59a56d5c87b0b60e029c5a3958db91689a8360b4650d35b813accc3fa572b6dea68167dfdb9187e0dfca5b78b70daf78fac63ffca77febdfdcfce9edededd043b0fbd1c041f074e0848300c1e9351d0453b1b117e5201841b67ae00e905d62cf34b98d7e91509b6620380bfe1a6c59c3d94482eaffc19a1bdef3c0e9a02df82832744a501751b8e03a6193d58cc104ab683d03c1b64b39d50b7d82666bff1c73984328d7e31372a2af3bd5e6454884879fd4afe82018a166bfab73772e4b747d8071a39b08ba58121988a0d94802cb0e90b117b329a3d4b9eb4810442fc8954fa4876884572132eb4e055a6d4f27091c51c8b66af17083b655\",\"ed4614628d564e9f2083aeb56877c1e4514f6a022fd5327084972f2fa059c31bf52216e6c61d67c81db381001ab492cae85eaca633de46a340d4ea9a201d940821daea62d6364be52cacb3696dbb64400ee5f876efa0bfbb91a62d19180e718223c327a88fcfa28e95636ca6cfedb9c2f57c76afb0ca75469b0046b0daefee7882d502be8282ee17ca4c6b65aeb3609961996b362dc0948bbc53167ba39ee46c6112474599100a924a0befc9d5dc000d86620a6ba6058ce6c6b6ce822ad8dba8e7d8e30cca109dc0339f39eab9bebdf9e2073e2fbc5d3301dc7a7f7800ee22016aca6ed48be44737223b4b229b0d2dd08806b4e19ee340e50ec9072f0c150e2315bdb0a1d3a24828233b97938c7a2522ab818223f7cd3e50d035221bc67f5a6296a7d4da7e8ae560dd96cde566805e36854d41b66ab1036497a03042dae817c96d6b14768e1446b39905e50e54b922c58c3de6b084e86daee64d62232865235c662b3a19b289e0c177eb70d8aee64773c5096a0da3892d08a88865cb006dbda309e8ec377c3e4167810d9f06ccc6b69d6c174b25fde611cd66178022e5b8fcabbf4f079c371abc08b67c2289a229ffa73b91ac916050ca4ceb748f8a1a4281c3dbbc5ad6fb658e05b94d0d0dcb7aac8dd3bb45598b96f556cd00fdf819b636d292d265025fb5da70c0d702d2c5396a696b974c3743e5321b6fa011990c424fb8745279a58a66515ad34eb8f8e840b84e9361e6e0d39a81a15366856dfae07ae33eaf47b8d45e083b3c61a1f435a7ad5db064798aec9c9b9183a5066ed0206fb86d00bd580e194896d988039024ad56d41f1985848e2d91d0909d20b441d88c466813c885188dce722d0ed16234e35da1f99b0f45c1afb7bfedf570088335887442c6c1dc04e8d79d166decf145ec3101973a9f7680cb12cd133676c36df9e7b5b0c76cdc408ddf4463746fd406a4714997db1892a11364808535498b2cbd89ec43cab8dafe689a268f3a3af0441ecd2d7dbcfc139c2538215ded3377deac2a3f9efd09477dffc7dbecefeeee8f5affbfbdfff1e677f1d7b73fdedd0d7bffbfddbec7c79dffc381e3e63fb2dada385f79f7ff2c4a68bb699f11646bc7e608b20b38b19da48d6d1b402f97c18635b4d9c001079a40ca5edcb4edd8b8a2718a16af253408590496561846edb8909e83b5f67f8214300a3cf48f377f888f37a09afc19cb1f867203a24fe8d9ccafd1f9da4b779a04faa226cc04646a01ed0099259a30d26e765b319a02ba44fe1828a0f9ac01e3ac56a6b7f5d390b221b92c30061635b258587241b872a94fd658f439ae671d9b2c2657ff0bb471d151c35f6bed142c3fc7b376d85a9bdf798de6e79d616d04d8bd610d161b4425561bf322ecd5e4cf59d0d750fecce61d14e963aaf799fbe6672284049d80ac3a41e5622942cd5f2305527bafbcd16b458602081cd603f6033cb85effe7b530183b3296cd09fbda3e93c13e727823b14662c3099e1166f7133cb854134a39b9512d4ce17a386c364cc181ae333cba4761a6403aa365d1810c82c87ae1bbf264402a174c485aead502df783c84b05d3a5a9796b4f99d893e94c6826e75820dee9c49ac55f1be74d3cfd4e4ce1168be5c0839b61bf32243a0ad8a770e1432a8e2cda61880028b0ab1c720d27aa749a1b0da48411d97ff03930a9764ef1d7097574d311802b382613b12dd52a727641032b173ead30c3293e5f65563df1a737c697ec0d4b91cc0b284054e49dc9836f37925d4c1b3e90156b26476fdfa995229d88e5818c250eb674678824e9842253a276f8156db578de38d89150d75244d3603c1440f08a1c8c65d3448f34f5f1d794cc0a5faa70f7059803cace3b6aded7ab863362f00356b32d6f5e2024c96aa0b9d17069d1694ac1681a313ac4c4cd2d565052b864dc310eefbb069e056b89ad82fca962c9c103cd3b6dd5c28873cf5f087cff0d974c34b85ce3892cd81763d24321b02601c56f93168e0270921742474b9c80b62c8c2161123ac25c55d8756d975ba1fe576ca081c0e176c1d2d1f6e6f109b00991020481274eb7e5c2b85d431ce09d0eca69ef7a0592204403bb7e1d6feb8160a990d01a8571c630df7b61168625bbe6f85475597de58579e499784c919bbdc45e3d55a1900b5a23b0c35afa27c5bd15d6f1bc1eba1106bc8903c65e9668b91b9500699c24c5db979c0cc120ce2c06cb8ad4dbb1606990d0270d66a67b8bfcf262a8a04d1091b3dd4b569457f4057c39453072a70f90b6bb988ebdab6a9b518f57e8a1a834c54b28c7496556ba05f21754c81655bbf7a06cb12d4811637dc9a20d7421db303f880ca3ae31cf1317764658d75c10a8d8904051745801885493a823399835f67175a0b91f9ec1e48b91350ee84fcb1169adc125fd64a7c41ab78635b6af2e5f2cd605c846747f6593a60e05ed35df92e67ee48a464cbdd0f7b162ebb2cc0d8d8194b92d38a5e5f9c5b7f846d63d9c8e96b65ddd87d4266d967d2cdda8b5edacce3ab9f791cc2766fd1c7a5b696a1246e438fd7c462b383fb4669abb5ec75fda9e39c913b012cbda02e44e1bdee4406edc84507727b07b4526ed9080efbdcb21559ecf514dc8a0c9656c209b2a915dc2eade03605967d62d962dc51175ed28b445eb67adb3930c7a0de363b2d8f5a9355bdbc4b050a55d251749e3a419eadf001b530042a27977256abedba2481a35d976f3e6c8b01b8deacfc6b513fa88af8a113ac623f655df3e1dee3cf6f73799a2f9e5ad67635bf2ad5b3abdd8de0baaf8de35253fa40841b7c915651533d67c15d43d5333ba8ef34a24107bd5e51b0e415392e8a878ca00c463893a5602f998de4ce26b31e7d8db267eb82cd8a87a7b8e63631d32330b044b4b31035b3f315ca9f1d898c33ce3fdc1d83e6cb49849137ca35f973a914d2973f6a765e5f69308ab05f389398b24a6c84b45ad679fdf24c0274a2d3d61669c40978c5c0ffd1007265905a0b58715effb50820b612cd29dd9fcf19d6ff0a599793a7d76c06cb16d946c0da57a4179bec2fd8b61bd792952f9767065245cd0ef7033836c0d4f7442799ba845d12d12b14a44909276bc6b2af93fe52cb106125a691669cb0576fbbaacdf32961af31cd91af8db563e95ea8d6b6ee7c7f2bb7bdc272dbce993d826cbd393c4076896065308dc2ae89c266a30580415b0ddc6b16258f5133fa425e9e04a9e44450cc029d8d3abb8e935ca7dab6dd0d3dbd2ce3c3f3b28c6632e87bb32da2e313b2cd9ac9e0a2aa6cbbcdd023b0ec17a9efc0b24ca400b7cdd017cc1d8332db6ca440513fda80b4db1b8967eee098b26524e142aa43669d16367628b0b359b9e89079cd6cb3e16dddf656aa863441331a8c8c06ce39c6130a6d9f9b6cb61a7d7ce2f45ab16dc996ce04ba9e930361a9991e62b3d96ab3a6542e936d864a65367f009402664ddca31be272f907e3848e50a334cb2d50d0d60870592a29b375abae319b8be3c01640302155d0483e69aea749954b932a5360a9f76607b02cb1c199e446b5fccc8be58e815299cf1f60a9493ba05e952ba4289d8a49484920a82e12b31a82600fa973517167565b1f4602a784fbd663d976384ff469a4d6f0326d9ab5f738b716cdab6ad13c39a2a76ad247685dc0118d925a8fe692d96ba87c66d30ca0dc265b866dcdf599bd1cead859cc226db33b6b848ec3227c3aab326a1b830fab091f9c986d7b5aa8d10641a71c6dacd99913e6400f135ebf280cf1c63fa4f200dfcf31d7fcd14dfd9c99fa99404c2d151c10b38451cd016eec8bd4ce9afc39070219c89fd91c0150c6482555af70265df2a9032b9c0c350e0794f05cd40f02849cc0050c6e2df5c3d36dcbba07169afa19ab1f56b2dc127c9a3e3e739e664dfe685138af5b024d4076bfba1996924008c81bc34d025d2c830d25d06ca28132dab2b5db6daccf14e69d09167510865ca13015ca530163852e6c46ecb2f361adf505d20a9cda29f8ed87ef6fb0ade09c301b80534abb13486c36a2e02be7193405f44556b509c054057400cc120a081036b205505f2c7f0c14d06ca640b991900e15c81e7fc84c41eb944497622afc61bcf0e092c09843f09c0da7d59617e81933cd8767334d1bd43992408eb4d5f6844881cf9909fd0ae9d3aa2780bac21915129b376f6f53febe08b0831afad3dbbbfb3b7ff387bbf4f036febb1feaa1dd8f076ae8e8e0b122c2eafc7ffd8ae82cec704fdeeb2182771b15f6085e80d0b4711b683da1cb25b48120d2b31907c06cac74ec7a4d21158cd3b203218db3827cdd091a03176e031343a024535cb12934bcd9ac069f6d89db364534e634cd52a13ac1d5d0dc7097a686a6c0526fff0e6059c20d87b8514d0c5d2c77f4c5909e4f2d90ca18655d7f6e47ea1c9489e5ec5570853a0209afa113ceb1f452475c6b3d026d213aac0d3c23b325ac8da9c329d0644e50439f3bb8b36e6441e3902f6ac94ca066e74afb71b98835b04e6d6c8b98be161299cd0d7096d8dafe869d80aa4b9274911b84a25ce2ad70c627a1a5256513665a699df496424649507b30c8f528e4b5d4d3585bb2469e107cf399dba4d7cf979e39bf36fab92cd58cd0556b5d47e85a62f41379a3db229ccbe59a61b16b36694001bbf299d2ae275812c4581b3792bb2808ba245cd29d60651832a890e55afbdc6a66d314e2b7994ddc6a5d13b52e0544bb62c4c7f9e6e32bdace61a95b532d5f1a77367c86d5387380ce1291352c79239b13fa629964a05a663304942532ecb63b920e1102beb3201508277316148a762962450ba58a7a719df3deaf980c0dc33db9d51553036c413722190b17656b00d109c2a5d9c82e913ea600b38f52df016689aebbc28dd58d3dae843de66304a4b6e06a0ecd317d74be8b5a5b252c59573bed9d0856a2e8725659da98cd4a1b3977310253f4b11d4cd6ad7132dec8a92d1ae39a0eb96e22799ae91f42e77929a15eaa7b228d6ed199d7c324b313fd089a494bee6da849e48df23909d315faa06c503893ace88256890bc5700a6be91018abf2fda6f356d09a2012a558ba53fcc88d472e984776b96693a5e003721699ecb77a834d915c0b8fcc4ff6b3065d13df7b732d5d2054542ee3ca8628081d0b1753145a9a2e046b9cf26b2da0813a1a39715b558d8d723d17f06be9c39717d2293a6128f273c65a3e1582d6665bce94d4cea3dfbfb3278f50bc8fab914bd9934181daf08b58cb5abfff2c586dd8ef9f9df60709e824985e9d2d66679c2710913808723289a01315a124b34a3ea8d0ad1958338c6faa55e76dfa856b75b671bf5f71b91fb127b4693e87d8d64bea6c9ae84bc362a6d2ce8ee0b2805d4cb1db40abad5d2c7bf4349172f36b6924c86a4eee8fb778e563bd2b14295a2f28811736582b2c4067d124907e1df6c08a511a469fefa1496d4fc0842a32061dd813ba349f1978b6ea12e897e690e1d2c80be290ea139b00cdae3fb307cd021284c1b409c9eba1908fac9ab1e5a78e5caf3f13352572460bd65a0b32190b7ba42c8255c43e148a88ebec0bd8c68dc96171a01af06b7a92c456561b1288d4928cc54f13c84f5918b07683e684335d79dae545a8e76caa5f5360db665d3e836d91960ef1065bb4cbe5924fbffaa5dcbccdcc21d9c23e7c4c3e00c95bd5954b7fdeee65ce2c1c73f52c2371f239595a8b7c400a9acaa1ad9e4b6a5965e3b866854c7279f5f29151cc96d77c261c761679cd3b9ff408b3553e1d30bb48dca6921b7e115b42e3b0b3e4b0f99535e57e5b1228d76be170a71ca61c04c6ae2b0a8aeac635c7821569af63d2d6fbb55a3885498790af3775bfcae146520b081895e01c29694f58d5f99110cd733227708fc91e6f73a1dbfba3c56bbfbdfff1e677f1d7b73fdedd0da9ecb7db37fa98c50e074e5911d47659d82b27b2b31063f5a426705bcfe508b74bf8b41d6c548b1eb81e229b75d899f23324e857023349cea8a4f04ee77263a5ac08cea340d3a5c8517bdfad9695761e9b435f4f33c921d04b2ccf69bda4d7d14b5a6b7f2722eb8d7b91e535ad99740e14326826cd9bd98049952b8eee25357ba3a2eebc13092009f25697a722b5e83228d5054918d64a6a9666dc5added1eb85dd38ff06aa41049ed104f68267d2683acbd78ba15f35e69316f0ab0bb5503b7cb7921aa59ea85f8ab69a0b320b0a1069add9e4396199d95e698c05ca750ea648a22afa9392e061110ac6013a54a453445b95aec014c6fd3fd8dbfdbef9f6e1aa8d7923204a0e0040abbc65503172e7e26c05267178ec0b280f871481bd7ccd817cb1dfd015539bba6862453d132b6573e2b37d032044b826d5d3d9d6c12d66010d9904d2e759295594ffbc010ef5b34945b29a0e6c51e07aea1066ba851c7b551c74e778cc0b22f14ecc0b280ee28b7261bd9a20dae853966b7d4282d8db1c6f4329f9394941893488abd20862442305a049b3d38b6851ad6618eed0ce808eefba1365ccf40f07a980395a3f26a9e6021b8d6a8ce0b668fdd14e8e8196e57a41f00f3e5c2\",\"433bb7312fe2a26eec7186ec31bb9e069dd448dc2f5905899dac3bcd12fa4e90a54e580f5698e43a6d2dc2eeeab452c96a7206b4aaf0a79e4b638f9eee606025f904f6f8cc0d35abbaa81b837c61e96a7206f408340b94aec0d086da10e8b550c86c8e80b50e48f5f72b73d0c9b908025c4d56934c75bfb215c187ce900f5ec26a952b2d7068cadc55aeee6e70bd11d0d7c32058b3d50cb956b9ba32e6a895ab09b0ec2a577bb02cd131d7da6cb839beae85393e121f00cad6eb77af5fee9207198bf8481a05217b1124e8c21f516753aece31e695a803a4984c9caac360d8d29d272c5fba660a69f369eaf8cce9978f1cde28e4bc28640a34fb094a5c2cd899a57ea1c1934621674821b319002c8dd368a857bff20e1539af454e960525ad84536c44f2d120b8a422aee8191e2f2adbb702dba2b23185d8f2a2d2290198ad7c75a90c328599bd6d77b15d65602cb618cceb61908f4ce03b42475af756035819ea6a0016115410e4ebd264f9ffb377664d921cc7b5fe2b63788fb470f7d8fc91b4ab8d26910f3499ccf8165b02238d7a64034034ead7df88acaeaecaad51cdcecea92574255e0ca70054f7b4d797c7ddcff1a44554bdca4603f3e074dc2b4479690432a4c2ee3702b915db09596675d0941f9061f6bd6cf830f2a0f8f4df9fcf3cf8bfabbffcf4ef3f0fdf8e9101e577cf2f3c779f3cbf6eee3e613944c136f3c96661ced3b21dd2d04e65bbc5feb0fba82db0663eb90a8c4d6e01c8f51337249159921c75d3bcce0a124621a5ce82c89170293a41d56a66a30c2eed93243374d366f180c79bcd2d8b73de4b530e8cbea497764b1c6b699c3bf6e166e576bcf8bc591aa7d2b6d3ed14cde3e067ddbd4fd218d6468ef69015a207f020b297ae5ea049c2476f854ac8d1c4a0c1efb5075093fd66eefd67fcb46b024b420a819562ddf6901fb30db7543047806ce79e27369da2d686bb57804cda70abde794d4e5b2de5e8184d11297d96d5b7927a12a47a5fbe121785d6cab95e261f61b7039dd7a15e6e081fd25869d505fae5f4effb7df94cfefad79fcb4fddcfbf1cba4f8ba39c575edf20727510f9781582245df3423e0c44ce46b9d355e4f2930da8c7579e31434f10b48881ac208b4a04462d2c27677c5fd395f55ea31c10a89776916ba6846e6e96050d2299f4d0d36f1ae4d1f0f11cc2322d98617de654309b2450bace7e4817abe1e30af1b16aa537c6a23da490bfd0c3964f269342102e931314c0084e1844ef3dc49ed029b74f7cd7b04b368bf41ee2bb7efd728cf46e039473272429cb74c122c05b6e29ef888e97377736f9ef0b2f6a39743f7dfe92f28ffe5b3aad01fcc7e7a7af4ffed39f9ed2b7cff1bffc7417e0f0db936580b3172f45f28371b7bf11702d1399a5fa3d6628c9ad6261d0d6db9c1fd2506b2399aba0d9642403abde7ed06cb56235e21906e3b4964140745990325cc856f0567ef67a1f5c9489f769a90d91fcb398a463243fb464980535e4d06850175c486b2db53bd6440b65734ce587adf261d04ad799161073b7149968a255773f30b051ce8decfd060ca91051a4005a9056bd708e487886debae025f7bcd75c06978fcefebf1cdb5c66d9de2fcb9fa6be2020a61d76b94b84d4a9cc42d1d4f7722a9a0d94086be854cb87791482acbafc75618506ad46431999d164875ee8de83207024186ab4b1948e0372522eed25439490d3c2ac3de6baa82f5d9321f3cd6450a894b920dab8b9fcef92200777cbac686a2febac68b6881803d74e833d0e42565dfea0a83c4d986114784aa924d2be1afca3052748c55ce3c58c884ee558f8814aefe8f29f554315214367d73511b21414533b0cdbdf066b22e43610f23c0e597a2fa7a2d9408490321f340d6904b94282acbbfc011d4a6bdc082108de4b6f58e8484910411041ba288a2609458e78c7bc5b4c3ecd8783c7aeae6cc39085f1be56aa1a241b421e14218751c8ac686a52cc59d16c70e49ec176c3e74063c8233064d561ef18118ae81859540c67438cb9c88ea805451f4500ec852e9ff83d7024ce7b8d4224cf0783b51afe9cffa7dde85a6b64197b89c3f1647bfd7dfef6f493ff96ca3fe1c73582acbfba01e48a005235c842c9d4a7ae53c96c1135866c3a6c00791480ac7ae49535b65a5446471e7bad6d9f490bce320bea290a078a84752966636c8fb0cf246468630d3fa64b0b8a68db82f1741dcb584b526fdfc4da931f2f6fb09db8bfb994b143136d56b2c77cd943c96eb1535c4fbdc08700aced145f05c1a63bc5eb367d458a80e56898ef7b19421f50241d92a0cc24bcb535644c69e783952eefb8533cab87e34ef133c25a1b6dd4467346b1b944039d7aab4374d7309cfffc54befab4c6b1d7ff8ea685ae480b1d9a69b3d23976a09f4b6783661a19ec2c342d74af24196b215cb5ea1b5d3ecd957223738af1a60fe5235938ad4990312c82b1b168211b7a93c8f4b0db485f2f5c42faf55099ed6cd8921a52ba7e425c60d56ff398bb444855230b45531b08a7a2d962af185d675bd8cba31064d5ad0f4e5b3c18944f77ef7b1bc87216405c94088628bcb22c4017b458c89855bf9712290c9976096a2dfc630e9f24b4d8fea90e01a30161fba5e25d0fbfbc841c9f75d37ef9920bb4be9ee5f5ffebd7bf7dfab7f84f5ffef6f4346da7fdebf0677cde493bbd70c9a07f48abb8f166da5518f4eb9b5a28d9da4c3b2bd90d149005ecdc87f8625a33ed2a003669a6e1aa41df39e90c5835f256262b8deabd119612080a2ad7c0995e703610743449f97d34d0e08cc1a5b5e6bae48fcd19b3a0816afa069b0bae97b585823b5440075fccac64ea0ece59c96ce08b2995db596e12e85e09329140ebe67c034e2956e3932fc65b49ec84333e08d22688a04c9144ec49e9beda3177ccdc87b5f45768275f661a88b55406d46fe3e32d8965dfebd44b0b2ebb0b5d7408719e9571d545a732dea0ada7c976f42181334d165d05d4c6b248eb75af8e720a0bd4e4c8ab533093249114ce539d0d8117010bd6145927838cb948a9c75a32b815ac01966714232fb804f0c6c9d0defb0577bf2bf706e0dcdaaedc6e0b0ec6eaceb593688fc3b155bf9075a57ccba3d108631a54c8d2f602acee051d8edb78238a8a43af7be319f639c87908be99dd59ffe9d743868769189baa3363251879813a7bd32d823529f751f85a7e733b9fdefc18d05c855e7a0ec79916d6f162fb7361bd1f3456ebceb69decc7e1ccaaadc8a266b61a46632419c152d04a2469a420e75138ca5e440c455c454ed2e27e9b10f3f6c1af4fc358f5b90bd8c648e35d08a5e8a255ba470e58fb10865ccf2069a1688eeb43cf45b3c12089b4eab0a53cdf2d43468324ad576d3d805a91d144238684a8b2f711ca4f628dc791d90867ad16167d72365134712f6b6a4dace505ed3e24d6725bc75e68ba513dfe70c1f59bd30fc55ff297f2cdfdfad7557eacbcb4b1e38ad8f11cef3c2d96977867deca145a2aaed32d9cf341d861569d3cc06840ab71b29a62e3fb1aa5a6630106f57d103e401641e6de830d11addb6f0901a777cc6b9bab4e2f513674ccd1c12859c105c96abfb55a701deb080d26ef1cfecfcae778f8fc503e5b44e480729d6ea69e4781c9aaa947596d9d9372640bf5984ce24402b82741d51b1a509562a15e45657a4f2eef04939ab7319d6756980c791bd060b270b34c82467dc1f0bfe9907b43c752b11c0fd61e8a650374288d9d6b32e451c8b16aa6d1464b0d4af3393958720f92b3601d8320170a39d8a1701c4867a5b857bb2d8d950a9d3e471dbdd120db14647ea80c9405ad2fe860b529c85d12e4f94d2d898fb3a2d9620ae2b0e5733e0e4256ed34a81d944f711875b27a34eccb47bc08b648610a1084b321094ec6f7de1a4b4304f92e0881e5b8f33ff8a73d6f04dccac216313802bca08ff5163bcdea7257f3d15c29cdae672f6ca17e873351a7fadd8266643a6af902f78bb3c9629859bdbc691c699672e40eb540de64678a04222588ad2b7fa55964db937192faf2177bf5d26a60d44269d6f075a95b2f6dae8814204b75c10672cbeabc635d74b85b302b9dda863e95ce26079c75275b67ed6e39329145ebd73709c11ac661d9e30524d5761933066134b1a0a4ca97928216316aeb21b2b4bc674ecd74dfe578c119b9b5d6168206809d751780a4b5d6ee1221cf4935d3a2395e707e2e9af78b11edda70e68110b26ae947a51d4b872329a223818d2e1682d403ce361811c0e9224502f4d6a898e23e169521ed99a67de6636152db115b9022c6a1e20b82ce5e89dffcee699d0d20ef0c7b9ed54cd520a79ad962cbd828e8b01d707e1482ac9ae9092d5962333abe49d1f6415a25648c7dd120490aef3889e07d326c3d19da67365308e2e68a7cc8cafcf5c7d6cc5adc323686505f723ded71b332ef1c200b2533d8e45f4a668bcd62b2dc7103c8a30064d5250fa8d994cf1c3dd220ac83d3648c5006a220a74381872691b30fce78ca92f639df3ca48ac1ac8bf5eb21550c5a176b6941cc015e74bef9f4effb7df950fefad79fcb8fddcfbf1c86d98b2ae495d7378a5c11450ea95eb3b239c89097b2d920d54b3add516b643d0a45568df245865870ca8d4621da3a65152bc1413941d15bc19ca3709935071f53487a271902303f615157c4fef8f57f8f272c9a0c19c9109016554bec7f4c7e547fe342c554e17eaa982d4c2a863b6881fd0f820fbbee95af91aece681ee5ac38035edae044d20a8b08c94938cfe5e752b2cbbde2dee8bdccf2f582dfd209a4e182df7efcb8951563464de56961f339faee4bc6f77bb2ec8e578a9f2f6e2e3def9dea751b77beeca0654dde2fbf262bc576fde8a602cb56591c9ddd84505491d749249ba22066530d97283004c71042af70c749fe7c17ec78b7b905852d0820d49af1922eda5b5c32fba51a37f5f35e7e2c6d819dca650b7e582b3bfa904cfc267fae011f13f9b3ead107b4851d4a8f2f5ee6c4e5f35c05611883a05a2b8cbd17d23ae36c0a51997d3689074bcaace08f7bf5b8dfc1b2dba107690786d5051ecb3683b9638a2c944d7de83a95cd16ab601aa91be23a1a451e8122eb367dc7680dc891044936e6689517118afa200a567866101abc0b3d59a3fd3e3db4831d65693172d8acdf2fe9e5567a68e5cf860cda0b04c86dc44dbe7c6fce1a6a3efdf7e7b36edaefea2f3ffdfbcfc3b763d44cfbddf30bcfdb69cfaf9bf7d25832de7e2bed6ace832d94edf16a0b6e95350348ba33edcce5fd526cda4a5b75e7a3931a6a2b6d340a0a3d307923622229ca5f78e1d107e1b24a0674903aee13757938dbb2741e6cb840b1df79b0dbd1420e75f9965c9074d91a697726819eefb54cabe5e5c8d15637bf80ade9a0ada1dd2d3c261268dd92afcac7b72d0fce700e0f82820aa9487813b2208b2cbc4bf5ea69829c39658e7b35d240ce77fb6b5fb9a686ef6887b9150d84c84e597bc122c15bd8b1e7125acb2abbafc582a502ae8b40a702dec4dd09ba532dabec7e81365543ab09010086a5d6e38c192d555401bd48de06413d47c121a230167d0fc4b1eff7f277d635d1e9b3e6cb62b56b409b6e15684d665812b9759ecddf5dbb95bcf1faf5b4ae5ed6afdd569c21b09d6b5db7c7e1cc6a8e00a096928879041af4c665677c91f1d5061a198553e5ab71d967d2ca82ebc35e2b0856c03424b62aa77a3403a8ad20ccc3cc942332ee826bc978f62756fee09f9e7cf8f5db8faba3a3575edeba6f57d47d3b5c9a99154d552ba7a2d98022644c27db8db2bb65c8a4f9b69e24c06cacc5e147e1b4c426bd8c9a823029fb1a87e944c80a04297468b0d7c698fd7a6f334f407da41a2ef6350fe842f78d49b1541710a4e52adf3747964aa7be9753e96cb20eedb85d4e7e1c90ac86096892f57fcc688863b23475f35968c32ca87ccc8b805e0aa781a9679dc0ed73b2ecd0f35a9a690edadc34902c4811a934bb0b4e96b515803b84c742b954e57e2a972d5a59ac6d870d1e0f020fb71e25501e588d46e346322491acf9012cb4acf9ac06bc08c1c5c14b039a7dd0711f1972d81f5b32050c1b31d8d6a0a713135bafbb980b44c81bb304763b96dc92046e7610f3bcc0367d2f955e67e5bac5fa33c84e7d480fad0d62ae025f93418c5b4d12e02273b472e3398c2ef2a6b7b6402b0559c44fb4c2c78c827c8c601429ddef89afa52081a11ef68be3bc157ca1340a145fb0fdfcc629ccee51386befaf8dfd37a6cd52eec059756d710a135c673e442b35da5c256dd693072483930ec71768a8d7ac8b301256d7e04e26277c2ee0892a38db9bda77db2bb853daf9358de304b35da0591cda18ada4ba6065ba8dfdefb5e3b65434c341f497a2d9625c639cedec87a49fb58edb354064d2715bcd1dd074881d182996689d64e62ca4774990b35810c22890541f3453944eeea7588686c8b432eb3315da66d89cb7dc1c1a65dd0508591521df59b1347cbc5384cc0ae6e8707e2e980d448824d3c97680e651f0b1eef7d748b23c4b8c626b5c4a06aceb05504241a637051f5689cc2e9087e4b3dbe7fecce182d96cda5faf28d7734cfb4dfb6fa5e1a559a2e50b82cfae597ebcfc2bcf4636c33feb34aff973fde5a77fe83efd73f9939d4e6c8ebf3919db3cbf743eb3a9f1e7f2f66736571159f37c416d16d151f4cfa964b7d838289f1d1db7f4e7fb25d8b48bb61e3be0ac249c34d102490ca49db0d2ab82300411220c9bcf148d066ddc3ea9034501c1dcb45c1fe8fee09f8ea9036d667396bca634813be4896c9fbcb6f7e6f3cb72c419cbfeb3fc493e0d438fe7ffe25ffecf7ff63f7dfa8fcf5fbe4c5976f8ad09c99e5fb840328401fe8d64db48b185caadd3d6b3ca7dbf14736cda38e89140b69a3660253210d068770eb346cd168529cf4d82126b11ca7f25b221a30ceb9882da6f1a044b5d92c1cfb65fdac00db5f28c56cec80b02079a85e78e9b7acf56d05950477d067c299d0d349161ecb46c3dbd7b05c9a4a7b79a264035bf130b35ce3992735028c90a8bc18ba281ea39b7c2118dc6f69a23a53d6f4ad39215b41ec7256823a1f95681724074c9486865adfabb6e603772bcf392f4ac580eb7d45e8a6583719056b6e39622f028e8584d1160e934291e5f02554812a334851abd1535d544843e05114262d6892cd26edb046a7e17771807fdcfb7e325e9d64b3b3f846388f5c6e1cfdfeb78418bf1bc9b3deb852aae7bd66755bc81ab476bfa204f6a6bac5d05d4a68db5d548034b86ac6435da9173c084c1e5f2a3188b2042958b20ca4e80029f64ea35d83da9b6e4ea19eaa1b97a6672c8386979eb5cea86b586b5f7636d5ac6c7135b722bfb102867baa1b5d3b0f61058e3f5b005b054e0c2729c1aaa32ca8c282cf54a1015ae714c56686f6d015e8c8e763bd6530a621a80783c5e25a9716daad65c51da7c01d6d623a7bfffcdd257df6173ab6e8c9b6975d536fa59756dd01964233bd38e213c0e6e56b31140b17420e57033fdd41ccc2a4847bd60b4bda094b470e52542d92cad65088670affd04b39cedf387f27fb0df9dec5bc14df98ea2647dc189d33766fb7c8765f1b577d880b3e512c3427d1d42e08ff5b5d56237b5b6dde300673d1e01403a538834da63e875f938c3249c89d5da1aa570d159a14c2c1fef399149692f79538a746af4aef530d4663ba93de34d91ab700828bfa393da6db5fb3657bb176ab73e2b9ed5ee06e2c92075dc2efc3c0ccb705d3c81560e11ed483c49690ab3aa5a825c97bbc1094fbefc95d6563229ea6dbf97787202975c4ad5b587ed36ea1466169db466e311d4f731273dd200ea0df8b94581b650c3c31cf9a586371068ca50673e64cbbc31ed2a99b6aacfb455e48c1b11cd82d3367112a9cf459e918dc2074582b32d2fedc9e2ae37ebd402d106cf856a449bca3346ad99b68ffafe3e54bbdfc4ef8f61d85508b367a7d4b46a0f4dfc63d56ed164b4283bdda65a8f03b1d5fc3ca7a5d35a99510012440eaefc8e28c40a827cef85371885b25af539f431f47b996e412e6712d7e35fcf99c4cd743b364bd5740f7bc1d27b33dd7e084aaec33a75b89b370fcbf7bf9c95ce1641ac127577786a6ad6a97b24c9d83a85ab497aa0c920950ff3d1b42a66474428a2041264b316cea01759d9dc03a69cf6030908583b0406ed6ede1c24800c86dc0541446f1444afbcbc21e4ca10b250341521a7a2d9448d58db0d838186904740c86a921d012038399e11a590c9271544b289ab05d7082f590aeb8895656667f6eaa8d55b924b59dec32d49db1032dfe8068b85f7176811386df9ffd3d76ff1ffca4b5f9b14bdf2f28690ab43c8ac686a1bfa54345b44ff18ec6413218f4290d5083950e5e35b2a35ca42f546e6a0a07023d51087a4b328d4d022cb64502a1338b8fdb60c605a0c83f3fbd71f3f4123c88208318a24c30553996b4ef46e0479e7587f5634c70c7cd88a20ecb8d31fb2aad608728504590d8f03b46c49bb61fff37450c8698329d5dc0e8982b2d62270f9b9d48e74f6868c34bb5d84b002a7b6b7e34d3aa486908581084856e6823ed6a31e14ba737c2c14ccf11edda160b6e86119929d6be1a38fc28fd50439d088da48c5a3146b4e2917b2f8223c0a35889215215214d62902903ab2dd4d82f0dc365df9f1e7fc3f47db74e3c7a88965753d27486d0ef2c00c59289aca9053d16cc190f230d9993607791486ace6b569622b9d9123e3a74e5e67432054e18b200e247c512a428560b422ef70bf43086e3e153c5eb86aa3f4a5dd6262a3f992689b3607b95b842c14cd1057f352345b6c6369d49d6c6dac074108ad67a391656958e911434005eb2906e12257bfa52b824459104e66832ae880c349c19dc26ae663c141953fb559fa2243b0fc1159ba40863486dc2d43168aa632e454345bc81029a9731f92b0d91872850c59f5eca351a01cc0e818423258b0919480588dfae4ad7068acb03d4adb7bf694f6ca3bab9b254b794cc366c97e7967b78310a7d9613bc7d638b25439c7b55eb959929953d8413baaf3281c59cf314359c35fb4191d64abab57b20f5148e620c83a299c73bd88927c449394dbd31a32bf737b2c87fdb25f6e07240522c0ce61234923c9c271f722e34fa5b389c75036923c104956cdea50233ab4451e990c7b903df54609ec4d16840422181f05b2ced2f54cfd4e919887e1fad4725b05fa3027dccfad7e2b992b8ea543ba4090bc25456cc7c5ac1620766701620be55bdfcba97c3739530d9df910af4acb5eb90a9a4db25768d5324fe8c8545e8d568d534a006845ef990bcd2289f2aa5e381f0cc86874747bad8a815cc8c42c0f773540a26562cebd2ada11ea4bbc2aed804da30d2f96577d583c95d726ce48e85ca3cde3d066d55daf2593b6da8c8c2d9c63c05040a3115050a8995f5a6581862cdbec2966d88f36306d6b1c69f35c9aad0b375a4c368e51e1f6076cda62f2edf4df168ae6c890c37bd96292c34675b6f5dfee962193fedbbabd1e109424a347fd37e3944e9682000bf5049a24e17df6c20233206bab7ab30b43868b9b384d4f3d5edc44d54ed24c09a2eaee065cb053f69606dc77b87fd65a7077218a0e573d67157cbceaf95cc1ef3f4ca3c876b6dd90be5fa04d45d12b767f67c1a943c2c8e9a82781239f58b804f58674af055bb022044e10327895e25e4403818b2b9ffee913dadd88763baa089c34c074c199b5d7fa6adfbf0fd774d1bb30b25036f5bd9c95cdfb3102924d673f2446bfe9a26bc0c84417ad9bfe9566b2d6e068555a2b65bcf15e708a206800887649402099a3d22eef741a7ad04530f32fd7eb66e5a90aa85164bee166d06836176cb8b5dcb1bb65c842d11c9b09cf45f37e86944f950e9a61f35110b2eaf947405b3fc0c79b6d01b255360be0ec6bf6712f187510593b0c852d8eb5dc8b20b4705bcfff520af3db7117a01164d45b63439af405d399e6d7bc5b822c14cde142fa4bd16ca0421450e7da74e64110a2563dff241541fd1c3f478897dea2f449f4a9268f496b8b1c2908c110224476d6ecb44e46b54467aeb33ae0af95f9ecd76c0819b5b224b202dd44c8232364a1680ecf5d2f45f37e8490529d6ee1958f429055c73f68cd208d1ab5b11478e74cac5131590ba2028f20a1fc58a6dea10a08d1ef39de5fda76198683ae11641e1a2395d3d082c71e9a200b4533a4f59d8a660311e25076878cd486900740c8aad99f2c3ae5ac1b79fd9d4300a595a0dc932822c5091f331798d85e4bd563a67dbcfe5723426e65430ccae3002a7dc186d8a9b3f997fca57c6bbffe7575bf78e5a51fb51cb6f4af6b46965bd3285a9bce3623cbfd1266b2b3a556530014312a506a8498e07d4cd27b51fed30a425bcf7d9114c4b6fc75a690778a471e56b6165dc475f7e43904a0a994f1912f50e0541b953cb24a59289abaa1725634ef67083aa40e5aa3eb6e19325129abce7b44b0a4a51d7921fb9491722ad5516022c81b12de210aeed9696db3d73b5d1a2e0841014b83c37fcce113ec376dbf159582acb5d3ee822099373a214f3f404318d9bf7efdf57ff3d367ffdfe587f643fd2c6b6fb3c9962d91b3506455b69c15d906a315769dfe909b2e4db65c0572a6b265d57f6f1d32a33176349e578a92edcb277eaf9ca0a8ac701194a89f662a21a1ccbbed08939815fca133f6ad546e932d0b3bc2208b14bd803ad7d81b6b72e5bd9b5dd3aff0651d12b61aaa58a3db51c93b66c744aebc72d69e9432ca3a359aaa64ec1d48277c8e5a50f9941741962f261ad7cb6462c4bcdb51e276d7fe6dec280f03560f8f029b4685adbfba01e48a00b2d7517bc3b2a376c9e551f8b1ee7207659c56e34b2e183d82efa548a6467f71f2f526b11221f5818cec3dfa7e2f7c1821a78559f131dc356ad15f0bd2431230c84b2626cde47ebf0c59289bca9053d96c11fe659deb6413218f029155933b1aadad557a74d85e1a9268622f7a8eb66a902c421f7a1113499bbc668efb64ef1fc6ee4b4f54c304b125a52c2c072b4603e64677bb1a3ade3b6e5f3cbf7a2a960dfa579a5447cd99f828e85835b73b06631171e44c8c929d241385f62108d24082b34d42bb4020010d0e6ba77b2d05af55a6dccf57722be376b0bae8c961657bf3f35fdf23ecfe9577d906ee1bef092fd9b7ceca6c831d2fad55673ec489d226ee57419dc9c45daf1ae2cba7be7246821c8ddc93b74c1a8b4609a8ebe1492d82c5288c0ce89c4367f26e9245cd971efffceb2161a86d0a2f85aa4836c82cdbdce46185cb42c91c93ecb6db13b6d634e172c708190b17bd6e88570e881dabd1a23059cdb2575e98882c284514410729b03c1727a562f27acf839333736f2987e1625d9b9c2c1004a595ce5ea05ddad194bb64c8f399c7d9dce4d7a7b3a2d9626ea29ceb860ce2c6904760c8aa23de900670684709f332fb3e86e88451210af24a0ad7672388c063907dce6eb7e6172e4765d735f89630bfe889d7ca14867c44fbebf5bfa381e48a40727090cc4aa73e7d9d95ce06c677e33ec8f8de3872851c59b5bd1b597e531b394e56496853d11cc2e9a0046907c279ca8255f4d666a754de8d234ae0ac9955371a6bce506b662d2c71116ba9e4051c694b5c77cc9085b21956e74f65b3810bd1aa4eaac6900761c8aaefdd80b352ca2194fa74a7c4508feca408d9664131d4afc44a013aa41cc104c27d52e68776d6e2567c55e6cd47b2a44594338ae505edac169d72970439b4b366455377b94e45b3453b8bb4ee5443c8a32064d5c6ee6c5dce92a32d60c62cc13a2f1c242ba8872c5cdf7b918c54de2465f26e04a907b197ba59c341ec469085810818436af8886c03910725c852d1d43ed6a96836208845d5b966467c1080c0ea3c04b4b2846c69b40d0c4947b2b1172a521234f4b090828896a2caac15e03ef98d0d216f6f6469d4c0e682adac471621b221e4dd22442ae8a031e45118b23a0bb14612484313434954ce682b64d25e906110de71214af924b6c138f6619f4325052120068534dd30f9e3d7fffd244d43c80c21da6887ea82a3ed8f7ce9eace09b25033751072aa992d08a2093af521798c8d20574890d54908234bed1c8c26215e49976270027b30827a29454034429373be8f1163d8679a3e4c42685aefd52b559bba241b41e66e762892d2c90b444843c8bd2264a968ea7b3915cd060871863bddbc218f4290d5410820323983e3613a73543ef756f4d16541d4b308d9b0b0de797639b04bb017425c29d105493e44ccede70db915573b16056295da3e44fe7b58daaf2440fe4370731d7ef6e70cc7251fc9a9c036c00d48c51f3437697ef6ab00cec4cf0eab31c01a25213a33024e0e4667abb2000c7570627be173112e4965e5494784a12fbb578ce37450fa12e3084db3ccb7b7343be40b02b81e79f47ee79265a1665e321c61abd13b4007ed38efdd126422595673801da065326e6c45942643084ec854740ae53ed435ae7ae2407356917ca47dce5e0d8a6558655d522c5235c532552cce22a3be60f9579fbdf76f3f7f7d7a6de8beb705f1e51dd68f97e77f735fa0518ba2fbe9f397947ff4df6a9ec2f15d7d7efafae43ffde9297dfb1cffcbd71f97cfdfca87e3e8b77f78fec47cfe2fcf5e9cff7bf823ce67df4605c69d94517d1b4d15bd4b15cd8af8a88a0e45bcc51c07aced0c365574b74c9baaa2d55c62d084ce811ca4f8a90fa7a3c55830d6e788820c15aac5d40b033e45b032299777a1da608c9cf7e17ecd83c30bf64b97bc1d59444a29232f49b76f06fb3b56470773e4bcc3f6ec2986ad12234963476d25e06e49325147ab29c59a8abc206747d616edfb90d80481216941d126e1835222147e608e3eba1cf752475ae0f421af3e58d5c2446cea68ba10808a585d126fff5b577ebf7762e4cb77e54c21f9f4df9f9f4ea2e877f5979ffefde7e11b31d243bf7b7ee1b91c7a7edd5c0ab164bc7d25f406b3cec72aa18582adfdf053c16ea184d862e73ec498d994d055f06ba284703def98106dcd2e1da5556a522e6552c2f7de08f26c0483cf820394ff4f6996c312dc5e79c74b041bc25bb129a139c3ac53962f51426fe9f0adbdb6a99fab533fb37279c93ac6ad8eb4380d9d69c6febbc5c748fe28b7eaa921600476667424b2f79965cee5cdfb227a2825235cef59c4209929b0f26637f9e3044efbcac71bc3d886435374304a6dcc25c130571d2ef61bffceb6cfb6ede4665661c79bc4b8d5e4061075876d9fed7e8133d62bcaad7a70000934381a47235bc529e99844cfb920875c16ce441241badc4baf89e58ed1c88bede79aefda26378bd1c80886e0829edb6947e52f9f7379cfaf0a96d51737c572658a65a160eaa8f3ac60deaf5894959d6bdb6c77cb8f89605937e0680dd2a9c305db9362714a11bb5e28650b3e543defa59212c173cac96b008f7be1039683f9ea915568c9fa0bed2e5600e69244e4e6e1bc5b842c144d353e9f15cd064d2f69b0e336f37f1486ac5a6a503a69b51d65ea2b9d22669d84956c04b9f21fbec7286cc61e888d293264af9e170b58ea790dd1aeade735e387538ce5cf6bdb71c96e27eddb26f49df5d316aaf725cd7cb34d68ab74673e248fa0f5d3ae8265d37edaaabdc718ad35238fce1db39285634a098fde0aca90844bc18abe8f99d80629c1b705b66ba499d60a145d1068f3f7ecaf7d1f970f8dd8f69fe50ff269f8b47efe2ffee5fffc67ffd3a7fff8fce5cb146687df9ac0ecf985739001c2f01470e3207ba84536c5dc29d938f6301c5b77f4484b64148e38e6629f72c25e78305a5082a2cab433f5802665cf96d3f0e8da54d9d5714c11d4b6de05ab087f0fc8f65b666b08bb6584eda2c55cd162f021b73a1bc3ae9261af98891c201b3732a5a2456d43882223484131a170b9fc555166c43aa8f2f9b927c3a615ff520f2d5f744e312adf516df98278b8b68a7d6753a9677c4cbfc2971b6b5b258b8291a6a3162d7ab7f4184fa578ddc803681419e3460a487a19240512414b1094338a107512e0b3415ff0c1bccf7d0312b2feefc290f6dffcb74f9276db6cb815054404c0871cbe6d0fe4ec2d7ed6de5e5bc3de720362a1b82a6bce8aebfd1b1056da0fba83d094ca55b066a254185661835a59032047c61f2e7cd1c1f622834141d23be141a230e573ac0f5933cbb4a354d1d37af8e9d7c3b3976e52659e0bc7ce493558076fdafbd324cb7b25cbb46ceab4f554369bdcd361e8745ba4bb5b8c4c24cbea554f3660140f4dfed3229d0559a06185812005b934ac1ef42231b08c3e6697766b77d9520f0bedae3ffcfae593e4c690b99307a576da5dc090bf6768f35b7f4f63c995b164a17c0627c34bf96cc0126de183826c1a4aae1025ab41046cb53445958c72d83cf55ec93e0940f0823869e18db72286e012329b9ef749b1390411cc22db9f036eb19d39586089519a2d5dd0fe6a799e77ce9185d279c9f0d8eada0192351d7dc814be81e40a41b29e2fa088341856a321bccab2571ca3306c5c5125f5de81354ae83e079f401341bfd71805e7276f6b6956bbf4f399e866101d1fcc910a94be205f60c5b4f35dfd3d8d1defcc1698154b6d039f15cb1669680a3af321e9348d1d57c88ed5700165b4d5dab8d1adb5689c0a18eb2a610d83665dbe12ad5924e742d0c1e5deefe30c1d26f02b2bf9df8e5e9a36813fbf0e6d2cc11034b4e1f6d68eb934cd1b7a7743fe152fdc4bfdbe9f665817ca64f3d4dc2fcea653fed5a0032e6a07598da3a13128e30c6491743dfd56649060a22c8c0996a9b7aa77bb6d945d8714ba1d9e49090a2e08867ee346d92b2f6f4b65b7cc9b3dd41392c20e5de3cdc3f066358ba0464903c1642140410c329328d0b1825027e1a4d12227133996274ca777e38d5ad88e395e96d2adf5366fbd59698cb417b8385b36dbddb6e0168a6618df9c8a6683169c91d81d8685ad05778f0c99b4e0566300c8929120f528de33464d84d90bc018447981138e9885eebd4c29e5ecc33ef19ef5794ae06c4fbf3c52d5d3ed486d0f60861083929dbb209dad0d6fee8a1c75f0bf502bb5dd75aa952d06ffd2ca0edbe0ff51c8b16abee7223c2c831e35bb94b6e503394911a2acc1d03608d75b16d16bcd469aba90bce336f2b432878cdbba4ee91a39e6e40092ca6def9fdcb5dbd508f2de15e4a5f772aa994d08c2b273cd81ff1804d172d5816f9cac613e6664c0cfc647c5418b94ca87383947820d65013d9bf2dd4117cd6e3bc8d741905b1997103820761f1441f69d2ea2b56bd0b79540b60bc01cc8ceb409ccfd126c720d5abee2ebb7cc5a5a35f6f57be66074124432d6153612de9492316c92cd2a3895f619c10c3e1a5a3303d07e3e9a9b6158795c6175898be6ef62d87798fb3784dd1ac2162af6782094b6b2ef40f9c4684b6b8f84b0d5500167d11985303acfe364f4ca9312896a10b435e54b31118482240344a934ee934c73585a5b8ad818966af65b22b81582290545555f30ff395983fff8f5db2f3f1d5c9d5f576740bbaf61ab11b97ef992cbbff3eb19bcfef5ebdf3efd5bfca72f7f7b7a9ad2eb5f873fe073769d5eb8b474ad8714f4c6afcd96e096f617ceea7583fd0594b2932d5aed71f8b59a64004a42796a2737be2fe7726f7b1585aa619e147a25bcd746280ce5091fd830ec15ad0620707a6cb102ec8f5ffff713da36889a23cc1a66521718505bb4dafdcea296caa672e454365bb4f294c5ceb56d86bbc5c86416f54a8c012bad9d1a4124451d8db55138745820e282f08c5104d9538e091003edd7c7934b10a95d01b91f446e450591d35283ba2059ed8d3268d745ea26846e56081d1a79b3923db6dee56600434d9da32684ee96605321f44a9a8262cd7a1ce996c8a904ce09e6ba9017a213c158165ec50c5e23f509766ce44d1f2e5f1a03aeb98116e2418bb035f282858ab69177972ae8b99b367d2f751a7456341b74d394a34e3637d0dd3264a28256030cb492466bb6e39dee1c7b2f7b2d64e88b0a4a32082e1ff4c293ca96740082b8572b0d970faafdbf1cdb41b5451d64c82ac20b74d0c921f6fba2357ef2df52f927fcb84690f55737805c11406a1b6da1646aaaf4a964b6582750082d0df47100b29a48503ebed939526e144900101c6bb4a2a0c20a323189008520ca39a38d2e1f52bcdb8d02b310b2feec276d370a962309b475ee82109c164970af0c592a9aa3b174b3cb0458d46ec7edcacda330643592008059835572140b9a526145ce2cbc094e10052b7c512bc240ef42ec5396661f67290d353a2df8432ce8df8e2aa435b2462a445aab002f38ebdc06fa774a91e7373513efbf3e9d97cdfb5b599a6567da7d9b4781c86a3a8101cb9a0f61c42f0cd156e9e42d09ef5c4d27885138574012c143424801789f61c8a193b5747f7690e52dd766418748aa1b1a173873de122ebddf6de7c68ef776b1966ea19fca650b05c2449dfe105f\",\"6783c7f5c1e36c0a3a5520d2d8224298c7aece90293919840d520af2c6152da2b2f084ba873e00f23e87090ed79a6753c1e3d9d9966db3b80f660c5cd2c56a7390fb24c852c954d17e2a992de620ec4ca73ec456d90872850459cd05b0609c748ec7d136a147549c04211480d8a8051bd4c225f68993533b02c4ce43668fd136cf21b36d9df8dc91a2a5be6411ebef4905786503f903578ad7df663b09b06d20cdacd08e81348742db003b44d00d5f71db01be4fec4c2e02a8751b0bb104b06aec6361d21a7a5245b90453f368ac0858be1a4ac6f6d9dae8d36e27d54a91aab526b06ab393397a8a0ad5682fe87bad3af4bfb39dff83750b4c27d377a45b9edfd4b460eac2ca59c1bc7f6a62183b68b2e56ef931ce7456ab16124060cb0a70347ad7d42756e50731f7a617440684431d0b4d286b43d6eb61e2d66c9057070f2af252d3f088bdedf2d69e7daf973778e6821cfe593fbcbc893fd75f7efa87eed33f973fd91f2626c8e36ffe3076423ebf746e83841a2ef2c37e36c88f01d883d92095759d6d7966f78bb0a9045af5b02876464aa346176db40d3217aa08e31308ea99840b8944f0a64f894143de076183025a4458adcd67843505349afcd7c628eb0b3c2c7f4ff7edb7fe9ea687ae4e0fcdcae7a8879ecb67831b9b4a73279b9fe56e69321144ab7e16ad9d03d6e3f3681eb593119ce0de4641a6f7c23b46c19a7236881060aff368000be198fe97212449b639ceac9926596a4bdbeba1fd29d254d14daba2a5c2adfb9fa7c2dd621d4193eab81d2ab85f8e4d55d1baa94643a1962d0f36e7245349b3ed831218a415a429081f7d91451975b2bd9219770b38b30297064375508aaaadb4cd588658fe302fbaf469c6701af60b3e3f95af3eade1ecf5bfa349a22b9244871d8359e9d40edba974b6608944fea0a3374d125d034a269268fdeea72a9fe25ada91244ace2043dd88cea5442826259c735aa43e60f9d46706bdd76a5bcd8d5d7aca1b7263dbc59b992432e5c99e864fc80fe8aeed0d9297efccbd1dbdb97f39342bdadad53b15ed26874735373974cf0c9bc821bdeaf061a51449a611c4327b6f7b502248ee051566091f64f9a54d994907323b1dbda9914dcb4734fe147f697dbd853d070de094b96049eeed5ae87bb5f65e79a7fb6e687f107aae65437ba9d46a0bfd546a1ba0a7ce93cc87cc931a79ae923caf38830a460868642d4d1a30b3f2c2623db7c60a0b74822fcf441473320c56ed73f49a44e11d4c4b7358d7f99f6f9f00db7ac28c3d2cb5c3e1e1b5e5a33d6203aebea9859a19b6524f35b3c14e02b36de904778c9071034eaf1eec6465890cc95148b38b56fb821d913215ed62980b41d00aad149a289d5576c77082596479d5f2d5692d5b38c1827a216951990b5a700f1b4e70cf00398413cc53fe9ff33ce456e104e50b529d6b00791480ac5eccb4648b0a213702084a5b3ed15314397823a8ae49fb10a5e823f8ecaca4dcefd5fcaad5b0d40c1eaa61bf09ceed00c42280860b36011ef84ecc0310645a332f04d96c80a2d174ea4382061a41ae9020eb31035c87fd4a4ef2d1122b070519396441019260c8289c7426999415bbb0d7f80405aec505624bd75c9020d23229be6080d23c36f70f93a5f2a9efe5543e9b58361577ba45353f0a4c5643074c512346f2e86ca5b2b29e3ed4c22a62411a95e080b6481243babc1eed4e7ecd61143fbb435ed5489d0fe27e9103b7c312454e2ba32e30d9343972b70459289a2a474e45b34943cbb4bce60722c8aae5df6a4bca1933f2b620709f331be1205b41522b114c5fbb4b3129221993ddedf231095c9aa9ff9bfff609db4c7d418e8046a9f50543f5d39afa5ff297f2cdfdfad7a7357cacbcb4a1e38ad051dfd442b11cf2315e8a658361ba74a633a6a1e341d0b16af0774e0115b49c93c3d64571994018b4ba9e89c9c20506d11338766493b4fd5ea3102766e55e1b59353c09dab9ca05f1219d241c6e85b446d663b3e4903db6f8159eca670b19521e3f3b671b4b1e8425eb1e7b54868c51638fbd0776d160108542357a4c79117a2f4579c445ad0c58e377dbcc720baadcff3294436b652dd3c431c2053aa46d66dd2d41e6dddf5ff359c96c40104ddc396e00791080ac1fad74a83518393a5a697d824209257a7024287b2382e728b4661d485b9da3db6f316bb118ea9249e3c752468b73bafca95d300a79e508cc77bf19d308f2cecdac59d154097f2a9aad34c8d0ff6e087900849855633b629d8a3935b117da98135ac13ae67a78ac17ac0a47a0fc837a1d39f67ec7bbc78be690ba5ad2cc214be9c7962d990bfa596d12726fe458aa953a0939d5ca16e440839d6a6b588f428e55633a2aab351a1a35affa84293867847321d67b615a8480bd48981384ac7251217b0dd16179c3fd0ffee9e80a6943f4f1d14a5317e79a2de4511152dfd442d10cd190a7a279ff30dd39e8a811e45108b26a4cd7d220a3c251fb2a6774456118918cb28250b170da90081a0b41fabeb77ab7e36146e052d2cf1f0a4570bf50addb210882d1c6c205ae90d6beba4b82d4f6d542d1d49eefa968b6311662a7db3ad6a32064d59a0eca5a024b3c6288f29c9db151401f6abab08fc26713840b5e975f11286ccec22b6508014081c8052aa48dd0ef9320fbb809015587ed62d7a31064dd9a0e86a5426d461390ac3128ce2cac8128c892176c6414d67a935362437eb774133bdf493c3c507dd973a5f766a27d8db646da0b34883e7befdf7efefaf45a0b6bd770c597b777164adf1766d492e87efafc25e51f0bbe7e38ed167f7efafae43ffde9297dfb1cffcbff3089a93ffcf60fe39cfab317cfb3ea51c170b9e3c6c3eaaf253178a982eb33e0a982373137c2476d15b7c8e0ab20da2432d8ac1ae4952246edc66bc53dba480a4dbdb8c2828040306512da66b291139ab0db644609691666fa35fe549a369999338d9d2d4f28175c346e9ae80e35d121317856328331e55432ef9fcb80d5ba83b6577cb7049968a2557f3c284463158fbb6adc33a428fba2892408d250345136e567d3960f27ebd9f3f023ba53c60a2d9d22aa7111d4121f17b6c2eaf7d2ca0b08d2263377c99043c6caac688ec144b455e4236870cd28ff380c5935cad73381506f399e23446be57b504a14c2f4824274c2632e5f0bf486548f26f6fbdc2d19ce3ec2b4cb5cd7c3ea0539d86f3073336d35244d976474bda5abb6f6da0f6ca9cdff7ded38d6968c59a8aaba3f76aaaa4d1863a193add575bf9099b6ba5e3953af94240b469d632659631db31446e9f2d06352bd50cf2c7276920d1b1f82df4fa9c0eca1ebd73c3c7441bb2e3cdb2023b44ed90b74cadf13c7b2376fda5de14bf97535778517cab58e6a4ee5ba05bf48998e3fa4cfd6f87595fc5a75f02b4269e5e089399de652aaefa3b682a50cf5b8632f9ceba3300e552e0fe199c25e0130b51ca68f73c796c18e22e996fa6c06d95ee0be6c169a3b6eb32d36164e35b3c57d60ebbae1405febb2dd2540c65d36bb6adf07b045e340c1c83941a0ef493948c229a704696f858f088520e029f440694f820c71264bd540b211644e10435653cba36c2c791ed94caba7b6d34ed5b3014bac529d6d9bd08fc29255433f39e7ac29ff6f244648eae86d10592b2728ea2402975a49a92f3244e5e4fd6e561a58b89aed7f39f496b1b5d2a6ad34e3a4d472e345e83d57c6da1ef4fd0d87a6efa5f6c24f05bc49734dcaceb6e1d0fdf26cd25cb3eb87ef0d6ba3c98e9c3dde9162efa5c8e4b8000d83708952011a6bc8d9488dfbc4630e093538adf863420d72db839e23ad3c8320aa0b0edf9fd652fef23997f7fc2ad3565fdce4d015c9a1433acdac608ee934cf05b3c1a997da5b83164f73b7fc98e8a1d56c01856440d9f17026822b1fee518ae498042159e19158d4c47e440352f7fbdc7a395c099b7a025e0e1f351bcd1c1f86a471f6821db6168d7977e458a8953ac83cab952dc8215de7da54e651c8b19a29c052b2760a47c22300b8e86c2f522e9a8362af44f95516208becf5440187aeff4e9102b814aa5c0dc9d842951786326cd9f10599344d77dc1d3d0e06fe59bd0c42fda55eb6685c39d522f91f881eabf67dd0c48c3c095686c4411b2d4cb64e50281ce1acb5e86d7975b01942dc6ba5b91ea8980e255faebaec37d2bf95390c584496e47e1b1e273fee309d1fac949f9fcad79eaec27df99b6fb23969b664ce4295bd9c81d96ef44fdd30e16ab392fb64ce7456b26af9775a222b45a3e1bf3494a52325acac296840e54bb1218ac20883521a9dfc6eb312b5eca3a90118d0d2fc9766258640aa26591e50b21c026366f5329c6e3dd5cb0641fed674d4bcfe774b8f896259f5fa2358497a3c67c7be57de7912de970221297dbd09634540e9fa646ac8ff5e6931d2951a5d7894aa3759e57e39fe372358ca37120d5e30657fcbe2d8ae0e96b63976676268a18287f8b3970ade400cb1846ef88a9b18ba4f9c4dc5d06aaa003a442c053c32d560acc935ca0a4c3ad6c531165e5210c03168a9d049dcb103279702656b6f40b648e8b9a5a67c3e005c30be79c3e0fff566dd47216de90db6b6dbb66db75969d5f7722aad2d463d96b973d450f330a8590d0070ce28d6728c9a1c98b3e94180b5453b99e844f0398bdc5b962944946937ed64c5d0449ad6431d7d4ad55605e6b04185a815b4c6db0336de0ebb02b38239eed61c0a668bb07fa3643bc27cc7fc1877dedcaaff1f2d5950ce8ef0a10342866084092956fb3f8982191698fbfa1b1015ee96b259fe77ed2439b44db3393ec83a879a2e98dbb404997b45c852d1549bcba968b6f1499a0edbf0e65110b26afb2f1f386c6bc7eb1c211c43ef8c46a1a4c982a40ec2596d44e09c0b4b00c9efd6ec3273457e78a07adab3d9753b08012791ddd02f6f0ae401f1b15430876de5a7ed5a5858332ce587b4b01a3eae101fab267b504c865899113f7a93b937a617a1271264b5132e4559232da5d552390f3b76b016532786eb7b2d3666b637c686d9c00502e4ef0920fb0e77345b08f3a533986b09615eaad8977b995be5c4206bfb412db43683b90a824d6630f2b523026ca5e1c1a3710ad1f40130941ad1b93782c878c1a927616c8e21959f9e7ef821dd69de0f53f7f271de0fa649a0b904227664cd052b6c2d45b3f2e40dd2e51605d142f91c67fa87f2d9a49f46d8d90f591f6b82e81a703216447275a20fd691d6d58e7206130ab936d9bcb02a25413a5465e4b470e06ca03e1a32692f98e8b5288cbf1da3309a1e3ad743ec409a0b96c7fe1e94ec1fa7798f72e843f0753d7268a1600f394fc782dd005fc662874d0ddd2fbe266a0856570a5c757c2a522331e47b6935402e3aa86692eb50c4105212d85bf4d278a9692f3154a7a34bdba2c37474bf7edeed88214260b09758414fffbedf970fe5af7ffdb9fcd8fdfccbe1d37b71a7e095d73711745d2268a96cea63dfa96c3669aa1175f6432e9b3511740d14198b20585d2a289fdeca29a5cd3944accea69712440cda084ab6172e072d98a357a8a263dc2d3b532d442f3fdba3778c5ebe1511a40a41d8c80b969adf6209dd71a3e0f10ca11fa389aec2a6738837584c823eabdf0df23c35ab0fbab2d644d155e06c2a8ad6b71cb492400668dcd54bd4934c4628c82c28174114fac237af3382caa4c9ec7367ad000d97f33efe3187968fb3a88aca9fa5937cc1799ca68aee5415d537b550367539e8ac6cdecf11004d1d345574b71899a8a2d58b028088521ba54714912ae860a2123df92048218a60418a1e4166193d90ce7bcd86dc72d06dcdd9d83118fa566411b9f2877db817f401b3a1dde5511b0ddddc6868a15e0719f452af5b6c36a0e28e5b4ae8fdf26b2a83560f1b802af042b06e14f5a61020a660854d848252601132913052025a157ba9f7596e184eaac1523675bd1005b2c9a0a59850e58cb94006adaf2a7cefc5862681de79546d5632c3b6f5a964b6480a959d6e0ae86e09325140ebb70d585a268051ccb4a9c76f22b160e22280b48cc205ef05aa286bdbcd476df75a2e0021a73deefa40554fd4ca66165aa28761b860cffa15e3cf951c36587b873bc7abddf1dce670027a565fc71bee72ab2d8452e41d41d32b774b9ba95e59bd6a608c4263ca07ff396ea2cd8cca78418e6ab64146e14115ede0bc92d99894612fdcd4b4415a2887216d90da2edbc22136531e20e0826c83478ec7b963c1f21cd1392d9ae3fda943d16c12064d9d6a82e56e1132112caba70d947260ade4d1c4c62423434fb17023184106ea590302813213c524fba4e27e139b997a3f768061bf636cb743104b457f0e71abcd19da50b2503dc31ae84bf56c313fd1da75a6b1e45158f24ace0059546ce09c25c99349d2270131f7827c51c841c558a86232a5de1701b3cf5234965210b824ceff147ff984cd59b3d0feaa565fa32ef086be652d7aedb50d1ed7058fa572a93ae4542edbc0835aacc0e3c0633d5600b5d44abb61edfd851eae9754d40b899c390beafbf2a5e41c05822266d51b9fd55e4ac4ce53362a3d86d4a6962b301f9d38b61a3fc095f95d320596df619b9d6c2956160aec25c870ab1c0024a08eda15b4fb05ce647882ab41000035234f2a3d9a9e64a2d013f4224929055172c2c9c0c2c5ac0c66d73bb5d771817a57746979bf162741d32bf37d65c9aaeea0b7e657d32fbc583e75f1eb543e5bf04429d51dd60b9b7eb9479c8cf50bae260240112fda9055a39ce8a87c4c2945917a5768d2c72c1c44102afbe8ad0f2eece7a0a4e53b03ffe6bf1def0cb4d5e1d12c5e4bb2d65db0fcf586b39a2b2f6decb82276d437b5502c87f7f2522cef5f1aae7b5cd84e0c3c0a3a56cdf7aa46f96a188d4d243960f2207465061964c189b97004c1f75a32e33e070606cfc9a20ca90bf4d4acf70be02009c6d90bc6266fdc1adef5ba4003c83b5d278be2e3ac683630de93769d6c93f74721c8aaf1be3ca7328184511c9926b2de9b2c1873f9698cce08ce3d88d8079fac2e4a25d38eda63c9c73b3c4eb91647369d9d4864abe1837cf7bbae0237e7fddb863157e1bc7f16404b49196715fb7e7e69d0cd787fcffc9ace62d68df7e82c59e2512873ce8e52018cc898ebf01f7a11a22a3c0bd6e49e93537637df3d0998eee41ffb01400d60f32bcfb67c57e96300d68e0a347e5dc0af59c11e863f2f05fb7e7eb1c38e1abf1e875fabbe7fa3495936469ff32ba418289a54be802845c15b2f7cca5e64e8932c3f7fce87bd8ee2d47474bd30fc19d2d1755b5e9b9d98068bf851fc6a02ac01ecb7b7af172ab60ab053c56e127dc6f841f70c1ac1ae9260ab5102ac1418a0b11194b047b6a405056f8b0273ae2830eb45745a19178a22eb7734efcc1ee82ac1aa1b01f68b12b81982490dcef205cb0b6fb1ee7c0772b59b06f7b2dfbd54c19568a70ade621f4f127787fc8c46b48720da6ab40110a8fa2948a3a99889316465ab9f27a32025493899bc301c5dcc3a041bdc4e48932c067fcc523a0eaab6dfbdb0df8dd6315f70a6e7957cb5ef1ec7d6162bde998e332b9a633acea168b6d045d6990e9b2bf56e213259ac588f3490c66aa3c98e649192ecb4b34e58084a10e824d8ca24b2f191b0fc8e1fe230f63af4661764d17028cab6e5bcf96e85a9df50d3b6ba1f8d1dcf57d5a6c552dfcb59b1bc7f2844c674ba6d753f0a3a5e0934b0d618ebdc68a7a10fda51280f31961d55435014ac5528f2c39a185c8eb0db4c48baf98acf500dbffe785cf1691db5b36f2a95a700fb015bdddfa1a9d6b2a0f7095f9bd5d7f068f6525f5b64415b6e59d0f78c9b49bb8bd6e30cb472aca41df326fa3e52882cca6f794184203895ff00089a88cb8f60deedf89a11723a5dad4be07ff8f5e9936c71060b52052ddb432052932a8f24552a3c168ae59036752c964dda5c4675b28517dc2d3cc65a85d6c30b249206c972145e00daa6f21164043b5b033b53a108c62c40bb0490331ab5d7f4bf1e025c0bb2c51603bda0569c32eaf02cd0ee9e3d2641164aa60e4a4e25b305412472a73e64dcde0872850459cf30006bb59230ce5233b9f7d5b6433e2441e51782b325c17d741a8862f6b8d79c0417c2058b181f0ea19b36279901c450c13c5fc08fd533cedff9e673a3c7bb46250bf55297b5ceeae5fda31234923b68fae351e8b19a5f50948695727c3533f89c9de9b3e84d2af048a045f0d189a09389aea00570af452d28f5309d1b563359dd5c94b6a98f853366a034eb0bfc33ed70c09db1e3b0e83b2b97fa5e4ee5b285f2806abe6ccae351d8b11e1d40ca1945da8e8f6066e7957624729fbda8016b2240f965f219651f3cb3de6bee519d5c4b511a83936bbf39fbedd0838c41207bc111ccd6bbba53822c944c1d159e4a6613ab88c1ce7ec8ecbc11e40a09b26ade77e06a76da387c86a40f3e482588b215e4130a8f490b998255b14e44d26e3e11b31c3e536781cdfa381f7d48cde42e7189dcc61580e6e07fdbfed7b538f897cab6b69c4f65bbc90046ea8e545b00bb5b8a4d17c0561dfc40c6a1d380a3369a011bbda7249c77450845a58493ba1a4730688cc6f0aef737a7d6ad635f6047bfe3ad708c1413a1b99f101a1a21ec3fcb1fe3d3b0acfbfc5ffccbfff9cffea74ffff1f9cb9729c50ebf35c1d8f30be7180304368d631bb6f3e68ecbe7e48ded1c975adace99c6b187e1d8ba6f5f296db8a064c43126f4394116b9575250ede5b10920a4559c641ffbdeed7310a1700ce657d56b41fcf1ebff3e5f556f0dbd896fdfc92ab27f9b646fbd05fadaeb5b53efca9a7a0b6553fbe0a7b2d9440f19d9c9e6dcbf5b8c4c9a7aabce7ded2c19326614fe12131a1d9216bd072dc8865e84e47ae17daf952717b4df4d0cd5bedec27a666d71cbfdce49df10449cb4ae7e44b49d824784c742b9d4159c53b96c010f02fb41e1610d1e57088f57bcfbe527a186008d6eb279b0ec894064564690512c1cd68db4587e1d29e5bd8e791ebc94b3d897e156fad39e1b6937d34a033648172c33bfd1babfe33a7333eeefeabd5c5af73c15d716db078cd00da7e75bc3eb3e61336978a955e73e59a310f478ff20b1e228b52d25d25b41508ac53bb6c21adb73d1314e0eb10f7be5544e6bb3f6bb86c83d6cb09905c5485b8023b75e5fdb1d362b6fafb1664bd62cd4566d8a9d6a6b1b9f3f74b2b1e67158b3eaf457965119a5f99c35bd0676bdb142e9a804e96085971eca83904ea431f9c2a7bd5863052c0d3efff0eb974fd04262e6b429df49ed86f9ec6f8d56d607fedf7d3fa0f5c6dec590859a392c9a1d6b660bbd529e6a3a6ebdb1bb45c8b837a6569dfea025030efedf338448af5c66cec268ee05a98c2280cd820252f2a0f7448813388b4efaf5906b890d21738470f9a64a754177ac21e46e11b25033d57073aa992d10a2d076b6cde61f0521ab76fff2c06aa5221a4d579cb4118d8c22c958b8117b277c50bd88107b69a24e36d8fd4408ce2e150de17b5f3ee17e869bdb210812b195708163b3cde6ef101e0be57218461ecb65037838c7ed22cba3b083ec6a03cb2a64658c1e25552ad446d6b6954a3e08026b8577b65ef632d9d8225d55dc2755ff709065baa8323c49d51b132d686cce0e40a3d85db2d775723e0d3697e148d7e7a7f2d5a73582bcfe77dc1e47965255ee8423cfe7599632c7ce4ae7fd9963c09a3bdd40f2282059ef63816559b730467d2c1d9d616bb3705e29413225e1a22b3f9843e871303279da8f24b4b42f5fcb816423c95c853867a4bb44853cb6cde4ee29322b9be345bce7b2d920b95259f341b6fb46912ba4c86a2b4b1579e19069344ff76c41b10c42418f558eb0086841449941533440791f881c6c26bcb0cb38eccd736b65cd2162ad347cc97dc82647ee1824cf969369e9d4f7722a9d0dda5a1a4da79a1a79148eaca7583a906c9d1c79ded1d81c4c0e851e8a04e92c85676f448f9ca5b6d13adccd70a297f7146b61b61de079530ba4d30c17ccd4df3210d97d03588f125bfac28b5a0fdd4f9fbfa4fca3ff567baa2f612c4f5f9ffca73f3da56f9fe37ff91f26012e87dffe611ce072f6e279880b2a30ee871d435c3e0466d7b367bc50bfb52d7daadf2d06fc8e74a73ee4f671db33be0a9c8df78cc9ae666a969f6d051a07897cf2b418492e19283f8aa6a8744f956cd60b551eb9950395c887fd9a6b300d35aabaa8760940edd65cbb159ea125a3dd2559646f7450ee37e37f797b67441bfe592788fdb9fef2d33f749ffeb9fcb94e1176fccd09c49e5fba90420638582e6e1c605791427668ebcd0a763867762ad80dda7a04b2a306b0c701d86a9aa626b68876f8c83b85425bc23e98201253cd8fd12802b316d2c8ec0918f26e619a75e97fda9d382edd406bec2d48320d956097ac39b7e9d0dd36f596cae6e0ed3f96cd163a481bfc201dd4ba7ad740914957efb5284b62a99419b5f512ca3ecae404fa227e481539127415e826191550a9def15e3208054e4bb352a49ef943d764d0d4da6f0d105cb2ab764ba705ee3697f9ce15d142ed56949dd5ee06eb72e533a4d32d97f97e59365544ab899a86b8d0444e58e69d034549c8805c58668c70244120f8d03b081e06d5fe4067726e471191d29a0c5f901df0a8379eef5c0bed71a006a536edc6f31df363a285d6333595618dcef1247a26c65eca5e38345650ee53f952ca0fa6973e03bb443ded33123af063961b30b83e9f5af4cca21a2adf560bc3c9b076a7f36109324b9e798ea1dd2e7986d1b54bcf0f4310b79a93095a312bb0e3c3309a54b01140e4180a41c88070d6a5f28389a84230aa97fbe40650ad51390bca2ce5504b5362eba64d27322cad9517e4649eb6effff8f5db2f3f1d16a70fb9934bfc786505e1035b688bef70e7accc3bde613bbca95979d507b4b3f2daa0e165c976fa43f44a6b785d056e260d2fb71a3580c3414db2a35c66af35f61459c4c45a90e6241c6425a28d3241b0a4d23e5103432e332cd566cd8e85fd76b26f48b038d68cf602c17252b17fc95fca37f7eb5f5769b3f2d22655ae4caa2c14cb31c41c360b5a96063bcb4daadc2b3b2652e5957001404d0506a37001887d4cde199113f5823067119237c28598824cd684deedc40e80f93da5e331be767e6c31d59feac380d95cadbcf2f2c690eb62c852d15413cda968360a3ae30f19b837845c214256930540a375e4d4c841d307c8de6314165d2188d75e78cee5cb51da19c0de52de6bdc0e72399ea69e05a7fdae20df4ab34b1531c9d66e3c6bdf151eafbdbfd6e8da92330ba55539732aad0d3863903ad7fa5cf70b9a699f6b3d7b00594bd656e973d44465fa84460a033e09b2a9176c4ac5688831aa4c81dd6e93792766157f4c278776ed72365731c65aa92fc8417ba354d9add5d5862a7b26ffcfbec23a5439d5d616237c6b0a6c3e6484df607395b0590d0620d4a6b0c68eb6c012fae4bc03a1b4ca829276c2f51e0499e065913c0ab4dfaf31064bf18155e34393353359834c202fd1356f0c06d8d754d9c2016ed70a7368cccd8af6d8cd86ad04132a2d3bfe90e14e83d855426c351ca03044596b348f9a7388bdd5c0b6b04b61554c2c42cebd48ba2087c8c7837766974d3412b85cf2df3ea16dd9d173cda4c021994bee68b67480fb1cf0d437b55036d5527956361b84cc68eb3a8636e1b9578c4c263cebe9009aa4936c61bc6056d1a2b515c12a27c879142e63125e67543ef7e5c9d1ec4511b56c101b3297a85164ae8634119ae6887960822c944c7d2f6725b3c5f501b21d3447cca31064d592afa5366cb51b1d43eb8d0c06630148a8964a679df012a3e8a3e99d3151b918f71adce87944c57163ff39a2a26d998d01e2c01c828fdbf581c705c97360f35232d3a974b668690162476dd9ec5140b26acec7f2196e94197bf39333bafc98199159162512ac162e382e340146af5ca6618ab9d3191b9c4d654a35d45b1cb8df54e67640429a99adba605db965bbdc233e960ae678f709b79a88b0b11d36b7cb83d083d78df98a4d796ed5769cf64f458740a01af4ef051555225c61867032db1cb50f14f45e3ac4089ca6bed605b29a53812d2c798e0f838c525e30d56f32e4be39b25439c75024dc2a2f991576dc8ea03d0a47560df7ca1de275472a04a4b2bded4b71446d04e558be12572581b5c9d9049ae33e69c983e5657e04ad1443ddcb6f47d016ecf696a4c60bd292e1f468f14f5fbfc5ff2b2f7d4d85ec390e79fd0db655e46d6d2fb3f2aa22ff545e9bdc2803ecf043a6ef6d8beb2a\",\"6833d9e2e25593be42d65a391c4d4f24158de2d9089dbd1514a9a8960205a1c1299965418fdde7e626891aa3bc343df9837f6ae1fc0b2d2f690d58056d15b9ad227fc7058085a21d22314f45bbc10280d3aa33b241ec6120b61e13404a49a51c8f926692eaa3f1ac84f71c8a68c25e78a3bc50aa27ab8d54bddfa7f736504c4e0ff70dbdb7521072bf4b9bb7d37b5360ac9297ac22b7e6db1d37df0e2c9995cef101506e75f392083bd75600ee962493e6db7a0a8034a0a584b11c02939ced390ad03d0b0a8c820315ad1ea4271549ca7eb7218e1572e9de513ddd27db32d91c2460b52bb275fbfedb2b2f6f08b922841cee5dce8ae67014e958345bcc6faceee487a89186902b44c8aab71f64dd0c83c381c4d33eb2354629658577bd11a4ea1e408c49603d984cecc8f13e9965878eda92bf6b10e7fbd9226fa5a306a099a5b920a15f9fbdf76f3f7f7d7587ec3bc4f3eb5137ad2fc8a825d1fdf4f94bca3ffa6fe9d45afb8fcf4f5f9ffca73f3da56f9fe37ff96973edf0db93d6dad98be7ed35548775ee1b6faf5dc58ce8b9bdb6f4159e55f00637008c35ddd0c56bedb5fb24dab4bdb6eaf4d79aacb46e1c5723b56515b512818b1e22ea6b0067f9ab9829b18628adc97b8922374fbe7889466b8bd10b53220d08cad16f33ad5934ef54122d94cc4be2d9666131165ca79b26ba5b824c34d1bac95fdaf23f843c0ad7d4907c6f0804c7280b4192124c360bc5641422b3c77d3c9a0793ffd26ef4e058e6369f9913048d2c12f782f9cc1bf70c7615468d21efb5f9cfd6a27f7d3a2f9a0d6408486aeeccc761c8aacd9fa53664158e7262b296e88b34115aa52242142be1ac4a42f6bd53de8490e28ec764502fb4d56afc1eea2642660841d450fec02e7067b6436477858e4356e5ac58ea7b3915cb2637938bfc701fd2c16ae8b84274ac1afb0d922a529446e850cc464a03c206aa21cb2e094eb6fc4779b2b5209502b5e3c9e4595ed23121a6458c2dcd6450a3417dc196f35b66326baf6df0b822783cbfa969b954b17e562eefd71d064d675bbad863b0a37c46afdbfa8dab33fae14ad00b3c38d7068827e192f175232c0a67228aa01c3b0846c5b85b3e659de82f56c3b74f12da387f8a0e49e58ff392c6d55b338ef7c3c76fbcbfe6c7dc12360be5559b5c67e5b58195a568e14e352bcbfde2663c6b5772d5feffffdbbbba1e496ee4f857e60fb0c1cc6492c9c73370e7b371f63d1c8c7bf203c96249ebdb1b19b274800cf8bf9bac9e9e9efad2f6686b6afb832f0276a7b453d3d3d151c18c8c10042a1f517a644076b9b08049bd221750515f048b648fc33157b0d54316f7a9213b4e4a9656bb8643dfb68f39778f79431e2e502aefac21db7b89e5e58d3bf290fdf43987e7e7a18cecf4b2fff0cbd3bfa57ffefccbf3f3d435f6a7e1d7fcd63276be70c931c683c5e9c61d6357b390b980da61dc7f46ed06a31a21d7ba611e89c5565305d06bedf9188d79ae8609debb90ad72ce594594a2f211bc8a1c21e99049bb7e2fc7182b5c4a281f8265a985d84ca7fd0605c86cec81fe3614d66cd07721cd5ed2a1979a39ce20de6288543e4c0e47a76423b58720b5f594017056a393a17ae6ec628be2a0a3ac340ad798cfac424ea89c48e8b13cfd47b7cf1c6948f8d453401c97439f9ff47eac763b7324d245893bbaa0aaa60544dfdd24e918ec3903cc7131f404980d1804046ddb0cbd6302998c9256c305881c39189147327d4ce5fda1724450e4585480ba44e3bcf49a7576dd3e6ba147ffda52f0e060c969b99e33f79a1702c60b24d13b0ff67ee5f28f92446bdfb20d9236b6bc4defe5d51fba55b027183207f810b774532b57413653b5b29a4360b45853a86554474031f71df759f57d0e8abca99168b157ba6a1b32369abc9758a9e51c53c4bfb6d9b82656668ce30984f9825634333e57fbd30f3fff233f7f0a7f2fefc3d5b59b2ffd3f4db95c97725942cf6bb58ddb8a4d1c98836fcae56ec964a25c5603003c0939e3c7010098234503bdea72793752e7ca4f92419417072ea3704fbb35a3c17c9bb99e04d767ab1600b0546d535e4eeb2ea8b6b966f1d218e42bf5c83c01e0e7e73798d9a41cad05003c1081ac0600382d5a1b1ec675e70d9c188cc32e2b84e01565ed55d4e2950d5aa833900dec2946a6abcc954086c7a9d68db63039118fc69a4b6cd42d56f35e196401349541cea0d962fe4ebaf56b3e0c8510ad1aa3d17a0dce0c96ca730859474ec71c15d5ed1bd29d28b1e214b106e8c07ba7f7acd7b40b68184a026da39005531919f1ee8203ad471dbe4fdf4ef7451f4b8079eda3b55bd107021c6cdbe37c14fa58752453cd1f13a6510299b7bec324a04288758db3e0a43046541d43464ababc7976cbb0b4cb614a150dd014c89c3e80a5f0bbbf803edebbc8b96fd5592391af2491c5e0be336c362011d174e056cdfc281cb26e0066b2da31cb680e62d184189357bda6ae6810af5528ba44b1493d3b8b84fb65019879acd26939f32583ac05c98cdb99c16bcb170421b79ab13b2692e386e40c3aa70dc917e86c102ac3709046248f4224eb4e60f422ec799429e35c36c1e44e25c3b156c48892e4526114f6821dd8203b06eacf7cf1a740fdb648b2384f2f2faa695ae47129e498a93f43cd29537fb36d12037838c649340a79000af9959a31672c5b82d18a7de29cbc2b9fe0988915f5362b611754579362622c68d8a9a9f2181433f5bbbf46ea630b8a99ed9310166d79811279a7256b7f67efbd47c57c088b5d5554cc14b7afa9feb8911022cb076e6b2af74b63936e315ab51603a3374e44f45b1e23748cd1b18a4ef78a507a253945c5d2bb2e708c56f69aeb5797cbd252fde072695a6881c90cb922582fc8f56f62e87ec5d0126ceabd9c61b3c5745f580ea699c3ee9646266a68bd600c6d8da8f2e3c0b11c7a6b9daf422897ffe85058c452afb073093988ee066ffa2e276a4ec1523b4cad2087fdda616e450d59cb78d17eca3bdbc5bec172fdda1deebc5cff31a2e55a96eb97e0750c7239c16b933a4bf107fe102f59532d57413753d5b25a46065a6b6fc08c9d001ebd4bc191ea8d898a821515425f7dc9c13a42e6d8c15e7ce3e72abe02e22ff9bf4f2abea996916a614f60f405792e8fd84676df5a65092c75fbeb0c964d62c0bc1ca83991ef963c265a65b58d4c481b21f6a360969ec551d4a00ceaa4c8961f436c708acbb5ec427041ef431da434ce838aeae0e60f399e82c0dae0e6cd8b6ad039c10b12fedf7bdcf5ad2637d7522c73c792a5ded402ccaa5be00dcc36289631c807fd2115984db25c05eb4c248b592f3203e3b4b7da8c36609cc43e7857338bc528a2c82a16925026649324460892f61ab454a02ef0ce9fd34f4fba15282f5a06acd3fa821dfcb38efda7fce3f3f7e1c7aefc0bdfadf1cefad54db85c977059824ce590336436c994341f55ebd284cb3550c858b898d50d7c206b1d1ad2a3157c6338f5a6c0230015e5e2a35531745a41e0028584d6a6b0e3906529d26838056e3160730601cb861c37067958065982cc717ff2f38629602cad4bf971086475071f8cf6cc4234f17ac5d84512e5a24545904179d15ef5648b0ac9d9c5dd325ceaf3d4926965789e6ab560b304971aa800e437f72cef98e1d2ccca376b567e11404b156067c06e9521f331fcd50ed1ae82c0a68768ab09006e98e33b3f2a7121f16263a18f1e582b0a60546413554856eb2e6b14bfa7cdec0a14d0ad1098299f0f4efb0b966e7e4ba6feee2c0623160bdddf3fbda1b0dfd53f3efdc7ff0cafc388c17ef772e15b0e7bb96e4e605e7b6cfc7553f20b8da103b45ee6c7e1afd5e00100c3a0ad1dd9a48d471ba813157c104509ad8a064141820e9c41c969af5ee6fa3cb7d4533e3ccf49e3afe9f91d5a44948d7b99d7aefdc046e6f9f76b5e838d65d214563517ea0cab4d9a921d1fdc874413349ab94a9a590f2770806c0546e77c989de16a3090d4997ace9795ef5d219cc20a7d175022ee269378b93d69680e6fdd630b42892d796b2f58c8693969773e305a80cee95e362b1ef30207692137774b249381d17a388001cba879787879259258fe0e3444653a5de803ac56d1d7fa64ed4dd0c09d333b86dce052f1d8901aa85be0e69c483468b470c1c8a811c91d13c94be0e6143af55ede40e7ebfdcfe0880ff42141338d49ae9049560302cac3abf18e69645da3e801c474aa4b900a91b85e853e66050e9dd69992c3dd929b41e9a5d3827f0dcf4f7abfa59bdb21120423c6f80f58bb6929333744220bb0a9cf5f6f60b3c1128d757c9066807e141259dffa270641edf568eb3fe790110b7790c9599167511218554f3e87225120d38ee3139c42b39e6bd5735edc6f7c723b2c421a05dc255bff8f5c6379c71c721c8ecc4073327de266c311b0fa605bf4ffa370c8eaf63f00331bf2663c8217ef45322a4c861589451572b48a3075ae071b7978efeca444686a8fa9b3c2fa4845d094c8fc48abc84e0d170891dfe221db3f03a091c9570a92197a869cbf337a3638d5223207fb215bfd8d4cae8f4c7875a79fd138e33d8decc82c49e7485a19e745512c9fe9417b5f1e72022422f4d6ec35670758c8120f3f3dfdfb0fffd83385ec56ec5cc63b5f88fe82e1c86fa192bd6d5dcd8d7c6b6ee425b8d647bf335c375042cee8033733f2fd92d7c425c6ab79024e1369763852425a12e4cca4387545ffb0b7ca9b4e54d45e8cf59980babd5c626e190e8339bfb1d76c2283a2c9b9edb741f726aeb60c7a9bf4b584d7d78cf5cd623c19f180adbae671f86b35cec0881416b17ee429c89472404aca268d8a3a2cfc2585bf52ecb406c29cec6e19d0a2c04cd5576d72faf9bb27308dbfe6cb340496365ea6d9330ae7f5eeded0575f38a322e2f0fda7cf5dfeae7cff3391fdf553e1b5f0f4e7e7eec74fe96f614a66c72f4ff8eccdc54b8406c3b1d48d13dab5aced2c01f854c37b04f0266b3bc887a3b3bf11da4310da6aba011735668d31e3781edd179dd61788d8e814b98e94e82e2bd47dcfe42d26bb8f49ae109a55b8389a2aa486d0ec0d334a630fda0e06a9e66e78c48154e59005cc1c45d109331b7008597fb0cd2077b70c329947adc70b182cef27c38e46477a3a21fbec54ac3b9f1402aa487da73ac99d05486cd26efb3acddcf04e839c450f9e2e48c8594dbbf9c6d1388d3eaedfcf600a7fe8b6eff928fcb19a1b404804286ee467d07db654fdd540b12f02c47b151d7bd53159439ca0b7bb054cd7b48205faa8829c5ac0f482a3c158b470810069deb83be792e371d60c3d954bcee8d9e238cb0ab4b682c7e192d5ec0044d6c2e046d101194dfd8c2fefc540458af4204a9c2e84523ea9bd8b4588747b1d6601289c1eeed6d5b56ab6c1fda633b7c325648a8a4477b361678d3cbed29b36834b1d669ee1b2c5705f237cd02ca491c71592c76a5c008a0730303ac6ea75ccbaef9dca8e9da2ce8212949a3d534886fa2e4a347be910bffc24550b6b9b0e59e00ee7b4e18b3a3adb20e44e09640933a746f4edd407886ec9658f4320ab5101458502a38791b719c9f4b9ef0a3a1217f5410c2a3aec94ee31a5809d74dd6e0998328ff1ab9b39558bb704ccc5ae1bcf2497ece6b4bc993b269105d89c0e80374bbf2c9f1c74b0a691c88390c87a560083081b23231d2259c7108c53baabfb9da1372aa0e995d696c9b86463daabb259bb391c4ef5158d4516373c8d01e32ec8517ee78eccaf5cde38e4ca38640134f5d1eb0c9a0d38c4d6b8997690f52014625713024ccdbc04c7fc96411c18effade2ac3d92a32c1299f3d286d7b2b367649769a8290d2383fd6ad27597fc8f134056986ac910e01e79df00586ac3605b933eea837b500977a2f6fe0b241de65d51fdc42931f853c5617f4a53eaaea71f87ef0d9125b5196a8eee7775685aed74a389bd489769164bf2908f2c248b09ee82237f531dfd01742b183bbee0bdcb1beb5f8ad771c1b7f7ce5106406992ad8cf90d9621b44c341b7e3ab47a18fd5fd785f3ebf991c8cdcbc31049d4d9f0a3e4814f58195b71dd7b8176f3aa76de0dd922e69adcae8c7d3e9d51edae356f6e3b1fc2e8f956e9b37b7ec3a46ffe24db6eac92d15cb02c88e557baf20db608104351d0698b71df6fbe49cc90ebb5ddd61b788c6d92251de928eb519742eefc64c3d2bd26c54e46814c6d8f53e153d63778bc4ac8bf40bb6dfa18ad5b65096996431b6bc22bced71d78eeb872d93e58ef8eca54a79fa13d64387337eb7b09109d0c173e3b387e1b35f59a92f320a84fdc80390d8040944ca67575b020ab178b049793160a8eb585cde8bd060dee3f76accdfcf8b7c2b8456906df531bb7d3b3efb06faa931dadd30da0280eb99e019c09b309ab5076e0aed71186d75c91fbd73d65b1c8d959c49cea66054f605276483a850d76c2411a5be23ebfb7d4ad4868c18989ed70fa6b6f07cc266b3248cab382d33f205a6b6668dbed3d1d2312966069bc1d67686cd16cd37965af3cd1db3c864b6b4badd0fda3b324cc39cf16c8dc6907dc8a2ea719fa21a53e97d42154d12cd92448624ab5dcc09bc76eefdcb9ed6e85b914560bdaec93f5fe690df9214b3ab3bfaf55bbed147ff557e8dcfc313ffcb5ffccbff864fe1fba7bf7efafc792a888e5f9a08a2970be7620810bcbd7d3174351d020bb03dddcb66e66cf178e076ba77bf2c36d542ab390360ace1f29ee2518700f44cbd374e65ee746d038dca93d7aa37911cf4cedba18d7c2f8fc4d2d6f430bed5cd2331ebc0b13531f30287dd3bf77bbec1095fabc1b9410a7b715c2c8583bc81ec1642ac7ac41b873d0e87ad461d8096a2ca87deaf739fb537d6da425e1dd5a403b0f538cf92720e3d4440ccdeedc7607a0acd7a9c57e1a0f78b7cbe15063354378cf082fd227cf3fb2abff6e7e7107ffef1bb550db6bbe70247fc35fc5b67f2fa4bfde3d3ef0f4f7fcc83e36f445fa72f4e38ece5d2050d06a87523b02d979cfcc249e2b0e4e4b75a72d25a1fa40da41e87c0d66316d07864c3343a4b74868c0b980b7bf4352a945045a86f4d404260674cdaad88d42e8bb0a1c3a3592c66ad37e537c47c41e8f43b19ec572e6f1cd6386c56bb334b8afffee73790ddc254619c3d98d645fa301ce656731e8aa42241c3329261bd661f9041a5205a912b5c22b9505a08d1194dd163dacd26a8d50cf227df2cece77bbf2157855847e692f2b6d69d70e7ee8aa3ed7cf613d6538c337cb6089e1380836be9a5774b27237705fa558b1ed4a4cb228aec984d9c0fa46d501443afc8c7ac6210509c5207de622c9f957b2922a78623aac50c2d6a6cb2103c8754733bbecc268fdae3368d45d8863fd6bc04df22746e0a986375ee09305bf0076b3a400b0e7a14fe5875e7b117232c344a7ef056528a42aa4fb98a11293a44bc2814ea20416447bbf527d8f9d3d4499def28466ee5400d0511455fb0b4f45e83f7fe32e40bf7b973f6c38790ced56c162dc1ac6afe33cc36211dc0c3b162b01d82dd25ebbc1c82fde7fffd3f3a6a9e6ee0820c00\"]" + }, + "cookies": [ + { + "domain": "develop.snipeitapp.com", + "httpOnly": true, + "name": "snipeitv5demo_session", + "path": "/", + "secure": true, + "value": "[REDACTED]" + } + ], + "headers": [ + { + "name": "server", + "value": "nginx" + }, + { + "name": "date", + "value": "Tue, 19 May 2020 22:05:25 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "transfer-encoding", + "value": "chunked" + }, + { + "name": "connection", + "value": "close" + }, + { + "name": "vary", + "value": "Accept-Encoding, Authorization" + }, + { + "name": "cache-control", + "value": "private, must-revalidate" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "expires", + "value": "-1" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "referrer-policy", + "value": "same-origin" + }, + { + "name": "x-xss-protection", + "value": "1;mode=block" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "[REDACTED]" + }, + { + "name": "content-encoding", + "value": "gzip" + } + ], + "headersSize": 524, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2020-05-19T22:05:23.321Z", + "time": 2236, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 2236 + } + }, + { + "_id": "1227fbddad7f33c65d12b1b4c20c1c94", + "_order": 2, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "authorization", + "value": "[REDACTED]" + }, + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + }, + { + "_fromType": "array", + "name": "user-agent", + "value": "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" + }, + { + "_fromType": "array", + "name": "accept-encoding", + "value": "gzip,deflate" + }, + { + "_fromType": "array", + "name": "connection", + "value": "close" + }, + { + "name": "host", + "value": "develop.snipeitapp.com" + } + ], + "headersSize": 1331, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "offset", + "value": "1000" + } + ], + "url": "https://develop.snipeitapp.com/api/v1/hardware?offset=1000" + }, + "response": { + "bodySize": 61394, + "content": { + "mimeType": "application/json", + "size": 61394, + "text": "[\"1f8b0800000000000003ecbd7d9323c971e6f955cac6ceceeecc14507878bcb8f3fe1a4a2277b97c912d25a39da4bdb1888c8899127baa7aabab498d64fcee1791000a4864660f9a9d95830262341a7655a10b09203d7fe92fcfe3fff5d5f3e3b37ff7d5cf0015fdcd574f8f7ffef0d5cffef5bfbeba8f5ffd4cb1fb9baf1efcf7e9ab9f7df5d5df7ce53f7c48cfdf3cfb6fcb97e4ac43744a97ef7f484ff7f5377ca51c048e8a0518ca023b0e823128919c451da2b5a45d79fcf78f3195876f9f035e9ee137be0b8f8f7fbcfbc7a7c73bc0fff37f7f7c7cfe7fbefacbeee1df3c7cfc3ea4a7f2302d9596d2012049208be517a6c7fed745ff5c7f8f924a0900a1a8fc283f3e7def9f9f53ac4ff0f870f7dbc73fdd95d779571f547ff98767fffcf1c337ef7c983aa4ff997cfce1eef9f1eeefd3fb778f3f7cf5f2f8e71fded79fc7fedb3ebc4b871f7d9f9efdf047e569ba7268df3e3efd307e8a5ffbf7cf8fef3ff42fd43f7cccbe7bfef8545fe8e903bf7eff7efbbb3e7c2c7fba9f7ac82fd2fd3bf13f1ed3fbf7f5710f8fcfa97c965ffddd532acf1eefc20f777ffff3bb0f29c5f277ffe6abc7a7f2bf476f2b19a2f281979f748fdfbff70fe5581f3ebe7bf7375fbd7b2c477ffff8b07f3e7c79bedf3e3e3d7f77f74f4ff71f9ecb8fcb533e3dc76f3ee3e1f7dffb6feb0fbe7b7e7effe167fff6b7fff6b731fd29bd7b7cbff9f070ff3edd3ffbf7ef37e568feed6f3f9637d3c70ffff6b7fdc950ff37bcdffcfbfb6fb767e5fdb70f297ef3fcb83fe23ffba727fff0fcc337df3f3e3c7ff761f4edf41fefef9fd2cbf7bbed1bf48d7fde9f45cff7dfefce2429a41140770a7e26e5cfc04c9c52bff13fdcc1f69492775c1ef68fbfa92feee3fb78e66fed83e2ccdfface7f78fec67f8cf7cfdf6c4ff7ed4b7848ff31f5edf25ea5fd316cbff3fee353f79dff90760f3b0a1ae0c9a0f9a7ef3e1e050df0cb4174dfa5ee8f8f1f5f7e73795353579facffc1fdc3e819bbc70fcffd3369b9e17addd83db0fce0e3c3733d09e5ee7be5b70ebef994fef7c7f4e1f9c3e09b1fcb65e79bce3f1c1dc8f3d3c7547ec5c7727e7dff4dbe4fefe287fa12ffe7d7bfa9ffd37fa31cc037bb93eb9b27fffd37f5f2f127ffeee3cb5bd63fea9bed3b50a3eeb7ff6f7dc57ff78fff3cf92bbaf71fbfd1e7fd8adf7cfd77775fc758cebb0f93bfea7bdf7de3b73fffc6fcc8af7c4adfa6ff2801f3fffd5fff2a057b91bf16bff85fffa5fef2af3f13ffebfffe2ff397e177ff8f7ffbdbaffe528ec0ffc9dfbfab57a46fca45a644687f1ca3776fffe9edbe7cf7f890f65f94637b7e7c2a5f66ffee43da9fe2fb9f6e4fb6ed57e5e9f608a13984582e1772b0ce0c10926230de6691484a81413a41685184883276ac4230612d84d4283d89863f94ebe8efbae73b691a42460801744669563f8e1075f489950ffee1c1878f4fdf7e3787904f3cbc21e4c210321134bff7cf4741b30042d8c1465223c88d1084e7080268a573688c3d468835b18bb2decb284e0273082250f4226807d998dc798655108242168ae04464fe2285f2cbfbc8c48690e32cc49132e57dfd71841c9eefe7e59a5cb2d672da7da8913dc3904f3dbe41e48220520f6a226c6a1e721436f28b210260f5c641a3c84d5004a59ca5882ab7ad08d0a7be2f1471297b883a0b9f635712112b05d99c05a514141bec1cca95121149254627c2e1eb8fdfee43b32522c714410434d47f9e8d22b74991928a4c85cdef3f3e1c85cd12d52c64dcf4258c46915ba008cc56b3c858a2429141352bab143a1d8594e405462d85078e225af04829b868792d88b0503051cdfa7d7a5f02b741645ccdb220259ec190d60fb95a824cc44c2d661d6266917e08d1c6ca46901b21889a23084aa74112c231415076163be34af24146602ab908a98e84ca051dd9790f21add50f51429d46e63f7d4c0505dd9d728d20238228c925b3ec8b8d2d0db959884c85cd2f9eee8fc266018838ab37d23686dc084370b696c504064b4e3a688840b0189415c1932c0c49a6d04483202d21b880ded975c6b2b046a83cbda3da07a684d6101967218681519dc1904397ec5fd2bbf2e63efe79360599796823c70591637b50a360a9e4380a9605da20e5266583ad0d722be8d073e830561233d120fdb0e410a4d6250f261698d10856b9a41fdab1d63e76e56fac850e9c982cf95823f3693f8eb5063acaf3be0d7028428dd6fe38380e037a3f4f4f0fdff9a7587ec3b773ec987ff4f2f8f8e433fecd57bb8fece508fff2e65063d4a5a06622b86a8bf128b816400d6ab931af32f9bbbb0236d6fcb4ace97f78041b335beb72868dd26a30b845525b875289a818053a6d84971d8a9054e712808b19d7ab754df60e6bd2de5aee532d77a5b562323f8e1b7374ec4f1f1e1ffe749ffe3c079bb9c7b64ce58232956d8d6b142eb5b9780897251a25d69a8d6b45aeaba5c749a66267e1612c19a3cd2053f1a8ca9b804958924e2066101e7c103e67e73105ef7bade25ac2119e80473f03cf0d1e6378486dc8da36af75db1099089b17bd152f041150ce6d1c3788dc0844e605ec96ad2aa7d4a05352be961e350b13732750a79281941b5b21cb5963c1f8a86c5cabdc0502f4c4ecc9affcc31de8d6291941c495db43c7fce30c399c12ff729fca217f3203997d70a3c705d1a31ed444bcd4e994a378f9f20a9645b5b1aac1e346e0312b5d47760a15f4f7112ff048ca69940644d0460b748a0a3c4aac188952ca9cb5f1eb6420051e15591319c8d7ef9feea46af09868b343b91d3067e80e9b74fd6a09321134bdccea10345f4e10456037e01a426e0421b3da752c6793012d07452c49d2718c5978cb416056aac044973fa1315d72326f456d2be94546f7537bbdc8ee7eaa15b106d275cbca92936fb9e1de00f2857291c994fd10328bc8454036c1e1cd00046665eb96482b32bd72e868d4372a2b310bca210b540e85f7a8045ac5dec4029dd0ad95832801535d90dec4815b0e32ee82944fb47c786774410e337c7f28a7d4ddaf1f3ffe293ddcfbefcb79389b88fcd8df6930b92098ec3c50a6ba2147e1b34036622d6cb075436e0526b3ea7590cc60aa14f598262101720a28b8932509610ac2cb4213957c07ec21505f0c5dcb03e534346b38f4660e4d7c38918e903600f68c8a564b47ae90203bff93d363a9e9c8216496e8a7eb4210838d2037429059f5ba65e9b4253d484772e028434e22f97236d6292c41119460d4d14a08c9a8b50ce1a51bdf4ff5fdc18feff6f7530d2043f5ba954cf68c86ba1da616bda1c9fd4379f5710e229ffe1b0d2417069289d0a93ac443e82c001204b9c1e6e97b2b1c9957b02b045dfe9583c12cadb2678b52d8c04e2029106cbaae64c91195d7aefea5b5a67b616c4e5aeb5a7549c2ce9cb48164680b4fe5cd84331a23adb77ead08990a9a9abe1f826689d60868b781968bdc0a4366a5ec9a4193b372e0c5a873b6ac6a5744bafa1f0c82c05b918c9189d839afd7f162ec677b4793263532ebac621bcf9a448805cdee8ccd22cd05e5aad0b11dec9d1ccb3a0a9625a4e91236d4d28f5b41c7ac301da476e414bbc16243cc54f212e384f3ca0a8c0cc2ebf2657414ca3facd9afb395aa1fed1d0d99d464bc4e29aea80b792b362828c931eb33c8f1d734d5575487bcbc29f512b37b521fbf2f4171782beb9777fffca17f1ff2fd53b91e1effe4abdd3572f7bddde3d2f7fdc7990e6f19cb7e85d7ee4ca84f575fd11bc397997399fb09a68a27752947f1ba848917a98d7c95a9e2e6ac7211fc3a7156814f88e3a5541607a98f0d24d1862024a7822f65b20819491085ccca5aebe43ac62a5b17afa9bbb9de68a8a53e638019654b268bad7876c319d044cc6c8f6541610a3bbb916dacf86a01729200cdeae2818991b197c2bd00c4b8948d525e681f625d864582919448a44dcc547e1daeb59557da724b3531d5f2ab8f0f77723d5dca5bc97f94a492fd9833fc835bfed3f29fd7181e9888d7eddccd3e5e17e8fc586d37fc2abafc96fe5c04bd4ed39ff9a5f20634a2d64317630e8c3275423b6b0492074109a4b0689d0a6822a8d53602d77f27ca77fdbd5cdb083c91ff903124db4ef91bcf7f46eb800b428e626681129a2b0c791d73e296005d02424e12a05961be6555722025070d2082ce201812895521888f56908d2414caac3b69d9ea759430db06d0e9cddd4b41b9ad509968010139d80ea63767b05bc4c744c0f43a9843c02ca0a494c66d74c3c78de043cdcaf291405a6b78503f831c325b30c21225812a6711c05981d2d8180141a9d57c25f5781273ef72042d0199c28772e56ee00c21659b3dbb46749c064b3d96a36059a0f362f4065be7e556c831abc1774669b27a68e8e2036bea821521220aec2c8ba0a22cf820e0e09cd371b5d215145e4d04431dc444d926cf4e05f8e80a3acee9dc7fbe7e72d5e2d58f1e64dbc4b5ecb8f328caf6e3cebb285ba0d8a5496d5cdbc475bdd0396998a859dd3e68ab149a1323fc4e829591a0dadfb3c0845678305ad8ce10017a65601db14ceffca2a656d3551b0b659ade720c1e46536e25ce10eeb7555c5796b26c5d5f46e1d25b7fbf84cb02fd76837203add875b5f438495966c5fa642d830533e89548e749fae44484e06bb12b0a6f6c12998dc72e6a0bdeacc50e1e6fd0aeeca88eacbb0dda8d1d83713140a9cc395b549a07e50db064227c2a4b0ee1b384831868dc98e641792b309955ed2ba5ab4d483f847e48448cce14ac13d8e56a634c49906216c17726a96c9c0eebd4bfb63039ad12d4d1ad3e1a549b3c1e4d1eb3d4f21ccdfee1f6e2b78f4fcfdf6d6b4b8fb3bd93f537d0ebc1d4f1f3bbe41f1e1e8f068f7ffdf8c3dd6fba5fbefbe1e1e174f2f8d7fd477c3c777c78e078f458e9ad215e9b3d5e8c5f5375bd43c42eb29618dcc634ede5f502ecb496366b1ec0852225bd19ee74f129faacad172e48ace6334984680acb549714772a8524d7ebfdabd37bcb7def5fb9d6c139259856a8e98cc6ff5f930bad3601f0c2d82384fd7bf9041ffa96c7ee1bfffd3ffdbdffeeee0ff7efde9d126cfba31388ed1e3826182860db08b6e000c22862f70308bb885da01b64246db875836e8760b3ee01242513daa1fa53c56cd1b12d2f00b340eab4f0269370de4b13d911e67596caf4cda0911460bf064036f3cd31c3c02a26bd1d2ffa34c40ecff7f372557efcf38772da7d78de5ebea700f6a9c7b742deb690479780916d53681436fb55007231fbcd72e7bb91cd7ef36a297252c89bb71090563359398088d7da06a95890570522d8394118b5b048de0462f27e9d5500bd067372aab3eac9da08f46429cf18cb674cb23501cdd5d163abbf1cc5cb5eb3bcd814b4916a43d0e07123f09815f043493fa494381847abf6fe04a11319831298ba248286540862132a9d9506bf5e06329ecfacf2cb722bb59bcf6c19c8601c4d694d92da484163c9361319854f6f5ffb123e4b8c14586736d02435b70293592d3f2090297018ba391b8e9d0c8e85f2b6a422495ac1ba33a2a3cc313847402b6e2593a325c9bd9bd9bb3bd9b6924dd4b324294bee0c3fb336dc7c85f4980897fd123fb9d4263200e08d7a95867ea3c7e5d10367a5fc2c9d92acdd8932460527735d00909340d3157884d4094b36249782e2b0da4e649e68e79768a8e32d6abd9dc86fa59d0f4eb9f2612eac8bf909a4989387d74498cb0e8e8d226b3feaa9965a9dacb5ded0abb44b5ad7fd223833ecba2b3b3b3756f75d6a76fd10fca1e6654159c94664075a60905a04993b4156399fbc7464d6597959ddc7a7a7507e91429b1b9ba87839a5cba77d468e02877b8f5f3e3e75ff591efa29d6acbd36f9d307b932714e4d84af8838f5a02642ac8e661e85d8022665a460239b4ff2ed206776d00b0c6a240343b10dc9002106119d0a021d05c1aafc492744678371ec571bf432429d561d6a61acc6a6a256181b4387ca5d049d635376cb46c9af0291cbd16b4e04cdd628791f344b78edb3dca06dd5b16b45c8a03aa6ecec9417d9ba59b13f135e009233c958c052921420813a54e97ff9530147d62e5a13cd6a7b329580a914bede50c17a39cbdb0188d192ca67fae3fcf84cb9e6271edef87141fcd82621a398d9e7f9b09cdac4da57aa7b35805c2040e627bd243aedc8b8815c9282939ca5175d2e8908fae005e7a845d25dea3c21d89572908b59b5fc7610a211adb2e72c6bf9ccc2d7271ede1872610c5965df3139b3a1e619732b0c991df0728844ca99014264fdae2727ba2ea1408e4604b45168971c798e01609d75c75bcf183bd3a297b695b1c652134748da9cd1a4bf45b7fd2b46c7ceaee534585e0c96ec52d35d047663da6cf08da0c3cd4e778171ce61ddca72cc0edf49eb6d1745f6c608d4260b8ace886423969b0ea35d58a7eb5e5271352ddafdfbd435adfb243baa4cc86d7d691b3b6e8b1d53c1526fb40ec1b2003b987863a8a1e346d031bba90534e972ed363c687ea8ae0345d9086d7d10489884d7a1fc27ba0ebd0434b49a67be9d56b8d7a5dbd0d03146071a5ddb1fafe4f5757d22c5eb86c954f8f43b585ec267894444b3daa89688dc0a4de637b028728a59c2c02f05135bebb11314d80af4d98ba064149403808a8661a58dc32511817138541bf0df3efe694d9abc95f15f90c66aedae426772e419990b336a486cbebb7f17d3b7fea92efe7ab1837c787cf077bf7b884ff7dd1fab15c3c04272fbe3af861692470f9e3242867e1461351bc92b9e2eaed9d1440457dbbc43042f0134a5b819215f33d14ea68bddec5e182e4c71ace55039d971e4ec48f81c0ad1b4f3828d55c279a7644e4619b59a11320835d5a4ac4bf654ebec4fe447529bf28e9ed1d9bf550bb02bce88b65b294701535b334701b340571f1d6ca08d165f2d3f4e32a2d94d3046b325621a94d7d8ba2e616744748521180c08d24e8b9c2d1a949cb7b7dc6bf9e84f2544bd2b7733909cc007a1b6d0e3bd75666e0d1d13c1f2b2746229f74806dac8564bbb1572cc2ae9cb75dbb1b3c083a67e60943e56153d071468831704ac040489b1f38aa28b6ba14309755a15a89978aff3554d4a3fda47e9c8483a23eff89c5adaaae3c4ad967645b5b49d52fff458ea58ce51047f39cfac961b6a1b59ae1768a7a5b459a13e179639ebf4a039c45a33f902348ab150ad004c046fa2903259e9aabb25ae66a6af2776c4d6d512e5f66eb762b9e54243337d525a9d31a4d63432579c128d62a6df62748899050cf5b5d9c82691b95a829ca444b33a7d0dc6386235e8c504230d72744253c702a39482c8e8ba9745a5100103afa6b2040153c1504bcbd000320110279571dc94fab74c9089a0e97dc30f41b3805d98616808b91d84cc2bf59db6e55a6ee4314264975de753278caa0bbd42791985204964c804d185e078ad71e73afc7f1a991521fdf0ff7a46c86f072185f5407c8641e5e194f8797a7af8ce3fc5f20bbe9d03c8fca31b3f2e881f3bb9cce9b1bc68cb9632385656e2865fc56eb2f1e302f931abd22f171bab34c040a5efd164cda6132473e5472109a56c44cc2ea00d2918bdda4e2f9e565af6c2e3269719f343177ea03c6723642b625d2b42a682e6c5da62b19dc20665935cde0c426856ad8fe0d05ae6014242085e590f82b024c468220bb63a886862d562069928af95824c24e47540b29fb0878690f148183ae52cb789e21bc5c754c0d4633904cc221988b31bd9f0712bf89857ec2b76568175438da504cf9aa450d195148434082e7f145e75595be372d7f3a695b02e911f4e1b69d5198afdd605b95a86ac51c582da05d14d95722b0c99d7e9832cff68189a4dbac8d441c941a2442a0cf156785d4e4cd25d88566bad781d9dfe76146b6436b99bb4df994db64efa80211694debe9d3fc2904f6fdeba845d5d8d245f3a91751a3af5588e4267017da3c54292d60fb91592cccae3c198ca11cb83867a2e57f6e8b5abbdf49a8d100a0ada0a979209603bf2bc4e356b4b92a9ed5b7d385023c99824a0506a6b5b3672db0c390d9a97a95e5a6e85a3db103486dc08436635f25a1bab00cc40e8a874b910010441a99c8d98300a0248c293d1ac5c926a25e7fb82109c9e50fc8d7f6a63bdd30821458eced0c8b786c855e26322602a3e8e0266098b1565da48d6ede0e313427967886b077630d38bdeb303257c973b814c4678f0255ab2ce5d474e3b58330599b230eeefa69ac7ca54314b190477460ad216005f2d43268266bfb14e2ee5b5a240f3065b53fd5618322b4d37e586554b18ce64f984e55bbaa620b9ba3c7a2738242d3a8fe58aedb5dddee2aeb50278e4d4f071b7ceb479ad8c7c8b2d5930f20c55c8672520abd9747dead85edc4f5e8eee2f6f8e3297e480328aabbd87112ce58062146e543313be5eca9c38a0d0bc80dd38d4520ff4ebda49136572824c48026d2d74615222baf2de58e8b40babe9d7cbbf3cd175af79bbe496a84c884790ac6afaf59b4e542682667b2c2f41f3e508d14ab65ad71513e4244f9995af1b239140e38020d92a62ebb3c8ba7003138120f228b28768c004ef70b55609083535b7d59b6bb7b9ada9d9dff27e229cd12a69735b57ce9189d0a929fe51e82cd034016b37aa81e4564032ab63476bd8b21a9a0b671741b1528220e402920c22846aa5e565e69c55eefc3a1b837b90a09c88cc1a0d285bc16b642eac25a97330f29989c89a3e28db67d4037be1e777c93f3c94e339bce58f3fdcfda6fbe5bb1f1eea370786c2bfee3fe26337e1c303a7cc844d5f9579e366c253cac39f885fa388dddffaed227681860d2bdcd85769d8b45ada4500eca496c6b3327a8592ad56382098899e89c00b2f41d6a9b1203c6a2b0206e874b6dec415cd2027155d351e7632c8960a9dc8e851f3395363cdcaeb6a53a051c8ec77d9ed4266899ebfc18d932d05ba56820c53209e15d2db0217044d83668c01c91d6b6142aefc885ab0a97dff98b103a7c8665a851faa46a89a9e3afea1c46d93d14f0957b8bca3ad1973ab04a94e5e1341530972089a2564f4d6ba8d799595268d201748904fc8e8eb355c4b3d181b03a562209945b298042a1385d7148489e0a38c1003ac3336d65bb1a8291d57759550d41832b11c9834c833068f9b70e51af131152f7b17966dbc2c800fad61e35e651cacd1e302e9312b9d77685cb9760f95f3d84523bdb1c2ca6a459fc10a962a08624b4cc6240deb24205bd9e35430f42aaef594f36fa50583465927f18cf2d5678a567e82158f6ad083e97fd7a101f3fbfae5dd3f6ceefe5bf9684f5b30fb1f9ef461760f1d3761009494ad09b3a4f272ea86ef28661718222817b50dbc8a70bf35612e0261a74d9859e93e682e4022a506fbed5590cc1d3811212b81ba6422414b2f242790a0b0f027ad9701c9d301ff2a23eb7df5d46a19d05b8198d2557b29cf58e9f899105b31056a087bbb08db39614ec9830e11bb44090f985e691f5843d82522cccc4a3f0b3ad858a386066608467735ef52ba13685279298e0ac61003bb6c149b75ac30fb8d2e6a4a085d9753a8b6d165cc308d00a67ca8ad8837079029338aeb29e24d054c3d9643c02c0210741bdba608ae961fc32a9e9995740282344ce086fce8c8e5c8243ae94b06e421098e9444b625594a100dc715374a829998cbacf753601a3fc639101b42eadfb31fe187393af6a70f8f9fc4c7dc631b3d2e8b1e53e1526538877059821e68edc6b61ed0add06356cf496cb423ad07bb5c80a497c85db98d812c4a760225ef484e48ad928d517651af28c3199989d7e4a39fc85c4fcff956ca67a8b502a7ce981f3854547b6de6af1f3ffe293ddcfbefcb59385b435b750eede56d39aaa2f9f8fdfd9112e7ebfae5dd3f7fe8df894109edebdd038feb67bbc78deb672c7b65fb6ae5b357e1d76594cf7633d453f6ff4711fbe51da0729e6f7ae960ab9e5d27bf4eab67b33a52cdcc8addc910434aca995cf011431025412ad94f905ed4d106cc3a70f6eb643fbdf7264ca9aaab8d2034438231c24029cd78ce22995bde877cc539d0d67b731434fbed4bb014432cbc5607a6a540978090610a6467759c46528188d60382b8685c62f00293892505525694548944079d0999b405b3da189c126ace2250ad67bdf9760852de53034e9f513fbb65f7e62b27c844d0d4d9d1a3a05940c969246eb8adb3bc1584cc2a39eb25d8a0b6032967e8820a5a76826bf71e63ce823acb42c52e6a82006c576be1bb09555ab5c6f8f8ae4939a7a59c0e4dc93acf48420ee2fe724d7efcf38772d67d78de969026b3904f3cbe41e48220521bf91361d33ba2bd84cd02ad18ae5b645ea594d51872810c99d7724a66a817f3411e0212a5b70a44e709047a23858fbe40c465cd466b97dd6a79c865b462de0e4494d424159cb104a0596b5e3148d6ea8980557a038d24b742924fac442ec0b0e0faf4e2b8a265037a2db43649200612413209c268627526ebfa4c7695893018af56aae9c86f1fffb45fadd4d2910149485b07fdc4779b28be357ed499b08980a989c8216096b005b07a43ad1f722bf89895545acb9a0a420623618a42472a58118335d51680850f2a894caafa9558ef7c58af1f02a7fb2e5e5691adb724e6ad8c840148698c5ede16a0292a2f1c5f9733123611b12f4bce96da50a3d0619b09bb66809dcc84e17c02541bc055613b28a5796f35d62a5aeeba2a89f14e78553816bd564c1982962b0e85c95311757509ec77cbea564a9bb005704ab23963ae796645e64fba4db3253f5fba88f934586a2bff285816a087767243af6229d3b29f4b80c730fbc1d9ec8711b52af018b8fa4b1f7397620186f7a9a0231941e882882939932c64e7d7f293914ec0d47d5ded49426be54f4c83595452e3195d98360d769508d936f24741b39f7f81e55c990136d83495b78210339b7e90b308725840635b4e0fa993001378db7ea1683b4196d8ab98baa8d74148dfc81f45434dc76b37728790967d0c4a68ac9c2538a3fdd2a6c1ae1422db26fe286cf6fb947661b340139f9036ba35f16f0522b3ae60505d2bd958375c90899c34764e64b45620641424b31341c66cd981936eb54484044c195b7efdf1db3b58cfd8f20d51444beb10cf1036b61ad655b1a3262013c1528fe5102c8b34f0d5466343c78da063de114cb1b24e3b18782207a94bd6a1ade8507a815d8148e0122c1912a164a004eb74f0950039dd0ffc5df7bcef07364fe423318a4376cc67e8193f73afd88f79c0b40dcb1741b1cbe8e3d731b489b8ad19d0216e17a098e5d76ac4b436fe4560ecb48d3feb4dc6257a010107cbcdba183ae440a29abe0874390a4ea1eea761c4ac6c88fd1df65aad98d385e37b7918c896018d41c6da1a80331664b63ada15e7421361d3979f5fc26689668cb6b071ad9f7fb51439498666fdc19cd2ac50d1a08ca69c0145de0bc2ea8eec4227bc8ce58a6e930dc94b96c1af950b95e79faa2a57bb575caf9fff6672a15e258b67b4622ed31bf9e5f98e12a05c7851c361f3ddfdbb98bef54ff1900afde1be6446feee770ff1e9befba33f4d87b63f3ec9888e1e3c9512416f53f1c653a2a962da4fe4d63c0adf3ac97908df255222341b6ebb62ae17662729919ef52aab230454053a38c099e4d4b90213e3ad17a8b513dc91accb62003a4551425c6bb600c7cb93eaa44dddff27d7332b7b3338b350ede7cec0d96796f65617e7b49ade1bace96d17764e6e3b3b0ad805ec9a95dc18dd007633009b754a4346c5726b9ef9c22fe3499b94b13aa55981526be1b3352232b814bdb7d84fc4ac54d393a36535e57eae1627645b5633269876e576c42cbfafb34d57bfa582de28667a63a8979859200732401bfb2a0869f5bc4b20c8b09ea7e76dd2c06924a6e15c9c26e5983a2b52a03adcc02058fb2492c931059930d96ead0cc80879ba017d1f99925a06743a1527a15caaf88ca9b8cfcc800e6dc59f97b4e43bff14cb137edb52a08be1d7e5a44013115bf97514b10b084c89cdc6beca745ecb812e8260a739d0bc3d01967b6665a9b71b38d813048541426116557b02550542368148b110cf4be3b5592b09aa1bd0478aebdd0ac29de2baf5a40e6faab5babc9767a4406de75adbb9f65a5da851c0d6918a43c02e908151c9c0f4abc85b1bc02e1260b31e09606a06061a070a57eda033496641b10b029d77825907a13d64af7240b4eb0c556c97ae4d0d98f7fba39a45dc782e8f99509d91837d66116fddb1bc4f1fe20b6c5e0ef20d02e722c61e760bdaa63c188f02eccb532642f74a7ed60d3817099c794705500694031c8c3d98d425f03e0a6ba113084e0a0f310bef43c821da9230ad66e8a6849adaf2d9af9b6a6baa4f81434a01e1196e6e9f59f3fb2978d3aa7e6f3067da6d883b0dd997b58a4bed645024d586a931ec6618366be8e0984182d5c3a50cc12b1743120e3c098c5a8a4096849636505708a56d5e0b6120d4942769b53751cd9374226b223625713aa3eef799145bb5e4d7461fbed013681434fb9d586a296fd272e7ab37d43c81ae962127b30ff3c60e2cd9909583b21b3915189417183a23d081ab82d8ae6eaa568649ebac5743889a5edbdefbbcb70d716384286980f88cd50cf3c30c3ff5e843e3c7976e4698ab1bc062498891b0918d1fb7c28f594305cb24b50537983b40879d94d8555b6b27d08217ac1c0a5444e099c9f975c4435b4bb9113fea5a84ea9265dbf0f578784e21903ac752ee32d5b00d1e5f6a2a37b590f7102e0b74fd9565bb51cdd5fa56e0316ba4005aa26365f440ba93381a279d17ae5c8b04262b45e8220a480e22510415d6d94f5de8c113febce55eeaf7e9fd9a9b11de4a0f06b864878a966ffaafaadc7979cab619eecd35612ac22662b636610e31bb04c29c55af543f6b4d988b60d84913c6ccfb27684b20411f238ca5f22973b999f2beba2754e384e0b2e89038a6105075eb8c11f48bb1d594a35cddf3ab9aa3dc04c41c68d6e60c47b95641bbce24682a642a410e21b3044110cd865ea58ddf92a04b00c8300932b3f605d61a45e4ec200752980c842e0b66a70576750e2d611001d84785ec835a2d0772d3d150a5d80d209359902cc07767786bb7a50cd7868ea960e917fabc04cb12e860541bf32ae66d0d1d17888e79e302ed0c48ab69289a31113029534ec6ce0a74a9b043c52c82945aa92e2bbfd20c73df7d91a35e64ddb3fbf1db3bd9ba2f130360a089b53ca37ddf06c0ae96211341b36f59caa57a30e53cd31bd77a30b7c29059e700e5b4b268070491dac61010cae15b1098210ab6e5b434b6c30e62cc89569bffd242cea9c2e47ab2cbb74310c5d659d667641fad7c7585fcd80a2947215347268f42e6cb07c0b4e68d960d1f37828f79ddbe0447a8747f2ebc00c45a666753c186f25160d046041b95808c922c65a3fc6a9ba951a85327a67a3755cd68d57ade696f0820f56db578460a326b08fd13bb47377c7ca17bf328606ace7e14300bcc0f2b891bd9f8712bfc9895e1b3720c5a0d9a1f9db4d50d8605d4dda218ad115c2ef342ca942de4c841ad363e6ca74d297e55fe7fc5b5a26f871e5a3a83886774cf5b01eb2a09520b581341b3ed183e2cb7d35399da0469dbd86e8320c0f343c4524b36c6d9c10496ec1245e34a7818551922eb103118915c48462684a457cb40b450532b6e6b3eae5a096bcc1003161d9d61e5723046e8cd2f7b24dc3f94171fe728f2e9bff1f640f219e65d6f0d24db4ad62872f69e7b6aa94a1668921bf52a2eca0d24170712253fb1088db436da0c0cc13805eab423a10377020dd441ac8e0443b9c995de51a0b506b1da24efe79a283bac0e6e3fce914b56a334825cfc28af06de60ab65dd0a4066277901b56334833c8482030a2108f20605faba872c26aac358d1622465f35ab52ca8ff4ec46575f406d5c48c27f4605484f28c42d667d263edc5d0572c647c15765d8c90712a5e6b1fff10af4b94d1a4551b688ba0af975e274246393b4d6ca4d6cab87ef7f8a18e663024885a448f52602a240b28b388567a343181ebd6d9825682414e1b1bfdae7b6e562e939d7c6d1c6c47fb5a27ff16939f8980a9c9cf2160961824660d1b6c5b34af961f27d9cfec20b10660b6a00693c40e3bf689ad00544120db92081962914cec4c175dee56d3a2c0941971b99dea4b01eb6d207b3bf828e440d8ee3b687d98db06c944e8bc549e97da0506d6e84dbfc1ad81e41640323b528cd61ac9920733615553eda3cac2779904a2f68272cca2b301a1eb0c65bbd62a4bc9429dee26df9b8229d3ea68a71361681ce13918f91c43c915939097833b2aa3e5028c1a0f9befeedfc5f4ad7f8a879ada1fee1f1e1ffcddef1ee2d37df7477f5a55dbfef8a4a676f4e0a92d2dd0bb43bcf1bada452c1adb1a848de2776f10b68ddf0568e61836aead66be5e9a9d96d5e6178d29968a0cd88145b2554efb0c59281f6b62145990ec50b8e4c19b0829255c8b67349eb2a9b159f5c66abd19e737c333b2521af72a69d19a22cb1f3dc695b75b5e39742682ac1765be04d912291428bdd18d3ab7439dd9d560a08cd406400fca71c195d34c9212cc4a0bd455d8afea9e17eb65ea4c6419d42ad4d90afba76466bd4ab9e93227b8630d6838c756ec969535575c88db49fb4f83663f102d17d36692a14def40d30a715709919342dcfc6e3005162d38379888ee5427ad77246cf0b23044654151413937015129196cbf7d6a158694189daa4bf7a1b9de7ec9b792b9005890da9d21acd1c3ace0d78f1fff941eeefdf7e534bc8ca9e897b7e5a826e7e3f7f7474b92bfae5fdefdf387fe9d1854e0bede3df0b800b77bdcb8f8c6b2ef49bcf1dadb45ccb4ed0e6aaa097b14b15f0e30e368a35e4519dab2a08b00d8691634bb9d4c8342743094865aadc952d282304581d25ac1267ad149d725400ede85b50006d3a5e87ed7ab6949d0380902a6b3a4a187a7fb79b9263ffef94339eb3e3c6f2fde53f4fad4e35b16746159d044d4f426cb87a8f97288309a0d3451cfd532e424099ab51750d23a8ba6dff5f382106fba680859205027b0ae76f1e0a2e8cad5a9cb6820d915175c368be5cf73a8b1b8ddb6f00a49d08ffd9d86920b42c95a5ecbc8d47625df0c4a60d6604019cd886a38d806092c944b9548ce05816448708a5a848e720140d42aaf33d8b6cd46a69ca9fafb2a6cd9c818250a1889cf7018383a297ef9f8d4fd6779e8a7a6db3ef1f046900b22c82e19390d9a5ad13a0a9a053c6a50aa0db76ce45610326b31a03401b3192e0bc3820e1bbc113a1b25907dedef472900830f9dcdc186750a5adb59b2d3fa6edfa0ac632e4d64334608a2b605facdaeff3601b29b0c1b35317709fc72e21a70b481e696792b00995f19a6942d7cb16eb8af38c9044ea3d0a85960241084688547e5ba821625e56a0469eb263f57e5af8c31ba15b41a4d565b4089ac5a73e47668f289e561a8354a3958fee29502e7230a76c10b749a4420db094f3e5a09cea5e4561c109b82491f99b255b4c6236292254a3e231d699e99578990dd414df9cc1e05cd9757b41c967ca4992edf0a4166c5fe2c6d3d9fdc8020c05176296ba14d351dc3ce08e2ce0aedd1509710945d6dff240a3c1d9efcc5d37dbf0d09a111645cd0d24e5bb2eac709f23972fff54c331b3bbe7079d8285cf6dbf676e1b2c0ee496936408d1d37c28e7965bd44a324b1b1c7f030186ca7014597abe3726023023823ba80c658c9c1a475f429bd63e56850b1464335e05bd129e6edc0030c6b2b25b6f9de9b85c8d6b7721436f59eeb10364b744434c006db54d6ad506456296f012db27203db63e339408a4a70a0546e69b2171e6d2c4cc964655289602d88482be494dd58dda6271b44a63210aafbe0ce3068692df5eb04c854c8ec1750caa500a2493595fcedf06356256f904db969a581bd97c92cd975851a5d790548e53ace051bc21038ebbc7206565b1b56eea64e03b30e28f67753aef163c268454b87fd4c4ee3c74df2632a64f69b26b621b344139d0037ba2520b7029059913a91340016072d90ced4a4444a9164a1086a89c243d789ec64569c24bab05a0b448f07147b7fc8ba85753d9795b7031067b5b6b6e51fb7c98fdddee2d388a905aca38859c2a60ba12520b7c38f59853aa295da6e27408f267a5530e8a4e8b4ee048249823393d0329a72b92780e0d7e2879a2e60fd22857d01abf163d00529d921487bc6105693155e2d422682a696b08e826601846035397995e58f0d2197871035ab4c2760eb4a4e31300bd65ee9ae904374212481266be1750661d94b8a123a9556343969b2c2cfea819477159d7e25abc7260a794330594b62e8b4daa8968edc0a4b6625ea160d58896a908e1043f6d269d1495bd2915858c2d5354b652373273947b5a6cbc969b8f7fdf46ad8a05a3a32628941431acfd822dc5072e528d9d99d9cbec217c752b5545ee28836e01a4b6e8425b36a75575042e4e470257d2106520842c6aa2f545e0aeaa82ef89590ca0f4de867b95652874cee63a8e3ee6d89c9545ee2b0bcb3788e63561bf0bd5e884c84cd5661b8e01a13906436d0f609df0a446645eaa09c6449da0c28d245ef5df04944e620105d2728462ba4c66875b6c1dbd5642220e4e96eb84a91ba5e5bb6058c238690646078a5dad6fa2b18db1693337feb656c31a9f36113015beb6987805dc464c5d80dbf4a73a6ad31b908809dac3151b32279039a956433f0ecea82b4289311c9992cd0bb2c982d8984198cf5081457dbc3a5c78e11fb09b1156d56de0ac034804665e1c70176c9262b2f4f7904affe771de0f5fbfae5dd3f6ceefe5beaf7090ff8b5ffe109c2760f1d230c40f53e438d614bcda88d62763fa3b6a0cb0b6cd4abf88435845d24c2e6b5fa604d89df937dc49cc17b2f9d20eb55651808af5c121821396b3d4b97d663983add04b15fadaa6c63d829c31c1992b4b0cdcb27b6d1bf22c3cc8061b970a386c5e6bbfb77317d5b12c003d0fe70fff0f8e0ef7ef7109feebb3ffa53a46d7f7c02b4a3078fa1a634f45ede6f1c6a9ff15b5f7df07ab40ce9e3c371102f31352761832d31bb1daacd7a0700182a48b1433f7e4399188217e47a3f7e2305812b7f02568aba400ad799bdde9a074c35a87a2534b5c1b9896107c5ecce18bd3e8ce3ff4b7a57dedbc73f3fcc516de6a1ad2b75415da99d6bc0a82bd55b27ef636589aa9e756aa39af1e5d5b2e3a42b356b1b00da146e188943df99ecb4ec6cae8a4f531222205198d109af9321ae0059a9a8d7a3034e8b15fb700068e818a1c36aed943a63b4a1c93eaf1620a388a9767f878859c2b70c596ffa4e4003c82d0064d63600b5560ee570364ea54084ce8ba0b01388d10986f227ceceb28ed1b98c6b15d4605c60eea3c13f34effd297eb02c9fdc3973d697dc156a04f9c2e9eac9a6cc51cc2c609f6c5cdb25793b0099f50d806abb6fa877db3d24201a98a276c2b1afc3d5520b9fa1ce5a031843a124282bfa064cba68540974f39d99ecc9147cc83300d26a5757078e8958a9c772142b0b343ea4511b6ce4b81172e0ac5d001b670c3835e8e543483abba844721a044acd22788c2226cf050b39abb08e2c4709c9429d26e2b5ebf1fbf4be046e2b5d4df8ee6b4623cf18a93e4cd9fff6f1e9f9bb6d8bfe71161f9f787843c80521a456af2682a6d67b0f41b344fb035035c799db41c8ac4b004849c89aecc0f592bcd53e0710d65929300425820e4e242549ab2e9864d6620854864d30a4cef863db433cc190f28e389267d826b7fad5b532642a68f6c2185c6afb30586a69c80d31647e973d5bed580d0b58d965666d94b05deda0576300569c84cf517a9931cb68d72a60d526c804427a9973db1d398110a9ab3fc0190869c6975789905d256b4a5bd957b278a14a96d5b0d16d08eb360802767e084b01cb72159783e52d44e8a58d4ea80c56a0d25a309553333a743150e2d03f7ea51e089cd6756b13bd4603b41ec81442c0a135d4a6b0e601f21912c4b7099051c8ecdb86b0542b84c06ca895b16e0520b343588cd54bdfb9410a626d82983a2994f628905989428d4ec89c3959f23ef18a43586a72a6bddaf53583b2313f1008cabbdad6d7df263b26c2653fb3a8963226534ae3c63578dc0a3ce607b0a4b2542ee33cd85f0fca46925a891820094c8944083a8b24adb7c660f456afd5477713e1f0ddc7bb5f7d7cb70f87d60319d00389ad336714b01a3dae8c1eb5833e112edb4dddfb7059a2836e50b6b55f37430f373b84a52c2a43aef7cd3f78231b89499a24bc915e2028101cca6b718cce952b7d97dc3af0d896ae4685dcddda2fe0967a4cacfd020b2ccf285d7dda26e5128c551a48beb4843565087b143a0ba42146c386dbfee15b01c9ec28164a6dcb7dab1b808438a6acb315acbdad0becbd201f8d3099bcd1868961ade55f20a70bba751b37b4e55f6390682b15c31949485bd872e52cd9eeb21f454f3d9643f42c329265da2efb1b62c9fc481682d59a6050d1d20530366a2f94e4eaed88e595641b85325e9ba431381bd69bea955391d93b77bbc692314b24957fa0ed22be65844c044d2d031f826691ba16db36d57b3b08995dd7629474046406e94826ed7ca09284948bbc40af3bc1c846c4d0f9683b097ea5ba56414835729c68a9ff7deaeeb0890bc70821491af80c6de12deb42ae9c20133153fbea879859c419cb980db6cec8ad1064765d0a00a38172d73ad897529043d17a2fbc0b5a60e228bcd646240c86bde980a95baf35a2a6f6a5f433ee6d5fcac818cb8176e68c91accf14a7ff346ef37307f96202ff72987f7973c0b91c23f88908ab29cb51842d31040c1b7c950593cd07fe228033f4810737bbddc4954b14186d078628ca9b5c3213105de092b370ea844754c279b0a6739422adb3dca41fe49acce0eb64ca8a65afb7021c04a9c09ce302ff9929cb4f439cb9836cc45976f86b1462fbe1afc58a64602c6c7adba5869cdb40ce27568f486492ac07ab4714452a6c31e506c8a140694b92633c085b4db93220f09ad2c5c9d523f5164cae273d792bccd1b6dc15d8edbed74599b37ec3fee530af7533e4eb90ec6236434e04ee5e812f1713c1682d37b22dd1ba1d92cd8bf0418366767a20a2f4252551c679a1544702bb88824387c296b42ac46c52265a8b64ba44e944f5ba5f95da48369a63b6120dd3f266928733e85fee537989af28847941e711c29edfa5f29c7da56eff8e3ffe70f79bee97ef7e78783865d8affb4ff8185f87074ead8134fd5d7d23d862bb8da7087614b04bc8385dc9c55e65e6ad11ec220936eb02e0a4d556b9e1c802c9ae835000c68158a0d620bc8e203aee64eabc424a6b4dbdd5203dd513d4f25f1f9bdcca7f631b32e5ec19fda64b1e79fbf453b6d2df92a5bf89f0aaa5bf43782d51fa7355aef32af3710d3717899b4ff806486b483a1eacfed2c92449210acf5d1008390a026b053a1329bb9009576c378d79d32fc27bd77833c11b2809a4b6f0e3c0b94cd78097e73b4a967241460d88cd77f7ef62fad63fc543daf487fb9245f9bbdf3dc4a7fbee8ffe3475dafef8247b3a7af054fa04fd06ee379e3e5d0ccf26c2b7df42f612be4bcc7b23a8cdf69c6f3cbb059ed1ac93816505c65a1aa44f31e644d2833086ebb89e0c82b491a2fc8154ca68bd59c744ad170da9a9d66ed53fa8363d31c219974fcc9a33a6273e0767ab6e926944bb2ea24d45f07e99875a6a38839ddcd85731956e40bb48a0cd2fb7410d8aab0c7f5010e492931955d2b21cb2c02cb3a0a48cc8d4d988e83bb9d26acd6d82765a20afb1d9dfe13563b731d36a8b8f65bf9bb72d48bb5111d354d0ec876861317b3722dcb82683bd5a880c454c34eba4e00c02381eee474b0a4d2773164e71adec95ff0413a4309853086cbae0d7d130f53da5f19e8e5dd15bad57e37b3b0841b0acd99c81905b5ccf7ce5e8980896ed26a87db02cd12122cd1ba4868e1b41c7ac8382550824350de4af5c720cb2898527e504c6ecca9f7414b599a43976d6725e0b1d56c0a9386f5b5f7eb883b65a73021d461a64d79c411b482642679bb8ef4367099048491bd58c146e0524f3460aa80b4beaacc1314994438e06b200950a49bc7782154ae1597ae993e22cd7d9b0b9d5b54e991bf6a2bb660d3a26099124843340d2bc78ae16211331f3a2055fcc10d490ddf47b4a1a426e0121b3ce08d515415b3bdcd1ec6b7e626314be5341a05559789375f953b4993db00babe5224ef466a5a30569b5a86b5b6f7f6c2d2dc9f219a36a9fd907f90966a39b11cf4a4d93d3f87a1905b54b354d94d31bd39c78ae1737a7adf7595b0446834e2b1e38f1f86c156b6681c9572d6960c191ade81c53c6a43406b50a6fb65ad22927c45e9a064d4b7ada776742e3d419ae08b3e2d04b988d9e3eb8069a85359f53b6bc4781b5c8ea4eb931af52196ba0b948d0ccba1668d2e52a4f7a30e2e55dd63e4b29bcca51942b571421953c4743c698c96627d7d99ad383468e6ebc4a9a5fe341da069a53d08006ab68e1cd9d3f95f7cee43136dc2c8b9b5178d563390aaf2fc70da072afb429bae1e62271336b31a0ca3f587034e8c484ccd6a32e9009a91318abc3a80e053c099436c93bef575cacd37b619cf6f4fb097bd33a3123e0386b8d326714d20e4ff7f372517efcf38772d67d78deea41262b699f787cebc55c562f662a6af6eba8b651b3c85c18998d7915a565ebc55c02444e7a31f3be01f5742a571d3d80082a524676e5121e3b537296cc829293e54f893471d6e05683c8c4dedb1a0e754dc88abe016f0722e08c315be3bc361876db2499089d9aee1f426791359f8524dc06c36e84243cabd807adc9486570603e2d292aab094507a0050646113aefcb2d4eca284dc08ed61a0c033916fcd670a85b6f5794ecbf1d92b0addee0677876b69dd137009389e8a9daae43f42c001323ddc6b409b15b61c9ac585e1b8592350ed42aa95c8c34482934da2030ca929498545e0b48935876328675f618542f74d14faf9d6ab7befef8ed9dc43621763a21661825f6ab50dab6b6cbe6cd653453ea90d84488f5bdfb97105b22792937a51bdbfc9aaf973827cd149ed5d69b72a7cb92fb84f990bdc494b3c43a94cc755d2d9308098c40e93dd735d3ceae6538269d50a321b1dd88be6a2ba6c7d0413206489f019da66bb9d6a4652a68f60bd8d4523ba6151ab9c1578148cb5a2e81212759cbbcc69ead65b07a80101539620849e89c0a422429516e8659449f8973d629fa75e68cb71afba91518bd50b8397c4df4e3194a6ed9faf1b7cd9089a8d9aa551e96b3f802507ac3afa256690cb94086cccaeb15ba9a66e881560573479eb8404397b311abe5b137328bce27e71103675a4d1bc9429d96086a1af2fbf4fe4ea9c69071ed8b9d413667b4e39bc5d7d5a16322586afa71089625d28fd75b02d3d07181e89897d5a3d49ac9d9637474d259671489c21559d28f14041bd5898e5db02e19cc791d74a09028e0b4a2bb8dcca7f2cb57539fbc2174546e9873f4270d1d57858e7a5013c15267e78f8265012d49d5c8eb868e5b41c7ac42be9e08128c72034b169d7d2a97732f94eeb8b08395f0984a3aec30c6c0aeebec3aeb969b94e4f3a780593b643ac359b8753fae92216b29491ce046b691ad5b41c8acf6dd29c7162d0d0a576095e5a8ab2dbdf602212841518128d77b5f3219e86c7f82ae927d98099395fdbee3f54c56de1041483ad4f68cfe79d3915c3147760735fb0a17b351b14c1bdd3a20b7029259553ba00302c36a680f6983ce5691f0bad302d15a11a2a9f240974df983f72bd5b1fa36fae8b66adf466fb9c8948f8a6342ebce10927cc2f1f12737886c0cf9c22efa2868f65df4e57211051b6883583782109c9de505edb4b57c32891558199f9413e032088cd59edee7ba858793ee14a6ad71d75ae5ac9132b744439f993751fbc430af622bcb87fae308f91c2baef52c1f5f1b1e53fb3fae071e53e1f252fd5d4ac88e6c36ae6dcaba1578cc4ef142b95b2d17f07e6efca03df49cd09b4e84cea4ea165cd20f8d59a494acd5992944b75621ab6a4126d8f18b14eea46b85ac49bf6070ee8cddf34dc77ee52ca90735113e952547e1f3e5c52cedec865fc5a3b1b1e40259323bcd8b5a592eb7ae034b1497a5a298b91cbf297988ce56b05441a49288e8ec329af57665d1b43eaa8a6c571415be151dbb\",\"355a6a75c6a6accf494256ddf6fe7278f5d2b27bda5c80510362f3ddfdbb98bef54fd58e7acfb4fb87c7077ff7bb87f874dffdd1d753e5fea95c18073ffe6a77b5dc7df3e8c1e9fbfee34d4730d6d047c3eed4a887515fe91ba3d925a9e44701bc37a2584ce0e8ec6b75669a48fe2270762292c7d91163768a9d031c9845da48182c1811954681ca0751977509c36c9c4209caace5cb521defa642b377bc6bea9489ba5abf75ed1cb3c8cfdaa532fbe0960d5d5036b4b3889c92731d02660971a396d4c68caf981f27e9d0ec98b1d5d270c988cc313e244b993d9524c81a27306b27ca9b52cecb5048236562d5db80adb5886b2adefb7d41b295d6263afb4e3aa3cf9832bee5cefe152364b764ebf415d682da51d07c79410db5dad846905b21c8ec9431580b7cda9ce94256325215a7fb92802025c1aab3a250a5ae3e095cbe5a2b0191429d06c38bc7b06c09c8845bbd53e5233d8320b7a871bc6272ec2c854f5fe18ba5b05c6cd309cb8d6c73c5b7828ed9b9626db4220435f014c6a47cf6aea043f75be78317a452109a0d051fcb8ff36a02151c9b45d4526e55fcee9c55da72c6a3d403c128abce10c7ff355dfdb59701c3a023e3e3f7f70f8726ccd7f5cbbb7ffed0bf0d83fecbd7bb071eb75f768f1bb75e58f606536fbcf3f21963d2af2dd09ff476390ad70504fad6ca8d7d1575656bbd5c04bd4e5b2fb38bba942d373246f26094a0a3ec8dcf4e68884a60221215312562387588467761b5ed2a9731d2fc66f0c5e4d8e11903cd9fa9cf3fdcfffcbcf0e43bff14cb137efb9aec520376f5bfebc0aedfd72feffe6173f7dfca277b8aaffd0f4f08b67be89860004aca86b03735560d8cb8d10d613783303dbb214ca393969d1c14ef7496857ae56cb4b2dc52a12db9186950c21a13a29406655aab7827795cc9aec2ce6ad707eb15efde0cc28c44a0fe26f8cd8fc38d0f6fe5652e573ea6361159f5e6f010590b9046b3ddd836a6763ba0995d1f06406cd9200e2c040c71ec7cf52ff3de54d24441a1ebca6d90740a92a3aebfed5c29591a8ddd54d2d43baf36a7366585e90a69109a8bf27af0b89c36d144b0ec2b0b8bcda869c91bd7060cae961dc32e919eb70e90045a1b84818b72ec42eeb80edb1bcf023b6b04abdc09cf3a335b08d6afb3076ceba23ca55feb8d619bfc738c0e231d1b7b86fa73be72f653d7d91a3fbed44a794a307d14310bd89739d09b7e957903c82d0064d63e80b42cf860371833006b11bc65e173f90fa22cafa4d351242d3d834f31f33af601db256053fce8d719b9967a8cf8c1449acf31e16f23ce574990dd0ab0a96339c4cc127b5c2ccbcd76d95c23c80d1064d634a0fc08255b35ac5e79e5d865154497645711e2051372e188b49dc99d556935079a095ff13aa9f62bff6280d9529041a7a4bca1d2d119c601b7bd48f28a29520f6a226c7adfd843d82c303166a4d96cf5bc8d22374091f96d6052cb82113d9c77ee22d9ce052bbaecab8d32c492925027c8013955aec8deae363026054e4dc2d4e97f6c0bed277a208694c4732a592d13b94a866c2533a3a0d9ebcb7029bf17a86a4b68b5ac5b61c8fc5a3063114cb9840f868eb54229c196d44386eaa39c3b119409823c39324e1ac0757c947bc1be1a95764b3854edb15aaf19f26626b69c6504794617fdafd1ccfc04935b4d36f3a6668eb76e01a388dd5b6ca8a59a31a4dcc6b8360976b5003b9d049bf50b40eb9c7272980491d7d1c464458e290bb4aa00cc77e5c590e9b4d62162586de4d84d8c1c7fac95e5776b8e1cbfa12488a5b3d42f4b697b2d6f34099a0a9abefefc12344b244160e546bf0a445a1274090c394982667d030855dd8e3c54ad246d9d8a545b832154e165146cbc1136580b891d725c0d21766296f8e3ae39d9668927b220a35939d73afab78c9089a0d922e46141dfcb722dd870aba3dd0a4266b5fbe562830edcb0a18f2eb03199848e52098c8604451b44c8e482d79e5185f55a3140131392b5aabc8bcc8690e13a32694a6ad9e42837888ea960a9039487605962184c316f5c6be3df083accac665e390be58452834d966c53d2464711a5e904064a2258ed44cc163ae5113bb9d6264b59eea57062a8a52a7b2536cdfc69ee414a5addef43f811701c9a727d07a66fa6dc3f94d71ee7f8f1e9bff15a2d984f3c6b93d02f2ba11f05da5e42bf0db425b0a3b5d9e857595cd63a2717c19d93ce8999d7d0b3d3d2901dea20554eb15cc2448a600a780c8b608215a9b36c0d49a47e3bd65aadff11783eee1a89d8869027c6c7b87ac89dd1396965afabcc5d76ddf71144f6f332b8d408321bbda196bb5c2d434e7297592dbd029212951de62e6458462ad1611309b4da0a4fd98bbaea0564202bd36ad3634ac0a9ff5d45485d050bdca6c746b90b68b0708655ffdbd8a3dc46c8dee808d944d8d6decd51d87e39c49c840dbe8a18b325421701b1d3446856d0ef9464d6c39597ca19ad1d735d16a005528a22e8a84b1ea44b0e8406d1c25a05381272ca1da96e8095adfd3f910721ba4ab2364176a379d0766df22868fa9d652f41b344310dc86cb8e541578b90933c6856d0efd892d6d20c7d8f7db499b511b1cb51a0c6243829235c30d0753127e4b45e294dea2984bc7fba93ba95d22674341a80ced99a7cf95d9c06922f2ca88d42a7b63f8f426781821a19ded8e60c732b2099d7f403964b31a274c7240160cf592b815ccd297dcc252d89d537d546ab7d8e1cd6f135ee2b6a726471b1aba8c9f59c61de4a45adbc99da129e918a7c9e37e54f330930738c6d0a60d9dad728c0f6b52fb994870c4bb3514d3e79bdbc39ad7dcd1b0054237d692d9a410b2786e8cbf784c42e15e06427a82316d16752ca58f46b56bf46ce7c351e6a22dfdc2ca7aa5f9a0a73dc8f13e7136afe9f5cfcdf72962f2c7e8d62a6cf595e626611374b6736d47296ab65c849ce32abc0b74e9336da0dfa275173474e7ae16202814e7bc18532420693501104afe54a040135e1ca575296bf4fddde95af0d301f295fcae7c4e73859fe353300ab76505eb875d4fefff7f2293ef437fbbb6ffcf7fff4f7febbbb3fdcbf7b773a01b0fdd1c908c0ee8113ab2b15f44ac03603b08c0867226aeb7ddf216a1760182ad536575e33c34ef3a0590f00854c0ed5c0068d8203ada211c97575274c30826c09160fe59ba9cb2af7532a6bad13b313d1d06f48b28d6123f5260218738601c0674e00fc040e686df9f25b25d844ccbeac00b44b65614cb8d16d27e6ed206cd68300d0a12347033d0fc95cb2b07e08a1eb3d08b2e020b5c8d2b1ed7220175714925ec2f2e5b754c9732c91ce9092363dcfd596f2d6d8abacac8456cabb62860c4b7976d68b000c38604018087a1444d05a2b91215a812ab0f0ec82c8e42940e723d35add202818997247af5501b9de4a81b79207196710e519d3077f4d2def5010fe97fb545ee6c3eb31a455f2de721e3411b3fbfabb5c6aa38102e936d84a79d7cbb0933cc8cefa1a28a395238383113af2ec3be9a2e8402781909520c754be74293b8fbeb3eb78b1f5fb9dd5943361dd56ab541ba13bade52181267d4616f499030deb6e567be1ec11c29edfa582cdc72339eaaf1f7fb8fb4df7cb773f3c3c9c32ecd7fd877c0cb0c303c70c53daf4035e8d614b6d981ec56c65d851cc2eb0611aa5dce0abb88936865d24c3668d15ac51ac91f4a01f85eca5432d45b9a57702add78299b4d04667c8d1e9ceaf56cba3f1928ffd84915a6f2aefad304c335be978f97ed44f3307de5a526f1163dbc1c0f136ad9d945c2d3618485a6d54b398bb1d8ccd3a2ba02a6794b534d0c50663187c2081d996ff980cc2eb6c0476d627a725195e47cdd49713e154dcb71f3202dd5a52137bae8d6490676c286dd3e5d7da929a0a9a7aef77089a455a52a836ee55ea79ad2575090c396949cd5a2b94fbbf722e6818ec7703f4125339f8f2035bfe239360832c2298ecbd8b6e6b62b656356f6ae77b5f19584f10fb761062d120a9333ce6da6285ab22c7ae8a3635d37d142b0b54d1a0ee066de4b815727cc24b410369a9cda011e462ec5ccc4140b04920071401bc1375ab75e8bc51b95b6d98414e4bbdeb9e11b99e30e9eda003256a43cebece3cc3fafea48d265fb8a6676c4552eebc0ee1b3c88637521b7a956256a3c905d264de280135136869074609c17725f970253c62b5098dca09d6ae13c42a40672c4bbf8ec75b3f5ead4eebcc9526755254b5d1b8514b4652b941a03358f29995ac9f40e2daa60ade683b662264f78a08b5d4641c00c1069b42e87a1176d28e919f18ef768e4939185835240656b2d3425335fb51e5c4241f4cdd00941c51a73bbb9a554309d4a97d0dfd2d1db78c68c2ea5a1a6bcef197bbe17ecce894babe3c686a5bc2216896704a40b7914d2174b50c19a6417276b8da4a0dcc76b82c0128e4609312baebcd7e589704283b1113962c880811d7314ae8fd49d5d44d63b54f54b2b563c604215988cf67f8fd7c6a5efaa79faf6e0cf942d7d151d8545ddd51d82cd099710a36bdc54a83c82d406476ba1951234bd7dbeb1f1a3399c8953c44a0e50211ed51300512da7ab61c8c326635858e166a6a017cbf44911a44c636d7566b2075c658d80d3b155c3b42268266bf636417345f8e10ab78b3dd4fd808720304991d2c0667d13a650604e9b2cd3ed68c98731d2c6614c1779d902eaaec8d8bd8e9b59a31769c93d7fba95f7d7c58b390f5569a3128595b72670c857dfeba9df9c50aafd58ef9c431aebb2ae175887319ab126afb6422c86ab5f810644bb44f24bb8d6aed93eb65ce69fb647614194069cd6061a0ca34324b90e5eec7fba044b992b120945ee818acccce19086b8d00801c2f7fdfb74f76cbdf5bfb642067410bdaca338a5f9fb79e674de6b4ace50b9b27a390d9374fb621b300430cf32bad9a6e59cb2510e4246b999d48b60e5cb9780f55fdc1b3493e78e100ad404628fc88247c76c014b573eba9facb0dd5943cb8bfa16aaafe51ebc41957c52c3f4e8fcf54f5af9fb25cafa2ff9572a08b19219b08d95aaa3e84ec12624c24dcd0ab346e5a0e7411043bcd81e6c7a095d38601dd408f698cf33eea20a2869203254f82b864433ab38b7546491ab31ec346aeebfbcadb8a9b12de4e0e04ce81017d46edad8d905d6b16341534fb4ada72ab0a1c9534085b1a74ad103949836617c62903ae9c5172e00a93c1453051891c62b586012d18580aab4c52463bb5a22b0c4c989b9548a88b3b5634377b3b08410445d62d9f08adaaa56908f9c26d37a3a0d96fa85ad05a8cd546be4a33a621e4021132bbae8d501bc9d20c2a69ca2854e4b5304163edff47118c94c218c849a32dc908ad354166c69ee7fbc8dced29681364834e8c6642235f6502606d93cc06922f9a239b089d5ad13a0a9d05469125e146b596ccad80647e699a71757584550393189fbca19472e1472509ba4ef89448006a522a77ecdc8a9b3f479e49351cfafbaa661233918c185bde1238635fc00d1a8c5d333b7649c869b0d4633904cb121361a4f446b621e41b61c7910461340fe694233272908524858ce5fe42b83a0a864485221e8ce89426d25d74e5d6632d7628214f87352b3bfacd4baab163dc0b9152a23d270b69066337409389f0a9c772089f0568c2466fd83598dc084c6685f5a08db1c6901a74455075d52e3f0942f02511494a7899bcb0283deba0b54c6bc1a484e84822bccfcbd57aeb9bdfce7098320e25fe384accd1b13f7d787cf8941e72fdc9b0c9a36b3296259bef1381b53f16b5d48a67b06837bd77611be1ba4ed09c8c70c1acfa9eb492c8c4030b178aae23ce5138d605344e05c1099c703e252e698bf172ad09aeba5fe27424bf4e21f7fb259a8a65023540e5f33cc704acb5dfaf38571905cd3ed587a5742c0a246c4c4b56ae962127c9caacfcde5aaba5053b90dfa74e2a53e77fd91b12489eca9fac14c98153c04eabb05ae1eb3284906f25576167006cb342be642be42bd7b1aca2c3040576a35ea573d392a08b00d86912f4092d3fb0b49a9c1a4c90c9c22e5f62c4b38b02bbc48254b6426286607d676cb26b4d90a180296157dd9504ae4d904d6441e5926cb7c3a1cd83ec06b3a0ed82b151d0d4d2c151d02c303b86c01bd756c25c2d444eb2a0f9056348da95ff1b56d25cf621cbe844541a04723422841885ce361b66ac97fef5d2a0d128e5cb86a4f556c2bc218628d425b13d8321ad9276950cd9d9e99f064d65c8216896e8faa37c2553b186900b44c8ac9cdee872c78aa8065988d42a2b65b288c09dc068bd08e85868d28902d998bbbc56d39f851c15d2761b8a64ebc54c6521a0b5526710a4398a5d273fa642a6f2e310320bf0c381de68dbf87123fc9895d25b69a5443348404c82e882b7820d4b819d41e16b3306ad2edfd68a83efd6c2078de7f1ab19cbd71fbf6de29549192473795be90c23fd36807c032899089fdac63c84cf22b62c1236d472915b61c9aca6de58054e4a638f61024a72e4\",\"ac84d2e004ea4e8b10bc113947c73e950b765e53cd721aef2f6a96b61c722a17b15ad3397dfdd611b956844c05cd8b8665298ffcea09d86c596e0721b36a7a6422a79d1de423d22a8b1a4a02a2aa20926b539dcaf55ca1a1ae24304975ebe423fd76c891a26bbfe66e27886c4df5638458720ae98cc9e2b61cf24a19b25d0e398a9a9a861c45cd9777d5819836ba2d87bc1186a859553d83460576385b8cc6676264613226811d74829d8d822d2a6f3b0746ad6630ecca4dd5447df7571fdfdd4113d54fa421c41af89cc1ac66c87255e8a815ac8960d9dad3ef836589b15eaddc061b3a6e051df31a7a04b65a2b3dd4d057f1626772c93a7c28ecd04e10db20b4c4421a15a0837516746d170b8f36d6f9e7ed8e546ef9c7981d1a1c3b77868abe0d645d2543768b854f5f6195861c05cd97a71f4ee2069bb2f15610322b8e07592ec1120b46065d90ec01b2d6c2244902813a11d04aa19d8f983ad014d77116ee5bea30d505a93d41685d90891216386dce19e96dd9c7559163db3f1fc54a3d9643ac2ce249af78e35af3e356d0312b8a37469255408359de1882d58849e4eeff6fefeb7ae4c89124ff8a30ef4cd0dd49a773de7a80dddb3becdd3c0c16072c700f2483eceebb5ef5a0a7078b39e0fefb91919595151911524a8a0ae5073183467fa4a454952c2dccdddc2cb0a2505805c0ac38a5586c7083e11df7e7b313dbd3febcb7032f318765666f3ecf1c5f92e0b5f6dace1db7c51d4b68392dceb73b48776c0ed065c7b370c7ea39ba010283de4fbc578c45b2665459c82a1a2c2a71c9aa58b9433bed12ed34b81a53e86735a3a760edde0c3ccf1146b6287485e8f812ead87767fefafedee4a994ca190d12879f7efe65c83f86df5a25dbc952fcf3c75f3f860f7ffe38fcf673fa3fe10f17e92ac7fffc8769c0ca9b172f25ac0037557de7092bb71233b904e1e67d3943780b3164b43fd8de14fcb88c7691b082abd7f11e191c693bd9c5b898b930817256b22280a022a450957a134a144862dcd10b260b63e5d1d5227d17332335ab3da35c918ddf07690f25865e1c609758697bcb3758f9f6150c3977d0ef9250dcb5d02d30c785165aaf98076dc0db0be6b03858b6592b230514a1a0f20e596120634c71a58c95f43b1dc52f0614b70bdf1e50bc28872c105e71d4d8ef501e92418e57f18bf9c467cc6ca13e34db03f455ccb350c8ea593c5519eab5319352476fa0a450c506b11d14792b2a72b28a8c6b777260b9eca63d1a4417b4f81b64eea13dee659c660c89e12bae506ebe4aa5cfd2ee7f96767a539f792fdf6e49a31e56fcd06c76394a5bbdccf750e9490c4e3c6929573a4b34a8c1b82a88c2605500e3552951fcc07108bccf49ccd1d66c967c36cda1693a9d5d86bcb4241e734d43f1d784bcec673078fd9abc61b530fcc7cf6fe2f67f68fff8e1dffe367e19261cf6c3cb0bdf52d8cbebe6f4e5b5c7fb67af9bc8da7f31545fc275b4909ee1ba414ab2657ea7715ea7af9ba4afd55400ef8d25473031c6417da6b7f5df2b71252ab225a81863522612909510d3f801b997316e291560b4faec77d1792ff4551f327c551357981bbe86bebe43670c4d18ec7fd76fe3c75169bcfc8bfffa7fc3cfe1a70ffff3e75f7eb924b1e37fba60b19717ce590c1046834fa7b1cd1c7a4bb10467d86e315244a4837d97a4cd4e63b74863b41a4cc04e1b2de82643c5905060c84105d7c26dec50694c2c2bf68691885dda291fadaa30a84f760b8686ff163e7ed0fba9b0fb594b215aab51ae382e3d0f9afffde75cdff327078bab2fee3ba91bda49b537b50098e66a7803982d7410f983ef6d310fcb1fd39d14ad861338c3d48a30a72aa87284473f28d06215a5c42a5ac2e68c73d1718c25841d55d00d9c07dd8d0aaadf4a2273c575d0179666ee3dbfeb8d99f72b7f763850b270f07d8af7b8f435953f6e55fd544202e3d14c7650ac0767ed68e20ea1457beaaa836850dea42c515b48d9edb8835a3a6f1887dabd2f73c15461bd184bfdbc75853d3eb7dfbf73edb30097d795ed564d9960d01cb86b9f87258f89f671ebb96c9a04d199a9f6098179709294cb3a2bca6950e2322a9f071702421c64373f1ecc136e1b1ac649c07eb9d077a37d58eaff9dbccf0668c7f9d9e33a18de85bd6e43fbbc4cee9636b66ff0bac1e40ec81fa81bf01e97be2eb4cf6a281c8311624bf62d7d11e9525965acc201458e821276832aac4b71c592df8fbe166acfdbe8ee4ded79d73e1302d3de58cd57689fe7ee3578700db4009b76c7f70636dfce228c7cf0d025d0a372c85402ad86c3394bf5435c5f58b8091a5790aae4619b02421560302a818d3689913cfa90f62a57bbac1a7ced89daafa9f35e1490b39e0c5c7191f4350268d7b3d607b7c03db00e7a69775bead73da376937a05a603f74c9fc7e5b00b1db49a522755d420383709664895c2727dca51a44d506423a818ab404f9c62d0902b95ed45629a155c1a7a8ed53c1f3f80e9c10c331a13b05eeb2b0a42794a63a385e1e78ff5373fac91d8a77f4497423724855a3cc302728e3d3d27e46c402404d81bde1e9846a6526835184e9c63403b767a9c9741d647a0022a3bdfa4502e2a9ad4ae83921b5028d9bc63c1dbec3caedd15b4ce2adc8f45ee450a9107ed0936f6117cc234d7e3196e94cd6e239ee1d83a3743f07809f18ae02d6491183918eab2e861f9ec4216ad06d6590f840c30692cad920830a566b3c12a8b245542b343544e92f0608d43decbd9dd6a5096d286c61a14e98476791664b465bca6aff48bc2bbf71fea75427b18425b40707b243d23781342037fd0fdd4f569086d3d3e0f81b5f57662d7a318b5d6051b830d8a6c00158c07a5076f8de418a10c7bf91d70f9706f8c23ee7943338506d6558a77efb3adfadc8fe9aebdefcd6237b1ad7a49115f1acfbf81ed069e73ebf581dec573de59ec16596c35358fc9a037429339a30b0ebc83ac22b76d15faa4a2905339e95c8a0ee4f25e4dae000af4822c6b852c552d74597621cbd87bf4d7dc2bdd85e9bc3b2eee8fc38e2d4a33d036257606ed064a4c487ae6d01351d86a721e1a63ea1f289a0a31b251c4938a3e7a4550bc1253559150b14ce40d8e51d97bb90697268ba3ffa84f161772cc3d5bbe22f8b5afcafa64713707e1d264f18ce00df8cc79ea49e6cfc367b21a22618cafff23a727920ca341175a27201845c165e51368c5d945d6928dc83e7c361e52d192246b1721a4fb21d5fc900a04b5e015117acf5cedf4c0dec1e319d50c34c7f7f20a9a0d8e713de883ebd54e0f4b2113f3a0ac474978c3060d4d192400308b55430c83a23238154c36ca41e6884120e16e45e97a219438fcfee1cfe9f73db3c4ef8741c81a44ba2684f53e96539d4bbe498e2cc0a7ad88cef0d922d3db5bf74ea1769d4b6e8f4b56631d0cb2a7aa462637b9f5f339050ca4061cb222634845cc56151d4241eb02fa7d621d8e89ac4bf7e963c2a3eb5c325f1181264077c57ced192bca1f9c3916c0f21a5fecb6b2c8792d07ec2ae449986335cd81dae1a4ad1fe16f99a314d63971512165a7a83281aaba4414270850c08721efa542b45fcef26e6dcb3dcb7b8137c058345714947fc95e66ef0bd8be9a79acd5cc1288db7b3983780346b39a0ed2b31d1e97d12e5633abd90eed2297c0a09d843be4109276a3532e2645052ba7e54a710993492c550dd9dd02be2b4679410d8dd0e4be9b994fd6b4473e4e4a7bc8dd73eaa2973775099b36907e039b0db633ece460fa44ed615964aa8b56a31d8859c8c868387de5101b3debfa7f05219022e32a8724b6ca63ccd983d371487be922567a4917b59813dd75d1ccafe63c7ac62b62ee3ed1da7a3bd20827d268fcb9ce6ae82fed1f3ffcd3e1c3bfd4efeea5163afdc70b35f4f2d205d335e0381bb87325742ba6eb25d88ef1fcafb0dd622b642c1eb04ba1c725b10b29b49ae700b6d208839f761d45ebb2b3200a7365122a392a81fa9bf12695ca630339d13b4aa1cb29c531efbb62b3d755cc8510131a78a7ba8abdfbfafae1d0fd71d8cb9b5a7236bcc1ec06c7afc27c70ef9236de39ec16396c35c2012c82153e5aa7cf59ad3999a485942dc12bc2c42a0cd6294fa5246d913cee164ae4d4aca0732c5ffefb2f1fb4efe686b918abdf4c0fbe9b1b9e6d88770cb49b81e5186c7c02cb26e606e083bccbd9691fe2dd02774c8778abb90940adead5809b4cf14c218a5a828a9c5951ae3889c58f0e396730e8c065c780d6d9c1c1893aa807275c1287f7c6a2bdc260fd8545e5df6788f7b875e50fac7f8e14363fad7ba130da2a38a1cd6c0ee346baeb9fc7e4b00bfdb39a9c40de8bf564270e3dad7d164e5a6510a38831ab1023286b738cec74496eb74b5398273a8e11c5e1e3099addcd30b934350cf599e48a54d6d5289fef9cfbd325d03756bece2350db43df19305b84c7111fe05d920aba04ba05fa984820bf9a530055fc68306eac873c9f998a172229aa0ce415851c5514494ad78f26c13c3813793f09844bc13b63c2fd7ec13b77441f58bf24ce5c6186fb422bc3275ede29e48628e4a5166229ebe60c9a2d6c0455371eecbbe48f760ab93d0a590d2af082e49da109830c226c931954e6428aa22b2a720095b32dac3d6932fb64688fe9a3b330dee621684186bab71ccd5b8edaf7535f3145fba252885d8dd4fd40e8b10e849620dcdecb19c25bf099583af0bb9cbcf691da4d10da74a4e657e312005d2528c776d27354550fc6a1e2039343459045f941b7daa332c810a381b88f2d6e7477e3521055b38962df0bcd0c052416495fe1eefec2c5d0de8eb8be12bad395d0025e8f438c135eb75809b17307e9357d4fc35faba10d303ae2b41f2b88cf69daa083171205ba58450e9c8a8e939250b46142c9b05bad112dd71ab520c51d6b8dee67a84764083d5cc160bdbffc81477bc70cd21974da3af50d7436b8721567dfa997a18ff66e8149a6a3bdd5a804b2c0087e32d94b01a104362a6520459cad0aba24952223271a06edf6da0db5242cbb30e61e93b06c97413319446041aed80c757f5c1743ef9a5f7789dac66067d46e2186c0c881fa7dd0e352d885185a4d6aa83ac793c5695283e4d24e2583e252a22241a7828ba09873ce3e50ca719fb49f63b3d052dacfd84bc2dde030d7420e1d3b7d45865d4ffb79501df452e773099b530aea11365bb008b58ad57719a9751d740b2432d541ab3909ac6d5542665ab06a070ad17351be7eca2b8a21a860a36dbac8d860bc0be2f733c9ddc289e9dd0821a3bd36b4b1c561f762d5ee6f78147fc32e57aff537e40fd025d1e3b2d985245a8f4cd00e8d20da69db2a92cec515a5831645298a129758c500105dd6038dafdf4b13cdf643a7aec66ed99bf11918104f570426dcb622faccaff94a37afefb253ce37e9a7a53dd219625be827877ce077b18877cab945ca598f5ad0f581db7a82c9996a1e34d901b31acae015b5e8d448ceab2464b2d6da87619fa885e399ea922561bcbaeb968439e9a0350eea53c4e749a7d7d93df838eee568f5123ea38239c3678ba3556bdf29b8b48fe36e814da6e3b8d5c803c7861d5cd4d979600c98a3221beb5f88ac0a6148caf9ac8324932dee265f2a182eb7ada78b2380bed2997189d5c26efc76f66eed672490e389cf0c33a7139f2366363959253ad87719817502b9390231ab0669f15a9c033df1473364137388ca83ab04925d52518a3493744ec52045d92733e748209731f06dfe358261bff686fb211010635aabd3e719e4593373bee073fe4ed9e312306d9a7506cc06ecc1debe93a5ac93c7ed91c77a7f1ca0612fa227d7a110a9381749f96859b55b1b25908aa2210e61289e75317b8db29a2160418bff738e1fb4eba3acf9288b2d38bcc20ed0c9e3e1c8a3bda905bc34b9fe062f1bccae9cf8774a17e8ec717becb16a47f60675fd0cd793d9d550d06a3d68951d05453e56116287a23059170ac72c83ec451e66f954f987bffe768a16e8e431dd8378e4f1e4a95f663e378d2c20a7bd9737c8d98046b481837b97dce74e23b74723ab8e646fad374c62dfd2488921610cd83488afcac37b15d118354470c614c9e89facb8ed7e68c4190270570cb09eb1f3e6c1896397c234cdfa409d389e8438d6bdbf06c5f896c039d97d0c26679fabe260681b741854701e55895e27cdc9644f3bed3e5a56d2251ac6be80969584ddfb3bbb86d4e41d5fa13fbec686b56be6f3eb97e5cd554b18fee3e73737fd3fb47ffcf06f7f1bbf12931b961f5e5ef8f684e5e575f3f395fae71fffb0e3f5cabbf0d7cd1cf42f21f6787d7642ec06cb17617bd03ddcec71f96bea24369f7212571eb11e26c72bc124113b18252142ab6a0bca9776dfcfd9265f6000bf5bb859e5b0d9e3dc4f7f3f8e93bbf49953587d1cd1dec135e72b4f6cff7a700db4009ae67879039a0d62cd58432fbd79600e996aa055ff70d5c2e0b4d1d3fb47c7481c081470a81aa8985835904125c501f2004528efe7ff5ac4fb9877eeba06ba5cc178415749e4f304f24595057bb2c7f35df4bf8f26ba99f3ca0504b787c03382370939f37cd0fdbcf271096d2a8aec6a8d9b457260611a5053908980b32269d79501450939adeaeb8a49c9249bf73ce8bf0cb8784d6bda2fa0e67e349168691af7f38c76d6c97faac4f1532589fa13fcb8c669ebafee82e88604d1cb7dfe2562da7b3923668ba19aa183f406b787a58f891eb2ab0d6e4096d1ca45859b37560b26528337a0c85baf848b5339080b6a9d28ed59e1b6b4131a9fa6fa4e68760de3ac677b8d1ebae50ad0d75ff28d241a7faeb30afa4bfbc70fff74f8f02ff55b7ba9814efff14205bdbc74ae800070fc92ddb902ba95add01266db56e88cd92d1490001dbced0ae86129ec4201ad76b619eb84c44cf36552a022a93e4a494aeda4d343a5b0fa7792198275291d8fcef78ae85c5e92feb22785dd8f0222d46c79fc90ec5ba12715414ba079cdc5dc8a4390bc1ca45fe63c2c854c55d0275ad3aa0af246c62bff570a41708ebd7855fc182b53ff22366a5548b2cfa20398b49f0ac2b52367eca9000b433422a7cd1543b4db8ec5ec1cf28d3a64869a930ec1ada201c0311cb817053c0987ac67035807ba7e8a4ff6309553d06528a3eca82aa4a00a995b8f74e2ec7c32a4f76a4c6b56cd25608e56cdfd8c05f74321c48e3c504fb9ec5cf2e2745edaea9fe1b30197d48f8383ed21974f4225ab4101f5d3dc80b134f1a86574267926c5bed99ca36825ae2d66a830422991a9eca546f4426f59c5c29fd3efbdb76c712bc3c0eed824b9a14b6dedb59d3a6e8b3a96e0d20cce67b86cb1cf4738d8ee6f7e12ea58af2b13eb35a34c326692f35e4a18942b01156110157c49ca041f250e9abddea7aeec782173b9a66c83acd1ec0fbb5dc8dccd3a1f1d587f7c24dc8e38be4f697377383f84c3f9e562e712c46daef606c41b5cec909583791746ebfbfd9ba0b48bfdfe7a6e816500cd8e26a99bc5b95c905815c454f510041549bccaed92c769ab83dbcba3a6653e1b6878f8e1ef3ff6d1dae2d9271972de5d11bbd93dce8fa9899620d3d6fb67c86cb1deb7e20ec05d143d2a834c45d16a6e80103bf06227db7dad2d6857b262cc54f9837d15458e95c39039828035fb64fe1f45915d18108ccf53b68ba2cbc58c66ad89de29f7e63bdc7ef6dc9bbb7238bf28a04bc4be8e31ec560ac86a78a7ceb3ae806e82bf2e14d07a6a8171845edb316bf86c2ef03e434841613256519252194c8362108d81190cec93dcd62b34bf62b0e7b5e0f81972c7773a5d03dd7c71a6f372f05d023d2c854c24107f22254084b992c8c452604abb3577aa35da28f23aa998855476beb81253e4ec7694404b04323e50ed4720f72281b03ecdbbab4202be642fb4636d4d5f093dde4a6889cbdee0f7dbb9ac7e7c1d7cd7438f4b66533dc4aba905de56c2d2e2a7179f5e672a90aa1ce256812095d7bc0dca466b0622b498f6cabc69c76b9768387aad7f39a1a12f8426233d6b3d69b86221d4ef751e5410bddc7cce4864f4589f60b3c552c8231f7437593f2c894c15d16a6a80af8288c84d8340596b9f00eb9f43125414eaef424c480a2c0f118b29e277cb4d03a52f8fd75e6304f73bf9bc1745e4ad7506b79fa77d877550cfbdb98ebf7cc5c11fc1ffd15c86a5bd36e8f8979fb5bdec8765fedaeea79e71e0854262054b3988ed80e8f4b3b59fe62bb276d6fae2f55637ae08600ec674e5f5b0a479a1bcd6931284101ce8495c9c0e8e29b2280df52f55980515a5c2c8e5c164086c91f7b152b4e0c479214963cdbfe4bfee5921743fca0bad43b27045605c6f9f7b38bdb50096c61d67b06cc11d86f1e07bc6cec352c7546fade623b4da52328e2626bca0bda1e4ad4a9048519557cac724ca46cd31164d29ed93d236b65f2f5a7a5a87ef8e26bcfb610e3296c9d035dd3d7d66f7981c72acbe5ef4aebe81cd060da65839047b83e99370c86a3002a0785dc5a89bc88fc1160d768cb83183a2e89d0af5aba260b0a36d4ea7b2cfd0eee883bb2c827fb5f4e84e2273121116b1ee8a03d72e3f1e8e3a16c0324ec4ce60d9c2448dee9dce483b75dc1e75ac062300a29736eb9850479518d66316053484968c6094441e542257203a436ed8adfcda29bc7c903a7906d0f67dcfe5dc0a05f0aa489df32cf37ffcfadbef3f1de30e7e5d258fef507460260b9fdf7fc9f557fdf5cd09d0bffefa8f0fff3dfd975ffef1f1e3e5c6e75fc7eff1db65cff9854ba6b7e357ec3ef73db7750574f42bcc207bf22b1c21bb49cf01c23b39b8fbeee52618ec62f7b29a83405618ac1699881fe707a90aa70dcf5035da52de13292bd1c42106efcb5e0cd672ae963ca063ced57eaeb7bb6130276cadbe627ef63567acdf27e3a75fb2de1b872d81b689b0336837f1dc6977c0ce614fc361ab510cf58f367bf4d64e5c77c148c0a1152d045224495a574f52a8cb3030b364b74f3eddd8568a97598da7ee45ecd1a6731633be5298b82b74581fe03dd400ef58543a034bd33f67b06cc11d6c2b77f47e8587a58ee9006f3503c181f7d6919f442014b61963c8ca84a0156912e59d89f59186bd24b09ea3ec35bfe3b911f3e4efdcd1af7d3fcc81de8071e60ae6f8b496b905f5d379e41bbb1566d03955936ce661aec87507e81e82e7e01158f71018c7e411a775a1be3206e60c4a863428429b54d42136375a4171ba20ef4524cdd17f391d6863b4d1d10f7d8c36eb56a0fa602057d0c8d78cd1bec336e81167684b92fa8166680b886d8f7e67c46e72832374a077e1af3e43bb09029bced060d5cae0d839838ea61d0ff571da8385aa7f98140ddea9e82b8199ac53fd84a438b81de34c612d1c11ba937a6186268406dc15693e5d09bd0b93dc86123ac6e8cca0738ac182addcd464dc616c3aee42e82179642a8456ed0446445a5dd064a0168271162c290ca5d2088156210f5a416a96ea12d1d03e9dd7954668d91e5a1fc4f7f452df8d0e42ebc4cb1524f2353ae81326baae83ba0e7a79530b883d0626fcb69da11bc49a03bdcb3ea8eba09be0af0b1df4a95a07124730f11264939c5808caba6414691d94cf8655e124be507431efd6b8ed152e75dd8de7d5fb0df2ee4707f94a5fecaec8f0e932e88165d04b30c152c1dc19395b2c847cd541beeba087e591a90e5a351670fd0447429e04c1492c184b199429a5190bfca03c20341a71149962d82f98009763e2c79940ef5658301680b706aea807fa44b6db778f82eb04f2ad73b42557f31bcc6ca044b4f0817bb7c2731008ae762b00380386c94c4e4bd1050ade47c5dec6ca204eabe8adae7f2eebd746fb644bd8cd9ae617ca155e729e7a1cf5d22ccd92775e5f914ab05a99f09dfb153a7d7ca3fe9801e6a4dc373b8a696d063d87fa59d863b5cb00c08b36d6f949358fced11259508ca9456a1a5bf547aabf17933d384643b45b9981ccdd2d0d98adaa77473fdafdb0870374ce5c71d7d9c9e321c963012fed2ae68c972d86571af4816d678fe7608fd51603205d3fbb1db8899b9942a4a13852a684acc89641c9a09d72ce1726e1145cd96f8b8f4b4abced04b14faf16cd60e2cc154d385f986bb3eb06bf33c837eed1679839edd171abe9151a906e037b1a06594ff427e39c20c3447f24edac0e83563194a04625e29337aa8a9528062a89e8dd7c60bd1af48bf8835033fa3b2790470f467b7023d81e6da0ded061fcd0ea3eb0c724b0a90f0c579b05003da37162260c162886fa4198958e085503a1510210552e3619149054869d2668000a2e9f2d4f556ee0fa046dbec137e48900fb0aff4945d0f1a872069a53b1d911341b8cd12cc3817b37cdc352c85403ad6602d40f6f231e2f53c9827011a3ea03b5282a41940816451953c8250adbdd5acdec725153c3656f355b5ce0a333c65dd16af68575a0bbe6017402f9a63dcc0268da12ff0c9a4d4cc48407fb2e2aa433c8ed31c8ea4dbeb52842fed2448c36673da852b586a210a312e7adca344428a88b26bddf127f66881c6b9afefee3c910d94365de1e530ad72fc9e6f471be65fa53feede34fe1b7a1fe7a3fbee708ed81cba41f788676b411cc103bf611be22760bfa42d4077817135a1fa2dd047f5d0cd156d3005a330e139a49b980046c4b205450382ab2b928618fcabbc10a3917b20e3b4aa0a593b0f169aea7a2cdb6408855cf5eb104fa4202fb0e4ba0ce60f7ca600b903dda18feb1dd15273a9277aa97ee0c768b0cb61a075009040d19e32767385a1b893238e5c2808a0440c5149d1a4ad25e9b9c86611f0d36364ca35fa0b056958bbe5be116ca41519ba3a6ee0dd3cf39c73b364ccf60732a667f81cdb79b098cf307eee1d00f4b22d331de6a1600e8fa0c48a47922839278700e92f23c8601b496d03480f210691880c50ebb8543ebe580c056d704fbb584de1387b0305fd3b2d643651e98478e4d6733e89cea0961abb6cefae10107db1d05cf4124b49a092042ce783fde71bcf2881d741136460d3a551e093a341ef12a24cc81c19464e35e5ac4ce2b374ecbd197b69aae45263c626dfd8ef215f19add92f6900c727c5333d09c6c382fa0d92055c6697ff0dd51f0240cb29a0b2020da3b3b0d95c9523942a328899c14b196fa1ba9b220862116130040ef130b301e76aec0fdb70f9a3b83cc19c419247bcd6567cf057848f65800cce912fa0530dfce1e0ee5607a2cc09390c77a2c003a60279a27e1fee0ebbf64232a4af3a379c84a4447e553646f5d4939b8bdd803142e56fe858f1fb0eb8f397ba038d04eae49b5ecbb90c7e59005d8b44bb237b0d9a01fc6fb1e0cf0341cb21e0c20c24cd39a4c8d91a1d4b70e2e55fd11382befc1a9c19962bd8d5e70b758645070b9163c4101f6dba6df8b218cdc3128e8f3fcf135f530fbfb9a7b3bcc5dd9c18edc35036c9b9ebd01ec06d333e3e4803d15e071d96b6a07a3d55400eb1c233a9a6c60d805a3130eca108a221b93aa2417147b37e86807d4b44f301ab6d273bc2c4b3a959ea3ee9bfc05061370da5d51f46cdfbcf7dffef6eb27c7676bafedcae786944f33132fc0657cdc7b85cb16dbfb96e84f3d93f961c9632a7d56f300800c0b11e264f932a0d5c560541e8a53e4ac5121b0539c8209822c61c83baeef2ff17eba86e9cb97a5834ec7d6a15cb17c397b03ff3dff52bfb8bffee76a22daca4b3b75dc1075bcaced2f7f87af5e97ad162f64ecc1ebce1ccfc11ceb39005c5903d04c92644a613fa08f0a93191441bb417129ab211493a57ed263d8278aecb877593aa31c07c8d0a766976794da182bd704917dcdd46c57eb571f9bddedd86cf18af20d6237189b598f07fb2e3b9f3e36bb09feba189bade60000b0267244d342015b06c61c1468f68ad0591523682586b884010cc86e75344ee125e2473cfcfd970fc87d6e369f9b796e53f12bb2d0d6b738df7be7d305d037cdce1620d39c6767c86c303b13b407e817940f4b205301b47a85cf16add732359e659b12533255fb30280a21ab282628b45c30181ff3b04f9b406f33fb9ac99967f1a6d3c7d3d2c71e8566e8ab0271fdece549f863f5021fd138a4698c26e621588caa845814994c2ad8c02a47d22209eb93c76eece1e699b2af4f523d8879ce1edc94a1bbe2fafe6be6679ffb319d486e8c4816d073b4bcfcb25d22b3d7d479e45978c4ac1ee0036b4de0eca413a664c062725619255626295e0518069528d98211d986ddf22c5dc5e8ca184bf7209785311623d7afe915f6afae431e963e6690393d7ce9ad025c18a58fb19e863e56afef6d5be4b3f8c91624011a2321296b5d338065511ed12be4ec988d1dec58bbb853a5d86ca4dbf6f8ad1d69c72dc8bdecf15193305c33c4fac23ce4fd25480f45bedf75feb1d66c717d7906ee16b1fe84fa305e3ef475fe63d2d8749d6fd683008c6623cc6e126819c413bbe664266f2a9185fa77c605c516311b2aecdc6eeb7c3f4f776dc3e5bfe4bf9ed25dbb0e9a58d29c778272c521678f91794815b4009876467906cc263196da1da0e7c83c2c7f4c64d0aa0a0280aa83c898890cb206d9e41255cca6c92026152d9192e0c071f0ad7979bf6d3e5d3ed99d4a92a86ff397a668ed8bc9574cd19ef10ee672baf44dcce13f68f923f83fdad9e3cd4b07cae9e8fd437bd90fbbecf1676019fb275ec1b20573a0fff64631e8cc711fccb1aa3b2cb31880d1b97eb6816974a14a0c159cd18a066f95c7aa3d0a596dc588897a9ff9d9d8c5326bd76bb3e4562af1d287d90f2827b2c31b63c06e5f89f9508dca9b12c86d498f6313cb0c348dccde80668b434a77f07d01f31cfcb11e3e66ad6055163c511e3ee828454061294151ae7ff11c82b216b5e83498b893f2381e525ea2bd298ff12ccb760299af60585a06d91556b0670ed07f70025900cdebf5b1ddea9611ac1cb057b03c0783ace67f11b0f668c69defd94a4cdec98056d9484325101b5494949420900926bb98776b60c1e528d77fce71cf04e4bbd9e03b34a4afe9f1fa1a27f177a835fee4db7c5db7bfbed1775db9bf0bebd825abef77619d05a4b58dc91ba47d3beb60fda879a7d4e4be72bf09da99aedcd7b3c3b44562a7270790290f9adc804aeb76051963542126aaea25190b0214763a6119275fb312a3f100b28af8defcb57400695b25135e713fdf57260f275816c0721a136fd7f805ce1df05ddc5a5db0dc02734c04cb6a7498d7069b60994cbcd07a4a8eb482405991d1b9fe3e9ca841ca80594c90b24f7dfde8d4824b5c36f1de8c27e0bae5f892369ae5d8f92b0a5bbeec5e65bfc0e24fbebbae50b6f574cda0d5162b67686db19917ad0ffe5de6625da1dc04cf4c15ca6ac457fd94f74232b9b10f2525f155a01406506405542417c77ee26006cd39f27e9b9545308c3d11ae0b94858a7b226ff08ad57c17280f275016c032de449ec1b24525b19883e902e5618963225056a3bd809c2031b9c94a051939461f950e412b4a835632b8ac0ca69482388a7a9f54fce351e46547441bf48eb755bd5265ce1c561b2de327646f54792eea78b944bc444b73b09cd1b285e830c61e2c77ea780aea584ff5aa7faebdb1324963490e87929a095843aacc01830a18493121381220947dea8847e680a534968605e8692c0b9a036dfd86b27c9e3acef3ce71cf3d6ed67ffe587ff7c31a817cfa47741ab9391a9941a72990337436a0118bf04ef1f49d456e8e45de183a2f68c479e3bdb3d34ec7924b461e5a1db16145e09d0a06b26248710821b089bb5d955480ce9c262fb55cd077eb0b4b12ae2ca2cd150ae47943bd1e983e5eded425644ee55cb09939cb793e50e78f27e18fd57b76afad45b6767295c8144d015bdffe3114929cf2832d0a32256f247a2bbb7502bbfa38b500cc967007fd9c7dce1fc655adc87445ad63cf177e702e390644cee073ec083ec1678b89166b3860ef087e122e59bd70276d9db638c9d5ca891ce54c0a41445164520187a0868139c8905d26bfdf446b5edaf032d1ea3d274b132df09a88afa0927e9ff8a804b2049ad32c6bbba6134774b0a613c87310c8ea89bb45573fbf655a15ec31e802945434be320865a3840554fd9b2a47b21f86612fbf2fe8e588943fa7df4f690f9d41260cd2320bf415c18cdd86f570c4b18095f65ece58d980389ca183eb2eac27e18df5c376c7b6f2869b16f4b20f51a8280fe8abf2a0ac7c495a610c91244b367e9f8af991374655b4c41b289d37e64b1022a80f035764329e7fbd3fd54fe45ffff36ff50fdddf7e3f06b22f4a8f4fbcbe53c8cd51c80c36270a39c2660beda1c51e4c1f5e3d3887fcaffff7ff013e853e535d310800\"]" + }, + "cookies": [ + { + "domain": "develop.snipeitapp.com", + "httpOnly": true, + "name": "snipeitv5demo_session", + "path": "/", + "secure": true, + "value": "[REDACTED]" + } + ], + "headers": [ + { + "name": "server", + "value": "nginx" + }, + { + "name": "date", + "value": "Tue, 19 May 2020 22:12:27 GMT" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "transfer-encoding", + "value": "chunked" + }, + { + "name": "connection", + "value": "close" + }, + { + "name": "vary", + "value": "Accept-Encoding, Authorization" + }, + { + "name": "cache-control", + "value": "private, must-revalidate" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "expires", + "value": "-1" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "referrer-policy", + "value": "same-origin" + }, + { + "name": "x-xss-protection", + "value": "1;mode=block" + }, + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "_fromType": "array", + "name": "set-cookie", + "value": "[REDACTED]" + }, + { + "name": "content-encoding", + "value": "gzip" + } + ], + "headersSize": 524, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2020-05-19T22:12:26.486Z", + "time": 1625, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1625 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/src/steps/fetch-hardware/__tests__/index.test.ts b/src/steps/fetch-hardware/__tests__/index.test.ts new file mode 100644 index 0000000..ed26201 --- /dev/null +++ b/src/steps/fetch-hardware/__tests__/index.test.ts @@ -0,0 +1,44 @@ +/* eslint-disable @typescript-eslint/camelcase */ +import { createStepContext } from 'test'; +import { Recording, setupRecording } from '@jupiterone/integration-sdk/testing'; + +import step from '../index'; + +let recording: Recording; + +afterEach(async () => { + await recording.stop(); +}); + +test('should process hardware entities', async () => { + jest.setTimeout(10000); + + recording = setupRecording({ + name: 'snipeit_hardware', + directory: __dirname, + options: { + recordFailedRequests: false, + matchRequestsBy: { + url: { + query: false, + }, + }, + }, + }); + + const context = createStepContext(); + await step.executionHandler(context); + + expect(context.jobState.collectedEntities).toHaveLength(1328); + expect(context.jobState.collectedEntities).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + _type: 'hardware', + _class: ['Device'], + id: expect.any(String), + displayName: expect.any(String), + createdOn: expect.any(Number), + }), + ]), + ); +}); diff --git a/src/steps/fetch-hardware/index.ts b/src/steps/fetch-hardware/index.ts new file mode 100644 index 0000000..5eb29e8 --- /dev/null +++ b/src/steps/fetch-hardware/index.ts @@ -0,0 +1,51 @@ +import { + IntegrationStep, + IntegrationStepExecutionContext, + createIntegrationRelationship, +} from '@jupiterone/integration-sdk'; + +import { createServicesClient } from '../../collector'; +import { convertHardware, getAccountEntity } from '../../converter'; + +const step: IntegrationStep = { + id: 'fetch-hardware', + name: 'Fetch Snipe-IT listing of hardware assets', + types: ['hardware'], + async executionHandler({ + instance, + jobState, + }: IntegrationStepExecutionContext) { + const client = createServicesClient(instance); + const accountEntity = getAccountEntity(instance); + + const hardware = await client.listHardware(); + + const hardwareEntities = hardware.map(convertHardware); + await jobState.addEntities(hardwareEntities); + + const relationships = []; + hardwareEntities.forEach((hardwareEntity) => { + relationships.push( + createIntegrationRelationship({ + from: accountEntity, + to: hardwareEntity, + _class: 'MANAGES', + }), + ); + if (hardwareEntity.locationId) { + relationships.push( + createIntegrationRelationship({ + fromType: 'location', + fromKey: `location:${hardwareEntity.locationId}`, + toType: hardwareEntity._type, + toKey: hardwareEntity._key, + _class: 'HAS', + }), + ); + } + }); + await jobState.addRelationships(relationships); + }, +}; + +export default step; diff --git a/src/validateInvocation.ts b/src/validateInvocation.ts new file mode 100644 index 0000000..44cdb9e --- /dev/null +++ b/src/validateInvocation.ts @@ -0,0 +1,22 @@ +import { + IntegrationExecutionContext, + IntegrationProviderAuthenticationError, +} from '@jupiterone/integration-sdk'; + +import { createServicesClient } from './collector'; + +export default async function validateInvocation( + context: IntegrationExecutionContext, +): Promise { + try { + const client = createServicesClient(context.instance); + await client.test(); + } catch (err) { + throw new IntegrationProviderAuthenticationError({ + cause: err, + endpoint: context.instance.config['hostname'], + status: 302, + statusText: 'Redirecting to login', + }); + } +} diff --git a/test/context.ts b/test/context.ts new file mode 100644 index 0000000..d6c7e46 --- /dev/null +++ b/test/context.ts @@ -0,0 +1,12 @@ +import { createMockStepExecutionContext } from '@jupiterone/integration-sdk/testing'; + +export function createStepContext(): ReturnType< + typeof createMockStepExecutionContext +> { + return createMockStepExecutionContext({ + instanceConfig: { + hostname: process.env.HOSTNAME || 'develop.snipeitapp.com', + apiToken: process.env.API_TOKEN || 'test', + }, + }); +} diff --git a/test/index.ts b/test/index.ts new file mode 100644 index 0000000..c38e8e8 --- /dev/null +++ b/test/index.ts @@ -0,0 +1 @@ +export * from './context'; diff --git a/test/package.json b/test/package.json new file mode 100644 index 0000000..600e5f1 --- /dev/null +++ b/test/package.json @@ -0,0 +1,3 @@ +{ + "name": "test" +} diff --git a/testSetup.ts b/testSetup.ts new file mode 100644 index 0000000..832aff2 --- /dev/null +++ b/testSetup.ts @@ -0,0 +1,5 @@ +import fetchMock, { enableFetchMocks } from 'jest-fetch-mock'; +enableFetchMocks(); // turn on fetch mocking +fetchMock.dontMock(); // don't do it unless explicitly enabled in tests + +require('dotenv').config(); diff --git a/tsconfig.dist.json b/tsconfig.dist.json new file mode 100644 index 0000000..61bcf3f --- /dev/null +++ b/tsconfig.dist.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "include": ["src"], + "exclude": [ + "dist", + "**/*.test.ts", + "**/*/__tests__/**/*.ts", + "**/*/__mocks__/**/*.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..b7e5671 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "outDir": "dist", + "target": "es2018", + "lib": ["es2018"], + "module": "commonjs", + "moduleResolution": "node", + "noUnusedLocals": true, + "pretty": true, + "esModuleInterop": true, + "baseUrl": ".", + "paths": { + "test": ["test"] + } + }, + "exclude": ["dist"] +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..e10c42d --- /dev/null +++ b/yarn.lock @@ -0,0 +1,5596 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.9.0", "@babel/generator@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" + integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== + dependencies: + "@babel/types" "^7.9.5" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-function-name@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" + integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.9.5" + +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" + integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" + integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.6" + "@babel/types" "^7.9.0" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== + +"@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" + integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" + integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== + +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + +"@babel/highlight@^7.8.3": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7" + integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897" + integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/runtime@^7.8.7": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" + integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" + integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.5" + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" + integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== + dependencies: + "@babel/helper-validator-identifier" "^7.9.5" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" + integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jest/console@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.3.0.tgz#33b56b81238427bf3ebe3f7b3378d2f79cdbd409" + integrity sha512-LvSDNqpmZIZyweFaEQ6wKY7CbexPitlsLHGJtcooNECo0An/w49rFhjCJzu6efeb6+a3ee946xss1Jcd9r03UQ== + dependencies: + "@jest/source-map" "^25.2.6" + chalk "^3.0.0" + jest-util "^25.3.0" + slash "^3.0.0" + +"@jest/core@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.3.0.tgz#80f97a7a8b59dde741a24f30871cc26d0197d426" + integrity sha512-+D5a/tFf6pA/Gqft2DLBp/yeSRgXhlJ+Wpst0X/ZkfTRP54qDR3C61VfHwaex+GzZBiTcE9vQeoZ2v5T10+Mqw== + dependencies: + "@jest/console" "^25.3.0" + "@jest/reporters" "^25.3.0" + "@jest/test-result" "^25.3.0" + "@jest/transform" "^25.3.0" + "@jest/types" "^25.3.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.3" + jest-changed-files "^25.3.0" + jest-config "^25.3.0" + jest-haste-map "^25.3.0" + jest-message-util "^25.3.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.3.0" + jest-resolve-dependencies "^25.3.0" + jest-runner "^25.3.0" + jest-runtime "^25.3.0" + jest-snapshot "^25.3.0" + jest-util "^25.3.0" + jest-validate "^25.3.0" + jest-watcher "^25.3.0" + micromatch "^4.0.2" + p-each-series "^2.1.0" + realpath-native "^2.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.3.0.tgz#587f28ddb4b0dfe97404d3d4a4c9dbfa0245fb2e" + integrity sha512-vgooqwJTHLLak4fE+TaCGeYP7Tz1Y3CKOsNxR1sE0V3nx3KRUHn3NUnt+wbcfd5yQWKZQKAfW6wqbuwQLrXo3g== + dependencies: + "@jest/fake-timers" "^25.3.0" + "@jest/types" "^25.3.0" + jest-mock "^25.3.0" + +"@jest/fake-timers@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.3.0.tgz#995aad36d5c8984165ca5db12e740ab8dbf7042a" + integrity sha512-NHAj7WbsyR3qBJPpBwSwqaq2WluIvUQsyzpJTN7XDVk7VnlC/y1BAnaYZL3vbPIP8Nhm0Ae5DJe0KExr/SdMJQ== + dependencies: + "@jest/types" "^25.3.0" + jest-message-util "^25.3.0" + jest-mock "^25.3.0" + jest-util "^25.3.0" + lolex "^5.0.0" + +"@jest/reporters@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.3.0.tgz#7f39f0e6911561cc5112a1b54656de18faee269b" + integrity sha512-1u0ZBygs0C9DhdYgLCrRfZfNKQa+9+J7Uo+Z9z0RWLHzgsxhoG32lrmMOtUw48yR6bLNELdvzormwUqSk4H4Vg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^25.3.0" + "@jest/test-result" "^25.3.0" + "@jest/transform" "^25.3.0" + "@jest/types" "^25.3.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^25.3.0" + jest-resolve "^25.3.0" + jest-util "^25.3.0" + jest-worker "^25.2.6" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^3.1.0" + terminal-link "^2.0.0" + v8-to-istanbul "^4.0.1" + optionalDependencies: + node-notifier "^6.0.0" + +"@jest/source-map@^25.2.6": + version "25.2.6" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.2.6.tgz#0ef2209514c6d445ebccea1438c55647f22abb4c" + integrity sha512-VuIRZF8M2zxYFGTEhkNSvQkUKafQro4y+mwUxy5ewRqs5N/ynSFUODYp3fy1zCnbCMy1pz3k+u57uCqx8QRSQQ== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.3" + source-map "^0.6.0" + +"@jest/test-result@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.3.0.tgz#137fab5e5c6fed36e5d40735d1eb029325e3bf06" + integrity sha512-mqrGuiiPXl1ap09Mydg4O782F3ouDQfsKqtQzIjitpwv3t1cHDwCto21jThw6WRRE+dKcWQvLG70GpyLJICfGw== + dependencies: + "@jest/console" "^25.3.0" + "@jest/types" "^25.3.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.3.0.tgz#271ad5f2b8f8137d092ccedc87e16a50f8676209" + integrity sha512-Xvns3xbji7JCvVcDGvqJ/pf4IpmohPODumoPEZJ0/VgC5gI4XaNVIBET2Dq5Czu6Gk3xFcmhtthh/MBOTljdNg== + dependencies: + "@jest/test-result" "^25.3.0" + jest-haste-map "^25.3.0" + jest-runner "^25.3.0" + jest-runtime "^25.3.0" + +"@jest/transform@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.3.0.tgz#083c5447d5307d9b9494d6968115b647460e71f1" + integrity sha512-W01p8kTDvvEX6kd0tJc7Y5VdYyFaKwNWy1HQz6Jqlhu48z/8Gxp+yFCDVj+H8Rc7ezl3Mg0hDaGuFVkmHOqirg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^25.3.0" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.3" + jest-haste-map "^25.3.0" + jest-regex-util "^25.2.6" + jest-util "^25.3.0" + micromatch "^4.0.2" + pirates "^4.0.1" + realpath-native "^2.0.0" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^25.3.0": + version "25.3.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.3.0.tgz#88f94b277a1d028fd7117bc1f74451e0fc2131e7" + integrity sha512-UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@jupiterone/data-model@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@jupiterone/data-model/-/data-model-0.5.2.tgz#0df52c376bc8517cc7986efd80ef11d07a4b62fe" + integrity sha512-pN3zDAhTbmqsQcTOet42aQ7yducMCt2/akj2k/Xfuh0oVflSG68EycXyqPKa+I+16FYBUtXDqjQ54Oc89XS4jg== + dependencies: + ajv "^6.12.0" + +"@jupiterone/integration-sdk@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk/-/integration-sdk-2.1.2.tgz#a33c7c5fe58b375303a4f56802bdbb3aa8f0a254" + integrity sha512-/3K6qaU0tzfON6+oemrArctJkaIxgDkxpE0s627LbHHe3QaEcO2rzL9etaO7cNjsaR8Q1tbiz6eLaX/2AgWJ5Q== + dependencies: + "@jupiterone/data-model" "^0.5.2" + "@lifeomic/alpha" "^1.1.3" + "@pollyjs/adapter-node-http" "^4.0.4" + "@pollyjs/core" "^4.0.4" + "@pollyjs/persister-fs" "^4.0.4" + "@types/bunyan" "^1.8.6" + "@types/har-format" "^1.2.4" + "@types/pollyjs__adapter-node-http" "^2.0.0" + "@types/pollyjs__core" "^4.0.0" + "@types/pollyjs__persister" "^2.0.1" + async-sema "^3.1.0" + bunyan "^1.8.12" + bunyan-format "^0.2.1" + chalk "^4.0.0" + commander "^5.0.0" + dependency-graph "^0.9.0" + dotenv "^8.2.0" + dotenv-expand "^5.1.0" + globby "^11.0.0" + jsonwebtoken "^8.5.1" + lodash "^4.17.15" + p-map "^4.0.0" + p-queue "^6.3.0" + rimraf "^3.0.2" + upath "^1.2.0" + uuid "^7.0.3" + +"@lifeomic/alpha@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@lifeomic/alpha/-/alpha-1.1.3.tgz#7144b84102ef7efb911770a0c03d23574b011ebe" + integrity sha512-IG+axcJDspxbT1/5o4zvuI9Yid4AkY+OCmmAIq0aAm8o+zM96Xo7ntUUeStuyS8wBBiu75T1mQgmpv+8YNZvlg== + dependencies: + aws-sdk "^2.184.0" + axios "^0.19.1" + docker-lambda "^0.15.2" + lodash "^4.17.11" + nearley "^2.16.0" + resolve-pathname "^3.0.0" + url-parse "^1.4.7" + +"@lifeomic/attempt@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@lifeomic/attempt/-/attempt-3.0.0.tgz#75fecc204f8b0ac18b5363b4404bb32450f01859" + integrity sha512-Ibk4Vfl46dSrhtH5fHsrTA4waAuyP7/qcr3uo0mO70azRc6LWgJILlMy3B1oOvyiN9jQcdqwsThaQkPKLiYKTg== + +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@pollyjs/adapter-node-http@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@pollyjs/adapter-node-http/-/adapter-node-http-4.0.4.tgz#69419090bcae0a58596fd7f49a6b20180734e946" + integrity sha512-qNnUiKmLgfGr+ppu+Fpt3dhnGxQOLCzdQzpTaqYGuD+ZFlw4/71KRxemsdNqh9dev0ZPmgt3MJD6enmv9kWYMQ== + dependencies: + "@pollyjs/adapter" "^4.0.4" + "@pollyjs/utils" "^4.0.2" + lodash-es "^4.17.11" + nock "^12.0.3" + +"@pollyjs/adapter@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@pollyjs/adapter/-/adapter-4.0.4.tgz#267e3257b516e2d91a933a27cd37876762924323" + integrity sha512-kkewGOZjjiaa5jmz73gIe3Y+39HKDXLm9eKBTvJpUY1zWNqHb9rM3BjcRf/+6zjSAgUDOEeKT6bNfbjJUqiHng== + dependencies: + "@pollyjs/utils" "^4.0.2" + +"@pollyjs/core@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@pollyjs/core/-/core-4.0.4.tgz#0295acaf445eab8b7120a7967c90917a866d9b63" + integrity sha512-kvX04VRV5avTYOIveGVsZLfXNUDMFfIcMgw5OKFCmbLLAwMwDBx0pDQ+Hbvlau22sj1SmF8gRptV7VaieCEtBQ== + dependencies: + "@pollyjs/utils" "^4.0.2" + "@sindresorhus/fnv1a" "^1.2.0" + blueimp-md5 "^2.10.0" + fast-json-stable-stringify "^2.0.0" + is-absolute-url "^3.0.0" + lodash-es "^4.17.11" + route-recognizer "^0.3.4" + slugify "^1.3.4" + +"@pollyjs/node-server@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@pollyjs/node-server/-/node-server-4.0.2.tgz#3c201a240fde949791df768e283b6a7ce9d62b67" + integrity sha512-mxSTlepqe3oIi6DvENXqZOgDDmgK2Wme7AEyVpLHhvJuzjAsPszV8i3RAPvhAx+5WOXHEnHzzwCoGSGKUMSlFw== + dependencies: + "@pollyjs/utils" "^4.0.2" + body-parser "^1.19.0" + cors "^2.8.5" + express "^4.17.1" + fs-extra "^8.0.1" + http-graceful-shutdown "^2.3.1" + morgan "^1.9.1" + nocache "^2.1.0" + +"@pollyjs/persister-fs@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@pollyjs/persister-fs/-/persister-fs-4.0.4.tgz#6975be09b5d1dd9942f5138da4faca26c856be88" + integrity sha512-mzPtgcYtWLlz2WOmInjTRnzX7W8C3IKWQ8Bt/cFzKxT0Qb822sXcvlCywjAkBqshzKXE/GyeVZszD+eIypEnUg== + dependencies: + "@pollyjs/node-server" "^4.0.2" + "@pollyjs/persister" "^4.0.4" + +"@pollyjs/persister@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@pollyjs/persister/-/persister-4.0.4.tgz#508c09259cab6f7de1d562c6d26b6c015cbf6c38" + integrity sha512-nW7n81NNSxidVKogu56eoSaKEXQ6cx3wxup6NEDc813X/AKMsuip5e3YJDLlrHXGR7LtjkbNx0adx6mpBfw6rA== + dependencies: + "@pollyjs/utils" "^4.0.2" + bowser "^2.4.0" + fast-json-stable-stringify "^2.0.0" + lodash-es "^4.17.11" + set-cookie-parser "^2.3.5" + utf8-byte-length "^1.0.4" + +"@pollyjs/utils@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@pollyjs/utils/-/utils-4.0.2.tgz#f7f9184178c51700c515c2909a6ea549fe0613e1" + integrity sha512-Rm0T83nTXeCWO+VS9tbe4hcw9mk5EcmsH/tWRK6lz9/DPc6ApQ3nzt0K5yEijJACbIRUNe722G8ASiLrcRJa2Q== + dependencies: + qs "^6.7.0" + url-parse "^1.4.7" + +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" + integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== + dependencies: + any-observable "^0.3.0" + +"@sindresorhus/fnv1a@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/fnv1a/-/fnv1a-1.2.0.tgz#d554da64c406f3b62ad06dfce9efd537a4a55de4" + integrity sha512-5ezb/dBSTWtKQ4sLQwMgOJyREXJcZZkTMbendMwKrXTghUhWjZhstzkkmt4/WkFy/GSTSGzfJOKU7dEXv3C/XQ== + +"@sinonjs/commons@^1.7.0": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2" + integrity sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw== + dependencies: + type-detect "4.0.8" + +"@types/babel__core@^7.1.7": + version "7.1.7" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" + integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" + integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.10" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.10.tgz#d9a99f017317d9b3d1abc2ced45d3bca68df0daf" + integrity sha512-74fNdUGrWsgIB/V9kTO5FGHPWYY6Eqn+3Z7L6Hc4e/BxjYV7puvBqp5HwsVYYfLm6iURYBNCx4Ut37OF9yitCw== + dependencies: + "@babel/types" "^7.3.0" + +"@types/bunyan@^1.8.6": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.6.tgz#6527641cca30bedec5feb9ab527b7803b8000582" + integrity sha512-YiozPOOsS6bIuz31ilYqR5SlLif4TBWsousN2aCWLi5233nZSX19tFbcQUPdR7xJ8ypPyxkCGNxg0CIV5n9qxQ== + dependencies: + "@types/node" "*" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + +"@types/har-format@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.4.tgz#3275842095abb60d14b47fa798cc9ff708dab6d4" + integrity sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" + integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/jest@^25.2.1": + version "25.2.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.1.tgz#9544cd438607955381c1bdbdb97767a249297db5" + integrity sha512-msra1bCaAeEdkSyA0CZ6gW1ukMIvZ5YoJkdXw/qhQdsuuDlFTcEUrUw8CLCPt2rVRUfXlClVvK2gvPs9IokZaA== + dependencies: + jest-diff "^25.2.1" + pretty-format "^25.2.1" + +"@types/json-schema@^7.0.3": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + +"@types/node@*": + version "14.0.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.1.tgz#5d93e0a099cd0acd5ef3d5bde3c086e1f49ff68c" + integrity sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA== + +"@types/node@^13.11.1": + version "13.11.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.11.1.tgz#49a2a83df9d26daacead30d0ccc8762b128d53c7" + integrity sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/pollyjs__adapter-node-http@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/pollyjs__adapter-node-http/-/pollyjs__adapter-node-http-2.0.0.tgz#357514c35a61b3ebb7769d915dc4352720bcc132" + integrity sha512-v8g65xEnADlb1UZe4fNPO9KpU04uY6HAPns307RWqePlVtftctD73FA++74PbO17PNgMbi/7IzrZatiEEn9CPQ== + dependencies: + "@types/pollyjs__adapter" "*" + +"@types/pollyjs__adapter@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/pollyjs__adapter/-/pollyjs__adapter-3.0.0.tgz#de8817111dcfd128ce5a43a5e4f7088e1fbd5d52" + integrity sha512-t54ENQCNxJcICyEQCTwAZf0EnZ7myzfMv/hCqB+CgGYgUw5vTkbRv9Tv/y7vOPhsGAM7S/b6qtiqp0x1vR7wtw== + dependencies: + "@types/pollyjs__core" "*" + +"@types/pollyjs__core@*", "@types/pollyjs__core@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/pollyjs__core/-/pollyjs__core-4.0.0.tgz#064c6fc575dcbb7dc06b322593d025576f309d3f" + integrity sha512-tmdhyQs8bqMCDRZn3r2HXlwfbDCIcBweqkNcFAbr97rjGWgQsu4mI37GiaehFuiRkCPkpHuuk+oA4oW3g5sMsQ== + dependencies: + "@types/pollyjs__adapter" "*" + "@types/pollyjs__persister" "*" + +"@types/pollyjs__persister@*", "@types/pollyjs__persister@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/pollyjs__persister/-/pollyjs__persister-2.0.1.tgz#4ecc700f68d3c3a6c18c6d2dc7e16dcf618ff07a" + integrity sha512-Et19GEUffnxsJXJYzgdSDN6oUZgDt0JlCIImy4rEh1fn1Y2mX6nZSZ7FnMEBxZGGph5eviaqQxuHwHDF3TmdBQ== + +"@types/prettier@^1.19.0": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/yargs-parser@*": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + +"@types/yargs@^15.0.0": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" + integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^2.28.0": + version "2.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.28.0.tgz#4431bc6d3af41903e5255770703d4e55a0ccbdec" + integrity sha512-w0Ugcq2iatloEabQP56BRWJowliXUP5Wv6f9fKzjJmDW81hOTBxRoJ4LoEOxRpz9gcY51Libytd2ba3yLmSOfg== + dependencies: + "@typescript-eslint/experimental-utils" "2.28.0" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@2.28.0", "@typescript-eslint/experimental-utils@^2.5.0": + version "2.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.28.0.tgz#1fd0961cd8ef6522687b4c562647da6e71f8833d" + integrity sha512-4SL9OWjvFbHumM/Zh/ZeEjUFxrYKtdCi7At4GyKTbQlrj1HcphIDXlje4Uu4cY+qzszR5NdVin4CCm6AXCjd6w== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.28.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^2.28.0": + version "2.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.28.0.tgz#bb761286efd2b0714761cab9d0ee5847cf080385" + integrity sha512-RqPybRDquui9d+K86lL7iPqH6Dfp9461oyqvlXMNtap+PyqYbkY5dB7LawQjDzot99fqzvS0ZLZdfe+1Bt3Jgw== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "2.28.0" + "@typescript-eslint/typescript-estree" "2.28.0" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/typescript-estree@2.28.0": + version "2.28.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.28.0.tgz#d34949099ff81092c36dc275b6a1ea580729ba00" + integrity sha512-HDr8MP9wfwkiuqzRVkuM3BeDrOC4cKbO5a6BymZBHUt5y/2pL0BXD6I/C/ceq2IZoHWhcASk+5/zo+dwgu9V8Q== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^6.3.0" + tsutils "^3.17.1" + +abab@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^6.0.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +acorn@^7.1.0, acorn@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5: + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +ansicolors@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" + integrity sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8= + +ansistyles@~0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" + integrity sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk= + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-sema@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.1.0.tgz#3a813beb261e4cc58b19213916a48e931e21d21e" + integrity sha512-+JpRq3r0zjpRLDruS6q/nC4V5tzsaiu07521677Mdi5i+AkaU/aNJH38rYHJVQ4zvz+SSkjgc8FUI7qIZrR+3g== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +aws-sdk@^2.184.0: + version "2.666.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.666.0.tgz#4cd4f6bea920e3ef3192bf113aa9c606a307a709" + integrity sha512-m4m4eHs/F7SRW0OnvxRWyrAyqcQE7kyVnfwyrhA7P0w92FOmmu+tw6JKI5LZNVBsaj2VBAfPn72V6nWzP3IIlw== + dependencies: + buffer "4.9.1" + events "1.1.1" + ieee754 "1.1.13" + jmespath "0.15.0" + querystring "0.2.0" + sax "1.2.1" + url "0.10.3" + uuid "3.3.2" + xml2js "0.4.19" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== + +axios@^0.19.1: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +babel-jest@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.3.0.tgz#999d0c19e8427f66b796bf9ea233eedf087b957c" + integrity sha512-qiXeX1Cmw4JZ5yQ4H57WpkO0MZ61Qj+YnsVUwAMnDV5ls+yHon11XjarDdgP7H8lTmiEi6biiZA8y3Tmvx6pCg== + dependencies: + "@jest/transform" "^25.3.0" + "@jest/types" "^25.3.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.3.0" + chalk "^3.0.0" + slash "^3.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.6.tgz#2af07632b8ac7aad7d414c1e58425d5fc8e84909" + integrity sha512-qE2xjMathybYxjiGFJg0mLFrz0qNp83aNZycWDY/SuHiZNq+vQfRQtuINqyXyue1ELd8Rd+1OhFSLjms8msMbw== + dependencies: + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" + integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +babel-preset-jest@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.3.0.tgz#9ab40aee52a19bdc52b8b1ec2403d5914ac3d86b" + integrity sha512-tjdvLKNMwDI9r+QWz9sZUQGTq1dpoxjUqFUpEasAc7MOtHg9XuLT2fx0udFG+k1nvMV0WvHHVAN7VmCZ+1Zxbw== + dependencies: + babel-plugin-jest-hoist "^25.2.6" + babel-preset-current-node-syntax "^0.1.2" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base-64@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" + integrity sha1-eAqZyE59YAJgNhURxId2E78k9rs= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +blueimp-md5@^2.10.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.13.0.tgz#07314b0c64dda0bf1733f96ce40d5af94eb28965" + integrity sha512-lmp0m647R5e77ORduxLW5mISIDcvgJZa52vMBv5uVI3UmSWTQjkJsZVBfaFqQPw/QFogJwvY6e3Gl9nP+Loe+Q== + +body-parser@1.19.0, body-parser@^1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bowser@^2.4.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" + integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer@4.9.1: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +bunyan-format@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/bunyan-format/-/bunyan-format-0.2.1.tgz#a4b3b0d80070a865279417269e3f00ff02fbcb47" + integrity sha1-pLOw2ABwqGUnlBcmnj8A/wL7y0c= + dependencies: + ansicolors "~0.2.1" + ansistyles "~0.1.1" + xtend "~2.1.1" + +bunyan@^1.8.12: + version "1.8.12" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" + integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c= + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.10.6" + mv "~2" + safe-json-stringify "~1" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.19.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.0.0.tgz#dbf1909b49e5044f8fdaf0adc809f0c0722bdfd0" + integrity sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ== + +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cross-fetch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.4.tgz#7bef7020207e684a7638ef5f2f698e24d9eb283c" + integrity sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw== + dependencies: + node-fetch "2.6.0" + whatwg-fetch "3.0.0" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992" + integrity sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA== + dependencies: + cssom "~0.3.6" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +dependency-graph@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318" + integrity sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w== + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= + +docker-lambda@^0.15.2: + version "0.15.3" + resolved "https://registry.yarnpkg.com/docker-lambda/-/docker-lambda-0.15.3.tgz#b95a9093ac7d87691e3b90cef8076047d6a15278" + integrity sha512-/YI2dnMrW5WcHBtU1lJLhmtr1hgd3UK+QiKbT/EdbQaUMmwoH11DBM0yC5LZgR2p+VEpOtaGgBvdKHRnXBxfpg== + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +dtrace-provider@~0.8: + version "0.8.8" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" + integrity sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg== + dependencies: + nan "^2.14.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.11.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" + integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@^6.10.1: + version "6.10.1" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz#129ef9ec575d5ddc0e269667bf09defcd898642a" + integrity sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ== + dependencies: + get-stdin "^6.0.0" + +eslint-plugin-jest@^23.8.2: + version "23.8.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz#6f28b41c67ef635f803ebd9e168f6b73858eb8d4" + integrity sha512-xwbnvOsotSV27MtAe7s8uGWOori0nUsrXh2f1EnpmXua8sDfY6VZhHAhHg2sqK7HBNycRQExF074XSZ7DvfoFg== + dependencies: + "@typescript-eslint/experimental-utils" "^2.5.0" + +eslint-plugin-prettier@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz#ae116a0fc0e598fdae48743a4430903de5b4e6ca" + integrity sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.2.1.tgz#105239e215c5aa480369c7794d74b8b5914c19d4" + integrity sha512-/IcAXa9GWOX9BUIb/Tz2QrrAWFWzWGrFIeLeMRwtiuwg9qTFhSYemsi9DixwrFFqVbhBZ47vGcxEnu5mbPqbig== + dependencies: + estraverse "^5.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22" + integrity sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + +events@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.2.0, execa@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.3.0.tgz#5fd36e51befd05afb7184bc954f8a4792d184c71" + integrity sha512-buboTXML2h/L0Kh44Ys2Cx49mX20ISc5KDirkxIs3Q9AJv0kazweUAbukegr+nHDOvFRKmxdojjIHCjqAceYfg== + dependencies: + "@jest/types" "^25.3.0" + ansi-styles "^4.0.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.3.0" + jest-message-util "^25.3.0" + jest-regex-util "^25.2.6" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.1.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" + integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.7.0.tgz#fcd79a08c5bd7ec5b55cd3f5c4720db551929801" + integrity sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-versions@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + dependencies: + semver-regex "^2.0.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@^8.0.1: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" + integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz#56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154" + integrity sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-graceful-shutdown@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/http-graceful-shutdown/-/http-graceful-shutdown-2.3.2.tgz#2334e3036c88283567fdab5e371ffad327fb886e" + integrity sha512-Dn7fJjHWboN7WjNDuo7d7ZISdUlbnyQEtOjBwMGJig45ZztHQxCsnW9N89Pr3gb6VzvZy1HySgAu2Q98j6S17w== + dependencies: + debug "^4.1.1" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +husky@^4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" + integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== + dependencies: + chalk "^4.0.0" + ci-info "^2.0.0" + compare-versions "^3.6.0" + cosmiconfig "^6.0.0" + find-versions "^3.2.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^4.2.0" + please-upgrade-node "^3.2.0" + slash "^3.0.0" + which-pm-runs "^1.0.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@1.1.13, ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + +import-fresh@^3.0.0, import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +inquirer@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" + integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + +isarray@1.0.0, isarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" + integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== + dependencies: + "@babel/core" "^7.7.5" + "@babel/parser" "^7.7.5" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.3.0.tgz#85d8de6f4bd13dafda9d7f1e3f2565fc0e183c78" + integrity sha512-eqd5hyLbUjIVvLlJ3vQ/MoPxsxfESVXG9gvU19XXjKzxr+dXmZIqCXiY0OiYaibwlHZBJl2Vebkc0ADEMzCXew== + dependencies: + "@jest/types" "^25.3.0" + execa "^3.2.0" + throat "^5.0.0" + +jest-cli@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.3.0.tgz#d9e11f5700cc5946583cf0d01a9bdebceed448d2" + integrity sha512-XpNQPlW1tzpP7RGG8dxpkRegYDuLjzSiENu92+CYM87nEbmEPb3b4+yo8xcsHOnj0AG7DUt9b3uG8LuHI3MDzw== + dependencies: + "@jest/core" "^25.3.0" + "@jest/test-result" "^25.3.0" + "@jest/types" "^25.3.0" + chalk "^3.0.0" + exit "^0.1.2" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^25.3.0" + jest-util "^25.3.0" + jest-validate "^25.3.0" + prompts "^2.0.1" + realpath-native "^2.0.0" + yargs "^15.3.1" + +jest-config@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.3.0.tgz#112b5e2f2e57dec4501dd2fe979044c06fb1317e" + integrity sha512-CmF1JnNWFmoCSPC4tnU52wnVBpuxHjilA40qH/03IHxIevkjUInSMwaDeE6ACfxMPTLidBGBCO3EbxvzPbo8wA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^25.3.0" + "@jest/types" "^25.3.0" + babel-jest "^25.3.0" + chalk "^3.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + jest-environment-jsdom "^25.3.0" + jest-environment-node "^25.3.0" + jest-get-type "^25.2.6" + jest-jasmine2 "^25.3.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.3.0" + jest-util "^25.3.0" + jest-validate "^25.3.0" + micromatch "^4.0.2" + pretty-format "^25.3.0" + realpath-native "^2.0.0" + +jest-diff@^25.2.1, jest-diff@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.3.0.tgz#0d7d6f5d6171e5dacde9e05be47b3615e147c26f" + integrity sha512-vyvs6RPoVdiwARwY4kqFWd4PirPLm2dmmkNzKqo38uZOzJvLee87yzDjIZLmY1SjM3XR5DwsUH+cdQ12vgqi1w== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.3.0" + +jest-docblock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== + dependencies: + detect-newline "^3.0.0" + +jest-each@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.3.0.tgz#a319eecf1f6076164ab86f99ca166a55b96c0bd4" + integrity sha512-aBfS4VOf/Qs95yUlX6d6WBv0szvOcTkTTyCIaLuQGj4bSHsT+Wd9dDngVHrCe5uytxpN8VM+NAloI6nbPjXfXw== + dependencies: + "@jest/types" "^25.3.0" + chalk "^3.0.0" + jest-get-type "^25.2.6" + jest-util "^25.3.0" + pretty-format "^25.3.0" + +jest-environment-jsdom@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.3.0.tgz#c493ab8c41f28001520c70ef67dd88b88be6af05" + integrity sha512-jdE4bQN+k2QEZ9sWOxsqDJvMzbdFSCN/4tw8X0TQaCqyzKz58PyEf41oIr4WO7ERdp7WaJGBSUKF7imR3UW1lg== + dependencies: + "@jest/environment" "^25.3.0" + "@jest/fake-timers" "^25.3.0" + "@jest/types" "^25.3.0" + jest-mock "^25.3.0" + jest-util "^25.3.0" + jsdom "^15.2.1" + +jest-environment-node@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.3.0.tgz#9845f0e63991e8498448cb0ae804935689533db9" + integrity sha512-XO09S29Nx1NU7TiMPHMoDIkxoGBuKSTbE+sHp0gXbeLDXhIdhysUI25kOqFFSD9AuDgvPvxWCXrvNqiFsOH33g== + dependencies: + "@jest/environment" "^25.3.0" + "@jest/fake-timers" "^25.3.0" + "@jest/types" "^25.3.0" + jest-mock "^25.3.0" + jest-util "^25.3.0" + semver "^6.3.0" + +jest-fetch-mock@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz#31749c456ae27b8919d69824f1c2bd85fe0a1f3b" + integrity sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw== + dependencies: + cross-fetch "^3.0.4" + promise-polyfill "^8.1.3" + +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + +jest-haste-map@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.3.0.tgz#b7683031c9c9ddc0521d311564108b244b11e4c6" + integrity sha512-LjXaRa+F8wwtSxo9G+hHD/Cp63PPQzvaBL9XCVoJD2rrcJO0Zr2+YYzAFWWYJ5GlPUkoaJFJtOuk0sL6MJY80A== + dependencies: + "@jest/types" "^25.3.0" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.3" + jest-serializer "^25.2.6" + jest-util "^25.3.0" + jest-worker "^25.2.6" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + which "^2.0.2" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.3.0.tgz#16ae4f68adef65fb45001b26c864bcbcbf972830" + integrity sha512-NCYOGE6+HNzYFSui52SefgpsnIzvxjn6KAgqw66BdRp37xpMD/4kujDHLNW5bS5i53os5TcMn6jYrzQRO8VPrQ== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^25.3.0" + "@jest/source-map" "^25.2.6" + "@jest/test-result" "^25.3.0" + "@jest/types" "^25.3.0" + chalk "^3.0.0" + co "^4.6.0" + expect "^25.3.0" + is-generator-fn "^2.0.0" + jest-each "^25.3.0" + jest-matcher-utils "^25.3.0" + jest-message-util "^25.3.0" + jest-runtime "^25.3.0" + jest-snapshot "^25.3.0" + jest-util "^25.3.0" + pretty-format "^25.3.0" + throat "^5.0.0" + +jest-leak-detector@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.3.0.tgz#5b6bf04903b35be56038915a55f47291771f769f" + integrity sha512-jk7k24dMIfk8LUSQQGN8PyOy9+J0NAfHZWiDmUDYVMctY8FLJQ1eQ8+PjMoN8PgwhLIggUqgYJnyRFvUz3jLRw== + dependencies: + jest-get-type "^25.2.6" + pretty-format "^25.3.0" + +jest-matcher-utils@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.3.0.tgz#76765788a26edaa8bc5f0100aea52ae383559648" + integrity sha512-ZBUJ2fchNIZt+fyzkuCFBb8SKaU//Rln45augfUtbHaGyVxCO++ANARdBK9oPGXU3hEDgyy7UHnOP/qNOJXFUg== + dependencies: + chalk "^3.0.0" + jest-diff "^25.3.0" + jest-get-type "^25.2.6" + pretty-format "^25.3.0" + +jest-message-util@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.3.0.tgz#e3836826fe5ca538a337b87d9bd2648190867f85" + integrity sha512-5QNy9Id4WxJbRITEbA1T1kem9bk7y2fD0updZMSTNHtbEDnYOGLDPAuFBhFgVmOZpv0n6OMdVkK+WhyXEPCcOw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^25.3.0" + "@types/stack-utils" "^1.0.1" + chalk "^3.0.0" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^1.0.1" + +jest-mock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.3.0.tgz#d72644509e40987a732a9a2534a1054f4649402c" + integrity sha512-yRn6GbuqB4j3aYu+Z1ezwRiZfp0o9om5uOcBovVtkcRLeBCNP5mT0ysdenUsxAHnQUgGwPOE1wwhtQYe6NKirQ== + dependencies: + "@jest/types" "^25.3.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" + integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== + +jest-regex-util@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" + integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== + +jest-resolve-dependencies@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.3.0.tgz#b0e4ae053dd44ddacc18c6ee12b5b7c28e445a90" + integrity sha512-bDUlLYmHW+f7J7KgcY2lkq8EMRqKonRl0XoD4Wp5SJkgAxKJnsaIOlrrVNTfXYf+YOu3VCjm/Ac2hPF2nfsCIA== + dependencies: + "@jest/types" "^25.3.0" + jest-regex-util "^25.2.6" + jest-snapshot "^25.3.0" + +jest-resolve@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.3.0.tgz#cb90a5bbea54a02eccdbbf4126a819595dcf91d6" + integrity sha512-IHoQAAybulsJ+ZgWis+ekYKDAoFkVH5Nx/znpb41zRtpxj4fr2WNV9iDqavdSm8GIpMlsfZxbC/fV9DhW0q9VQ== + dependencies: + "@jest/types" "^25.3.0" + browser-resolve "^1.11.3" + chalk "^3.0.0" + jest-pnp-resolver "^1.2.1" + realpath-native "^2.0.0" + resolve "^1.15.1" + +jest-runner@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.3.0.tgz#673ef2ac79d2810eb6b2c1a3f82398375a3d1174" + integrity sha512-csDqSC9qGHYWDrzrElzEgFbteztFeZJmKhSgY5jlCIcN0+PhActzRNku0DA1Xa1HxGOb0/AfbP1EGJlP4fGPtA== + dependencies: + "@jest/console" "^25.3.0" + "@jest/environment" "^25.3.0" + "@jest/test-result" "^25.3.0" + "@jest/types" "^25.3.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.3" + jest-config "^25.3.0" + jest-docblock "^25.3.0" + jest-haste-map "^25.3.0" + jest-jasmine2 "^25.3.0" + jest-leak-detector "^25.3.0" + jest-message-util "^25.3.0" + jest-resolve "^25.3.0" + jest-runtime "^25.3.0" + jest-util "^25.3.0" + jest-worker "^25.2.6" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.3.0.tgz#af4d40dbcc590fa5de9910cb6a120a13d131050b" + integrity sha512-gn5KYB1wxXRM3nfw8fVpthFu60vxQUCr+ShGq41+ZBFF3DRHZRKj3HDWVAVB4iTNBj2y04QeAo5cZ/boYaPg0w== + dependencies: + "@jest/console" "^25.3.0" + "@jest/environment" "^25.3.0" + "@jest/source-map" "^25.2.6" + "@jest/test-result" "^25.3.0" + "@jest/transform" "^25.3.0" + "@jest/types" "^25.3.0" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.3" + jest-config "^25.3.0" + jest-haste-map "^25.3.0" + jest-message-util "^25.3.0" + jest-mock "^25.3.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.3.0" + jest-snapshot "^25.3.0" + jest-util "^25.3.0" + jest-validate "^25.3.0" + realpath-native "^2.0.0" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.3.1" + +jest-serializer@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.2.6.tgz#3bb4cc14fe0d8358489dbbefbb8a4e708ce039b7" + integrity sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ== + +jest-snapshot@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.3.0.tgz#d4feb457494f4aaedcc83fbbf1ca21808fc3df71" + integrity sha512-GGpR6Oro2htJPKh5RX4PR1xwo5jCEjtvSPLW1IS7N85y+2bWKbiknHpJJRKSdGXghElb5hWaeQASJI4IiRayGg== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^25.3.0" + "@types/prettier" "^1.19.0" + chalk "^3.0.0" + expect "^25.3.0" + jest-diff "^25.3.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.3.0" + jest-message-util "^25.3.0" + jest-resolve "^25.3.0" + make-dir "^3.0.0" + natural-compare "^1.4.0" + pretty-format "^25.3.0" + semver "^6.3.0" + +jest-util@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.3.0.tgz#e3b0064165818f10d78514696fd25efba82cf049" + integrity sha512-dc625P/KS/CpWTJJJxKc4bA3A6c+PJGBAqS8JTJqx4HqPoKNqXg/Ec8biL2Z1TabwK7E7Ilf0/ukSEXM1VwzNA== + dependencies: + "@jest/types" "^25.3.0" + chalk "^3.0.0" + is-ci "^2.0.0" + make-dir "^3.0.0" + +jest-validate@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.3.0.tgz#eb95fdee0039647bcd5d4be641b21e4a142a880c" + integrity sha512-3WuXgIZ4HXUvW6gk9twFFkT9j6zUorKnF2oEY8VEsHb7x5LGvVlN3WUsbqazVKuyXwvikO2zFJ/YTySMsMje2w== + dependencies: + "@jest/types" "^25.3.0" + camelcase "^5.3.1" + chalk "^3.0.0" + jest-get-type "^25.2.6" + leven "^3.1.0" + pretty-format "^25.3.0" + +jest-watcher@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.3.0.tgz#fd03fd5ca52f02bd3161ab177466bf1bfdd34e5c" + integrity sha512-dtFkfidFCS9Ucv8azOg2hkiY3sgJEHeTLtGFHS+jfBEE7eRtrO6+2r1BokyDkaG2FOD7485r/SgpC1MFAENfeA== + dependencies: + "@jest/test-result" "^25.3.0" + "@jest/types" "^25.3.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + jest-util "^25.3.0" + string-length "^3.1.0" + +jest-worker@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.6.tgz#d1292625326794ce187c38f51109faced3846c58" + integrity sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.3.0.tgz#7a5e59741d94b8662664c77a9f346246d6bf228b" + integrity sha512-iKd5ShQSHzFT5IL/6h5RZJhApgqXSoPxhp5HEi94v6OAw9QkF8T7X+liEU2eEHJ1eMFYTHmeWLrpBWulsDpaUg== + dependencies: + "@jest/core" "^25.3.0" + import-local "^3.0.2" + jest-cli "^25.3.0" + +jmespath@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" + integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@2.x, json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +lint-staged@^10.1.3: + version "10.1.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.1.3.tgz#da27713d3ac519da305381b4de87d5f866b1d2f1" + integrity sha512-o2OkLxgVns5RwSC5QF7waeAjJA5nz5gnUfqL311LkZcFipKV7TztrSlhNUK5nQX9H0E5NELAdduMQ+M/JPT7RQ== + dependencies: + chalk "^3.0.0" + commander "^4.0.1" + cosmiconfig "^6.0.0" + debug "^4.1.1" + dedent "^0.7.0" + execa "^3.4.0" + listr "^0.14.3" + log-symbols "^3.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "^3.3.0" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash-es@^4.17.11: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" + integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + dependencies: + chalk "^1.0.0" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +lolex@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" + +make-dir@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" + integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== + dependencies: + semver "^6.0.0" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@4.x, micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@1.43.0: + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + dependencies: + mime-db "1.43.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +"minimatch@2 || 3", minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@1.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +moment@^2.10.6: + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + +moo@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" + integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== + +morgan@^1.9.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mv@~2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +nan@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= + +nearley@^2.16.0: + version "2.19.2" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.2.tgz#40cafbf235121ae94b1aa1e585890d24fade182d" + integrity sha512-h6lygT0BWAGErDvoE2LfI+tDeY2+UUrqG5dcBPdCmjnjud9z1wE0P7ljb85iNbE93YA+xJLpoSYGMuUqhnSSSA== + dependencies: + commander "^2.19.0" + moo "^0.5.0" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + semver "^5.4.1" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +nocache@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f" + integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q== + +nock@^12.0.3: + version "12.0.3" + resolved "https://registry.yarnpkg.com/nock/-/nock-12.0.3.tgz#83f25076dbc4c9aa82b5cdf54c9604c7a778d1c9" + integrity sha512-QNb/j8kbFnKCiyqi9C5DD0jH/FubFGj5rt9NQFONXwQm3IPB0CULECg/eS3AU1KgZb/6SwUa4/DTRKhVxkGABw== + dependencies: + debug "^4.1.0" + json-stringify-safe "^5.0.1" + lodash "^4.17.13" + propagate "^2.0.0" + +node-fetch@2.6.0, node-fetch@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" + integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== + dependencies: + growly "^1.3.0" + is-wsl "^2.1.1" + semver "^6.3.0" + shellwords "^0.1.1" + which "^1.3.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" + integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== + +optionator@^0.8.1, optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-each-series@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" + integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-queue@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.3.0.tgz#19bfa4485db7e6a0c135049ff6716375880d9c3a" + integrity sha512-fg5dJlFpd5+3CgG3/0ogpVZUeJbjiyXFg0nu53hrOYsybqSiDyxyOpad0Rm6tAiGjgztAwkyvhlYHC53OiAJOA== + dependencies: + eventemitter3 "^4.0.0" + p-timeout "^3.1.0" + +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.4.tgz#2d1bae173e355996ee355ec9830a7a1ee05457ef" + integrity sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w== + +pretty-format@^25.2.1, pretty-format@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.3.0.tgz#d0a4f988ff4a6cd350342fdabbb809aeb4d49ad5" + integrity sha512-wToHwF8bkQknIcFkBqNfKu4+UZqnrLn/Vr+wwKQwwvPzkBfDDKp/qIabFqdgtoi5PEnM8LFByVsOrHoa3SpTVA== + dependencies: + "@jest/types" "^25.3.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-polyfill@^8.1.3: + version "8.1.3" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" + integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== + +prompts@^2.0.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.4" + +propagate@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" + integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.7.0: + version "6.9.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" + integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= + +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.12.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +realpath-native@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" + integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== + +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpp@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== + dependencies: + lodash "^4.17.15" + +request-promise-native@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + dependencies: + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@1.x, resolve@^1.15.1, resolve@^1.3.2: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + dependencies: + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= + dependencies: + glob "^6.0.1" + +route-recognizer@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.3.4.tgz#39ab1ffbce1c59e6d2bdca416f0932611e4f3ca3" + integrity sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g== + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== + dependencies: + is-promise "^2.1.0" + +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + +rxjs@^6.3.3, rxjs@^6.5.3: + version "6.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" + integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-json-stringify@~1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" + integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sax@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= + +sax@>=0.6.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + +semver@6.x, semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-cookie-parser@^2.3.5: + version "2.4.5" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.4.5.tgz#94a5060724e614c56c65588010594dc4b848fb8d" + integrity sha512-LkSDwseogN5l6TerqGzFzL9mUDTxSq3hX2b5AaynjC1nSCNWiDypEgHatfc0v6KcnfgV3/6F6h4ABh6igjzlQQ== + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +sisteransi@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slugify@^1.3.4: + version "1.4.0" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.0.tgz#c9557c653c54b0c7f7a8e786ef3431add676d2cb" + integrity sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6: + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stack-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +ts-jest@^25.3.1: + version "25.3.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.3.1.tgz#58e2ed3506e4e4487c0b9b532846a5cade9656ba" + integrity sha512-O53FtKguoMUByalAJW+NWEv7c4tus5ckmhfa7/V0jBb2z8v5rDSLFC1Ate7wLknYPC1euuhY6eJjQq4FtOZrkg== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + micromatch "4.x" + mkdirp "1.x" + resolve "1.x" + semver "6.x" + yargs-parser "18.x" + +ts-node@^8.8.2: + version "8.8.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.8.2.tgz#0b39e690bee39ea5111513a9d2bcdc0bc121755f" + integrity sha512-duVj6BpSpUpD/oM4MfhO98ozgkp3Gt9qIp3jGxwU2DFvl/3IRaEAvbLa8G60uS7C77457e/m5TMowjedeRxI1Q== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.6" + yn "3.1.1" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" + integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse@^1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +utf8-byte-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== + +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + +v8-to-istanbul@^4.0.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20" + integrity sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +w3c-hr-time@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +wait-for-expect@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/wait-for-expect/-/wait-for-expect-3.0.2.tgz#d2f14b2f7b778c9b82144109c8fa89ceaadaa463" + integrity sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag== + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== + +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^7.0.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml2js@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= + dependencies: + object-keys "~0.4.0" + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yaml@^1.7.2: + version "1.8.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a" + integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw== + dependencies: + "@babel/runtime" "^7.8.7" + +yargs-parser@18.x, yargs-parser@^18.1.1: + version "18.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" + integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.3.1: + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==